@spiffcommerce/core 16.5.0-rc.0 → 16.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -24
- package/dist/index.js +1043 -1045
- package/dist/index.umd.cjs +22 -23
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as
|
|
2
|
-
import { fetch as _A, getAttributesFromArrayBuffer as Fe, AssetType as le, StepType as I, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as Me, calculateOffsets as ee, LayoutElementType as
|
|
1
|
+
import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as M } from "@apollo/client/core";
|
|
2
|
+
import { fetch as _A, getAttributesFromArrayBuffer as Fe, AssetType as le, StepType as I, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as Me, calculateOffsets as ee, LayoutElementType as U, generate as k, CreateElementCommand as J, generateSVGWithUnknownColors as ye, svgObjectURL as FA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as Be, GetSVGDimensions as It, patternImageDataCache as de, fetchAsArrayBuffer as Dt, findElement as MA, modifySVGWithElementProperties as ft, IllustrationColorCommand as jA, IllustrationCacheCommand as Ft, getFontMetrics as Mt, getPatternImageData as VA, FontColorCommand as yt, FontImageFillCommand as bA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as IA, FontSourceCommand as we, loadFont as te, TextChangeCommand as Yt, FontSizeCommand as St, createElementNS as xt, createElement as wA, _loadFontExternalDataURL as ae, UpdateWorkflowStateCommand as Ee, CommandContext as Nt, createCanvas as yA, getSvgElement as Ye, LayoutRenderingPurpose as Se, renderPapyrusComponentAsString as xe, loadImage as Ne, getDomParser as Re, toBase64 as he, getVariant as Rt, generateFrameSVG as Pt, getDefaultVariant as UA, domParser as Pe, sanitizeSvgTree as He, traverse as Ht, xmlSerializer as Ue, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
|
|
3
3
|
import { AssetType as Ts, BringForwardCommand as Ls, BringToBackCommand as Os, BringToFrontCommand as zs, CanvasCommand as Ks, CommandContext as js, CreateElementCommand as Vs, CreateLayoutCommand as Ws, DeleteElementCommand as Xs, FontAlignmentCommand as qs, FontColorCommand as Zs, FontSizeCommand as $s, FontSourceCommand as _s, GroupCommand as Ai, LayoutElementFactory as ei, LayoutElementType as ti, MoveCommand as ai, ResizeCommand as ni, RotateCommand as si, SendBackwardsCommand as ii, StepAspectType as oi, StepType as ri, TextChangeCommand as ci, UnitOfMeasurement as gi, dataUrlFromExternalUrl as li, determineCorrectFontSizeAndLines as Bi, findElement as di, frameDataCache as wi, generate as Ei, generateSVGWithUnknownColors as hi, getAttributesFromArrayBuffer as Ci, getAxisAlignedBoundingBox as Qi, getFrameData as ui, getSvgElement as mi, loadFont as pi, patternImageDataCache as Ii, registerFetchImplementation as Di, registerWindowImplementation as fi, rehydrateSerializedLayout as Fi, setCanvasModule as Mi } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as vt } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as kt } from "@apollo/client/link/error";
|
|
@@ -7,15 +7,15 @@ import { Pith as Ge } from "pith";
|
|
|
7
7
|
import ve from "lodash.debounce";
|
|
8
8
|
import ke from "lodash.isequal";
|
|
9
9
|
import gA from "lodash.clonedeep";
|
|
10
|
-
import { toString as
|
|
10
|
+
import { toString as Je } from "qrcode";
|
|
11
11
|
import { split as XA } from "unicode-default-word-boundary";
|
|
12
12
|
import ne from "svg-path-bbox";
|
|
13
|
-
class
|
|
13
|
+
class be extends Error {
|
|
14
14
|
constructor(A) {
|
|
15
15
|
super(A), this.name = this.constructor.name;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
class dA extends
|
|
18
|
+
class dA extends be {
|
|
19
19
|
constructor(A) {
|
|
20
20
|
super(`ConfigurationError - ${A}`);
|
|
21
21
|
}
|
|
@@ -25,7 +25,7 @@ class YA extends dA {
|
|
|
25
25
|
super(`Option not Configured: ${A.stepTitle}`), this.optionId = (A == null ? void 0 : A.optionId) || "N/A";
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
class
|
|
28
|
+
class T extends dA {
|
|
29
29
|
constructor(A) {
|
|
30
30
|
super(`Panel not Found: ${A.panelId}`), this.panelId = (A == null ? void 0 : A.panelId) || "N/A";
|
|
31
31
|
}
|
|
@@ -45,7 +45,7 @@ class SA extends dA {
|
|
|
45
45
|
super(`Workflow Misconfiguration: ${A.stepName} - ${e}`), this.step = A;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
class GA extends
|
|
48
|
+
class GA extends be {
|
|
49
49
|
constructor(A) {
|
|
50
50
|
super(`ImplementationError - ${A}`);
|
|
51
51
|
}
|
|
@@ -60,7 +60,7 @@ class rA extends GA {
|
|
|
60
60
|
super(`Parsing Error: ${A}`);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
class
|
|
63
|
+
class H extends GA {
|
|
64
64
|
constructor(A) {
|
|
65
65
|
super(`Client Error: ${A}`);
|
|
66
66
|
}
|
|
@@ -70,7 +70,7 @@ class vA extends GA {
|
|
|
70
70
|
super(`Resource Generation Failed: ${A}`);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
class
|
|
73
|
+
class Jt {
|
|
74
74
|
get(A) {
|
|
75
75
|
return localStorage.getItem(A) || void 0;
|
|
76
76
|
}
|
|
@@ -113,13 +113,13 @@ class Ce {
|
|
|
113
113
|
this.set(A, t);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
const
|
|
116
|
+
const bt = () => {
|
|
117
117
|
try {
|
|
118
|
-
return localStorage ? new
|
|
118
|
+
return localStorage ? new Jt() : new Ce();
|
|
119
119
|
} catch {
|
|
120
120
|
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Ce();
|
|
121
121
|
}
|
|
122
|
-
},
|
|
122
|
+
}, S = bt();
|
|
123
123
|
class Tt {
|
|
124
124
|
constructor() {
|
|
125
125
|
this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
|
|
@@ -190,13 +190,13 @@ class Kt {
|
|
|
190
190
|
uri: `${xA.getServerUrl()}/graphql`,
|
|
191
191
|
fetch: _A
|
|
192
192
|
}), e = vt(async (s, i) => {
|
|
193
|
-
const { headers:
|
|
194
|
-
return B && (
|
|
195
|
-
headers:
|
|
193
|
+
const { headers: o } = i, r = o || {}, c = await zt(), B = i.bearer ?? c.bearer, l = i.partnerId ?? c.partnerId, d = i.activeIntegration ?? c.activeIntegration, E = i.transactionOwnerId ?? c.transactionOwnerId, h = i.customerToken ?? c.customerToken, w = i.applicationKey ?? c.applicationKey, Q = i.bundleOwnerId ?? c.bundleOwnerId;
|
|
194
|
+
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), E && (r.transactionOwnerId = E), h && (r.customerToken = h), w && (r["X-Application-Key"] = w), Q && (r.bundleOwnerId = Q), {
|
|
195
|
+
headers: r
|
|
196
196
|
};
|
|
197
|
-
}), t = kt(({ operation: s, graphQLErrors: i, networkError:
|
|
198
|
-
const
|
|
199
|
-
|
|
197
|
+
}), t = kt(({ operation: s, graphQLErrors: i, networkError: o }) => {
|
|
198
|
+
const r = i || [];
|
|
199
|
+
o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + s.operationName));
|
|
200
200
|
});
|
|
201
201
|
function a() {
|
|
202
202
|
return {
|
|
@@ -251,14 +251,14 @@ class Kt {
|
|
|
251
251
|
});
|
|
252
252
|
}
|
|
253
253
|
}
|
|
254
|
-
const
|
|
254
|
+
const x = new Kt(), jt = M`
|
|
255
255
|
fragment AssetMetadataFields on Asset {
|
|
256
256
|
metadata {
|
|
257
257
|
key
|
|
258
258
|
value
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
-
`, kA = (g) =>
|
|
261
|
+
`, kA = (g) => M`
|
|
262
262
|
${g && jt || ""}
|
|
263
263
|
fragment AssetFields on Asset {
|
|
264
264
|
name
|
|
@@ -273,14 +273,14 @@ const N = new Kt(), jt = y`
|
|
|
273
273
|
}
|
|
274
274
|
${g && "...AssetMetadataFields" || ""}
|
|
275
275
|
}
|
|
276
|
-
`, Vt =
|
|
276
|
+
`, Vt = M`
|
|
277
277
|
${kA(!1)}
|
|
278
278
|
query GetAssets($keys: [String]!) {
|
|
279
279
|
assets(keys: $keys) {
|
|
280
280
|
...AssetFields
|
|
281
281
|
}
|
|
282
282
|
}
|
|
283
|
-
`, se =
|
|
283
|
+
`, se = M`
|
|
284
284
|
fragment MaterialFields on Material {
|
|
285
285
|
id
|
|
286
286
|
name
|
|
@@ -321,14 +321,14 @@ const N = new Kt(), jt = y`
|
|
|
321
321
|
fileLink
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
-
`, Wt =
|
|
324
|
+
`, Wt = M`
|
|
325
325
|
${se}
|
|
326
326
|
query GetMaterials($ids: [String]) {
|
|
327
327
|
materials(id: $ids) {
|
|
328
328
|
...MaterialFields
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
|
-
`, Xt =
|
|
331
|
+
`, Xt = M`
|
|
332
332
|
mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
|
|
333
333
|
assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
|
|
334
334
|
uploadUrl
|
|
@@ -342,14 +342,14 @@ const N = new Kt(), jt = y`
|
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
|
-
`, Ke = async (g) => (await
|
|
345
|
+
`, Ke = async (g) => (await x.getShadowGraphqlClient().query({
|
|
346
346
|
query: Vt,
|
|
347
347
|
errorPolicy: "all",
|
|
348
348
|
fetchPolicy: "no-cache",
|
|
349
349
|
variables: {
|
|
350
350
|
keys: g
|
|
351
351
|
}
|
|
352
|
-
})).data.assets, qt = async (g) => (await
|
|
352
|
+
})).data.assets, qt = async (g) => (await x.getShadowGraphqlClient().query({
|
|
353
353
|
query: Wt,
|
|
354
354
|
errorPolicy: "all",
|
|
355
355
|
fetchPolicy: "no-cache",
|
|
@@ -358,7 +358,7 @@ const N = new Kt(), jt = y`
|
|
|
358
358
|
}
|
|
359
359
|
})).data.materials, Zt = async (g, A, e, t, a) => {
|
|
360
360
|
var s;
|
|
361
|
-
return (s = (await
|
|
361
|
+
return (s = (await x.getShadowGraphqlClient().mutate({
|
|
362
362
|
mutation: Xt,
|
|
363
363
|
errorPolicy: "all",
|
|
364
364
|
fetchPolicy: "no-cache",
|
|
@@ -375,10 +375,10 @@ class $t {
|
|
|
375
375
|
constructor() {
|
|
376
376
|
this.cache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (A) => {
|
|
377
377
|
const e = await A.arrayBuffer(), t = await Fe(e), a = (n, s) => {
|
|
378
|
-
const i = atob(n.split(",")[1]),
|
|
379
|
-
for (let
|
|
380
|
-
|
|
381
|
-
return new Blob([new Uint8Array(
|
|
378
|
+
const i = atob(n.split(",")[1]), o = [];
|
|
379
|
+
for (let r = 0; r < i.length; r++)
|
|
380
|
+
o.push(i.charCodeAt(r));
|
|
381
|
+
return new Blob([new Uint8Array(o)], { type: s });
|
|
382
382
|
};
|
|
383
383
|
return {
|
|
384
384
|
name: A.name.substring(A.name.lastIndexOf("/") + 1),
|
|
@@ -433,14 +433,14 @@ class $t {
|
|
|
433
433
|
const s = await this.dispatchCreateAssetRequest(A, e, a, n);
|
|
434
434
|
if (!s)
|
|
435
435
|
throw new Error("Failed to create asset.");
|
|
436
|
-
return await new Promise((i,
|
|
437
|
-
const
|
|
438
|
-
|
|
436
|
+
return await new Promise((i, o) => {
|
|
437
|
+
const r = new XMLHttpRequest();
|
|
438
|
+
r.open("PUT", s.assetResponse.uploadUrl, !0), r.setRequestHeader("Content-Type", s.mimeType), r.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), r.upload.onprogress = (c) => {
|
|
439
439
|
c.lengthComputable && t(c.loaded * 100 / c.total);
|
|
440
|
-
},
|
|
440
|
+
}, r.onload = () => {
|
|
441
441
|
const c = s.assetResponse.asset;
|
|
442
442
|
LA.add(s.assetResponse.asset), i(c);
|
|
443
|
-
},
|
|
443
|
+
}, r.onerror = o, r.send(A.blob);
|
|
444
444
|
}), s.assetResponse.asset;
|
|
445
445
|
}
|
|
446
446
|
async uploadFile(A, e) {
|
|
@@ -453,7 +453,7 @@ class $t {
|
|
|
453
453
|
name: A.name,
|
|
454
454
|
blob: new Blob([A], { type: A.type })
|
|
455
455
|
};
|
|
456
|
-
return await
|
|
456
|
+
return await b.uploadAssetWithProgress(n, a, e, !0);
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
removePersistedAsset(A) {
|
|
@@ -502,31 +502,31 @@ class LA {
|
|
|
502
502
|
}
|
|
503
503
|
const e = /* @__PURE__ */ new Map();
|
|
504
504
|
e.set(A.key || "", A.fileLink);
|
|
505
|
-
const t =
|
|
505
|
+
const t = S.getMap(sA);
|
|
506
506
|
t && t.forEach((a, n) => {
|
|
507
507
|
e.set(n, a);
|
|
508
|
-
}),
|
|
508
|
+
}), S.setMap(sA, e);
|
|
509
509
|
}
|
|
510
510
|
/**
|
|
511
511
|
* Remove an existing asset from persistence. Noop if the asset doesn't exist.
|
|
512
512
|
* @param assetKey The key to remove.
|
|
513
513
|
*/
|
|
514
514
|
static remove(A) {
|
|
515
|
-
const e =
|
|
515
|
+
const e = S.getMap(sA);
|
|
516
516
|
if (!e)
|
|
517
517
|
return;
|
|
518
518
|
const t = Array.from(e.entries()).find((a) => a[0] === A);
|
|
519
|
-
t && (e.delete(t[0]),
|
|
519
|
+
t && (e.delete(t[0]), S.setMap(sA, e));
|
|
520
520
|
}
|
|
521
521
|
/**
|
|
522
522
|
* Get a list of all persisted assets.
|
|
523
523
|
*/
|
|
524
524
|
static list() {
|
|
525
|
-
const A =
|
|
525
|
+
const A = S.getMap(sA);
|
|
526
526
|
return A ? Array.from(A.entries()).map((e) => ({ assetKey: e[0], src: e[1] })) : [];
|
|
527
527
|
}
|
|
528
528
|
}
|
|
529
|
-
const
|
|
529
|
+
const b = new $t();
|
|
530
530
|
class _t {
|
|
531
531
|
constructor() {
|
|
532
532
|
this.cache = {};
|
|
@@ -546,7 +546,7 @@ class _t {
|
|
|
546
546
|
return this.cache[t] = e, e;
|
|
547
547
|
}
|
|
548
548
|
}
|
|
549
|
-
const BA = new _t(), je =
|
|
549
|
+
const BA = new _t(), je = M`
|
|
550
550
|
fragment OptionFields on Option {
|
|
551
551
|
id
|
|
552
552
|
name
|
|
@@ -586,7 +586,7 @@ const BA = new _t(), je = y`
|
|
|
586
586
|
...AssetFields
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
|
-
`, Aa =
|
|
589
|
+
`, Aa = M`
|
|
590
590
|
${kA(!1)}
|
|
591
591
|
${se}
|
|
592
592
|
${je}
|
|
@@ -596,7 +596,7 @@ const BA = new _t(), je = y`
|
|
|
596
596
|
}
|
|
597
597
|
}
|
|
598
598
|
`, ea = async (g) => {
|
|
599
|
-
const A = await
|
|
599
|
+
const A = await x.getShadowGraphqlClient().query({
|
|
600
600
|
query: Aa,
|
|
601
601
|
errorPolicy: "all",
|
|
602
602
|
fetchPolicy: "no-cache",
|
|
@@ -606,8 +606,8 @@ const BA = new _t(), je = y`
|
|
|
606
606
|
});
|
|
607
607
|
return A.data.options.forEach((e) => {
|
|
608
608
|
var t, a;
|
|
609
|
-
(t = e.defaultVariant) != null && t.asset &&
|
|
610
|
-
n.asset &&
|
|
609
|
+
(t = e.defaultVariant) != null && t.asset && b.cacheAsset(e.defaultVariant.asset), e.colorProfile && b.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
|
|
610
|
+
n.asset && b.cacheAsset(n.asset), n.displayImage && b.cacheAsset(n.displayImage), n.thumbnail && b.cacheAsset(n.thumbnail), n.material && b.cacheMaterial(n.material);
|
|
611
611
|
});
|
|
612
612
|
}), A.data.options;
|
|
613
613
|
}, ta = async (g, A) => (await A).find((t) => t.id === g), aa = async (g) => {
|
|
@@ -649,12 +649,12 @@ class na {
|
|
|
649
649
|
var a, n;
|
|
650
650
|
const e = A.thumbnail;
|
|
651
651
|
if (e) {
|
|
652
|
-
const s = (a = e.versions) == null ? void 0 : a.find((
|
|
652
|
+
const s = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
|
|
653
653
|
return (s == null ? void 0 : s.link) || i;
|
|
654
654
|
}
|
|
655
655
|
const t = A.asset;
|
|
656
656
|
if (t) {
|
|
657
|
-
const s = (n = t.versions) == null ? void 0 : n.find((
|
|
657
|
+
const s = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), i = t.fileLink;
|
|
658
658
|
return (s == null ? void 0 : s.link) || i;
|
|
659
659
|
}
|
|
660
660
|
return A.material ? A.material.id : "";
|
|
@@ -674,7 +674,7 @@ class na {
|
|
|
674
674
|
}
|
|
675
675
|
const z = new na();
|
|
676
676
|
var sa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(sa || {}), ia = /* @__PURE__ */ ((g) => (g.PerVariation = "PerVariation", g.BaseProduct = "BaseProduct", g))(ia || {}), oa = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(oa || {}), ra = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(ra || {}), NA = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(NA || {});
|
|
677
|
-
const ue =
|
|
677
|
+
const ue = M`
|
|
678
678
|
mutation CreateTransaction(
|
|
679
679
|
$integrationProductId: String
|
|
680
680
|
$externalIntegrationId: String
|
|
@@ -768,7 +768,7 @@ const ue = y`
|
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
770
|
}
|
|
771
|
-
`, ca =
|
|
771
|
+
`, ca = M`
|
|
772
772
|
mutation CreateTransactions($inputs: [TransactionCreateInput]!) {
|
|
773
773
|
transactionCreateMany(inputs: $inputs) {
|
|
774
774
|
id
|
|
@@ -848,7 +848,7 @@ const ue = y`
|
|
|
848
848
|
}
|
|
849
849
|
}
|
|
850
850
|
}
|
|
851
|
-
`, ga =
|
|
851
|
+
`, ga = M`
|
|
852
852
|
mutation ClaimTransaction($id: String!) {
|
|
853
853
|
transactionClaim(id: $id) {
|
|
854
854
|
id
|
|
@@ -928,7 +928,7 @@ const ue = y`
|
|
|
928
928
|
}
|
|
929
929
|
}
|
|
930
930
|
}
|
|
931
|
-
`, EA =
|
|
931
|
+
`, EA = M`
|
|
932
932
|
query ReadTransactions($ids: [String]!) {
|
|
933
933
|
transactions(ids: $ids) {
|
|
934
934
|
bulk
|
|
@@ -1015,26 +1015,26 @@ const ue = y`
|
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
1017
|
}
|
|
1018
|
-
`, la =
|
|
1018
|
+
`, la = M`
|
|
1019
1019
|
mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
|
|
1020
1020
|
transactionUpdate(id: $id, workflowState: $workflowState) {
|
|
1021
1021
|
id
|
|
1022
1022
|
}
|
|
1023
1023
|
}
|
|
1024
|
-
`, Ba =
|
|
1024
|
+
`, Ba = M`
|
|
1025
1025
|
mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
|
|
1026
1026
|
transactionUpdate(id: $id, workflowId: $workflowId) {
|
|
1027
1027
|
id
|
|
1028
1028
|
}
|
|
1029
1029
|
}
|
|
1030
|
-
`, da =
|
|
1030
|
+
`, da = M`
|
|
1031
1031
|
mutation UpdateVariationRecords($transactionId: String!, $updates: [VariationRecordUpdateInput]!) {
|
|
1032
1032
|
variationRecordsUpdate(transactionId: $transactionId, updates: $updates) {
|
|
1033
1033
|
recordNumber
|
|
1034
1034
|
}
|
|
1035
1035
|
}
|
|
1036
1036
|
`;
|
|
1037
|
-
|
|
1037
|
+
M`
|
|
1038
1038
|
query ReadTransactionForDesignCreation($id: String!) {
|
|
1039
1039
|
transactions(ids: [$id]) {
|
|
1040
1040
|
id
|
|
@@ -1087,7 +1087,7 @@ y`
|
|
|
1087
1087
|
}
|
|
1088
1088
|
}
|
|
1089
1089
|
`;
|
|
1090
|
-
const Ve =
|
|
1090
|
+
const Ve = M`
|
|
1091
1091
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1092
1092
|
transactions(ids: $ids) {
|
|
1093
1093
|
id
|
|
@@ -1202,66 +1202,65 @@ const Ve = y`
|
|
|
1202
1202
|
});
|
|
1203
1203
|
for (const n of g.steps) {
|
|
1204
1204
|
if (A.bulkScene) {
|
|
1205
|
-
let
|
|
1205
|
+
let i = !1;
|
|
1206
1206
|
switch (n.type) {
|
|
1207
1207
|
case I.DigitalContent:
|
|
1208
|
-
n.data.varyUpload && (
|
|
1208
|
+
n.data.varyUpload && (i = !0);
|
|
1209
1209
|
break;
|
|
1210
1210
|
case I.Frame:
|
|
1211
1211
|
{
|
|
1212
1212
|
const o = n.data;
|
|
1213
|
-
o.varyUpload && (o.varySelection || !n.option) && (
|
|
1213
|
+
o.varyUpload && (o.varySelection || !n.option) && (i = !0);
|
|
1214
1214
|
}
|
|
1215
1215
|
break;
|
|
1216
1216
|
case I.Illustration:
|
|
1217
1217
|
{
|
|
1218
1218
|
const o = n.data;
|
|
1219
|
-
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (
|
|
1219
|
+
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
|
|
1220
1220
|
}
|
|
1221
1221
|
break;
|
|
1222
1222
|
case I.Material:
|
|
1223
|
-
n.data.varySelection && (
|
|
1223
|
+
n.data.varySelection && (i = !0);
|
|
1224
1224
|
break;
|
|
1225
1225
|
case I.Model:
|
|
1226
|
-
n.data.varySelection && (
|
|
1226
|
+
n.data.varySelection && (i = !0);
|
|
1227
1227
|
break;
|
|
1228
1228
|
case I.Picture:
|
|
1229
|
-
n.data.varySelection && (
|
|
1229
|
+
n.data.varySelection && (i = !0);
|
|
1230
1230
|
break;
|
|
1231
1231
|
case I.Question:
|
|
1232
|
-
n.data.varySelections && (
|
|
1232
|
+
n.data.varySelections && (i = !0);
|
|
1233
1233
|
break;
|
|
1234
1234
|
case I.Shape:
|
|
1235
|
-
n.data.varySelection && (
|
|
1235
|
+
n.data.varySelection && (i = !0);
|
|
1236
1236
|
break;
|
|
1237
1237
|
case I.Text:
|
|
1238
1238
|
{
|
|
1239
1239
|
const o = n.data;
|
|
1240
|
-
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (
|
|
1240
|
+
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (i = !0);
|
|
1241
1241
|
}
|
|
1242
1242
|
break;
|
|
1243
1243
|
}
|
|
1244
|
-
if (
|
|
1244
|
+
if (i)
|
|
1245
1245
|
continue;
|
|
1246
1246
|
}
|
|
1247
1247
|
const s = Ea(n.stepName, g.stepGroups);
|
|
1248
|
-
if (!
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
}
|
|
1248
|
+
if (!s)
|
|
1249
|
+
t.push({
|
|
1250
|
+
name: n.stepName,
|
|
1251
|
+
title: n.stepTitle,
|
|
1252
|
+
renderableSteps: iA.includes(n.type) ? [] : [n],
|
|
1253
|
+
silentSteps: iA.includes(n.type) ? [n] : []
|
|
1254
|
+
});
|
|
1255
|
+
else {
|
|
1256
|
+
const i = t.find((o) => o.name === s.name);
|
|
1257
|
+
i ? iA.includes(n.type) ? i.silentSteps.push(n) : i.renderableSteps.push(n) : t.push({
|
|
1258
|
+
name: s.name,
|
|
1259
|
+
title: s.name,
|
|
1260
|
+
renderableSteps: iA.includes(n.type) ? [] : [n],
|
|
1261
|
+
silentSteps: iA.includes(n.type) ? [n] : []
|
|
1262
|
+
});
|
|
1263
|
+
}
|
|
1265
1264
|
}
|
|
1266
1265
|
if (A.bulkScene) {
|
|
1267
1266
|
const n = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
|
|
@@ -1314,28 +1313,28 @@ const Ve = y`
|
|
|
1314
1313
|
const e = {
|
|
1315
1314
|
name: g.name,
|
|
1316
1315
|
title: g.title,
|
|
1317
|
-
renderableSteps: g.renderableSteps.filter(
|
|
1318
|
-
(t) => nA(t, A) && !t.silent
|
|
1319
|
-
),
|
|
1316
|
+
renderableSteps: g.renderableSteps.filter((t) => nA(t, A)),
|
|
1320
1317
|
silentSteps: g.silentSteps.filter((t) => nA(t, A))
|
|
1321
1318
|
};
|
|
1322
1319
|
return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
|
|
1323
|
-
}, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A
|
|
1324
|
-
var
|
|
1325
|
-
const
|
|
1326
|
-
for (const
|
|
1327
|
-
for (const
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1320
|
+
}, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A) => {
|
|
1321
|
+
var n;
|
|
1322
|
+
const e = aA(g, A), t = [];
|
|
1323
|
+
for (const s of e)
|
|
1324
|
+
for (const i of s.renderableSteps)
|
|
1325
|
+
if (i.type === I.Model || i.type === I.Material || i.type === I.Picture || i.type === I.Shape) {
|
|
1326
|
+
const o = (((n = i.option) == null ? void 0 : n.variants) || []).length;
|
|
1327
|
+
o && o > 1 && t.push(i.stepName);
|
|
1328
|
+
} else
|
|
1329
|
+
t.push(i.stepName);
|
|
1330
|
+
const a = e.filter((s) => s.renderableSteps.filter(
|
|
1331
|
+
(o) => t.includes(o.stepName)
|
|
1333
1332
|
).length > 0);
|
|
1334
|
-
for (const
|
|
1335
|
-
|
|
1336
|
-
(
|
|
1333
|
+
for (const s of a)
|
|
1334
|
+
s.renderableSteps = s.renderableSteps.filter(
|
|
1335
|
+
(i) => t.includes(i.stepName)
|
|
1337
1336
|
);
|
|
1338
|
-
return
|
|
1337
|
+
return a;
|
|
1339
1338
|
};
|
|
1340
1339
|
class Xe {
|
|
1341
1340
|
constructor() {
|
|
@@ -1404,10 +1403,10 @@ class qe {
|
|
|
1404
1403
|
function Qa(g, A, e, t) {
|
|
1405
1404
|
const a = e.width * g.zoom, n = e.height * g.zoom;
|
|
1406
1405
|
if (t) {
|
|
1407
|
-
const i = g,
|
|
1408
|
-
i.zoom = Math.max(
|
|
1409
|
-
const
|
|
1410
|
-
return i.x = hA(g.x, A.width -
|
|
1406
|
+
const i = g, o = Math.max(A.width / e.width, A.height / e.height);
|
|
1407
|
+
i.zoom = Math.max(o, g.zoom);
|
|
1408
|
+
const r = e.width * i.zoom, c = e.height * i.zoom;
|
|
1409
|
+
return i.x = hA(g.x, A.width - r, 0), i.y = hA(g.y, A.height - c, 0), i;
|
|
1411
1410
|
}
|
|
1412
1411
|
const s = g;
|
|
1413
1412
|
return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
|
|
@@ -1432,8 +1431,8 @@ class ua {
|
|
|
1432
1431
|
if (a.currentFrameSources) {
|
|
1433
1432
|
let n = !1;
|
|
1434
1433
|
for (let s = 0; s < a.currentFrameSources.length; s++) {
|
|
1435
|
-
const i = a.currentFrameSources[s],
|
|
1436
|
-
ke(
|
|
1434
|
+
const i = a.currentFrameSources[s], o = await Ae(i);
|
|
1435
|
+
ke(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = o, n = !0);
|
|
1437
1436
|
}
|
|
1438
1437
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
1439
1438
|
(s) => s(this.frameData)
|
|
@@ -1502,7 +1501,7 @@ class ua {
|
|
|
1502
1501
|
if (this.imageData && this.offsets && this.frameData) {
|
|
1503
1502
|
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
|
|
1504
1503
|
const n = this.frameData.map((s, i) => {
|
|
1505
|
-
const
|
|
1504
|
+
const o = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, r = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, c = e[i] - o * A[i], B = t[i] - r * A[i];
|
|
1506
1505
|
return {
|
|
1507
1506
|
x: c,
|
|
1508
1507
|
y: B,
|
|
@@ -1566,8 +1565,8 @@ class ua {
|
|
|
1566
1565
|
if (!this.workflowManager)
|
|
1567
1566
|
throw new v("No workflow manager set, cannot update offsets.");
|
|
1568
1567
|
const s = this.workflowManager.getCommandDispatcher();
|
|
1569
|
-
a.forEach((i,
|
|
1570
|
-
s(new Me(i, e, A[
|
|
1568
|
+
a.forEach((i, o) => {
|
|
1569
|
+
s(new Me(i, e, A[o]));
|
|
1571
1570
|
}), this.stepName && this.workflowManager.updateStorage(this.stepName, {
|
|
1572
1571
|
frameOffsetsList: A
|
|
1573
1572
|
}), n && n();
|
|
@@ -1592,19 +1591,19 @@ class ua {
|
|
|
1592
1591
|
class me {
|
|
1593
1592
|
constructor(A, e, t) {
|
|
1594
1593
|
this.processRegion = async (a) => {
|
|
1595
|
-
var
|
|
1594
|
+
var o, r, c, B;
|
|
1596
1595
|
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1597
1596
|
if (!n)
|
|
1598
|
-
throw new
|
|
1597
|
+
throw new T(a);
|
|
1599
1598
|
let s = "";
|
|
1600
1599
|
if (this.configuration.type === I.ProductOverlay) {
|
|
1601
1600
|
let l = "";
|
|
1602
|
-
if ((
|
|
1601
|
+
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
|
|
1603
1602
|
throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1604
1603
|
}
|
|
1605
1604
|
const i = this.evaluateAssetType();
|
|
1606
|
-
if (i ===
|
|
1607
|
-
const l = this.configuration.type === I.SilentIllustration ? (
|
|
1605
|
+
if (i === U.Image) {
|
|
1606
|
+
const l = this.configuration.type === I.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
|
|
1608
1607
|
if (!l)
|
|
1609
1608
|
throw new Error("Undefined raster silent step source");
|
|
1610
1609
|
const d = {
|
|
@@ -1637,10 +1636,10 @@ class me {
|
|
|
1637
1636
|
Q("Undefined vector silent step source");
|
|
1638
1637
|
return;
|
|
1639
1638
|
}
|
|
1640
|
-
Z(l, !0).then((
|
|
1641
|
-
w(
|
|
1642
|
-
}).catch((
|
|
1643
|
-
}))()),
|
|
1639
|
+
Z(l, !0).then((C) => {
|
|
1640
|
+
w(C);
|
|
1641
|
+
}).catch((C) => console.error(C));
|
|
1642
|
+
}))()), h = {
|
|
1644
1643
|
stepName: this.configuration.stepName,
|
|
1645
1644
|
id: k(),
|
|
1646
1645
|
cachedObjectURL: await FA(E.svg),
|
|
@@ -1661,10 +1660,10 @@ class me {
|
|
|
1661
1660
|
};
|
|
1662
1661
|
return {
|
|
1663
1662
|
regionElement: {
|
|
1664
|
-
id:
|
|
1663
|
+
id: h.id,
|
|
1665
1664
|
region: a
|
|
1666
1665
|
},
|
|
1667
|
-
command: new J(
|
|
1666
|
+
command: new J(h, n)
|
|
1668
1667
|
};
|
|
1669
1668
|
}
|
|
1670
1669
|
}, this.configuration = A, this.layouts = e, this.product = t || void 0;
|
|
@@ -1679,7 +1678,7 @@ class me {
|
|
|
1679
1678
|
return this.configuration.type === I.ProductOverlay ? Promise.all(
|
|
1680
1679
|
this.configuration.data.regions.map((A) => {
|
|
1681
1680
|
if (!this.layouts.find((t) => A.panelId === t.panelId))
|
|
1682
|
-
throw new
|
|
1681
|
+
throw new T(A);
|
|
1683
1682
|
return this.processRegion(A);
|
|
1684
1683
|
})
|
|
1685
1684
|
) : Promise.reject("Unknown silent step. This is a bug");
|
|
@@ -1687,7 +1686,7 @@ class me {
|
|
|
1687
1686
|
evaluateAssetType() {
|
|
1688
1687
|
var e, t, a;
|
|
1689
1688
|
const A = this.configuration.type === I.ProductOverlay && ((e = this.product) != null && e.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (a = (t = this.configuration.data.asset) == null ? void 0 : t.fileLink) == null ? void 0 : a.toLowerCase().split("?")[0];
|
|
1690
|
-
return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ?
|
|
1689
|
+
return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ? U.Image : A != null && A.endsWith(".svg") || A != null && A.startsWith("image/svg+xml") ? U.Illustration : U.Illustration;
|
|
1691
1690
|
}
|
|
1692
1691
|
}
|
|
1693
1692
|
const ma = async (g) => {
|
|
@@ -1735,32 +1734,32 @@ class pa {
|
|
|
1735
1734
|
const a = e.getSerializedStep(
|
|
1736
1735
|
A.stepName,
|
|
1737
1736
|
t.serializableWorkflow.steps
|
|
1738
|
-
),
|
|
1739
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
1737
|
+
), o = Object.values(t.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === A.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
|
|
1738
|
+
await e.setSelectionsAndElements(A.stepName, [], o, async () => {
|
|
1740
1739
|
var B, l;
|
|
1741
|
-
const
|
|
1740
|
+
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;
|
|
1742
1741
|
e.updateStorage(A.stepName, {
|
|
1743
|
-
videoShortUrl:
|
|
1742
|
+
videoShortUrl: r,
|
|
1744
1743
|
videoUrl: c
|
|
1745
1744
|
});
|
|
1746
1745
|
});
|
|
1747
1746
|
}
|
|
1748
|
-
async regenerateQRCode(A, e, t, a, n, s, i,
|
|
1747
|
+
async regenerateQRCode(A, e, t, a, n, s, i, o, r) {
|
|
1749
1748
|
if (!e && t !== "" && a === "") {
|
|
1750
1749
|
const c = async () => {
|
|
1751
|
-
var
|
|
1752
|
-
const
|
|
1753
|
-
return { asset:
|
|
1754
|
-
}, B = await new Promise((
|
|
1750
|
+
var D, p;
|
|
1751
|
+
const C = (await Ke([t]))[0], u = (p = (D = C == null ? void 0 : C.versions) == null ? void 0 : D.find((f) => f.name === "mpeg4")) == null ? void 0 : p.link;
|
|
1752
|
+
return { asset: C, link: u };
|
|
1753
|
+
}, B = await new Promise((C, u) => {
|
|
1755
1754
|
new Ze(
|
|
1756
1755
|
async () => !!(await c()).link,
|
|
1757
1756
|
async () => {
|
|
1758
|
-
const
|
|
1759
|
-
if (!
|
|
1760
|
-
throw new lA(
|
|
1761
|
-
|
|
1757
|
+
const D = await c();
|
|
1758
|
+
if (!D.link || !D.link)
|
|
1759
|
+
throw new lA(D.asset);
|
|
1760
|
+
C({
|
|
1762
1761
|
rel: "mpeg4",
|
|
1763
|
-
href:
|
|
1762
|
+
href: D.link
|
|
1764
1763
|
});
|
|
1765
1764
|
},
|
|
1766
1765
|
() => {
|
|
@@ -1770,34 +1769,34 @@ class pa {
|
|
|
1770
1769
|
40
|
|
1771
1770
|
);
|
|
1772
1771
|
});
|
|
1773
|
-
A.forEach((
|
|
1772
|
+
A.forEach((C) => o(new $(C.id)));
|
|
1774
1773
|
const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
|
|
1775
1774
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1776
1775
|
const E = d.toString();
|
|
1777
1776
|
if (E.length >= 2e3)
|
|
1778
1777
|
throw new vA("Cannot create QR code, URL too long.");
|
|
1779
|
-
const
|
|
1780
|
-
if (i(
|
|
1778
|
+
const h = await ma(E);
|
|
1779
|
+
if (i(h), !s.data || !s.data.regions)
|
|
1781
1780
|
throw new SA(s, "Missing regions.");
|
|
1782
|
-
const w = await this.regionElements(s), Q = await this.command(
|
|
1781
|
+
const w = await this.regionElements(s), Q = await this.command(h, w, n, s.stepName);
|
|
1783
1782
|
Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
|
|
1784
1783
|
n.updateStorage(s.stepName, {
|
|
1785
|
-
videoShortUrl:
|
|
1784
|
+
videoShortUrl: h,
|
|
1786
1785
|
videoUrl: a
|
|
1787
|
-
}),
|
|
1786
|
+
}), r(!1);
|
|
1788
1787
|
});
|
|
1789
1788
|
} else
|
|
1790
|
-
|
|
1789
|
+
r(!1);
|
|
1791
1790
|
}
|
|
1792
1791
|
async regionElements(A) {
|
|
1793
1792
|
const e = (t) => ({ id: k(), region: t });
|
|
1794
1793
|
return A.data.regions.map(e);
|
|
1795
1794
|
}
|
|
1796
1795
|
async command(A, e, t, a) {
|
|
1797
|
-
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await
|
|
1798
|
-
const c =
|
|
1796
|
+
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await Je(A, { type: "svg" }))}`, o = e.map((r) => {
|
|
1797
|
+
const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
|
|
1799
1798
|
if (!B && c)
|
|
1800
|
-
throw new
|
|
1799
|
+
throw new T(c);
|
|
1801
1800
|
if (B && !c)
|
|
1802
1801
|
throw new Error("Region not found");
|
|
1803
1802
|
if (!B || !c)
|
|
@@ -1806,9 +1805,9 @@ class pa {
|
|
|
1806
1805
|
{
|
|
1807
1806
|
stepRegion: c,
|
|
1808
1807
|
stepName: a,
|
|
1809
|
-
id:
|
|
1808
|
+
id: r.id,
|
|
1810
1809
|
src: i,
|
|
1811
|
-
type:
|
|
1810
|
+
type: U.Image,
|
|
1812
1811
|
y: c.top,
|
|
1813
1812
|
x: c.left,
|
|
1814
1813
|
width: c.width,
|
|
@@ -1818,7 +1817,7 @@ class pa {
|
|
|
1818
1817
|
B
|
|
1819
1818
|
);
|
|
1820
1819
|
});
|
|
1821
|
-
return { command: new G(
|
|
1820
|
+
return { command: new G(o), followup: async () => {
|
|
1822
1821
|
} };
|
|
1823
1822
|
}
|
|
1824
1823
|
}
|
|
@@ -1861,11 +1860,11 @@ class Da {
|
|
|
1861
1860
|
);
|
|
1862
1861
|
}
|
|
1863
1862
|
async reload(A, e, t) {
|
|
1864
|
-
var
|
|
1863
|
+
var r;
|
|
1865
1864
|
const a = e.getSerializedStep(
|
|
1866
1865
|
A.stepName,
|
|
1867
1866
|
t.serializableWorkflow.steps
|
|
1868
|
-
),
|
|
1867
|
+
), o = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName).map((c) => ({ id: c.id, region: c.stepRegion }));
|
|
1869
1868
|
if (!A.option || (A.option.variants || []).length === 0) {
|
|
1870
1869
|
const c = A.data.regions.map((B) => Be(B));
|
|
1871
1870
|
e.updateStorage(A.stepName, {
|
|
@@ -1874,13 +1873,13 @@ class Da {
|
|
|
1874
1873
|
}
|
|
1875
1874
|
if (a) {
|
|
1876
1875
|
const c = async () => {
|
|
1877
|
-
var d, E,
|
|
1876
|
+
var d, E, h, w;
|
|
1878
1877
|
const B = (d = a.storage) == null ? void 0 : d.framePatternSrc, l = (E = a.storage) == null ? void 0 : E.frameOffsetsList;
|
|
1879
1878
|
if (e.updateMetadata(A.stepName, {
|
|
1880
1879
|
frameOffsetsList: l,
|
|
1881
1880
|
framePatternSrc: B
|
|
1882
1881
|
}), B) {
|
|
1883
|
-
const Q = (
|
|
1882
|
+
const Q = (h = e.getStepSpecificServices(A.stepName)) == null ? void 0 : h.frameService;
|
|
1884
1883
|
if (!Q)
|
|
1885
1884
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1886
1885
|
await this.loadPatternFromString(B, Q), e.updateMetadata(A.stepName, { image: B }), e.updateStorage(A.stepName, {
|
|
@@ -1898,11 +1897,11 @@ class Da {
|
|
|
1898
1897
|
if (a.selectedVariants && a.selectedVariants.length > 0) {
|
|
1899
1898
|
const B = a.selectedVariants[0].id;
|
|
1900
1899
|
if (A.option && B) {
|
|
1901
|
-
const l = (
|
|
1900
|
+
const l = (r = A.option.variants) == null ? void 0 : r.find((d) => d.id === B);
|
|
1902
1901
|
l && await e.setSelectionsAndElements(
|
|
1903
1902
|
A.stepName,
|
|
1904
1903
|
[l],
|
|
1905
|
-
|
|
1904
|
+
o,
|
|
1906
1905
|
async () => {
|
|
1907
1906
|
const d = await Promise.all(
|
|
1908
1907
|
A.data.regions.map((E) => this.frameSourceSvg(l, E))
|
|
@@ -1912,19 +1911,19 @@ class Da {
|
|
|
1912
1911
|
);
|
|
1913
1912
|
}
|
|
1914
1913
|
} else
|
|
1915
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
1914
|
+
await e.setSelectionsAndElements(A.stepName, [], o, c);
|
|
1916
1915
|
}
|
|
1917
1916
|
}
|
|
1918
1917
|
selectImage(A, e, t) {
|
|
1919
1918
|
t.setEditedStatus(A.stepName, !0), (e.fileLink || "").endsWith("pdf") ? t.addPoller(
|
|
1920
1919
|
new Ze(
|
|
1921
1920
|
async () => {
|
|
1922
|
-
var
|
|
1923
|
-
const s = (
|
|
1921
|
+
var o;
|
|
1922
|
+
const s = (o = (await b.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
|
|
1924
1923
|
return s ? (await fetch(s.link)).status === 200 : !1;
|
|
1925
1924
|
},
|
|
1926
1925
|
() => {
|
|
1927
|
-
|
|
1926
|
+
b.getLocalOrFromServer(e.key || "").then((n) => {
|
|
1928
1927
|
this.loadPatternFromAsset(n, A, t);
|
|
1929
1928
|
});
|
|
1930
1929
|
},
|
|
@@ -1948,7 +1947,7 @@ class Da {
|
|
|
1948
1947
|
return new J(
|
|
1949
1948
|
{
|
|
1950
1949
|
id: A,
|
|
1951
|
-
type:
|
|
1950
|
+
type: U.Frame,
|
|
1952
1951
|
x: e.left,
|
|
1953
1952
|
y: e.top,
|
|
1954
1953
|
width: e.width,
|
|
@@ -1997,28 +1996,28 @@ class Da {
|
|
|
1997
1996
|
const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
|
|
1998
1997
|
if (!i)
|
|
1999
1998
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
2000
|
-
const
|
|
1999
|
+
const o = await Promise.all(
|
|
2001
2000
|
A.data.regions.map((d) => this.frameSourceSvg(e, d))
|
|
2002
2001
|
);
|
|
2003
2002
|
n && n(!0);
|
|
2004
|
-
const
|
|
2003
|
+
const r = await Promise.all(
|
|
2005
2004
|
A.data.regions.map(async (d, E) => {
|
|
2006
|
-
const
|
|
2005
|
+
const h = await Ae(o[E]), w = i.getImageData(), Q = t.map((m) => new $(m.id)), C = w ? ee(w, h) : void 0, u = w ? {
|
|
2007
2006
|
id: k(),
|
|
2008
2007
|
src: w.src,
|
|
2009
|
-
x: (
|
|
2010
|
-
y: (
|
|
2008
|
+
x: (C == null ? void 0 : C.x) || 0,
|
|
2009
|
+
y: (C == null ? void 0 : C.y) || 0,
|
|
2011
2010
|
width: w.width,
|
|
2012
2011
|
height: w.height,
|
|
2013
|
-
scaleX: (
|
|
2014
|
-
scaleY: (
|
|
2012
|
+
scaleX: (C == null ? void 0 : C.zoom) || 1,
|
|
2013
|
+
scaleY: (C == null ? void 0 : C.zoom) || 1,
|
|
2015
2014
|
rotation: 0
|
|
2016
|
-
} : void 0,
|
|
2017
|
-
if (!
|
|
2018
|
-
throw new
|
|
2015
|
+
} : void 0, D = k(), f = a.getLayouts().find((m) => m.panelId === d.panelId);
|
|
2016
|
+
if (!f)
|
|
2017
|
+
throw new T(d);
|
|
2019
2018
|
return {
|
|
2020
|
-
command: this.getCreateElementCommand(
|
|
2021
|
-
frameData:
|
|
2019
|
+
command: this.getCreateElementCommand(D, d, f, {
|
|
2020
|
+
frameData: h,
|
|
2022
2021
|
pattern: u,
|
|
2023
2022
|
disablePlaceholder: A.data.disablePlaceholder,
|
|
2024
2023
|
focalBlur: A.data.focalBlur,
|
|
@@ -2027,23 +2026,23 @@ class Da {
|
|
|
2027
2026
|
stepName: A.stepName
|
|
2028
2027
|
}),
|
|
2029
2028
|
regionEl: {
|
|
2030
|
-
id:
|
|
2029
|
+
id: D,
|
|
2031
2030
|
region: d
|
|
2032
2031
|
},
|
|
2033
2032
|
removeExistingCommands: Q
|
|
2034
2033
|
};
|
|
2035
2034
|
})
|
|
2036
|
-
), c =
|
|
2035
|
+
), c = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
2037
2036
|
return {
|
|
2038
2037
|
command: new G([...c, ...B]),
|
|
2039
2038
|
followup: async () => {
|
|
2040
2039
|
n && n(!1), await a.setSelectionsAndElements(
|
|
2041
2040
|
A.stepName,
|
|
2042
2041
|
e ? [e] : [],
|
|
2043
|
-
[...
|
|
2042
|
+
[...r.map((d) => d.regionEl)],
|
|
2044
2043
|
async () => {
|
|
2045
2044
|
var d;
|
|
2046
|
-
if (a.updateStorage(A.stepName, { currentFrameSources:
|
|
2045
|
+
if (a.updateStorage(A.stepName, { currentFrameSources: o }), s) {
|
|
2047
2046
|
const E = (d = a.getStepSpecificServices(
|
|
2048
2047
|
A.stepName
|
|
2049
2048
|
)) == null ? void 0 : d.frameService;
|
|
@@ -2098,7 +2097,7 @@ class fa {
|
|
|
2098
2097
|
src: a.src,
|
|
2099
2098
|
svg: a.svg.svg,
|
|
2100
2099
|
cachedObjectURL: a.objectURL,
|
|
2101
|
-
type:
|
|
2100
|
+
type: U.Illustration,
|
|
2102
2101
|
y: e.top,
|
|
2103
2102
|
x: e.left,
|
|
2104
2103
|
rotation: e.rotation,
|
|
@@ -2139,15 +2138,15 @@ class fa {
|
|
|
2139
2138
|
return null;
|
|
2140
2139
|
}
|
|
2141
2140
|
async reload(A, e, t) {
|
|
2142
|
-
var
|
|
2141
|
+
var r;
|
|
2143
2142
|
const a = e.getSerializedStep(
|
|
2144
2143
|
A.stepName,
|
|
2145
2144
|
t.serializableWorkflow.steps
|
|
2146
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2145
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
|
|
2147
2146
|
if (a != null && a.selectedVariants) {
|
|
2148
2147
|
const c = a.selectedVariants[0].id;
|
|
2149
|
-
if (
|
|
2150
|
-
const B = (
|
|
2148
|
+
if (o && c) {
|
|
2149
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
2151
2150
|
if (B) {
|
|
2152
2151
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2153
2152
|
await e.setSelectionsAndElements(
|
|
@@ -2181,13 +2180,13 @@ class fa {
|
|
|
2181
2180
|
const s = {};
|
|
2182
2181
|
for (const [B, l] of n.entries())
|
|
2183
2182
|
s[B] = { browserValue: l, spotColor: (c = s[B]) == null ? void 0 : c.spotColor };
|
|
2184
|
-
const i = ft(A, e, t, s),
|
|
2183
|
+
const i = ft(A, e, t, s), o = await FA(i), r = [];
|
|
2185
2184
|
for (const B of a) {
|
|
2186
2185
|
for (const [l, d] of n.entries())
|
|
2187
|
-
|
|
2188
|
-
|
|
2186
|
+
r.push(new jA(B, l, d));
|
|
2187
|
+
r.push(new Ft(B, i, o));
|
|
2189
2188
|
}
|
|
2190
|
-
return new G(
|
|
2189
|
+
return new G(r);
|
|
2191
2190
|
}
|
|
2192
2191
|
async changeColors(A, e, t, a, n) {
|
|
2193
2192
|
var d, E;
|
|
@@ -2195,36 +2194,36 @@ class fa {
|
|
|
2195
2194
|
return;
|
|
2196
2195
|
const s = MA(
|
|
2197
2196
|
e[0].id,
|
|
2198
|
-
a().map((
|
|
2199
|
-
), i = { ...s.colors },
|
|
2200
|
-
Object.entries(i).forEach(([
|
|
2201
|
-
const Q = { browserValue: w.browserValue },
|
|
2202
|
-
|
|
2197
|
+
a().map((h) => h.layoutState)
|
|
2198
|
+
), i = { ...s.colors }, o = {};
|
|
2199
|
+
Object.entries(i).forEach(([h, w]) => {
|
|
2200
|
+
const Q = { browserValue: w.browserValue }, C = w.spotColor;
|
|
2201
|
+
C && (Q.spotColor = { profileName: C.profileName, namedColor: C.namedColor }), o[h] = Q;
|
|
2203
2202
|
});
|
|
2204
|
-
for (const [
|
|
2205
|
-
i[
|
|
2206
|
-
let
|
|
2203
|
+
for (const [h, w] of n.entries())
|
|
2204
|
+
i[h] = { browserValue: w, spotColor: (d = i[h]) == null ? void 0 : d.spotColor }, o[h] = { browserValue: w };
|
|
2205
|
+
let r = Array.from(Object.values(i)).map((h) => h.browserValue);
|
|
2207
2206
|
const c = A.data.colorOption;
|
|
2208
|
-
c && ((E = c.variants) == null || E.forEach((
|
|
2209
|
-
|
|
2207
|
+
c && ((E = c.variants) == null || E.forEach((h) => {
|
|
2208
|
+
r = r.map((w) => {
|
|
2210
2209
|
var Q;
|
|
2211
|
-
return w.toLowerCase() === ((Q =
|
|
2210
|
+
return w.toLowerCase() === ((Q = h.color) == null ? void 0 : Q.toLowerCase()) ? h.name : w;
|
|
2212
2211
|
});
|
|
2213
|
-
})), t.updateMetadata(A.stepName, { colors:
|
|
2212
|
+
})), t.updateMetadata(A.stepName, { colors: r });
|
|
2214
2213
|
const B = /* @__PURE__ */ new Map();
|
|
2215
|
-
if (Object.entries(i).forEach(([
|
|
2216
|
-
B.set(
|
|
2214
|
+
if (Object.entries(i).forEach(([h, w]) => {
|
|
2215
|
+
B.set(h, w.browserValue);
|
|
2217
2216
|
}), !s.svg)
|
|
2218
2217
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
2219
2218
|
const l = await this.changeColorsCommand(
|
|
2220
2219
|
s.svg,
|
|
2221
2220
|
s.width,
|
|
2222
2221
|
s.height,
|
|
2223
|
-
e.map((
|
|
2222
|
+
e.map((h) => h.id),
|
|
2224
2223
|
B
|
|
2225
2224
|
);
|
|
2226
2225
|
t.updateStorage(A.stepName, {
|
|
2227
|
-
colors:
|
|
2226
|
+
colors: o
|
|
2228
2227
|
}), t.getCommandDispatcher()(l);
|
|
2229
2228
|
}
|
|
2230
2229
|
async selectVariant(A, e, t, a, n) {
|
|
@@ -2236,43 +2235,43 @@ class fa {
|
|
|
2236
2235
|
if (!A.data || !A.data.regions)
|
|
2237
2236
|
throw new SA(A, "Missing regions.");
|
|
2238
2237
|
a(!0);
|
|
2239
|
-
const s = t.map((
|
|
2238
|
+
const s = t.map((C) => new $(C.id));
|
|
2240
2239
|
n.setMandatoryFulfilled(A.stepName, !1);
|
|
2241
2240
|
const i = e.asset;
|
|
2242
2241
|
if (!i)
|
|
2243
2242
|
throw new _(e);
|
|
2244
|
-
const
|
|
2245
|
-
if (!
|
|
2243
|
+
const o = i.fileLink;
|
|
2244
|
+
if (!o)
|
|
2246
2245
|
throw new lA(i);
|
|
2247
|
-
const
|
|
2248
|
-
const u = n.getLayouts().find((p) => p.panelId ===
|
|
2246
|
+
const r = await ye(await this.getIllustrationBody(o)), c = await FA(r.svg), B = (C) => {
|
|
2247
|
+
const u = n.getLayouts().find((p) => p.panelId === C.panelId);
|
|
2249
2248
|
if (!u)
|
|
2250
|
-
throw new
|
|
2251
|
-
const
|
|
2249
|
+
throw new T(C);
|
|
2250
|
+
const D = k();
|
|
2252
2251
|
return {
|
|
2253
|
-
regionElement: { id:
|
|
2254
|
-
command: this.getCreateElementCommand(
|
|
2252
|
+
regionElement: { id: D, region: C },
|
|
2253
|
+
command: this.getCreateElementCommand(D, C, u, {
|
|
2255
2254
|
stepName: A.stepName,
|
|
2256
|
-
src:
|
|
2255
|
+
src: o,
|
|
2257
2256
|
objectURL: c,
|
|
2258
|
-
svg:
|
|
2257
|
+
svg: r
|
|
2259
2258
|
})
|
|
2260
2259
|
};
|
|
2261
|
-
}, l = A.data.regions.map(B), E = [...l.map((
|
|
2262
|
-
let
|
|
2260
|
+
}, l = A.data.regions.map(B), E = [...l.map((C) => C.command), ...s];
|
|
2261
|
+
let h = Array.from(Object.values(r.colors)).map((C) => C.browserValue);
|
|
2263
2262
|
const w = A.data.colorOption;
|
|
2264
|
-
return w && ((Q = w.variants) == null || Q.forEach((
|
|
2265
|
-
|
|
2266
|
-
var
|
|
2267
|
-
return u.toLowerCase() === ((
|
|
2263
|
+
return w && ((Q = w.variants) == null || Q.forEach((C) => {
|
|
2264
|
+
h = h.map((u) => {
|
|
2265
|
+
var D;
|
|
2266
|
+
return u.toLowerCase() === ((D = C.color) == null ? void 0 : D.toLowerCase()) ? C.name : u;
|
|
2268
2267
|
});
|
|
2269
|
-
})), n.updateMetadata(A.stepName, { colors:
|
|
2268
|
+
})), n.updateMetadata(A.stepName, { colors: h }), {
|
|
2270
2269
|
command: new G(E),
|
|
2271
2270
|
followup: async () => {
|
|
2272
2271
|
await n.setSelectionsAndElements(
|
|
2273
2272
|
A.stepName,
|
|
2274
2273
|
[e],
|
|
2275
|
-
l.map((
|
|
2274
|
+
l.map((C) => C.regionElement),
|
|
2276
2275
|
async () => {
|
|
2277
2276
|
n.setMandatoryFulfilled(A.stepName, !0), a(!1);
|
|
2278
2277
|
}
|
|
@@ -2298,17 +2297,17 @@ class Fa {
|
|
|
2298
2297
|
return null;
|
|
2299
2298
|
}
|
|
2300
2299
|
async reload(A, e, t) {
|
|
2301
|
-
var
|
|
2300
|
+
var r;
|
|
2302
2301
|
const a = e.getSerializedStep(
|
|
2303
2302
|
A.stepName,
|
|
2304
2303
|
t.serializableWorkflow.steps
|
|
2305
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2306
|
-
if (!
|
|
2304
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
|
|
2305
|
+
if (!o)
|
|
2307
2306
|
throw new YA(A);
|
|
2308
2307
|
if (a != null && a.selectedVariants) {
|
|
2309
2308
|
const c = a.selectedVariants[0].id;
|
|
2310
2309
|
if (c) {
|
|
2311
|
-
const B = (
|
|
2310
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
2312
2311
|
if (B) {
|
|
2313
2312
|
const l = B.material, d = i.map((E) => ({ id: E.id, region: E.stepRegion }));
|
|
2314
2313
|
await e.setSelectionsAndElements(
|
|
@@ -2318,8 +2317,8 @@ class Fa {
|
|
|
2318
2317
|
async () => {
|
|
2319
2318
|
const E = e.getModelContainer();
|
|
2320
2319
|
if (E) {
|
|
2321
|
-
const
|
|
2322
|
-
Promise.all(
|
|
2320
|
+
const h = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, o.id || "", l || {}));
|
|
2321
|
+
Promise.all(h).then(
|
|
2323
2322
|
() => e.setMandatoryFulfilled(A.stepName, !0)
|
|
2324
2323
|
);
|
|
2325
2324
|
}
|
|
@@ -2372,15 +2371,15 @@ class Ma {
|
|
|
2372
2371
|
return null;
|
|
2373
2372
|
}
|
|
2374
2373
|
async reload(A, e, t) {
|
|
2375
|
-
var
|
|
2374
|
+
var r;
|
|
2376
2375
|
const a = e.getSerializedStep(
|
|
2377
2376
|
A.stepName,
|
|
2378
2377
|
t.serializableWorkflow.steps
|
|
2379
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2378
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
|
|
2380
2379
|
if (a != null && a.selectedVariants) {
|
|
2381
2380
|
const c = a.selectedVariants[0].id;
|
|
2382
|
-
if (
|
|
2383
|
-
const B = (
|
|
2381
|
+
if (o && c) {
|
|
2382
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
2384
2383
|
if (B) {
|
|
2385
2384
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2386
2385
|
await e.setSelectionsAndElements(
|
|
@@ -2391,13 +2390,13 @@ class Ma {
|
|
|
2391
2390
|
var E;
|
|
2392
2391
|
const d = e.getModelContainer();
|
|
2393
2392
|
if (d && A.option) {
|
|
2394
|
-
const
|
|
2395
|
-
if (!
|
|
2393
|
+
const h = (E = B.asset) == null ? void 0 : E.fileLink;
|
|
2394
|
+
if (!h)
|
|
2396
2395
|
throw new _(B);
|
|
2397
2396
|
await d.applyModelVariant(
|
|
2398
2397
|
A.stepName || "",
|
|
2399
2398
|
{
|
|
2400
|
-
model:
|
|
2399
|
+
model: h,
|
|
2401
2400
|
contextService: e.getLayoutPreviewService()
|
|
2402
2401
|
},
|
|
2403
2402
|
A.data.replaceProductModel || !1
|
|
@@ -2455,10 +2454,10 @@ class ya {
|
|
|
2455
2454
|
const a = e.getSerializedStep(
|
|
2456
2455
|
A.stepName,
|
|
2457
2456
|
t.serializableWorkflow.steps
|
|
2458
|
-
),
|
|
2459
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
2460
|
-
var
|
|
2461
|
-
e.updateStorage(A.stepName, { text: (
|
|
2457
|
+
), o = Object.values(t.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === A.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
|
|
2458
|
+
await e.setSelectionsAndElements(A.stepName, [], o, async () => {
|
|
2459
|
+
var r, c;
|
|
2460
|
+
e.updateStorage(A.stepName, { text: (r = a == null ? void 0 : a.storage) == null ? void 0 : r.text }), e.setMandatoryFulfilled(A.stepName, ((c = a == null ? void 0 : a.storage) == null ? void 0 : c.text) !== "");
|
|
2462
2461
|
});
|
|
2463
2462
|
}
|
|
2464
2463
|
async changeText(A, e, t, a, n) {
|
|
@@ -2470,14 +2469,14 @@ class ya {
|
|
|
2470
2469
|
const s = t.getRegionElements(A.stepName), i = (c = t.getStepSpecificServices(A.stepName)) == null ? void 0 : c.module;
|
|
2471
2470
|
if (!i)
|
|
2472
2471
|
return console.error("Missing module."), null;
|
|
2473
|
-
const
|
|
2474
|
-
if (!this.validateInput(A, e,
|
|
2472
|
+
const o = t.getProfanities();
|
|
2473
|
+
if (!this.validateInput(A, e, o, n))
|
|
2475
2474
|
return t.setMandatoryFulfilled(A.stepName, !1), console.error(a), null;
|
|
2476
2475
|
if (t.setMandatoryFulfilled(A.stepName, e !== ""), !A.data || !A.data.regions || A.data.regions.length <= 0)
|
|
2477
2476
|
return console.error("Missing configuration."), null;
|
|
2478
2477
|
t.updateStorage(A.stepName, { text: e });
|
|
2479
|
-
const
|
|
2480
|
-
const E = d || k(), w = t.getLayouts().find((
|
|
2478
|
+
const r = (B, l, d) => {
|
|
2479
|
+
const E = d || k(), w = t.getLayouts().find((C) => C.panelId === l.panelId);
|
|
2481
2480
|
if (!w)
|
|
2482
2481
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2483
2482
|
const Q = [];
|
|
@@ -2489,7 +2488,7 @@ class ya {
|
|
|
2489
2488
|
colors: {},
|
|
2490
2489
|
id: E,
|
|
2491
2490
|
svg: B,
|
|
2492
|
-
type:
|
|
2491
|
+
type: U.Illustration,
|
|
2493
2492
|
y: l.top,
|
|
2494
2493
|
x: l.left,
|
|
2495
2494
|
rotation: l.rotation,
|
|
@@ -2512,7 +2511,7 @@ class ya {
|
|
|
2512
2511
|
if (!d.region)
|
|
2513
2512
|
return null;
|
|
2514
2513
|
const E = i.svgPrint(e, d.region);
|
|
2515
|
-
return
|
|
2514
|
+
return r(E, d.region, d.id);
|
|
2516
2515
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
2517
2516
|
return {
|
|
2518
2517
|
command: new G(l),
|
|
@@ -2521,7 +2520,7 @@ class ya {
|
|
|
2521
2520
|
};
|
|
2522
2521
|
} else {
|
|
2523
2522
|
const B = A.data.regions.map(
|
|
2524
|
-
(d) =>
|
|
2523
|
+
(d) => r(i.svgPrint(e, d), d)
|
|
2525
2524
|
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
2526
2525
|
return {
|
|
2527
2526
|
command: new G(l),
|
|
@@ -2547,8 +2546,8 @@ class ya {
|
|
|
2547
2546
|
const n = XA(e.toLowerCase());
|
|
2548
2547
|
for (const s of n)
|
|
2549
2548
|
for (const i in t) {
|
|
2550
|
-
const
|
|
2551
|
-
if (s ===
|
|
2549
|
+
const o = t[i].toLowerCase().replace(/\s/g, "");
|
|
2550
|
+
if (s === o)
|
|
2552
2551
|
return a("Blocked profanity."), !1;
|
|
2553
2552
|
}
|
|
2554
2553
|
return a(""), !0;
|
|
@@ -2568,15 +2567,15 @@ class Sa {
|
|
|
2568
2567
|
return e.markStepsAsInitialised([A.stepName]), null;
|
|
2569
2568
|
}
|
|
2570
2569
|
async reload(A, e, t) {
|
|
2571
|
-
var
|
|
2570
|
+
var r;
|
|
2572
2571
|
const a = e.getSerializedStep(
|
|
2573
2572
|
A.stepName,
|
|
2574
2573
|
t.serializableWorkflow.steps
|
|
2575
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2574
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
|
|
2576
2575
|
if (a != null && a.selectedVariants) {
|
|
2577
2576
|
const c = a.selectedVariants[0].id;
|
|
2578
|
-
if (
|
|
2579
|
-
const B = (
|
|
2577
|
+
if (o && c) {
|
|
2578
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
2580
2579
|
if (B) {
|
|
2581
2580
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2582
2581
|
await e.setSelectionsAndElements(
|
|
@@ -2603,10 +2602,10 @@ class Sa {
|
|
|
2603
2602
|
if (!s)
|
|
2604
2603
|
return console.error("No URL for picture!"), null;
|
|
2605
2604
|
a(!0), t.setMandatoryFulfilled(A.stepName, !1);
|
|
2606
|
-
const
|
|
2607
|
-
const d = t.getLayouts().find((
|
|
2605
|
+
const o = t.getRegionElements(A.stepName).map((B) => new $(B.id)), r = (B) => {
|
|
2606
|
+
const d = t.getLayouts().find((h) => h.panelId === B.panelId);
|
|
2608
2607
|
if (!d)
|
|
2609
|
-
throw new
|
|
2608
|
+
throw new T(B);
|
|
2610
2609
|
const E = k();
|
|
2611
2610
|
return {
|
|
2612
2611
|
regionElement: { id: E, region: B },
|
|
@@ -2616,7 +2615,7 @@ class Sa {
|
|
|
2616
2615
|
stepRegion: B,
|
|
2617
2616
|
id: E,
|
|
2618
2617
|
src: s,
|
|
2619
|
-
type:
|
|
2618
|
+
type: U.Image,
|
|
2620
2619
|
y: B.top,
|
|
2621
2620
|
x: B.left,
|
|
2622
2621
|
rotation: B.rotation,
|
|
@@ -2630,9 +2629,9 @@ class Sa {
|
|
|
2630
2629
|
d
|
|
2631
2630
|
)
|
|
2632
2631
|
};
|
|
2633
|
-
}, c = A.data.regions.map(
|
|
2632
|
+
}, c = A.data.regions.map(r);
|
|
2634
2633
|
return {
|
|
2635
|
-
command: new G([...
|
|
2634
|
+
command: new G([...o, ...c.map((B) => B.command)]),
|
|
2636
2635
|
followup: async () => {
|
|
2637
2636
|
await t.setSelectionsAndElements(
|
|
2638
2637
|
A.stepName,
|
|
@@ -2657,9 +2656,9 @@ class xa {
|
|
|
2657
2656
|
else {
|
|
2658
2657
|
const n = a.variants;
|
|
2659
2658
|
if (z.getDefaultVariant(a)) {
|
|
2660
|
-
const i = n == null ? void 0 : n.find((
|
|
2661
|
-
var
|
|
2662
|
-
return
|
|
2659
|
+
const i = n == null ? void 0 : n.find((o) => {
|
|
2660
|
+
var r;
|
|
2661
|
+
return o.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
|
|
2663
2662
|
});
|
|
2664
2663
|
return this.selectVariantLambda(A, (i == null ? void 0 : i.id) || "", e);
|
|
2665
2664
|
}
|
|
@@ -2675,8 +2674,8 @@ class xa {
|
|
|
2675
2674
|
if (a != null && a.selectedVariants) {
|
|
2676
2675
|
const i = a.selectedVariants[0].id;
|
|
2677
2676
|
if (n && i) {
|
|
2678
|
-
const
|
|
2679
|
-
|
|
2677
|
+
const o = (s = n.variants) == null ? void 0 : s.find((r) => r.id === i);
|
|
2678
|
+
o && await e.setSelectionsAndElements(A.stepName, [o], []);
|
|
2680
2679
|
}
|
|
2681
2680
|
}
|
|
2682
2681
|
}
|
|
@@ -2722,9 +2721,9 @@ class Na {
|
|
|
2722
2721
|
}
|
|
2723
2722
|
setCustomColor(A, e, t) {
|
|
2724
2723
|
const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
|
|
2725
|
-
const
|
|
2726
|
-
if (!a.find((c) => c.panelId === (
|
|
2727
|
-
throw new
|
|
2724
|
+
const o = i.region;
|
|
2725
|
+
if (!a.find((c) => c.panelId === (o == null ? void 0 : o.panelId)))
|
|
2726
|
+
throw new T(o);
|
|
2728
2727
|
return new jA(i.id, this.shapeFillId, A);
|
|
2729
2728
|
}).filter((i) => !!i);
|
|
2730
2729
|
t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
|
|
@@ -2755,15 +2754,15 @@ class Na {
|
|
|
2755
2754
|
n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2756
2755
|
}
|
|
2757
2756
|
async reload(A, e, t) {
|
|
2758
|
-
var
|
|
2757
|
+
var r;
|
|
2759
2758
|
const a = e.getSerializedStep(
|
|
2760
2759
|
A.stepName,
|
|
2761
2760
|
t.serializableWorkflow.steps
|
|
2762
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2761
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
|
|
2763
2762
|
if (a != null && a.selectedVariants) {
|
|
2764
2763
|
const c = a.selectedVariants[0].id;
|
|
2765
|
-
if (
|
|
2766
|
-
const B = (
|
|
2764
|
+
if (o && c) {
|
|
2765
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
2767
2766
|
if (B) {
|
|
2768
2767
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2769
2768
|
await e.setSelectionsAndElements(
|
|
@@ -2782,23 +2781,23 @@ class Na {
|
|
|
2782
2781
|
}
|
|
2783
2782
|
}
|
|
2784
2783
|
async selectVariantCommand(A, e, t, a) {
|
|
2785
|
-
var
|
|
2786
|
-
const n = a.getLayouts(), s = (
|
|
2787
|
-
var
|
|
2788
|
-
if (((
|
|
2784
|
+
var o;
|
|
2785
|
+
const n = a.getLayouts(), s = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
|
|
2786
|
+
var r, c;
|
|
2787
|
+
if (((r = e.variant) == null ? void 0 : r.color) === "#custom")
|
|
2789
2788
|
return s || "#FFFFFF";
|
|
2790
2789
|
if ((c = e.variant) != null && c.color)
|
|
2791
2790
|
return e.variant.color;
|
|
2792
2791
|
throw new Error("Failed to resolve color for shape step.");
|
|
2793
2792
|
};
|
|
2794
2793
|
if (t.length > 0) {
|
|
2795
|
-
const
|
|
2794
|
+
const r = (B) => {
|
|
2796
2795
|
const l = B.region;
|
|
2797
|
-
if (!n.find((
|
|
2798
|
-
throw new
|
|
2796
|
+
if (!n.find((h) => h.panelId === (l == null ? void 0 : l.panelId)))
|
|
2797
|
+
throw new T(l);
|
|
2799
2798
|
const E = i();
|
|
2800
2799
|
return new jA(B.id, this.shapeFillId, E);
|
|
2801
|
-
}, c = t.map(
|
|
2800
|
+
}, c = t.map(r).filter((B) => !!B);
|
|
2802
2801
|
return {
|
|
2803
2802
|
command: new G(c),
|
|
2804
2803
|
followup: async () => {
|
|
@@ -2810,11 +2809,11 @@ class Na {
|
|
|
2810
2809
|
}
|
|
2811
2810
|
};
|
|
2812
2811
|
} else {
|
|
2813
|
-
const
|
|
2812
|
+
const r = (d) => {
|
|
2814
2813
|
const E = n.find((u) => u.panelId === d.panelId);
|
|
2815
2814
|
if (!E)
|
|
2816
|
-
throw new
|
|
2817
|
-
const
|
|
2815
|
+
throw new T(d);
|
|
2816
|
+
const h = i(), w = `
|
|
2818
2817
|
<svg
|
|
2819
2818
|
xmlns="http://www.w3.org/2000/svg"
|
|
2820
2819
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -2831,23 +2830,23 @@ class Na {
|
|
|
2831
2830
|
width="1"
|
|
2832
2831
|
height="1"
|
|
2833
2832
|
class="${this.shapeFillId}"
|
|
2834
|
-
fill="${
|
|
2833
|
+
fill="${h}"
|
|
2835
2834
|
/>
|
|
2836
2835
|
</svg>
|
|
2837
2836
|
`, Q = {};
|
|
2838
|
-
Q[this.shapeFillId] = { browserValue:
|
|
2839
|
-
const
|
|
2837
|
+
Q[this.shapeFillId] = { browserValue: h };
|
|
2838
|
+
const C = k();
|
|
2840
2839
|
return {
|
|
2841
|
-
id:
|
|
2840
|
+
id: C,
|
|
2842
2841
|
region: d,
|
|
2843
2842
|
command: new J(
|
|
2844
2843
|
{
|
|
2845
2844
|
stepRegion: d,
|
|
2846
2845
|
stepName: A.stepName,
|
|
2847
2846
|
colors: Q,
|
|
2848
|
-
id:
|
|
2847
|
+
id: C,
|
|
2849
2848
|
svg: w,
|
|
2850
|
-
type:
|
|
2849
|
+
type: U.Illustration,
|
|
2851
2850
|
y: d.top,
|
|
2852
2851
|
x: d.left,
|
|
2853
2852
|
rotation: d.rotation,
|
|
@@ -2861,7 +2860,7 @@ class Na {
|
|
|
2861
2860
|
E
|
|
2862
2861
|
)
|
|
2863
2862
|
};
|
|
2864
|
-
}, c = A.data.regions.map(
|
|
2863
|
+
}, c = A.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 }));
|
|
2865
2864
|
return {
|
|
2866
2865
|
command: new G(B),
|
|
2867
2866
|
followup: async () => {
|
|
@@ -2923,9 +2922,9 @@ class Ua {
|
|
|
2923
2922
|
);
|
|
2924
2923
|
const a = [], n = e ? Mt(e.assetUrl) : void 0;
|
|
2925
2924
|
if (n) {
|
|
2926
|
-
const s = t.split("").filter((
|
|
2927
|
-
for (let
|
|
2928
|
-
i[
|
|
2925
|
+
const s = t.split("").filter((o) => !Ha.includes(o)).join(""), i = s.split("").map((o) => n.getFont().charToGlyph(o));
|
|
2926
|
+
for (let o = 0; o < i.length; o++)
|
|
2927
|
+
i[o].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(o)));
|
|
2929
2928
|
}
|
|
2930
2929
|
for (let s = 0; s < a.length; s++)
|
|
2931
2930
|
t = t.replaceAll(a[s], "");
|
|
@@ -2934,10 +2933,10 @@ class Ua {
|
|
|
2934
2933
|
const a = [];
|
|
2935
2934
|
e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
2936
2935
|
const n = t.getProfanities(), s = XA(A.toLowerCase());
|
|
2937
|
-
for (const
|
|
2938
|
-
for (const
|
|
2939
|
-
const c = n[
|
|
2940
|
-
if (
|
|
2936
|
+
for (const o of s)
|
|
2937
|
+
for (const r in n) {
|
|
2938
|
+
const c = n[r].toLowerCase().replace(/\s/g, "");
|
|
2939
|
+
if (o === c) {
|
|
2941
2940
|
a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
|
|
2942
2941
|
break;
|
|
2943
2942
|
}
|
|
@@ -2954,7 +2953,7 @@ class Ua {
|
|
|
2954
2953
|
if (t)
|
|
2955
2954
|
await this.reload(A, e, t);
|
|
2956
2955
|
else {
|
|
2957
|
-
const
|
|
2956
|
+
const o = this.getDefaultImageFillVariant(A.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, c = r ? await VA(r) : void 0, B = c ? {
|
|
2958
2957
|
src: c.src,
|
|
2959
2958
|
height: c.height,
|
|
2960
2959
|
width: c.width,
|
|
@@ -2967,7 +2966,7 @@ class Ua {
|
|
|
2967
2966
|
}), e.updateMetadata(A.stepName, {
|
|
2968
2967
|
text: A.data.defaultText || "",
|
|
2969
2968
|
color: ((i = await this.getDefaultColorVariant(A.data)) == null ? void 0 : i.name) || await this.getDefaultColor(A.data),
|
|
2970
|
-
fillImage:
|
|
2969
|
+
fillImage: o == null ? void 0 : o.name
|
|
2971
2970
|
});
|
|
2972
2971
|
const l = z.getDefaultVariant(a);
|
|
2973
2972
|
if (l)
|
|
@@ -3011,7 +3010,7 @@ class Ua {
|
|
|
3011
3010
|
return [];
|
|
3012
3011
|
}
|
|
3013
3012
|
async changeFillColor(A, e, t, a) {
|
|
3014
|
-
var
|
|
3013
|
+
var o;
|
|
3015
3014
|
if (!A.data || !A.data.regions)
|
|
3016
3015
|
return;
|
|
3017
3016
|
const n = a.getCommandDispatcher();
|
|
@@ -3019,14 +3018,14 @@ class Ua {
|
|
|
3019
3018
|
const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
|
|
3020
3019
|
s ? a.updateStorage(A.stepName, {
|
|
3021
3020
|
color: e.fill,
|
|
3022
|
-
colorProfileAssetKey: (
|
|
3021
|
+
colorProfileAssetKey: (o = s.colorProfile) == null ? void 0 : o.key
|
|
3023
3022
|
}) : a.updateStorage(A.stepName, {
|
|
3024
3023
|
color: e.fill
|
|
3025
3024
|
});
|
|
3026
|
-
for (const
|
|
3025
|
+
for (const r of t) {
|
|
3027
3026
|
if (!e.fill)
|
|
3028
3027
|
throw new Error("Fill not set on new color selection!");
|
|
3029
|
-
const c = new yt(
|
|
3028
|
+
const c = new yt(r.id, e.fill, i);
|
|
3030
3029
|
n(c);
|
|
3031
3030
|
}
|
|
3032
3031
|
}
|
|
@@ -3053,18 +3052,18 @@ class Ua {
|
|
|
3053
3052
|
return Promise.resolve([]);
|
|
3054
3053
|
}
|
|
3055
3054
|
async changeFillImage(A, e, t, a) {
|
|
3056
|
-
var i,
|
|
3055
|
+
var i, o;
|
|
3057
3056
|
if (!A.data || !A.data.regions)
|
|
3058
3057
|
return;
|
|
3059
|
-
const n = a.getCommandDispatcher(), s = (
|
|
3058
|
+
const n = a.getCommandDispatcher(), s = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((r) => {
|
|
3060
3059
|
var c;
|
|
3061
|
-
return ((c =
|
|
3060
|
+
return ((c = r.asset) == null ? void 0 : c.fileLink) === e.src;
|
|
3062
3061
|
});
|
|
3063
3062
|
a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
|
|
3064
3063
|
fillImage: e
|
|
3065
3064
|
});
|
|
3066
|
-
for (const
|
|
3067
|
-
const c = new
|
|
3065
|
+
for (const r of t) {
|
|
3066
|
+
const c = new bA(r.id, e);
|
|
3068
3067
|
n(c);
|
|
3069
3068
|
}
|
|
3070
3069
|
}
|
|
@@ -3083,27 +3082,27 @@ class Ua {
|
|
|
3083
3082
|
};
|
|
3084
3083
|
if (i.errors.length > 0)
|
|
3085
3084
|
return i.helperText = i.errors[0].localizationKey, i;
|
|
3086
|
-
const
|
|
3087
|
-
i.helperText = `${
|
|
3088
|
-
const
|
|
3085
|
+
const o = (t.data.maxLength - s.length).toString();
|
|
3086
|
+
i.helperText = `${o} characters remaining`;
|
|
3087
|
+
const r = a.getTransaction().bulk && t.data.varyText || !1, c = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
|
|
3089
3088
|
for (const d of e) {
|
|
3090
3089
|
if (!d.fontData)
|
|
3091
3090
|
throw new v("Failed to resolve font data for text.");
|
|
3092
|
-
const [E,
|
|
3091
|
+
const [E, h] = IA(
|
|
3093
3092
|
d.fontSize,
|
|
3094
3093
|
d.fontData,
|
|
3095
3094
|
{ left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
|
|
3096
3095
|
[s],
|
|
3097
3096
|
{ size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
|
|
3098
3097
|
);
|
|
3099
|
-
B.set(d.id, E), l.set(d.id,
|
|
3100
|
-
const w = t.data.curved ? s : (
|
|
3098
|
+
B.set(d.id, E), l.set(d.id, h);
|
|
3099
|
+
const w = t.data.curved ? s : (h || []).join(`
|
|
3101
3100
|
`);
|
|
3102
|
-
c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w,
|
|
3101
|
+
c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, r));
|
|
3103
3102
|
}
|
|
3104
3103
|
return !t.data.curved && e.length > 0 && !Array.from(l.values()).every((E) => E) ? (i.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), i) : (a.updateStorage(t.stepName, { text: A }), a.updateMetadata(t.stepName, {
|
|
3105
3104
|
text: s
|
|
3106
|
-
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying =
|
|
3105
|
+
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying = r, i);
|
|
3107
3106
|
}
|
|
3108
3107
|
async selectVariant(A, e, t, a, n) {
|
|
3109
3108
|
const s = await this.selectVariantCommand(
|
|
@@ -3130,34 +3129,34 @@ class Ua {
|
|
|
3130
3129
|
}
|
|
3131
3130
|
}
|
|
3132
3131
|
async reload(A, e, t) {
|
|
3133
|
-
var
|
|
3132
|
+
var r, c, B;
|
|
3134
3133
|
const a = e.getSerializedStep(
|
|
3135
3134
|
A.stepName,
|
|
3136
3135
|
t.serializableWorkflow.steps
|
|
3137
|
-
), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName),
|
|
3136
|
+
), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), o = A.option;
|
|
3138
3137
|
if (a != null && a.selectedVariants) {
|
|
3139
3138
|
const l = a.selectedVariants[0].id;
|
|
3140
|
-
if (
|
|
3141
|
-
const d = (
|
|
3139
|
+
if (o && l) {
|
|
3140
|
+
const d = (r = o.variants) == null ? void 0 : r.find((E) => E.id === l);
|
|
3142
3141
|
if (d) {
|
|
3143
|
-
const E = await this.fontDataFromVariant(d),
|
|
3142
|
+
const E = await this.fontDataFromVariant(d), h = i.map((u) => ({ id: u.id, region: u.stepRegion })), w = (c = a.storage) == null ? void 0 : c.color, Q = (B = a.storage) == null ? void 0 : B.text;
|
|
3144
3143
|
await e.setSelectionsAndElements(
|
|
3145
3144
|
A.stepName,
|
|
3146
3145
|
[d],
|
|
3147
|
-
|
|
3146
|
+
h,
|
|
3148
3147
|
async () => {
|
|
3149
3148
|
e.updateMetadata(A.stepName, { color: w, text: Q }), e.updateStorage(A.stepName, { text: Q, inputText: Q });
|
|
3150
|
-
const u = i.map((p) => new we(p.id, E)),
|
|
3151
|
-
e.getCommandDispatcher()(
|
|
3149
|
+
const u = i.map((p) => new we(p.id, E)), D = new G(u);
|
|
3150
|
+
e.getCommandDispatcher()(D), e.setMandatoryFulfilled(A.stepName, !0);
|
|
3152
3151
|
}
|
|
3153
3152
|
);
|
|
3154
|
-
const { command:
|
|
3153
|
+
const { command: C } = K.updateInputText(
|
|
3155
3154
|
Q || "",
|
|
3156
3155
|
i,
|
|
3157
3156
|
A,
|
|
3158
3157
|
e
|
|
3159
3158
|
);
|
|
3160
|
-
|
|
3159
|
+
C && e.getCommandDispatcher()(C);
|
|
3161
3160
|
}
|
|
3162
3161
|
}
|
|
3163
3162
|
}
|
|
@@ -3192,14 +3191,14 @@ class Ua {
|
|
|
3192
3191
|
name: a.names.fullName.en
|
|
3193
3192
|
};
|
|
3194
3193
|
}
|
|
3195
|
-
async selectVariantCommand(A, e, t, a, n, s, i,
|
|
3194
|
+
async selectVariantCommand(A, e, t, a, n, s, i, o) {
|
|
3196
3195
|
var B;
|
|
3197
|
-
const
|
|
3196
|
+
const r = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
|
|
3198
3197
|
if (a.length > 0) {
|
|
3199
|
-
const l = a.map((
|
|
3200
|
-
if (
|
|
3201
|
-
const
|
|
3202
|
-
l.push(...
|
|
3198
|
+
const l = a.map((h) => new we(h.id, c));
|
|
3199
|
+
if (o) {
|
|
3200
|
+
const h = a.map((w) => new bA(w.id, o));
|
|
3201
|
+
l.push(...h);
|
|
3203
3202
|
}
|
|
3204
3203
|
const d = await this.changeInputTextWithRegion(
|
|
3205
3204
|
A,
|
|
@@ -3215,7 +3214,7 @@ class Ua {
|
|
|
3215
3214
|
return d && l.push(d), {
|
|
3216
3215
|
command: new G(l),
|
|
3217
3216
|
followup: async () => {
|
|
3218
|
-
n.markUpdateCompleted(
|
|
3217
|
+
n.markUpdateCompleted(r), await n.setSelectionsAndElements(A.stepName, [e], a);
|
|
3219
3218
|
}
|
|
3220
3219
|
};
|
|
3221
3220
|
} else {
|
|
@@ -3237,16 +3236,16 @@ class Ua {
|
|
|
3237
3236
|
s,
|
|
3238
3237
|
i
|
|
3239
3238
|
), E = l.flatMap((w) => w.commands);
|
|
3240
|
-
if (
|
|
3239
|
+
if (o) {
|
|
3241
3240
|
const w = l.map(
|
|
3242
|
-
(Q) => new
|
|
3241
|
+
(Q) => new bA(Q.regionElement.id, o)
|
|
3243
3242
|
);
|
|
3244
3243
|
E.push(...w);
|
|
3245
3244
|
}
|
|
3246
3245
|
return d && E.push(d), {
|
|
3247
3246
|
command: new G(E),
|
|
3248
3247
|
followup: async () => {
|
|
3249
|
-
n.markUpdateCompleted(
|
|
3248
|
+
n.markUpdateCompleted(r);
|
|
3250
3249
|
}
|
|
3251
3250
|
};
|
|
3252
3251
|
}
|
|
@@ -3262,37 +3261,37 @@ class Ua {
|
|
|
3262
3261
|
async createTextboxRegions(A, e, t, a, n, s) {
|
|
3263
3262
|
if (!t || !t.regions)
|
|
3264
3263
|
throw new Error("Step data not supplied");
|
|
3265
|
-
const i = s.getTransaction().bulk && t.varyText || !1,
|
|
3264
|
+
const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", r = this.getProcessedInput(o, t, !1), c = async (l) => {
|
|
3266
3265
|
var w;
|
|
3267
|
-
const E = s.getLayouts().find((Q) => Q.panelId === l.panelId),
|
|
3266
|
+
const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), h = k();
|
|
3268
3267
|
try {
|
|
3269
3268
|
if (!E)
|
|
3270
3269
|
throw new PA("Failed to find layout for region: " + l.panelId);
|
|
3271
3270
|
const Q = t.colorOption;
|
|
3272
|
-
let
|
|
3271
|
+
let C;
|
|
3273
3272
|
if (Q && Q.variants) {
|
|
3274
|
-
const
|
|
3273
|
+
const L = Q.variants.find((V) => {
|
|
3275
3274
|
var W;
|
|
3276
3275
|
return V.id === ((W = Q.defaultVariant) == null ? void 0 : W.id);
|
|
3277
3276
|
}) || Q.variants[0];
|
|
3278
|
-
|
|
3277
|
+
C = this.createTextFillSpotColor(Q, L), s.updateStorage(A, {
|
|
3279
3278
|
colorProfileAssetKey: (w = Q.colorProfile) == null ? void 0 : w.key
|
|
3280
3279
|
});
|
|
3281
3280
|
}
|
|
3282
|
-
const u = await this.getDefaultColor(t),
|
|
3281
|
+
const u = await this.getDefaultColor(t), D = u || "#000000", p = {
|
|
3283
3282
|
stepRegion: l,
|
|
3284
3283
|
stepName: A,
|
|
3285
3284
|
align: this.textAlign(t),
|
|
3286
|
-
fill: n.color ? n.color :
|
|
3285
|
+
fill: n.color ? n.color : D,
|
|
3287
3286
|
fontSize: t.size || OA,
|
|
3288
3287
|
fontData: a,
|
|
3289
|
-
id:
|
|
3288
|
+
id: h,
|
|
3290
3289
|
layer: l.layer,
|
|
3291
3290
|
layerIndex: l.layerIndex,
|
|
3292
3291
|
rotation: l.rotation,
|
|
3293
|
-
text:
|
|
3294
|
-
input:
|
|
3295
|
-
type:
|
|
3292
|
+
text: r,
|
|
3293
|
+
input: o,
|
|
3294
|
+
type: U.Textbox,
|
|
3296
3295
|
vertical: t.vertical,
|
|
3297
3296
|
x: l.left,
|
|
3298
3297
|
y: l.top,
|
|
@@ -3302,8 +3301,8 @@ class Ua {
|
|
|
3302
3301
|
verticalAlign: t.verticalAlign || "middle",
|
|
3303
3302
|
curved: t.curved,
|
|
3304
3303
|
paths: t.paths,
|
|
3305
|
-
fillSpotColorDefinition:
|
|
3306
|
-
},
|
|
3304
|
+
fillSpotColorDefinition: C
|
|
3305
|
+
}, f = [], m = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map();
|
|
3307
3306
|
if (!p.fontData)
|
|
3308
3307
|
throw new v("Failed to resolve font data for text.");
|
|
3309
3308
|
const [Y, F] = IA(
|
|
@@ -3317,19 +3316,19 @@ class Ua {
|
|
|
3317
3316
|
rotation: p.rotation,
|
|
3318
3317
|
panelId: ""
|
|
3319
3318
|
},
|
|
3320
|
-
[
|
|
3319
|
+
[r],
|
|
3321
3320
|
{ size: t.size, minSize: t.minSize, maxSize: t.maxSize }
|
|
3322
3321
|
);
|
|
3323
|
-
m.set(p.id, Y),
|
|
3324
|
-
const
|
|
3322
|
+
m.set(p.id, Y), y.set(p.id, F);
|
|
3323
|
+
const R = t.curved || t.vertical ? r : (F || []).join(`
|
|
3325
3324
|
`);
|
|
3326
|
-
|
|
3327
|
-
this.generateTextChangeCommandsForRegion(Y, t, p.id,
|
|
3325
|
+
f.push(
|
|
3326
|
+
this.generateTextChangeCommandsForRegion(Y, t, p.id, R, i)
|
|
3328
3327
|
);
|
|
3329
|
-
const
|
|
3330
|
-
return
|
|
3331
|
-
regionElement: { id:
|
|
3332
|
-
commands: [
|
|
3328
|
+
const N = new J(p, E);
|
|
3329
|
+
return N.varying = i, {
|
|
3330
|
+
regionElement: { id: h, region: l },
|
|
3331
|
+
commands: [N, ...f],
|
|
3333
3332
|
newElement: p,
|
|
3334
3333
|
fontData: a
|
|
3335
3334
|
};
|
|
@@ -3345,9 +3344,9 @@ class Ua {
|
|
|
3345
3344
|
B.map((l) => l.regionElement),
|
|
3346
3345
|
async () => {
|
|
3347
3346
|
s.updateMetadata(A, {
|
|
3348
|
-
text:
|
|
3347
|
+
text: o
|
|
3349
3348
|
}), s.updateStorage(A, {
|
|
3350
|
-
text:
|
|
3349
|
+
text: o
|
|
3351
3350
|
});
|
|
3352
3351
|
}
|
|
3353
3352
|
), B;
|
|
@@ -3355,68 +3354,68 @@ class Ua {
|
|
|
3355
3354
|
generateTextChangeCommandsForRegion(A, e, t, a, n) {
|
|
3356
3355
|
const s = [], i = new Yt(t, a);
|
|
3357
3356
|
if (i.varying = n, s.push(i), !e.size) {
|
|
3358
|
-
const
|
|
3359
|
-
|
|
3357
|
+
const r = new St(t, A);
|
|
3358
|
+
r.varying = n, s.push(r);
|
|
3360
3359
|
}
|
|
3361
|
-
const
|
|
3362
|
-
return
|
|
3360
|
+
const o = new G(s);
|
|
3361
|
+
return o.varying = n, o;
|
|
3363
3362
|
}
|
|
3364
3363
|
/**
|
|
3365
3364
|
* @deprecated
|
|
3366
3365
|
*/
|
|
3367
|
-
async changeInputTextWithRegion(A, e, t, a, n, s, i,
|
|
3368
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(),
|
|
3366
|
+
async changeInputTextWithRegion(A, e, t, a, n, s, i, o, r, c) {
|
|
3367
|
+
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
|
|
3369
3368
|
for (const p of d)
|
|
3370
3369
|
if (p.region) {
|
|
3371
|
-
const [
|
|
3370
|
+
const [f, m] = IA(
|
|
3372
3371
|
e,
|
|
3373
3372
|
t,
|
|
3374
3373
|
p.region,
|
|
3375
3374
|
[l],
|
|
3376
3375
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
3377
3376
|
);
|
|
3378
|
-
E.set(p.id,
|
|
3377
|
+
E.set(p.id, f), h.set(p.id, m);
|
|
3379
3378
|
}
|
|
3380
3379
|
const Q = (() => {
|
|
3381
3380
|
if (A.data && A.data.maxLength && l.length > A.data.maxLength)
|
|
3382
3381
|
return c && c(!0), { info: "0" };
|
|
3383
|
-
const p = s.getProfanities(),
|
|
3384
|
-
for (const m of
|
|
3385
|
-
for (const
|
|
3386
|
-
const Y = p[
|
|
3382
|
+
const p = s.getProfanities(), f = XA(l.toLowerCase());
|
|
3383
|
+
for (const m of f)
|
|
3384
|
+
for (const y in p) {
|
|
3385
|
+
const Y = p[y].toLowerCase().replace(/\s/g, "");
|
|
3387
3386
|
if (m === Y)
|
|
3388
|
-
return
|
|
3387
|
+
return o(!0), { error: "Blocked profanity." };
|
|
3389
3388
|
}
|
|
3390
3389
|
return !A.data.vertical && !A.data.allowNewlines && (l.includes(`
|
|
3391
|
-
`) || l.includes("\r")) ? (
|
|
3390
|
+
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(h.values()).every((y) => y) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (A.data.maxLength - l.length).toString() });
|
|
3392
3391
|
})();
|
|
3393
3392
|
if (Q.error) {
|
|
3394
|
-
|
|
3393
|
+
r(Q.error);
|
|
3395
3394
|
return;
|
|
3396
3395
|
}
|
|
3397
|
-
if (
|
|
3396
|
+
if (r(`${Q.info} characters remaining` || ""), c)
|
|
3398
3397
|
return;
|
|
3399
3398
|
s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
|
|
3400
3399
|
text: this.injectReplaceableText(B, A.data)
|
|
3401
3400
|
});
|
|
3402
|
-
const
|
|
3401
|
+
const C = s.getTransaction().bulk && A.data.varyText || !1;
|
|
3403
3402
|
n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
|
|
3404
3403
|
const u = [];
|
|
3405
3404
|
for (const p of d) {
|
|
3406
|
-
const
|
|
3405
|
+
const f = A.data.curved ? l : (h.get(p.id) || []).join(`
|
|
3407
3406
|
`);
|
|
3408
3407
|
u.push(
|
|
3409
3408
|
this.generateTextChangeCommandsForRegion(
|
|
3410
3409
|
E.get(p.id) || 1,
|
|
3411
3410
|
A.data,
|
|
3412
3411
|
p.id,
|
|
3413
|
-
|
|
3414
|
-
|
|
3412
|
+
f,
|
|
3413
|
+
C
|
|
3415
3414
|
)
|
|
3416
3415
|
);
|
|
3417
3416
|
}
|
|
3418
|
-
const
|
|
3419
|
-
return
|
|
3417
|
+
const D = new G(u);
|
|
3418
|
+
return D.varying = C, D;
|
|
3420
3419
|
}
|
|
3421
3420
|
}
|
|
3422
3421
|
const K = new Ua();
|
|
@@ -4683,27 +4682,27 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
4683
4682
|
</g>
|
|
4684
4683
|
</svg>
|
|
4685
4684
|
|
|
4686
|
-
`,
|
|
4687
|
-
const e =
|
|
4685
|
+
`, P = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
|
|
4686
|
+
const e = P("rect");
|
|
4688
4687
|
return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
|
|
4689
4688
|
}, ka = () => {
|
|
4690
|
-
const g =
|
|
4689
|
+
const g = P("svg");
|
|
4691
4690
|
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;
|
|
4692
|
-
},
|
|
4693
|
-
const A =
|
|
4691
|
+
}, Ja = (g) => {
|
|
4692
|
+
const A = P("use");
|
|
4694
4693
|
return A.setAttribute("xlink:href", g), A.setAttribute("href", g), A;
|
|
4695
4694
|
};
|
|
4696
4695
|
function tt(g) {
|
|
4697
4696
|
const A = ka(), e = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], t = parseFloat(e[1]), a = parseFloat(e[2]);
|
|
4698
4697
|
return A.setAttribute("height", `${a}`), A.setAttribute("width", `${t}`), [A, a, t];
|
|
4699
4698
|
}
|
|
4700
|
-
const
|
|
4701
|
-
const t =
|
|
4699
|
+
const ba = (g, A, e) => {
|
|
4700
|
+
const t = P("g");
|
|
4702
4701
|
g.appendChild(t), t.setAttribute("id", e), t.innerHTML = A;
|
|
4703
4702
|
};
|
|
4704
4703
|
function at(g, A, e) {
|
|
4705
4704
|
const t = k();
|
|
4706
|
-
|
|
4705
|
+
ba(A, e, `bgdef-${t}`), g.appendChild(Ja(`#bgdef-${t}`));
|
|
4707
4706
|
}
|
|
4708
4707
|
const nt = (g, A, e, t) => {
|
|
4709
4708
|
const a = wA("filter");
|
|
@@ -4719,16 +4718,16 @@ const nt = (g, A, e, t) => {
|
|
|
4719
4718
|
return A = A.replace(/feoffset/gi, "feOffset"), A = A.replace(/fegaussianblur/gi, "feGaussianBlur"), A = A.replace(/feblend/gi, "feBlend"), A = A.replace(/lineargradient/gi, "linearGradient"), A = A.replace(/stddeviation/gi, "stdDeviation"), A;
|
|
4720
4719
|
};
|
|
4721
4720
|
function re(g, A, e, t, a, n) {
|
|
4722
|
-
const s = a || 1, i = n || 1,
|
|
4721
|
+
const s = a || 1, i = n || 1, o = {
|
|
4723
4722
|
x: A[0],
|
|
4724
4723
|
y: A[1],
|
|
4725
4724
|
width: A[2] - A[0],
|
|
4726
4725
|
height: A[3] - A[1]
|
|
4727
4726
|
};
|
|
4728
|
-
if (
|
|
4727
|
+
if (o.width <= 0)
|
|
4729
4728
|
return;
|
|
4730
|
-
const
|
|
4731
|
-
g.setAttribute("transform", `translate(${c} ${B}) scale(${
|
|
4729
|
+
const r = Ta(o.height, o.width, e * s, t * i), c = (t - r * o.width) / 2 - r * o.x, B = (e - r * o.height) / 2 - r * o.y;
|
|
4730
|
+
g.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
|
|
4732
4731
|
}
|
|
4733
4732
|
function Ta(g, A, e, t) {
|
|
4734
4733
|
const a = e / g, n = t / A;
|
|
@@ -4763,10 +4762,10 @@ class ce {
|
|
|
4763
4762
|
let e = "";
|
|
4764
4763
|
const a = (n) => {
|
|
4765
4764
|
const s = [], i = n.relative ? n.type : n.type.toUpperCase();
|
|
4766
|
-
let
|
|
4767
|
-
const
|
|
4768
|
-
|
|
4769
|
-
for (const c of
|
|
4765
|
+
let o = e !== i;
|
|
4766
|
+
const r = pe[n.type];
|
|
4767
|
+
o && (s.push(i), e = i);
|
|
4768
|
+
for (const c of r) {
|
|
4770
4769
|
const B = n[c];
|
|
4771
4770
|
let l;
|
|
4772
4771
|
switch (typeof B) {
|
|
@@ -4779,7 +4778,7 @@ class ce {
|
|
|
4779
4778
|
default:
|
|
4780
4779
|
throw new rA("Failed to encode path.");
|
|
4781
4780
|
}
|
|
4782
|
-
|
|
4781
|
+
o || s.push(" "), s.push(l), o = !1;
|
|
4783
4782
|
}
|
|
4784
4783
|
return s.join("");
|
|
4785
4784
|
};
|
|
@@ -4789,24 +4788,24 @@ class ce {
|
|
|
4789
4788
|
const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
|
|
4790
4789
|
let n;
|
|
4791
4790
|
for (e.lastIndex = 0; n = e.exec(A); ) {
|
|
4792
|
-
const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat),
|
|
4793
|
-
if (i.length <
|
|
4791
|
+
const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), o = s === n[1], r = pe[s];
|
|
4792
|
+
if (i.length < r.length)
|
|
4794
4793
|
throw new rA(
|
|
4795
|
-
`Path type "${s}" given ${i.length} arguments, expected ${
|
|
4794
|
+
`Path type "${s}" given ${i.length} arguments, expected ${r.length}.`
|
|
4796
4795
|
);
|
|
4797
|
-
if (
|
|
4798
|
-
if (i.length %
|
|
4796
|
+
if (r.length > 0) {
|
|
4797
|
+
if (i.length % r.length !== 0)
|
|
4799
4798
|
throw new rA(
|
|
4800
|
-
`Path type "${s}" given ${i.length} arguments, not divisible by ${
|
|
4799
|
+
`Path type "${s}" given ${i.length} arguments, not divisible by ${r.length}`
|
|
4801
4800
|
);
|
|
4802
|
-
for (let c = 0; c < i.length /
|
|
4803
|
-
const B = { type: s, relative:
|
|
4804
|
-
for (let l = 0; l <
|
|
4805
|
-
B[
|
|
4801
|
+
for (let c = 0; c < i.length / r.length; c++) {
|
|
4802
|
+
const B = { type: s, relative: o };
|
|
4803
|
+
for (let l = 0; l < r.length; l++)
|
|
4804
|
+
B[r[l]] = i[c * r.length + l];
|
|
4806
4805
|
a.push(B);
|
|
4807
4806
|
}
|
|
4808
4807
|
} else
|
|
4809
|
-
a.push({ type: s, relative:
|
|
4808
|
+
a.push({ type: s, relative: o });
|
|
4810
4809
|
}
|
|
4811
4810
|
return a;
|
|
4812
4811
|
}
|
|
@@ -4817,12 +4816,12 @@ class ce {
|
|
|
4817
4816
|
["x", "y"]
|
|
4818
4817
|
], a = (n) => {
|
|
4819
4818
|
for (let s = 0; s < t.length; s++) {
|
|
4820
|
-
const [i,
|
|
4821
|
-
if (i in n &&
|
|
4822
|
-
const
|
|
4819
|
+
const [i, o] = t[s];
|
|
4820
|
+
if (i in n && o in n) {
|
|
4821
|
+
const r = [n[i], n[o]], c = e(r);
|
|
4823
4822
|
if (c.length < 2)
|
|
4824
4823
|
throw new rA("Transformer must return at least 2 points.");
|
|
4825
|
-
n[i] = c[0], n[
|
|
4824
|
+
n[i] = c[0], n[o] = c[1];
|
|
4826
4825
|
}
|
|
4827
4826
|
}
|
|
4828
4827
|
return n;
|
|
@@ -4860,31 +4859,31 @@ class La extends ie {
|
|
|
4860
4859
|
}
|
|
4861
4860
|
brandSvg(A, e) {
|
|
4862
4861
|
const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
|
|
4863
|
-
const p =
|
|
4864
|
-
p.appendChild(
|
|
4865
|
-
const m =
|
|
4862
|
+
const p = P("g"), f = P("defs");
|
|
4863
|
+
p.appendChild(f), f.appendChild(nt(3, 7, 4, "shadow"));
|
|
4864
|
+
const m = P("g");
|
|
4866
4865
|
p.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = t;
|
|
4867
|
-
const
|
|
4868
|
-
p.appendChild(
|
|
4869
|
-
const Y =
|
|
4866
|
+
const y = P("g");
|
|
4867
|
+
p.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = t;
|
|
4868
|
+
const Y = P("g");
|
|
4870
4869
|
p.appendChild(Y), Y.setAttribute("fill", "#9d2621"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = t;
|
|
4871
|
-
const F =
|
|
4872
|
-
return p.appendChild(F), F.setAttribute("fill", "yellow"), F.innerHTML = t, new ce(p).transform(([
|
|
4873
|
-
}, [
|
|
4874
|
-
if (!
|
|
4870
|
+
const F = P("g");
|
|
4871
|
+
return p.appendChild(F), F.setAttribute("fill", "yellow"), F.innerHTML = t, new ce(p).transform(([N, L]) => [N, L + (n / 2 - N) ** 2 / (n * 2.9)]), p;
|
|
4872
|
+
}, [o, r, c] = tt(e);
|
|
4873
|
+
if (!o)
|
|
4875
4874
|
return "";
|
|
4876
|
-
const B =
|
|
4877
|
-
|
|
4878
|
-
const l =
|
|
4879
|
-
|
|
4875
|
+
const B = P("defs");
|
|
4876
|
+
o.appendChild(B), at(o, B, e);
|
|
4877
|
+
const l = r * 0.23, d = c * 0.94, E = c * 0.04, h = r * 0.53, w = P("g");
|
|
4878
|
+
o.appendChild(w), w.setAttribute("transform", `translate(${E} ${h}) rotate(-21)`);
|
|
4880
4879
|
const Q = oe(l, d);
|
|
4881
4880
|
Q.setAttribute("opacity", "0"), w.appendChild(Q);
|
|
4882
|
-
const
|
|
4883
|
-
w.appendChild(
|
|
4881
|
+
const C = P("g");
|
|
4882
|
+
w.appendChild(C);
|
|
4884
4883
|
const u = i();
|
|
4885
|
-
|
|
4886
|
-
const
|
|
4887
|
-
return re(
|
|
4884
|
+
C.appendChild(u);
|
|
4885
|
+
const D = ne(s);
|
|
4886
|
+
return re(C, D, l, d), st(o.outerHTML);
|
|
4888
4887
|
}
|
|
4889
4888
|
}
|
|
4890
4889
|
const Oa = "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==";
|
|
@@ -4899,39 +4898,39 @@ class za extends ie {
|
|
|
4899
4898
|
return this.svg(A);
|
|
4900
4899
|
}
|
|
4901
4900
|
svg(A) {
|
|
4902
|
-
const e = ae(Oa), a = A !== "" ? ((
|
|
4901
|
+
const e = ae(Oa), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), s = A.length < this.shortLength, i = s ? this.backgroundShortSvg : this.backgroundSvg;
|
|
4903
4902
|
return this.brandSvg(n, i, s);
|
|
4904
4903
|
}
|
|
4905
4904
|
brandSvg(A, e, t) {
|
|
4906
|
-
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1,
|
|
4907
|
-
const m =
|
|
4908
|
-
m.appendChild(
|
|
4909
|
-
const Y =
|
|
4905
|
+
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), r = () => {
|
|
4906
|
+
const m = P("g"), y = P("g");
|
|
4907
|
+
m.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
|
|
4908
|
+
const Y = P("g");
|
|
4910
4909
|
m.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
|
|
4911
|
-
const F =
|
|
4910
|
+
const F = P("g");
|
|
4912
4911
|
m.appendChild(F), F.setAttribute("fill", "white"), F.innerHTML = a;
|
|
4913
|
-
const
|
|
4914
|
-
return
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
]),
|
|
4912
|
+
const R = new ce(m);
|
|
4913
|
+
return R.transform(([N, L]) => [N, L + ((i - N) * L) ** 2 / (i * 5e4)]), R.transform(([N, L]) => [
|
|
4914
|
+
N,
|
|
4915
|
+
L + (i / 3 - N) ** 2 / i * this.indicator(N < i / 3)
|
|
4916
|
+
]), R.transform(([N, L]) => [N - (s - L) * (i - N) / 800, L]), m;
|
|
4918
4917
|
}, [c, B, l] = tt(e);
|
|
4919
4918
|
if (!c)
|
|
4920
4919
|
return "";
|
|
4921
|
-
const d =
|
|
4920
|
+
const d = P("defs");
|
|
4922
4921
|
c.appendChild(d), at(c, d, e);
|
|
4923
|
-
let E,
|
|
4924
|
-
t ? (E = B * 0.25 * (1 + 0.1),
|
|
4925
|
-
const
|
|
4926
|
-
c.appendChild(
|
|
4927
|
-
const u = oe(E,
|
|
4928
|
-
u.setAttribute("opacity", "0"),
|
|
4929
|
-
const
|
|
4930
|
-
|
|
4931
|
-
const p =
|
|
4932
|
-
|
|
4933
|
-
const
|
|
4934
|
-
return re(
|
|
4922
|
+
let E, h, w, Q;
|
|
4923
|
+
t ? (E = B * 0.25 * (1 + 0.1), h = l / 2 * (1 + 0.1), w = l * 0.22, Q = B * 0.32) : (E = B * 0.22 * (1 + 0.1), h = l * 0.8, w = l * 0.067, Q = B * 0.33);
|
|
4924
|
+
const C = P("g");
|
|
4925
|
+
c.appendChild(C), C.setAttribute("transform", `translate(${w} ${Q}) rotate(-10)`);
|
|
4926
|
+
const u = oe(E, h);
|
|
4927
|
+
u.setAttribute("opacity", "0"), C.appendChild(u);
|
|
4928
|
+
const D = P("g");
|
|
4929
|
+
C.appendChild(D);
|
|
4930
|
+
const p = r();
|
|
4931
|
+
D.appendChild(p);
|
|
4932
|
+
const f = ne(o);
|
|
4933
|
+
return re(D, f, E, h), c.outerHTML;
|
|
4935
4934
|
}
|
|
4936
4935
|
// 1 if true, 0 if false.
|
|
4937
4936
|
}
|
|
@@ -4947,35 +4946,35 @@ class ja extends ie {
|
|
|
4947
4946
|
return this.svgElement(A, e);
|
|
4948
4947
|
}
|
|
4949
4948
|
svgElement(A, e) {
|
|
4950
|
-
const t = ae(Ka), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2),
|
|
4951
|
-
const u =
|
|
4949
|
+
const t = ae(Ka), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), r = o.x2 - o.x1, c = s.toPathData(3), B = () => {
|
|
4950
|
+
const u = P("g");
|
|
4952
4951
|
u.classList.add("module-text-group");
|
|
4953
|
-
const
|
|
4954
|
-
u.appendChild(
|
|
4955
|
-
const p =
|
|
4956
|
-
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"),
|
|
4957
|
-
const
|
|
4958
|
-
|
|
4959
|
-
const m =
|
|
4952
|
+
const D = P("defs");
|
|
4953
|
+
u.appendChild(D), D.appendChild(nt(0, 2, 2, "shadow"));
|
|
4954
|
+
const p = P("path");
|
|
4955
|
+
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), D.appendChild(p);
|
|
4956
|
+
const f = P("g");
|
|
4957
|
+
f.classList.add("module-layer0"), u.appendChild(f), f.setAttribute("filter", "url(#shadow)"), f.innerHTML = p.outerHTML;
|
|
4958
|
+
const m = P("g");
|
|
4960
4959
|
m.classList.add("module-layer1"), u.appendChild(m), m.setAttribute("stroke-width", "3"), m.setAttribute("stroke", "rgb(45,41,38)"), m.setAttribute("fill", "rgb(45,41,38)"), m.setAttribute("transform", "translate(0.5,0)"), m.innerHTML = i;
|
|
4961
|
-
const
|
|
4962
|
-
|
|
4963
|
-
const Y =
|
|
4964
|
-
return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([
|
|
4965
|
-
}, l =
|
|
4960
|
+
const y = P("g");
|
|
4961
|
+
y.classList.add("module-layer2"), u.appendChild(y), y.setAttribute("fill", "rgb(255,209,0)"), y.setAttribute("transform", "translate(1,-0.1)"), y.innerHTML = i;
|
|
4962
|
+
const Y = P("g");
|
|
4963
|
+
return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([R, N]) => [R, N + (r / 2 - R) ** 2 / (r * 6)]), u;
|
|
4964
|
+
}, l = P("g");
|
|
4966
4965
|
l.classList.add("module-root");
|
|
4967
|
-
const d =
|
|
4966
|
+
const d = P("defs");
|
|
4968
4967
|
l.appendChild(d);
|
|
4969
|
-
const E =
|
|
4968
|
+
const E = P("g");
|
|
4970
4969
|
E.classList.add("module-bounds"), l.appendChild(E);
|
|
4971
|
-
const
|
|
4972
|
-
|
|
4973
|
-
const w =
|
|
4970
|
+
const h = oe(e.height, e.width);
|
|
4971
|
+
h.setAttribute("opacity", "0"), E.appendChild(h);
|
|
4972
|
+
const w = P("g");
|
|
4974
4973
|
w.classList.add("module-text-enclosure"), l.appendChild(w);
|
|
4975
4974
|
const Q = B();
|
|
4976
4975
|
w.appendChild(Q);
|
|
4977
|
-
const
|
|
4978
|
-
return re(w,
|
|
4976
|
+
const C = ne(c);
|
|
4977
|
+
return re(w, C, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
|
|
4979
4978
|
}
|
|
4980
4979
|
}
|
|
4981
4980
|
async function it(g) {
|
|
@@ -5004,24 +5003,25 @@ class Ie extends Xe {
|
|
|
5004
5003
|
}
|
|
5005
5004
|
}
|
|
5006
5005
|
class Wa {
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5006
|
+
// True when the transaction is being reloaded, rather than newly created.
|
|
5007
|
+
constructor(A, e, t, a, n, s, i, o, r, c, B = !1, l, d = !1) {
|
|
5008
|
+
this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.renderLayouts = () => {
|
|
5009
|
+
var w;
|
|
5010
5010
|
if (!this.previewService)
|
|
5011
5011
|
return;
|
|
5012
|
-
const
|
|
5013
|
-
if (
|
|
5014
|
-
for (const [,
|
|
5015
|
-
|
|
5012
|
+
const E = this.getCommandContext().getAllLayouts(), h = (w = this.getLayoutPreviewService()) == null ? void 0 : w.getAll();
|
|
5013
|
+
if (h)
|
|
5014
|
+
for (const [, Q] of h)
|
|
5015
|
+
Q.render(
|
|
5016
5016
|
this.getWorkflow(),
|
|
5017
|
-
|
|
5017
|
+
E,
|
|
5018
5018
|
this.getCurrentVariationRecord() || null,
|
|
5019
5019
|
this.getProduct().overlayImageUrl
|
|
5020
5020
|
);
|
|
5021
|
-
}, this.updateTransaction = n, this.commandContext = a, this.reloadedState = c, this.transaction = s, this.readOnly = B, this.
|
|
5021
|
+
}, this.updateTransaction = n, this.commandContext = a, this.reloadedState = c, this.transaction = s, this.readOnly = B, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = o, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = r, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
|
|
5022
5022
|
this.initialized = !0;
|
|
5023
|
-
}), this.initializationPromise.catch((
|
|
5024
|
-
throw console.error(
|
|
5023
|
+
}), this.initializationPromise.catch((E) => {
|
|
5024
|
+
throw console.error(E), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
5025
5025
|
}), this.initializationPromise.finally(
|
|
5026
5026
|
() => this.getCommandContext().registerStateCallback(() => {
|
|
5027
5027
|
this.updateStateWithServer(), this.renderLayouts();
|
|
@@ -5031,14 +5031,14 @@ class Wa {
|
|
|
5031
5031
|
async initializeDefaultWorkflowState(A, e) {
|
|
5032
5032
|
const t = () => {
|
|
5033
5033
|
var B, l;
|
|
5034
|
-
const
|
|
5035
|
-
if (!
|
|
5034
|
+
const o = this.workflow.finalizeStepConfig;
|
|
5035
|
+
if (!o)
|
|
5036
5036
|
return;
|
|
5037
|
-
const
|
|
5038
|
-
|
|
5037
|
+
const r = o.lookAtAnimation, c = o.modelAnimation;
|
|
5038
|
+
r && ((B = this.previewService) == null || B.executeCameraAnimation(r)), c && ((l = this.modelContainer) == null || l.executeAnimation(c));
|
|
5039
5039
|
};
|
|
5040
|
-
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((
|
|
5041
|
-
this.storage[
|
|
5040
|
+
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((o) => {
|
|
5041
|
+
this.storage[o.stepName] = o.storage || {};
|
|
5042
5042
|
}), this.allScenes = await wa(
|
|
5043
5043
|
A,
|
|
5044
5044
|
{
|
|
@@ -5050,7 +5050,7 @@ class Wa {
|
|
|
5050
5050
|
},
|
|
5051
5051
|
e
|
|
5052
5052
|
);
|
|
5053
|
-
const n = aA(this.allScenes, this.stepSelections).map((
|
|
5053
|
+
const n = aA(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: s, commands: i } = await this.stepElementsForIntroducedSilentSteps(n, !!this.reloadedState);
|
|
5054
5054
|
this.commandContext.apply(new G(i), !0), this.stepElements = { ...this.stepElements, ...s }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
|
|
5055
5055
|
}
|
|
5056
5056
|
getProduct() {
|
|
@@ -5243,12 +5243,12 @@ class Wa {
|
|
|
5243
5243
|
contextService: this.getLayoutPreviewService()
|
|
5244
5244
|
}).getInitializationPromise();
|
|
5245
5245
|
this.setModelContainer(e), aA(this.allScenes, this.stepSelections).filter((n) => n).map((n) => n.renderableSteps).flat().filter((n) => n.type === I.Model || n.type === I.Material).forEach((n) => {
|
|
5246
|
-
var
|
|
5247
|
-
if (!((
|
|
5246
|
+
var o, r, c;
|
|
5247
|
+
if (!((o = n.option) != null && o.id)) {
|
|
5248
5248
|
console.error(`Failed to read option id from step: ${n.stepName}`);
|
|
5249
5249
|
return;
|
|
5250
5250
|
}
|
|
5251
|
-
const s = ((
|
|
5251
|
+
const s = ((r = this.stepSelections[n.stepName]) == null ? void 0 : r.selectedVariants) || [];
|
|
5252
5252
|
if (s.length === 0)
|
|
5253
5253
|
return;
|
|
5254
5254
|
const i = s[0];
|
|
@@ -5377,9 +5377,9 @@ class Wa {
|
|
|
5377
5377
|
removeElements(A) {
|
|
5378
5378
|
const e = (t, a) => Object.keys(t).reduce((n, s) => {
|
|
5379
5379
|
const i = [...t[s] || []];
|
|
5380
|
-
return a.forEach((
|
|
5381
|
-
const
|
|
5382
|
-
|
|
5380
|
+
return a.forEach((o) => {
|
|
5381
|
+
const r = i.findIndex((c) => c.id === o.id);
|
|
5382
|
+
r > -1 && i.splice(r, 1);
|
|
5383
5383
|
}), n[s] = i, n;
|
|
5384
5384
|
}, {});
|
|
5385
5385
|
this.stepElements = e(this.stepElements, A);
|
|
@@ -5396,30 +5396,30 @@ class Wa {
|
|
|
5396
5396
|
const t = this.product;
|
|
5397
5397
|
if (!t)
|
|
5398
5398
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
5399
|
-
const a = async (
|
|
5400
|
-
if (
|
|
5401
|
-
const l = await new me(
|
|
5402
|
-
return { step:
|
|
5403
|
-
} else if (
|
|
5399
|
+
const a = async (r, c, B) => {
|
|
5400
|
+
if (r.type === I.SilentIllustration) {
|
|
5401
|
+
const l = await new me(r, c).trigger();
|
|
5402
|
+
return { step: r, results: l };
|
|
5403
|
+
} else if (r.type === I.ProductOverlay) {
|
|
5404
5404
|
const l = await new me(
|
|
5405
|
-
|
|
5405
|
+
r,
|
|
5406
5406
|
c,
|
|
5407
5407
|
B
|
|
5408
5408
|
).trigger();
|
|
5409
|
-
return { step:
|
|
5409
|
+
return { step: r, results: l };
|
|
5410
5410
|
}
|
|
5411
5411
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
5412
5412
|
}, n = A.filter(
|
|
5413
|
-
(
|
|
5413
|
+
(r) => !this.stepInitialised[r.stepName]
|
|
5414
5414
|
), s = {
|
|
5415
5415
|
stepElements: {},
|
|
5416
5416
|
commands: []
|
|
5417
5417
|
}, i = [];
|
|
5418
|
-
for (const
|
|
5419
|
-
this.markStepsAsInitialised([
|
|
5420
|
-
const
|
|
5421
|
-
for (const
|
|
5422
|
-
s.stepElements[
|
|
5418
|
+
for (const r of n)
|
|
5419
|
+
this.markStepsAsInitialised([r.stepName]), e || i.push(a(r, this.layouts, t));
|
|
5420
|
+
const o = await Promise.all(i);
|
|
5421
|
+
for (const r of o)
|
|
5422
|
+
s.stepElements[r.step.stepName] = r.results.map((c) => c.regionElement), s.commands = [...s.commands, ...r.results.map((c) => c.command)];
|
|
5423
5423
|
return s;
|
|
5424
5424
|
}
|
|
5425
5425
|
getStepStorage(A) {
|
|
@@ -5456,14 +5456,14 @@ class Wa {
|
|
|
5456
5456
|
this.stepSelections = {
|
|
5457
5457
|
...this.stepSelections,
|
|
5458
5458
|
[A]: { selectedVariants: e }
|
|
5459
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
5460
|
-
nA(
|
|
5459
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((f, m) => f + m.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, Y) => y + Y, 0), 0), this.workflow.steps.forEach((f) => {
|
|
5460
|
+
nA(f, this.stepSelections) || (this.stepInitialised[f.stepName] = !1, delete this.stepMetadata[f.stepName], delete this.stepSelections[f.stepName], delete this.storage[f.stepName]);
|
|
5461
5461
|
});
|
|
5462
|
-
const s = this.allScenes, i = aA(s, n),
|
|
5463
|
-
(
|
|
5462
|
+
const s = this.allScenes, i = aA(s, n), o = aA(s, this.stepSelections), r = i.map((f) => f.silentSteps).flat(), B = o.map((f) => f.silentSteps).flat().filter(
|
|
5463
|
+
(f) => !r.some((m) => m.stepName === f.stepName)
|
|
5464
5464
|
);
|
|
5465
|
-
|
|
5466
|
-
nA(
|
|
5465
|
+
r.forEach((f) => {
|
|
5466
|
+
nA(f, this.stepSelections) || (this.stepInitialised[f.stepName] = !1);
|
|
5467
5467
|
});
|
|
5468
5468
|
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: E } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
5469
5469
|
this.stepElements = {
|
|
@@ -5471,17 +5471,17 @@ class Wa {
|
|
|
5471
5471
|
...d,
|
|
5472
5472
|
[A]: t
|
|
5473
5473
|
}, this.removeElements(l);
|
|
5474
|
-
const
|
|
5475
|
-
if ((
|
|
5476
|
-
const
|
|
5477
|
-
(p =
|
|
5478
|
-
}
|
|
5479
|
-
const w = l.map((
|
|
5480
|
-
|
|
5481
|
-
const u = this.getInvalidModelVariants(),
|
|
5482
|
-
if (
|
|
5483
|
-
const
|
|
5484
|
-
(m) =>
|
|
5474
|
+
const h = this.workflow.steps.find((f) => f.stepName === A);
|
|
5475
|
+
if ((h == null ? void 0 : h.type) === I.Frame) {
|
|
5476
|
+
const f = this.getStepSpecificServices(A);
|
|
5477
|
+
(p = f == null ? void 0 : f.frameService) == null || p.setTargetElements(t.map((m) => m.id));
|
|
5478
|
+
}
|
|
5479
|
+
const w = l.map((f) => new $(f.id)), Q = new Ee(this.constructSerializableWorkflow()), C = [...E, ...w, Q];
|
|
5480
|
+
C.length > 0 && this.commandContext.apply(new G(C), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5481
|
+
const u = this.getInvalidModelVariants(), D = this.modelContainer;
|
|
5482
|
+
if (D) {
|
|
5483
|
+
const f = u.map(
|
|
5484
|
+
(m) => D.applyModelVariant(
|
|
5485
5485
|
m,
|
|
5486
5486
|
{
|
|
5487
5487
|
contextService: this.getLayoutPreviewService()
|
|
@@ -5489,12 +5489,12 @@ class Wa {
|
|
|
5489
5489
|
!1
|
|
5490
5490
|
)
|
|
5491
5491
|
);
|
|
5492
|
-
await Promise.all(
|
|
5492
|
+
await Promise.all(f);
|
|
5493
5493
|
}
|
|
5494
5494
|
await this.onSelectionChange(), a && await a();
|
|
5495
5495
|
}
|
|
5496
5496
|
async ensureStepsAreLoaded() {
|
|
5497
|
-
var
|
|
5497
|
+
var o, r;
|
|
5498
5498
|
const e = aA(this.allScenes, this.stepSelections).map((c) => c.renderableSteps), t = [], a = e.flat();
|
|
5499
5499
|
for (const c of a)
|
|
5500
5500
|
if (!this.stepInitialised[c.stepName])
|
|
@@ -5502,7 +5502,7 @@ class Wa {
|
|
|
5502
5502
|
case I.Bulk:
|
|
5503
5503
|
this.updateStorage(
|
|
5504
5504
|
"Bulk",
|
|
5505
|
-
((
|
|
5505
|
+
((r = (o = this.reloadedState) == null ? void 0 : o.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : r.storage) || {}
|
|
5506
5506
|
);
|
|
5507
5507
|
break;
|
|
5508
5508
|
case I.DigitalContent:
|
|
@@ -5809,7 +5809,7 @@ const ot = class ZA {
|
|
|
5809
5809
|
};
|
|
5810
5810
|
ot.updateState = /* @__PURE__ */ new Map();
|
|
5811
5811
|
let j = ot;
|
|
5812
|
-
const rt =
|
|
5812
|
+
const rt = M`
|
|
5813
5813
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
5814
5814
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
5815
5815
|
id
|
|
@@ -5823,7 +5823,7 @@ const rt = y`
|
|
|
5823
5823
|
}
|
|
5824
5824
|
}
|
|
5825
5825
|
}
|
|
5826
|
-
`, Xa =
|
|
5826
|
+
`, Xa = M`
|
|
5827
5827
|
mutation UpdateDesignName($transactionId: String!, $designName: String!) {
|
|
5828
5828
|
transactionUpdate(id: $transactionId, designName: $designName) {
|
|
5829
5829
|
id
|
|
@@ -5838,7 +5838,7 @@ class qa extends j {
|
|
|
5838
5838
|
throw new Error("Bulk step does not support variants.");
|
|
5839
5839
|
}
|
|
5840
5840
|
async setDesignName(A) {
|
|
5841
|
-
await
|
|
5841
|
+
await x.getShadowGraphqlClient().mutate({
|
|
5842
5842
|
mutation: Xa,
|
|
5843
5843
|
variables: {
|
|
5844
5844
|
transactionId: this.manager.getTransaction().id,
|
|
@@ -5865,7 +5865,7 @@ class qa extends j {
|
|
|
5865
5865
|
window.open(this.transaction.bulkSourceUrl, "_blank");
|
|
5866
5866
|
}
|
|
5867
5867
|
async sendGoogleSheetLinkToEmail(A) {
|
|
5868
|
-
await
|
|
5868
|
+
await x.getShadowGraphqlClient().mutate({
|
|
5869
5869
|
mutation: rt,
|
|
5870
5870
|
variables: { id: this.transaction.id, details: { emailAddress: A }, type: "Owner" }
|
|
5871
5871
|
}), this.openBulkSourceUrl();
|
|
@@ -6161,14 +6161,14 @@ class an extends j {
|
|
|
6161
6161
|
text: a
|
|
6162
6162
|
}), s)
|
|
6163
6163
|
return e;
|
|
6164
|
-
const { command:
|
|
6164
|
+
const { command: o, errors: r, helperText: c } = K.updateInputText(
|
|
6165
6165
|
a,
|
|
6166
6166
|
t,
|
|
6167
6167
|
this.step,
|
|
6168
6168
|
this.manager
|
|
6169
6169
|
);
|
|
6170
|
-
|
|
6171
|
-
const B = this.manager.getInformationResults(), l = (E =
|
|
6170
|
+
o && this.manager.getCommandDispatcher()(o);
|
|
6171
|
+
const B = this.manager.getInformationResults(), l = (E = r[0]) == null ? void 0 : E.localizationKey;
|
|
6172
6172
|
if (l)
|
|
6173
6173
|
this.manager.setInformationResults([
|
|
6174
6174
|
...B,
|
|
@@ -6179,8 +6179,8 @@ class an extends j {
|
|
|
6179
6179
|
}
|
|
6180
6180
|
]);
|
|
6181
6181
|
else {
|
|
6182
|
-
const
|
|
6183
|
-
this.manager.setInformationResults(
|
|
6182
|
+
const h = B.filter((w) => w.stepID !== this.step.stepName);
|
|
6183
|
+
this.manager.setInformationResults(h);
|
|
6184
6184
|
}
|
|
6185
6185
|
return e.helperText = l || c, e.errorText = l, e;
|
|
6186
6186
|
}
|
|
@@ -6282,7 +6282,7 @@ class oA {
|
|
|
6282
6282
|
}
|
|
6283
6283
|
}
|
|
6284
6284
|
}
|
|
6285
|
-
const ct =
|
|
6285
|
+
const ct = M`
|
|
6286
6286
|
fragment CreateDesignTransaction on Transaction {
|
|
6287
6287
|
id
|
|
6288
6288
|
bulk
|
|
@@ -6299,7 +6299,7 @@ const ct = y`
|
|
|
6299
6299
|
workflowViewerLink
|
|
6300
6300
|
workflowViewerReadOnlyLink
|
|
6301
6301
|
}
|
|
6302
|
-
`, sn =
|
|
6302
|
+
`, sn = M`
|
|
6303
6303
|
${ct}
|
|
6304
6304
|
mutation CreateDesign(
|
|
6305
6305
|
$name: String!
|
|
@@ -6331,7 +6331,7 @@ const ct = y`
|
|
|
6331
6331
|
}
|
|
6332
6332
|
}
|
|
6333
6333
|
}
|
|
6334
|
-
`, on =
|
|
6334
|
+
`, on = M`
|
|
6335
6335
|
${ct}
|
|
6336
6336
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6337
6337
|
designCreateMany(inputs: $inputs) {
|
|
@@ -6347,7 +6347,7 @@ const ct = y`
|
|
|
6347
6347
|
}
|
|
6348
6348
|
`, rn = async (g) => {
|
|
6349
6349
|
var e;
|
|
6350
|
-
return (e = (await
|
|
6350
|
+
return (e = (await x.getShadowGraphqlClient().mutate({
|
|
6351
6351
|
mutation: sn,
|
|
6352
6352
|
errorPolicy: "all",
|
|
6353
6353
|
fetchPolicy: "no-cache",
|
|
@@ -6364,7 +6364,7 @@ const ct = y`
|
|
|
6364
6364
|
})).data) == null ? void 0 : e.designCreate;
|
|
6365
6365
|
}, cn = async (g) => {
|
|
6366
6366
|
var e;
|
|
6367
|
-
return (e = (await
|
|
6367
|
+
return (e = (await x.getShadowGraphqlClient().mutate({
|
|
6368
6368
|
mutation: on,
|
|
6369
6369
|
errorPolicy: "all",
|
|
6370
6370
|
fetchPolicy: "no-cache",
|
|
@@ -6385,23 +6385,23 @@ const ct = y`
|
|
|
6385
6385
|
const t = (n) => {
|
|
6386
6386
|
const s = {};
|
|
6387
6387
|
if (n.type === "Frame") {
|
|
6388
|
-
const i = g[n.stepName],
|
|
6389
|
-
if (!i || !i.image ||
|
|
6388
|
+
const i = g[n.stepName], o = n.data;
|
|
6389
|
+
if (!i || !i.image || o.hideImageInCart && e)
|
|
6390
6390
|
return s;
|
|
6391
6391
|
s[`${n.stepTitle} image`] = i.image;
|
|
6392
6392
|
}
|
|
6393
6393
|
if (n.type === "Illustration") {
|
|
6394
|
-
const i = g[n.stepName],
|
|
6395
|
-
if (!i ||
|
|
6394
|
+
const i = g[n.stepName], o = n.data;
|
|
6395
|
+
if (!i || o.hideColorsInCart && e || !i.colors)
|
|
6396
6396
|
return s;
|
|
6397
6397
|
if (i.colors.length > 0) {
|
|
6398
|
-
const
|
|
6399
|
-
s[`${n.stepTitle} colors`] =
|
|
6398
|
+
const r = i.colors.join(", ").toUpperCase();
|
|
6399
|
+
s[`${n.stepTitle} colors`] = r;
|
|
6400
6400
|
}
|
|
6401
6401
|
}
|
|
6402
6402
|
if (n.type === "Module") {
|
|
6403
|
-
const i = g[n.stepName],
|
|
6404
|
-
if (!i || i.text === void 0 || i.text === null ||
|
|
6403
|
+
const i = g[n.stepName], o = n.data;
|
|
6404
|
+
if (!i || i.text === void 0 || i.text === null || o.hideTextInCart && e)
|
|
6405
6405
|
return s;
|
|
6406
6406
|
s[`${n.stepTitle} text`] = i.text;
|
|
6407
6407
|
}
|
|
@@ -6409,8 +6409,8 @@ const ct = y`
|
|
|
6409
6409
|
const i = g[n.stepName];
|
|
6410
6410
|
if (!i)
|
|
6411
6411
|
return s;
|
|
6412
|
-
const
|
|
6413
|
-
(!
|
|
6412
|
+
const o = n.data;
|
|
6413
|
+
(!o.hideTextInCart || !e && i.text !== void 0 && i.text !== null) && (s[`${n.stepTitle} text`] = i.text), i.color && (!o.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
|
|
6414
6414
|
}
|
|
6415
6415
|
return s;
|
|
6416
6416
|
}, a = {};
|
|
@@ -6436,22 +6436,22 @@ const ct = y`
|
|
|
6436
6436
|
};
|
|
6437
6437
|
}
|
|
6438
6438
|
for (const s of Object.keys(g)) {
|
|
6439
|
-
const i = g[s],
|
|
6439
|
+
const i = g[s], o = A.steps.find((r) => r.stepTitle === s);
|
|
6440
6440
|
if (i.length === 1)
|
|
6441
|
-
a[`${
|
|
6441
|
+
a[`${o == null ? void 0 : o.stepTitle} selection`] = {
|
|
6442
6442
|
value: i[0].name,
|
|
6443
6443
|
priceModifier: i[0].priceModifier
|
|
6444
6444
|
};
|
|
6445
6445
|
else if (i.length > 1)
|
|
6446
|
-
for (let
|
|
6447
|
-
a[`${
|
|
6448
|
-
value: i[
|
|
6449
|
-
priceModifier: i[
|
|
6446
|
+
for (let r = 0; r < i.length; r++)
|
|
6447
|
+
a[`${o == null ? void 0 : o.stepTitle} selection ${r + 1}`] = {
|
|
6448
|
+
value: i[r].name,
|
|
6449
|
+
priceModifier: i[r].priceModifier
|
|
6450
6450
|
};
|
|
6451
6451
|
}
|
|
6452
6452
|
return a;
|
|
6453
|
-
}, gt = (g, A, e, t, a, n, s, i,
|
|
6454
|
-
const B = (
|
|
6453
|
+
}, gt = (g, A, e, t, a, n, s, i, o, r) => {
|
|
6454
|
+
const B = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
|
|
6455
6455
|
baseCost: e,
|
|
6456
6456
|
designProductId: g.externalDesignProductId,
|
|
6457
6457
|
designProductVariantId: g.externalDesignProductVariantId,
|
|
@@ -6461,14 +6461,14 @@ const ct = y`
|
|
|
6461
6461
|
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
6462
6462
|
lineItemImageUrl: s || "",
|
|
6463
6463
|
optionsCost: t,
|
|
6464
|
-
processExecutionId:
|
|
6464
|
+
processExecutionId: r,
|
|
6465
6465
|
transactionId: g.id,
|
|
6466
6466
|
transactionOwnerId: B,
|
|
6467
6467
|
weight: A.weight,
|
|
6468
6468
|
workflowViewerLink: g.workflowViewerLink || "",
|
|
6469
6469
|
workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
|
|
6470
6470
|
};
|
|
6471
|
-
return a && (l.metadata = a), i && (l.selectedVariants = i),
|
|
6471
|
+
return a && (l.metadata = a), i && (l.selectedVariants = i), o && (l.sku = o), l;
|
|
6472
6472
|
}, ln = (g, A, e, t) => {
|
|
6473
6473
|
const a = (A.basePrice || 0) * (g.variationsCount || 0), n = g.priceModifierTotal || 0, s = {
|
|
6474
6474
|
items: {
|
|
@@ -6489,12 +6489,12 @@ const ct = y`
|
|
|
6489
6489
|
t
|
|
6490
6490
|
);
|
|
6491
6491
|
}, lt = async (g, A, e, t, a, n, s, i) => {
|
|
6492
|
-
const
|
|
6492
|
+
const o = A.basePrice || 0, r = g.priceModifierTotal || 0, c = gn(t, e, void 0, n);
|
|
6493
6493
|
return gt(
|
|
6494
6494
|
g,
|
|
6495
6495
|
A,
|
|
6496
|
-
r,
|
|
6497
6496
|
o,
|
|
6497
|
+
r,
|
|
6498
6498
|
n,
|
|
6499
6499
|
c,
|
|
6500
6500
|
s,
|
|
@@ -6502,38 +6502,38 @@ const ct = y`
|
|
|
6502
6502
|
a,
|
|
6503
6503
|
i
|
|
6504
6504
|
);
|
|
6505
|
-
}, Bt = async (g, A, e, t, a, n, s, i,
|
|
6506
|
-
var
|
|
6505
|
+
}, Bt = async (g, A, e, t, a, n, s, i, o, r) => {
|
|
6506
|
+
var y;
|
|
6507
6507
|
await (async () => {
|
|
6508
|
-
var
|
|
6509
|
-
if (
|
|
6510
|
-
return
|
|
6508
|
+
var N;
|
|
6509
|
+
if (r !== void 0)
|
|
6510
|
+
return r;
|
|
6511
6511
|
await g.outstandingRequestsPromise();
|
|
6512
|
-
const F = await
|
|
6512
|
+
const F = await x.getShadowGraphqlClient().query({
|
|
6513
6513
|
query: Ve,
|
|
6514
6514
|
variables: { ids: [a.id] },
|
|
6515
6515
|
fetchPolicy: "no-cache",
|
|
6516
6516
|
errorPolicy: "all"
|
|
6517
|
-
}),
|
|
6518
|
-
return F.errors ? (F.errors.forEach((
|
|
6519
|
-
F.errors && console.log("Server Error:",
|
|
6520
|
-
}), null) :
|
|
6517
|
+
}), R = (N = F.data) == null ? void 0 : N.transactions[0].workflowState;
|
|
6518
|
+
return F.errors ? (F.errors.forEach((L) => {
|
|
6519
|
+
F.errors && console.log("Server Error:", L.message);
|
|
6520
|
+
}), null) : R ?? null;
|
|
6521
6521
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(t())), await g.updateStateWithServerImmediate(t), console.log("Server state is undefined @ Workflow completion"));
|
|
6522
|
-
const l = g.getPreviewService(), d = (
|
|
6522
|
+
const l = g.getPreviewService(), d = (y = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, E = l && A.showModelOnFinishStep && !!d, h = o && $A(o, A, !0), w = o && $A(o, A, !1), Q = async (Y) => {
|
|
6523
6523
|
const F = {};
|
|
6524
|
-
let
|
|
6524
|
+
let R = 0;
|
|
6525
6525
|
if (Object.keys(n).length > 0)
|
|
6526
|
-
for (const
|
|
6527
|
-
const
|
|
6528
|
-
for (let W = 0; W <
|
|
6529
|
-
const q =
|
|
6526
|
+
for (const N of Object.keys(n)) {
|
|
6527
|
+
const L = n[N], V = A.steps.find((W) => W.stepName === N);
|
|
6528
|
+
for (let W = 0; W < L.selections.length; ++W) {
|
|
6529
|
+
const q = L.selections[W];
|
|
6530
6530
|
if (V && (!Y || V.option && (V.option.variants || []).length > 1 && !V.data.hideSelectionInCart && !V.data.hideSelectionsInCart)) {
|
|
6531
|
-
const
|
|
6532
|
-
F[
|
|
6531
|
+
const JA = V.stepTitle;
|
|
6532
|
+
F[JA] ? F[JA].push({
|
|
6533
6533
|
id: q.id || "",
|
|
6534
6534
|
name: q.name,
|
|
6535
6535
|
priceModifier: q.priceModifier
|
|
6536
|
-
}) : F[
|
|
6536
|
+
}) : F[JA] = [
|
|
6537
6537
|
{
|
|
6538
6538
|
id: q.id || "",
|
|
6539
6539
|
name: q.name,
|
|
@@ -6541,18 +6541,18 @@ const ct = y`
|
|
|
6541
6541
|
}
|
|
6542
6542
|
];
|
|
6543
6543
|
}
|
|
6544
|
-
|
|
6544
|
+
R += q.priceModifier;
|
|
6545
6545
|
}
|
|
6546
6546
|
}
|
|
6547
|
-
return [F,
|
|
6548
|
-
}, [
|
|
6549
|
-
Object.keys(
|
|
6550
|
-
), [
|
|
6551
|
-
Object.keys(
|
|
6547
|
+
return [F, R];
|
|
6548
|
+
}, [C] = await Q(!0), u = Object.fromEntries(
|
|
6549
|
+
Object.keys(C).map((Y) => [Y, C[Y].map((F) => F.id)])
|
|
6550
|
+
), [D] = await Q(!1), p = Object.fromEntries(
|
|
6551
|
+
Object.keys(D).map((Y) => [
|
|
6552
6552
|
Y,
|
|
6553
|
-
|
|
6553
|
+
D[Y].map((F) => F.id)
|
|
6554
6554
|
])
|
|
6555
|
-
),
|
|
6555
|
+
), f = await i(E);
|
|
6556
6556
|
return {
|
|
6557
6557
|
designDetails: (() => {
|
|
6558
6558
|
const Y = {
|
|
@@ -6564,29 +6564,29 @@ const ct = y`
|
|
|
6564
6564
|
workflowId: A.id,
|
|
6565
6565
|
transactionId: a.id,
|
|
6566
6566
|
useThreeDimPreview: !!E,
|
|
6567
|
-
previewImage:
|
|
6567
|
+
previewImage: f
|
|
6568
6568
|
};
|
|
6569
6569
|
if (w) {
|
|
6570
6570
|
const F = [];
|
|
6571
|
-
for (const [
|
|
6572
|
-
F.push({ key:
|
|
6571
|
+
for (const [R, N] of Object.entries(w))
|
|
6572
|
+
F.push({ key: R, value: N });
|
|
6573
6573
|
Y.metadata = F;
|
|
6574
6574
|
}
|
|
6575
6575
|
if (u) {
|
|
6576
6576
|
const F = [];
|
|
6577
|
-
for (const [
|
|
6578
|
-
F.push({ key:
|
|
6577
|
+
for (const [R, N] of Object.entries(p))
|
|
6578
|
+
F.push({ key: R, ids: N });
|
|
6579
6579
|
Y.selectedVariants = F;
|
|
6580
6580
|
}
|
|
6581
6581
|
return Y;
|
|
6582
6582
|
})(),
|
|
6583
|
-
cartSelectionsWithPrices:
|
|
6584
|
-
cartMetadata:
|
|
6583
|
+
cartSelectionsWithPrices: C,
|
|
6584
|
+
cartMetadata: h
|
|
6585
6585
|
};
|
|
6586
|
-
}, Bn = async (g, A, e, t, a, n, s, i,
|
|
6587
|
-
var u,
|
|
6588
|
-
|
|
6589
|
-
const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata:
|
|
6586
|
+
}, Bn = async (g, A, e, t, a, n, s, i, o, r, c, B, l) => {
|
|
6587
|
+
var u, D, p;
|
|
6588
|
+
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6589
|
+
const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: h } = await Bt(
|
|
6590
6590
|
g,
|
|
6591
6591
|
A,
|
|
6592
6592
|
e,
|
|
@@ -6597,24 +6597,24 @@ const ct = y`
|
|
|
6597
6597
|
B,
|
|
6598
6598
|
l
|
|
6599
6599
|
);
|
|
6600
|
-
|
|
6600
|
+
o("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await r(c);
|
|
6601
6601
|
const w = await rn(d), Q = (u = w == null ? void 0 : w.transaction) == null ? void 0 : u.previewImageLink;
|
|
6602
6602
|
if (!(w != null && w.transaction))
|
|
6603
6603
|
throw new Error("Failed to create design");
|
|
6604
|
-
|
|
6605
|
-
const
|
|
6604
|
+
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
6605
|
+
const C = w.transaction;
|
|
6606
6606
|
return n.bulk ? ln(
|
|
6607
|
-
|
|
6607
|
+
C,
|
|
6608
6608
|
a,
|
|
6609
6609
|
Q,
|
|
6610
|
-
(
|
|
6610
|
+
(D = w == null ? void 0 : w.processExecution) == null ? void 0 : D.id
|
|
6611
6611
|
) : await lt(
|
|
6612
|
-
|
|
6612
|
+
C,
|
|
6613
6613
|
a,
|
|
6614
6614
|
A,
|
|
6615
6615
|
E,
|
|
6616
6616
|
w == null ? void 0 : w.sku,
|
|
6617
|
-
|
|
6617
|
+
h,
|
|
6618
6618
|
Q,
|
|
6619
6619
|
(p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
|
|
6620
6620
|
);
|
|
@@ -6625,16 +6625,16 @@ const ct = y`
|
|
|
6625
6625
|
})
|
|
6626
6626
|
);
|
|
6627
6627
|
const t = await (async () => {
|
|
6628
|
-
var
|
|
6629
|
-
const i = await
|
|
6628
|
+
var o;
|
|
6629
|
+
const i = await x.getShadowGraphqlClient().query({
|
|
6630
6630
|
query: Ve,
|
|
6631
|
-
variables: { ids: g.map((
|
|
6631
|
+
variables: { ids: g.map((r) => r.transaction.id) },
|
|
6632
6632
|
fetchPolicy: "no-cache",
|
|
6633
6633
|
errorPolicy: "all"
|
|
6634
6634
|
});
|
|
6635
|
-
return i.errors ? (i.errors.forEach((
|
|
6636
|
-
i.errors && console.log("Server Error:",
|
|
6637
|
-
}), null) : (
|
|
6635
|
+
return i.errors ? (i.errors.forEach((r) => {
|
|
6636
|
+
i.errors && console.log("Server Error:", r.message);
|
|
6637
|
+
}), null) : (o = i.data) != null && o.transactions ? i.data.transactions.map((r) => r.workflowState ?? null) : null;
|
|
6638
6638
|
})(), a = await Promise.all(
|
|
6639
6639
|
g.map(async (s, i) => await Bt(
|
|
6640
6640
|
s.workflowManager,
|
|
@@ -6657,14 +6657,14 @@ const ct = y`
|
|
|
6657
6657
|
return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
|
|
6658
6658
|
n.map(async (s, i) => {
|
|
6659
6659
|
var B;
|
|
6660
|
-
const
|
|
6660
|
+
const o = g[i], r = a[i], c = s.transaction;
|
|
6661
6661
|
return await lt(
|
|
6662
6662
|
c,
|
|
6663
|
-
|
|
6664
|
-
|
|
6665
|
-
|
|
6663
|
+
o.product,
|
|
6664
|
+
o.workflow,
|
|
6665
|
+
r.cartSelectionsWithPrices,
|
|
6666
6666
|
s.sku,
|
|
6667
|
-
|
|
6667
|
+
r.cartMetadata,
|
|
6668
6668
|
//lineItemImageLink,
|
|
6669
6669
|
void 0,
|
|
6670
6670
|
(B = s.processExecution) == null ? void 0 : B.id
|
|
@@ -6693,7 +6693,7 @@ class wn {
|
|
|
6693
6693
|
*/
|
|
6694
6694
|
async getSavedDesigns() {
|
|
6695
6695
|
if (this.storageMethod === "Local") {
|
|
6696
|
-
const A =
|
|
6696
|
+
const A = S.get(this.localPersistenceKey);
|
|
6697
6697
|
return A ? JSON.parse(A) : [];
|
|
6698
6698
|
}
|
|
6699
6699
|
throw new v("Unexpected storage method requested");
|
|
@@ -6733,7 +6733,7 @@ class wn {
|
|
|
6733
6733
|
}
|
|
6734
6734
|
async setDesigns(A) {
|
|
6735
6735
|
if (this.storageMethod === "Local") {
|
|
6736
|
-
|
|
6736
|
+
S.set(this.localPersistenceKey, JSON.stringify(A));
|
|
6737
6737
|
return;
|
|
6738
6738
|
}
|
|
6739
6739
|
throw new v("Unexpected storage method requested");
|
|
@@ -6749,14 +6749,14 @@ class CA {
|
|
|
6749
6749
|
) && this.save();
|
|
6750
6750
|
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((s, i) => {
|
|
6751
6751
|
try {
|
|
6752
|
-
n.toBlob((
|
|
6753
|
-
if (
|
|
6754
|
-
const
|
|
6755
|
-
s(
|
|
6752
|
+
n.toBlob((o) => {
|
|
6753
|
+
if (o) {
|
|
6754
|
+
const r = URL.createObjectURL(o);
|
|
6755
|
+
s(r);
|
|
6756
6756
|
}
|
|
6757
6757
|
});
|
|
6758
|
-
} catch (
|
|
6759
|
-
i(
|
|
6758
|
+
} catch (o) {
|
|
6759
|
+
i(o);
|
|
6760
6760
|
}
|
|
6761
6761
|
}), !e.workflow)
|
|
6762
6762
|
throw new Error("No Workflow ID provided.");
|
|
@@ -6785,11 +6785,11 @@ class CA {
|
|
|
6785
6785
|
e.isReloadedTransaction
|
|
6786
6786
|
), this.workflowManager.addSelectionCallback((n) => {
|
|
6787
6787
|
const s = n.traversableScenes.map((i) => {
|
|
6788
|
-
const
|
|
6788
|
+
const o = i.renderableSteps.map((r) => r.stepName);
|
|
6789
6789
|
return {
|
|
6790
6790
|
id: i.name,
|
|
6791
6791
|
title: i.title,
|
|
6792
|
-
renderableSteps:
|
|
6792
|
+
renderableSteps: o
|
|
6793
6793
|
};
|
|
6794
6794
|
});
|
|
6795
6795
|
this.renderableScenes = s, this.renderableSceneCallbacks.forEach((i) => i(s));
|
|
@@ -6808,7 +6808,7 @@ class CA {
|
|
|
6808
6808
|
return this.workflowManager;
|
|
6809
6809
|
}
|
|
6810
6810
|
async updateVariationRecords(A) {
|
|
6811
|
-
await
|
|
6811
|
+
await x.getShadowGraphqlClient().mutate({
|
|
6812
6812
|
mutation: da,
|
|
6813
6813
|
variables: {
|
|
6814
6814
|
transactionId: this.workflowManager.getTransaction().id,
|
|
@@ -6824,8 +6824,8 @@ class CA {
|
|
|
6824
6824
|
});
|
|
6825
6825
|
}
|
|
6826
6826
|
async createPreviewImage(A, e) {
|
|
6827
|
-
var
|
|
6828
|
-
const t = this.workflowManager.getWorkflow(), a = (
|
|
6827
|
+
var C, u;
|
|
6828
|
+
const t = this.workflowManager.getWorkflow(), a = (C = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : C.lookAtAnimation;
|
|
6829
6829
|
if (A) {
|
|
6830
6830
|
if (!a)
|
|
6831
6831
|
throw new Error("Failed to generate cart preview image!");
|
|
@@ -6833,9 +6833,9 @@ class CA {
|
|
|
6833
6833
|
}
|
|
6834
6834
|
let n = 2048;
|
|
6835
6835
|
e && e <= 2048 && (n = e);
|
|
6836
|
-
const s = yA(n, n), i = this.commandContext.getAllLayouts(),
|
|
6836
|
+
const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((D) => {
|
|
6837
6837
|
var p;
|
|
6838
|
-
return ((p =
|
|
6838
|
+
return ((p = D.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6839
6839
|
}) || i[0], B = c.layoutState.layout.previewRegion ? {
|
|
6840
6840
|
x: c.layoutState.layout.previewRegion.left,
|
|
6841
6841
|
y: c.layoutState.layout.previewRegion.top,
|
|
@@ -6854,8 +6854,8 @@ class CA {
|
|
|
6854
6854
|
purpose: Se.Print,
|
|
6855
6855
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
6856
6856
|
}
|
|
6857
|
-
}),
|
|
6858
|
-
await (await Ge.from(d,
|
|
6857
|
+
}), h = xe(E);
|
|
6858
|
+
await (await Ge.from(d, h, {
|
|
6859
6859
|
anonymousCrossOrigin: !0,
|
|
6860
6860
|
ignoreDimensions: !1,
|
|
6861
6861
|
createCanvas: yA,
|
|
@@ -6931,7 +6931,7 @@ class CA {
|
|
|
6931
6931
|
}
|
|
6932
6932
|
async assignCustomerDetails(A) {
|
|
6933
6933
|
var a, n, s;
|
|
6934
|
-
const t = (s = (n = (a = (await
|
|
6934
|
+
const t = (s = (n = (a = (await x.getShadowGraphqlClient().mutate({
|
|
6935
6935
|
mutation: rt,
|
|
6936
6936
|
variables: {
|
|
6937
6937
|
id: this.getWorkflowManager().getTransaction().id,
|
|
@@ -6940,14 +6940,14 @@ class CA {
|
|
|
6940
6940
|
}
|
|
6941
6941
|
})).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : n.stakeholders) == null ? void 0 : s.find(
|
|
6942
6942
|
(i) => {
|
|
6943
|
-
var
|
|
6944
|
-
return ((
|
|
6943
|
+
var o;
|
|
6944
|
+
return ((o = i.customer) == null ? void 0 : o.emailAddress) === A.emailAddress;
|
|
6945
6945
|
}
|
|
6946
6946
|
);
|
|
6947
6947
|
if (t != null && t.customer) {
|
|
6948
6948
|
this.getWorkflowManager().setTransactionCustomer(t.customer);
|
|
6949
|
-
const i =
|
|
6950
|
-
i.set(this.getWorkflowManager().getTransaction().id, t.customer.id),
|
|
6949
|
+
const i = S.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
|
|
6950
|
+
i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), S.setMap("transactionCustomerIds", i);
|
|
6951
6951
|
}
|
|
6952
6952
|
}
|
|
6953
6953
|
attachRenderableSceneListener(A) {
|
|
@@ -6961,10 +6961,10 @@ class CA {
|
|
|
6961
6961
|
throw new v("State undefined!");
|
|
6962
6962
|
const a = {
|
|
6963
6963
|
title: await (async () => {
|
|
6964
|
-
var
|
|
6964
|
+
var o;
|
|
6965
6965
|
if (A)
|
|
6966
6966
|
return A;
|
|
6967
|
-
const n = this.getWorkflowManager().getTransaction().id, i = (
|
|
6967
|
+
const n = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
|
|
6968
6968
|
return i || "My design";
|
|
6969
6969
|
})(),
|
|
6970
6970
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
@@ -7017,13 +7017,13 @@ class CA {
|
|
|
7017
7017
|
var a;
|
|
7018
7018
|
const A = /* @__PURE__ */ new Map(), e = this.getWorkflowManager().getWorkflowMetadata(), t = this.getWorkflowManager().getWorkflowSelections();
|
|
7019
7019
|
return Object.keys(e).forEach((n) => {
|
|
7020
|
-
const s = this.workflowManager.getWorkflow().steps.find((
|
|
7020
|
+
const s = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
|
|
7021
7021
|
if (!s)
|
|
7022
7022
|
return;
|
|
7023
7023
|
A.has(s.stepTitle) || A.set(s.stepTitle, {});
|
|
7024
7024
|
const i = e[n];
|
|
7025
|
-
Object.keys(i).forEach((
|
|
7026
|
-
A.get(s.stepTitle)[
|
|
7025
|
+
Object.keys(i).forEach((o) => {
|
|
7026
|
+
A.get(s.stepTitle)[o] = i[o];
|
|
7027
7027
|
});
|
|
7028
7028
|
}), (a = Object.keys(t)) == null || a.forEach((n) => {
|
|
7029
7029
|
const s = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === n);
|
|
@@ -7046,16 +7046,16 @@ const En = [
|
|
|
7046
7046
|
], hn = async (g, A, e) => {
|
|
7047
7047
|
const t = A.data, a = e.data.baseUrl, n = t.assetUrl.replace("localhost", "localstack"), s = a.slice(0, 4) === "http" ? "" : "https://", i = new URL(s + a);
|
|
7048
7048
|
i.searchParams.append("video", he(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
|
|
7049
|
-
const
|
|
7049
|
+
const o = i.toString(), c = `data:image/svg+xml;base64,${he(await Je(o, { type: "svg" }))}`, B = (d) => {
|
|
7050
7050
|
const E = g.find((w) => w.panelId === d.panelId);
|
|
7051
7051
|
if (!E)
|
|
7052
|
-
throw new
|
|
7053
|
-
const
|
|
7052
|
+
throw new T(d);
|
|
7053
|
+
const h = k();
|
|
7054
7054
|
return new J(
|
|
7055
7055
|
{
|
|
7056
|
-
id:
|
|
7056
|
+
id: h,
|
|
7057
7057
|
src: c,
|
|
7058
|
-
type:
|
|
7058
|
+
type: U.Image,
|
|
7059
7059
|
y: d.top,
|
|
7060
7060
|
x: d.left,
|
|
7061
7061
|
width: d.width,
|
|
@@ -7075,17 +7075,17 @@ const En = [
|
|
|
7075
7075
|
try {
|
|
7076
7076
|
const i = Rt(a, t.option);
|
|
7077
7077
|
i && (A[t.stepName] = { selectedVariants: [i] });
|
|
7078
|
-
const
|
|
7079
|
-
var
|
|
7078
|
+
const o = async (r) => {
|
|
7079
|
+
var h;
|
|
7080
7080
|
const c = await Pt(
|
|
7081
|
-
|
|
7081
|
+
r || {
|
|
7082
7082
|
width: 1,
|
|
7083
7083
|
height: 1
|
|
7084
7084
|
},
|
|
7085
|
-
(
|
|
7086
|
-
), B = await Ae(c), l = k(), d = g.find((w) => w.panelId ===
|
|
7085
|
+
(h = i == null ? void 0 : i.asset) == null ? void 0 : h.fileLink
|
|
7086
|
+
), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === r.panelId);
|
|
7087
7087
|
if (!d)
|
|
7088
|
-
throw new
|
|
7088
|
+
throw new T(r);
|
|
7089
7089
|
const E = ee(s, B, {
|
|
7090
7090
|
scale: a.scale,
|
|
7091
7091
|
left: a.x,
|
|
@@ -7098,20 +7098,20 @@ const En = [
|
|
|
7098
7098
|
path: B.path,
|
|
7099
7099
|
dataWidth: B.width,
|
|
7100
7100
|
dataHeight: B.height,
|
|
7101
|
-
type:
|
|
7101
|
+
type: U.Frame,
|
|
7102
7102
|
focalBlur: t.data.focalBlur,
|
|
7103
7103
|
focalBlurStrength: t.data.focalBlurStrength,
|
|
7104
7104
|
focalBlurRadius: t.data.focalBlurRadius,
|
|
7105
7105
|
forceImageCover: t.data.forceImageCover,
|
|
7106
|
-
x:
|
|
7107
|
-
y:
|
|
7108
|
-
width:
|
|
7109
|
-
height:
|
|
7110
|
-
layer:
|
|
7111
|
-
layerIndex:
|
|
7112
|
-
rotation:
|
|
7113
|
-
scaleX:
|
|
7114
|
-
scaleY:
|
|
7106
|
+
x: r.left,
|
|
7107
|
+
y: r.top,
|
|
7108
|
+
width: r.width,
|
|
7109
|
+
height: r.height,
|
|
7110
|
+
layer: r.layer,
|
|
7111
|
+
layerIndex: r.layerIndex,
|
|
7112
|
+
rotation: r.rotation,
|
|
7113
|
+
scaleX: r.width / B.width,
|
|
7114
|
+
scaleY: r.height / B.height,
|
|
7115
7115
|
pattern: void 0
|
|
7116
7116
|
},
|
|
7117
7117
|
d
|
|
@@ -7119,12 +7119,12 @@ const En = [
|
|
|
7119
7119
|
new Me(l, s, E)
|
|
7120
7120
|
];
|
|
7121
7121
|
};
|
|
7122
|
-
return (await Promise.all(t.data.regions.map((
|
|
7122
|
+
return (await Promise.all(t.data.regions.map((r) => o(r)))).flat();
|
|
7123
7123
|
} catch (i) {
|
|
7124
7124
|
return console.error(i), [];
|
|
7125
7125
|
}
|
|
7126
7126
|
}, Qn = async (g, A, e, t) => {
|
|
7127
|
-
var p,
|
|
7127
|
+
var p, f;
|
|
7128
7128
|
const a = e.data, n = t.option;
|
|
7129
7129
|
if (!n)
|
|
7130
7130
|
return console.error(`No option for step ${t.stepName}.`), [];
|
|
@@ -7134,47 +7134,47 @@ const En = [
|
|
|
7134
7134
|
if (!s.asset)
|
|
7135
7135
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7136
7136
|
A[t.stepName] = { selectedVariants: [s] };
|
|
7137
|
-
const i = (
|
|
7137
|
+
const i = (f = s.asset) == null ? void 0 : f.fileLink;
|
|
7138
7138
|
if (!i)
|
|
7139
7139
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7140
|
-
const
|
|
7140
|
+
const o = await Z(i, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", E = Pe().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
7141
7141
|
if (!E)
|
|
7142
7142
|
return console.error("Failed to read SVG."), [];
|
|
7143
7143
|
He(E);
|
|
7144
|
-
const
|
|
7144
|
+
const h = {};
|
|
7145
7145
|
Ht(E, (m) => {
|
|
7146
7146
|
En.includes(m.tagName) && !m.attributes.getNamedItem("fill") && m.setAttribute("fill", "#000000");
|
|
7147
|
-
const
|
|
7148
|
-
if (
|
|
7149
|
-
const F =
|
|
7150
|
-
m.classList.add(
|
|
7147
|
+
const y = m.attributes.getNamedItem("fill");
|
|
7148
|
+
if (y && y.value !== "none") {
|
|
7149
|
+
const F = y.value, N = `spiff-fill-${F.replace(/\W/g, "")}`;
|
|
7150
|
+
m.classList.add(N), h[N] = { browserValue: F };
|
|
7151
7151
|
}
|
|
7152
7152
|
const Y = m.attributes.getNamedItem("stroke");
|
|
7153
7153
|
if (Y && Y.value !== "none") {
|
|
7154
|
-
const F = Y.value,
|
|
7155
|
-
m.classList.add(
|
|
7154
|
+
const F = Y.value, N = `spiff-stroke-${F.replace(/\W/g, "")}`;
|
|
7155
|
+
m.classList.add(N), h[N] = { browserValue: F };
|
|
7156
7156
|
}
|
|
7157
7157
|
});
|
|
7158
|
-
const Q = Ue().serializeToString(E),
|
|
7159
|
-
if (
|
|
7160
|
-
for (const [m,
|
|
7161
|
-
for (const Y of Object.keys(
|
|
7162
|
-
if (
|
|
7163
|
-
|
|
7158
|
+
const Q = Ue().serializeToString(E), C = a.colors;
|
|
7159
|
+
if (C) {
|
|
7160
|
+
for (const [m, y] of Object.entries(h))
|
|
7161
|
+
for (const Y of Object.keys(C))
|
|
7162
|
+
if (y.browserValue === Y) {
|
|
7163
|
+
h[m] = { browserValue: C[Y] };
|
|
7164
7164
|
break;
|
|
7165
7165
|
}
|
|
7166
7166
|
}
|
|
7167
7167
|
const u = (m) => {
|
|
7168
|
-
const
|
|
7169
|
-
if (!
|
|
7170
|
-
throw new
|
|
7168
|
+
const y = g.find((F) => F.panelId === m.panelId);
|
|
7169
|
+
if (!y)
|
|
7170
|
+
throw new T(m);
|
|
7171
7171
|
const Y = k();
|
|
7172
7172
|
return new J(
|
|
7173
7173
|
{
|
|
7174
|
-
colors:
|
|
7174
|
+
colors: h,
|
|
7175
7175
|
id: Y,
|
|
7176
7176
|
svg: Q,
|
|
7177
|
-
type:
|
|
7177
|
+
type: U.Illustration,
|
|
7178
7178
|
y: m.top,
|
|
7179
7179
|
x: m.left,
|
|
7180
7180
|
rotation: m.rotation,
|
|
@@ -7184,35 +7184,35 @@ const En = [
|
|
|
7184
7184
|
layerIndex: m.layerIndex,
|
|
7185
7185
|
immutable: m.immutable
|
|
7186
7186
|
},
|
|
7187
|
-
|
|
7187
|
+
y
|
|
7188
7188
|
);
|
|
7189
|
-
},
|
|
7189
|
+
}, D = t.data.regions;
|
|
7190
7190
|
try {
|
|
7191
|
-
return
|
|
7191
|
+
return D.map(u);
|
|
7192
7192
|
} catch (m) {
|
|
7193
7193
|
return console.error(m), [];
|
|
7194
7194
|
}
|
|
7195
7195
|
}, un = async (g, A, e) => {
|
|
7196
|
-
const t = await it(e.data.module), a = A.data, n = (i,
|
|
7197
|
-
const
|
|
7198
|
-
if (!
|
|
7199
|
-
throw new
|
|
7196
|
+
const t = await it(e.data.module), a = A.data, n = (i, o) => {
|
|
7197
|
+
const r = g.find((B) => B.panelId === o.panelId);
|
|
7198
|
+
if (!r)
|
|
7199
|
+
throw new T(o);
|
|
7200
7200
|
const c = k();
|
|
7201
7201
|
return new J(
|
|
7202
7202
|
{
|
|
7203
7203
|
colors: {},
|
|
7204
7204
|
id: c,
|
|
7205
7205
|
svg: i,
|
|
7206
|
-
type:
|
|
7207
|
-
y:
|
|
7208
|
-
x:
|
|
7209
|
-
rotation:
|
|
7210
|
-
width:
|
|
7211
|
-
height:
|
|
7212
|
-
layer:
|
|
7213
|
-
layerIndex:
|
|
7206
|
+
type: U.Illustration,
|
|
7207
|
+
y: o.top,
|
|
7208
|
+
x: o.left,
|
|
7209
|
+
rotation: o.rotation,
|
|
7210
|
+
width: o.width,
|
|
7211
|
+
height: o.height,
|
|
7212
|
+
layer: o.layer,
|
|
7213
|
+
layerIndex: o.layerIndex
|
|
7214
7214
|
},
|
|
7215
|
-
|
|
7215
|
+
r
|
|
7216
7216
|
);
|
|
7217
7217
|
}, s = e.data.regions;
|
|
7218
7218
|
try {
|
|
@@ -7236,16 +7236,16 @@ const En = [
|
|
|
7236
7236
|
const i = (B = s.asset) == null ? void 0 : B.fileLink;
|
|
7237
7237
|
if (!i)
|
|
7238
7238
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
7239
|
-
const
|
|
7240
|
-
const d = g.find((
|
|
7239
|
+
const o = (l) => {
|
|
7240
|
+
const d = g.find((h) => h.panelId === l.panelId);
|
|
7241
7241
|
if (!d)
|
|
7242
|
-
throw new
|
|
7242
|
+
throw new T(l);
|
|
7243
7243
|
const E = k();
|
|
7244
7244
|
return new J(
|
|
7245
7245
|
{
|
|
7246
7246
|
id: E,
|
|
7247
7247
|
src: i,
|
|
7248
|
-
type:
|
|
7248
|
+
type: U.Image,
|
|
7249
7249
|
y: l.top,
|
|
7250
7250
|
x: l.left,
|
|
7251
7251
|
rotation: l.rotation,
|
|
@@ -7258,25 +7258,25 @@ const En = [
|
|
|
7258
7258
|
},
|
|
7259
7259
|
d
|
|
7260
7260
|
);
|
|
7261
|
-
},
|
|
7261
|
+
}, r = t.data.regions;
|
|
7262
7262
|
try {
|
|
7263
|
-
return
|
|
7263
|
+
return r.map(o);
|
|
7264
7264
|
} catch (l) {
|
|
7265
7265
|
return console.error(l), [];
|
|
7266
7266
|
}
|
|
7267
7267
|
}, pn = async (g, A, e, t) => {
|
|
7268
|
-
var
|
|
7268
|
+
var r;
|
|
7269
7269
|
const a = e.data, n = t.option;
|
|
7270
7270
|
if (!n)
|
|
7271
7271
|
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7272
|
-
const s = ((
|
|
7272
|
+
const s = ((r = n.variants) == null ? void 0 : r.find((c) => c.id === a.colorVariantId)) || UA(n);
|
|
7273
7273
|
if (!s)
|
|
7274
7274
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
7275
7275
|
A[t.stepName] = { selectedVariants: [s] };
|
|
7276
7276
|
const i = (c) => {
|
|
7277
7277
|
const B = g.find((w) => w.panelId === c.panelId);
|
|
7278
7278
|
if (!B)
|
|
7279
|
-
throw new
|
|
7279
|
+
throw new T(c);
|
|
7280
7280
|
const l = `
|
|
7281
7281
|
<svg
|
|
7282
7282
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -7297,13 +7297,13 @@ const En = [
|
|
|
7297
7297
|
fill="${s == null ? void 0 : s.color}"
|
|
7298
7298
|
/>
|
|
7299
7299
|
</svg>
|
|
7300
|
-
`, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } },
|
|
7300
|
+
`, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, h = k();
|
|
7301
7301
|
return new J(
|
|
7302
7302
|
{
|
|
7303
7303
|
colors: E,
|
|
7304
|
-
id:
|
|
7304
|
+
id: h,
|
|
7305
7305
|
svg: l,
|
|
7306
|
-
type:
|
|
7306
|
+
type: U.Illustration,
|
|
7307
7307
|
y: c.top,
|
|
7308
7308
|
x: c.left,
|
|
7309
7309
|
rotation: c.rotation,
|
|
@@ -7315,61 +7315,61 @@ const En = [
|
|
|
7315
7315
|
},
|
|
7316
7316
|
B
|
|
7317
7317
|
);
|
|
7318
|
-
},
|
|
7318
|
+
}, o = t.data.regions;
|
|
7319
7319
|
try {
|
|
7320
|
-
return
|
|
7320
|
+
return o.map(i);
|
|
7321
7321
|
} catch (c) {
|
|
7322
7322
|
return console.error(c), [];
|
|
7323
7323
|
}
|
|
7324
7324
|
}, In = async (g, A, e) => {
|
|
7325
7325
|
const t = [], n = (() => {
|
|
7326
|
-
var
|
|
7327
|
-
return A.type === I.ProductOverlay ? e || ((
|
|
7328
|
-
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ?
|
|
7326
|
+
var r, c;
|
|
7327
|
+
return A.type === I.ProductOverlay ? e || ((r = A.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = A.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
7328
|
+
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? U.Image : n.endsWith(".svg") ? U.Illustration : U.Illustration)(), o = A.data.regions;
|
|
7329
7329
|
if (i === "image")
|
|
7330
7330
|
try {
|
|
7331
|
-
|
|
7332
|
-
const c = g.find((l) => l.panelId ===
|
|
7331
|
+
o.forEach((r) => {
|
|
7332
|
+
const c = g.find((l) => l.panelId === r.panelId);
|
|
7333
7333
|
if (!c)
|
|
7334
|
-
throw new
|
|
7334
|
+
throw new T(r);
|
|
7335
7335
|
const B = {
|
|
7336
7336
|
id: k(),
|
|
7337
7337
|
src: n,
|
|
7338
7338
|
type: i,
|
|
7339
|
-
y:
|
|
7340
|
-
x:
|
|
7341
|
-
width:
|
|
7342
|
-
height:
|
|
7343
|
-
layer:
|
|
7344
|
-
layerIndex:
|
|
7339
|
+
y: r.top,
|
|
7340
|
+
x: r.left,
|
|
7341
|
+
width: r.width,
|
|
7342
|
+
height: r.height,
|
|
7343
|
+
layer: r.layer,
|
|
7344
|
+
layerIndex: r.layerIndex,
|
|
7345
7345
|
productOverlay: A.type === I.ProductOverlay ? !0 : void 0,
|
|
7346
7346
|
scaleX: 1,
|
|
7347
7347
|
scaleY: 1,
|
|
7348
|
-
rotation:
|
|
7348
|
+
rotation: r.rotation,
|
|
7349
7349
|
excludeFromExport: A.data.excludeFromPrint,
|
|
7350
7350
|
preserveAspectRatio: "none"
|
|
7351
7351
|
};
|
|
7352
7352
|
t.push(new J(B, c));
|
|
7353
7353
|
});
|
|
7354
|
-
} catch (
|
|
7355
|
-
console.error(
|
|
7354
|
+
} catch (r) {
|
|
7355
|
+
console.error(r);
|
|
7356
7356
|
}
|
|
7357
7357
|
else {
|
|
7358
|
-
const
|
|
7358
|
+
const r = await Z(n, !0), c = (B) => {
|
|
7359
7359
|
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], E = (d == null ? void 0 : d.length) > 0 ? d[0] : "", Q = Pe().parseFromString(E, "image/svg+xml").firstElementChild;
|
|
7360
7360
|
if (!Q)
|
|
7361
7361
|
throw new rA("Failed to read SVG.");
|
|
7362
7362
|
return He(Q), Ue().serializeToString(Q);
|
|
7363
7363
|
};
|
|
7364
|
-
|
|
7364
|
+
o.forEach((B) => {
|
|
7365
7365
|
const l = g.find((E) => E.panelId === B.panelId);
|
|
7366
7366
|
if (!l)
|
|
7367
|
-
throw new
|
|
7367
|
+
throw new T(B);
|
|
7368
7368
|
const d = {
|
|
7369
7369
|
id: k(),
|
|
7370
7370
|
src: n,
|
|
7371
7371
|
asset_key: n,
|
|
7372
|
-
svg: c(
|
|
7372
|
+
svg: c(r),
|
|
7373
7373
|
colors: {},
|
|
7374
7374
|
type: i,
|
|
7375
7375
|
y: B.top,
|
|
@@ -7389,20 +7389,20 @@ const En = [
|
|
|
7389
7389
|
}
|
|
7390
7390
|
return t;
|
|
7391
7391
|
}, Dn = async (g, A, e, t) => {
|
|
7392
|
-
const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center",
|
|
7392
|
+
const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", o = () => {
|
|
7393
7393
|
var u;
|
|
7394
7394
|
const w = t.option;
|
|
7395
7395
|
if (!w)
|
|
7396
7396
|
return;
|
|
7397
|
-
const Q = ((u = w.variants) == null ? void 0 : u.find((
|
|
7397
|
+
const Q = ((u = w.variants) == null ? void 0 : u.find((D) => D.id === n.fontVariantId)) || UA(w);
|
|
7398
7398
|
if (!Q || !Q.asset)
|
|
7399
7399
|
return;
|
|
7400
7400
|
A[t.stepName] = { selectedVariants: [Q] };
|
|
7401
|
-
const
|
|
7402
|
-
if (
|
|
7403
|
-
return
|
|
7401
|
+
const C = Q.asset.fileLink;
|
|
7402
|
+
if (C)
|
|
7403
|
+
return C;
|
|
7404
7404
|
}, c = await (async () => {
|
|
7405
|
-
const w =
|
|
7405
|
+
const w = o();
|
|
7406
7406
|
if (!w)
|
|
7407
7407
|
return;
|
|
7408
7408
|
const Q = await te(w);
|
|
@@ -7417,14 +7417,14 @@ const En = [
|
|
|
7417
7417
|
const Q = w.colorOption;
|
|
7418
7418
|
if (!Q)
|
|
7419
7419
|
return;
|
|
7420
|
-
const
|
|
7421
|
-
return
|
|
7422
|
-
}, E = n.color || await d(t.data),
|
|
7423
|
-
for (const w of
|
|
7420
|
+
const C = z.getDefaultVariant(Q);
|
|
7421
|
+
return C == null ? void 0 : C.color;
|
|
7422
|
+
}, E = n.color || await d(t.data), h = t.data.regions;
|
|
7423
|
+
for (const w of h) {
|
|
7424
7424
|
const Q = g.find((u) => u.panelId === w.panelId);
|
|
7425
7425
|
if (!Q)
|
|
7426
7426
|
continue;
|
|
7427
|
-
const
|
|
7427
|
+
const C = {
|
|
7428
7428
|
stepName: e.name,
|
|
7429
7429
|
id: k(),
|
|
7430
7430
|
align: i(t.data),
|
|
@@ -7438,7 +7438,7 @@ const En = [
|
|
|
7438
7438
|
paths: t.data.paths,
|
|
7439
7439
|
rotation: w.rotation,
|
|
7440
7440
|
text: l,
|
|
7441
|
-
type:
|
|
7441
|
+
type: U.Textbox,
|
|
7442
7442
|
vertical: t.data.vertical,
|
|
7443
7443
|
verticalAlign: t.data.verticalAlign || "middle",
|
|
7444
7444
|
width: w.width,
|
|
@@ -7446,7 +7446,7 @@ const En = [
|
|
|
7446
7446
|
y: w.top
|
|
7447
7447
|
};
|
|
7448
7448
|
if (c) {
|
|
7449
|
-
const [u,
|
|
7449
|
+
const [u, D] = IA(
|
|
7450
7450
|
t.data.size || s,
|
|
7451
7451
|
c,
|
|
7452
7452
|
w,
|
|
@@ -7465,16 +7465,16 @@ const En = [
|
|
|
7465
7465
|
a.push(
|
|
7466
7466
|
new J(
|
|
7467
7467
|
{
|
|
7468
|
-
...
|
|
7468
|
+
...C,
|
|
7469
7469
|
fontSize: u,
|
|
7470
|
-
text:
|
|
7470
|
+
text: C.curved ? C.text : (D || []).join(`
|
|
7471
7471
|
`)
|
|
7472
7472
|
},
|
|
7473
7473
|
Q
|
|
7474
7474
|
)
|
|
7475
7475
|
);
|
|
7476
7476
|
} else
|
|
7477
|
-
a.push(new J(
|
|
7477
|
+
a.push(new J(C, Q));
|
|
7478
7478
|
}
|
|
7479
7479
|
return a;
|
|
7480
7480
|
}, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
|
|
@@ -7489,7 +7489,7 @@ const En = [
|
|
|
7489
7489
|
}) : !0, Fn = async (g, A, e, t) => {
|
|
7490
7490
|
const a = [], n = {};
|
|
7491
7491
|
for (const s of g) {
|
|
7492
|
-
const i = A.steps.find((
|
|
7492
|
+
const i = A.steps.find((o) => o.stepName === s.name);
|
|
7493
7493
|
if (i)
|
|
7494
7494
|
switch (i.type) {
|
|
7495
7495
|
case I.DigitalContent:
|
|
@@ -7637,8 +7637,8 @@ class yn {
|
|
|
7637
7637
|
}
|
|
7638
7638
|
}
|
|
7639
7639
|
class Yn extends Xe {
|
|
7640
|
-
constructor(A, e, t, a, n, s, i,
|
|
7641
|
-
super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.variationRecord = i, this.productOverlayImageUrl =
|
|
7640
|
+
constructor(A, e, t, a, n, s, i, o) {
|
|
7641
|
+
super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.variationRecord = i, this.productOverlayImageUrl = o;
|
|
7642
7642
|
}
|
|
7643
7643
|
/**
|
|
7644
7644
|
* Returns the resolution expected for generated textures.
|
|
@@ -7678,33 +7678,33 @@ class Yn extends Xe {
|
|
|
7678
7678
|
return;
|
|
7679
7679
|
const e = A.layoutState.elements || [];
|
|
7680
7680
|
if (this.variationRecord) {
|
|
7681
|
-
const l = this.variationRecord.values.map((
|
|
7682
|
-
stepName:
|
|
7683
|
-
stepAspectType:
|
|
7684
|
-
value:
|
|
7681
|
+
const l = this.variationRecord.values.map((h) => ({
|
|
7682
|
+
stepName: h.stepName,
|
|
7683
|
+
stepAspectType: h.aspect,
|
|
7684
|
+
value: h.value
|
|
7685
7685
|
})), d = await xn(
|
|
7686
7686
|
Sn(l, this.workflow),
|
|
7687
7687
|
this.workflow,
|
|
7688
|
-
this.layouts.map((
|
|
7688
|
+
this.layouts.map((h) => h.layoutState.layout),
|
|
7689
7689
|
this.productOverlayImageUrl
|
|
7690
7690
|
), E = d == null ? void 0 : d.layouts[A.layoutState.layout.id];
|
|
7691
|
-
((E == null ? void 0 : E.elements) || []).forEach((
|
|
7692
|
-
const w = e.find((Q) => Q.stepName ===
|
|
7693
|
-
w && w.type ===
|
|
7691
|
+
((E == null ? void 0 : E.elements) || []).forEach((h) => {
|
|
7692
|
+
const w = e.find((Q) => Q.stepName === h.stepName);
|
|
7693
|
+
w && w.type === U.Textbox ? (w.text = h.text, w.fontSize = h.fontSize) : e.push(h);
|
|
7694
7694
|
}), Gt(e);
|
|
7695
7695
|
}
|
|
7696
7696
|
const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
|
|
7697
|
-
let i,
|
|
7697
|
+
let i, o;
|
|
7698
7698
|
if (this.nonPOTSupport) {
|
|
7699
7699
|
const l = n / s;
|
|
7700
|
-
t / a < l ? (i = n,
|
|
7701
|
-
const E = this.resizeFit({ width: i, height:
|
|
7702
|
-
i = E.width,
|
|
7700
|
+
t / a < l ? (i = n, o = a * (n / t)) : (i = t * (s / a), o = s);
|
|
7701
|
+
const E = this.resizeFit({ width: i, height: o });
|
|
7702
|
+
i = E.width, o = E.height;
|
|
7703
7703
|
} else
|
|
7704
|
-
i = this.getDynamicTextureResolution().width,
|
|
7705
|
-
const
|
|
7704
|
+
i = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
|
|
7705
|
+
const r = Ye(A.layoutState.layout, e, {
|
|
7706
7706
|
renderingConfiguration: { purpose: Se.ThreeD }
|
|
7707
|
-
}), c = xe(
|
|
7707
|
+
}), c = xe(r), B = await Ge.from(this.ctx, c, {
|
|
7708
7708
|
anonymousCrossOrigin: !0,
|
|
7709
7709
|
ignoreDimensions: !this.nonPOTSupport,
|
|
7710
7710
|
ignoreAnimation: !0,
|
|
@@ -7716,7 +7716,7 @@ class Yn extends Xe {
|
|
|
7716
7716
|
DOMParser: Re(),
|
|
7717
7717
|
fetch: _A
|
|
7718
7718
|
});
|
|
7719
|
-
B.resize(i,
|
|
7719
|
+
B.resize(i, o), await B.render(), this.onRender();
|
|
7720
7720
|
}
|
|
7721
7721
|
}
|
|
7722
7722
|
const Sn = (g, A) => {
|
|
@@ -7735,10 +7735,10 @@ const Sn = (g, A) => {
|
|
|
7735
7735
|
serializableWorkflow: { steps: [] },
|
|
7736
7736
|
layouts: {}
|
|
7737
7737
|
};
|
|
7738
|
-
a = new G(e.map((
|
|
7738
|
+
a = new G(e.map((o) => new Ut(o))).apply(a);
|
|
7739
7739
|
const s = await Fn(g, A, e, t);
|
|
7740
7740
|
return new G(s).apply(a);
|
|
7741
|
-
}, Nn =
|
|
7741
|
+
}, Nn = M`
|
|
7742
7742
|
fragment ProductFields on Product {
|
|
7743
7743
|
id
|
|
7744
7744
|
basePrice
|
|
@@ -7773,7 +7773,7 @@ const Sn = (g, A) => {
|
|
|
7773
7773
|
name
|
|
7774
7774
|
}
|
|
7775
7775
|
}
|
|
7776
|
-
`, Rn =
|
|
7776
|
+
`, Rn = M`
|
|
7777
7777
|
${Nn}
|
|
7778
7778
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
7779
7779
|
id
|
|
@@ -7783,7 +7783,7 @@ const Sn = (g, A) => {
|
|
|
7783
7783
|
...ProductFields
|
|
7784
7784
|
}
|
|
7785
7785
|
}
|
|
7786
|
-
`, dt =
|
|
7786
|
+
`, dt = M`
|
|
7787
7787
|
${Rn}
|
|
7788
7788
|
fragment ProductCollectionFields on ProductCollection {
|
|
7789
7789
|
id
|
|
@@ -7830,7 +7830,7 @@ const Sn = (g, A) => {
|
|
|
7830
7830
|
}
|
|
7831
7831
|
}
|
|
7832
7832
|
}
|
|
7833
|
-
`, Pn =
|
|
7833
|
+
`, Pn = M`
|
|
7834
7834
|
${dt}
|
|
7835
7835
|
query GetBundle($id: String!) {
|
|
7836
7836
|
bundles(ids: [$id]) {
|
|
@@ -7852,7 +7852,7 @@ const Sn = (g, A) => {
|
|
|
7852
7852
|
}
|
|
7853
7853
|
}
|
|
7854
7854
|
}
|
|
7855
|
-
`, Hn =
|
|
7855
|
+
`, Hn = M`
|
|
7856
7856
|
query GetBundleStakeholders($id: String!) {
|
|
7857
7857
|
bundles(ids: [$id]) {
|
|
7858
7858
|
id
|
|
@@ -7872,7 +7872,7 @@ const Sn = (g, A) => {
|
|
|
7872
7872
|
}
|
|
7873
7873
|
}
|
|
7874
7874
|
}
|
|
7875
|
-
`, Un =
|
|
7875
|
+
`, Un = M`
|
|
7876
7876
|
query GetBundlesForCustomer($id: String!) {
|
|
7877
7877
|
customers(ids: [$id]) {
|
|
7878
7878
|
bundleStakeholders {
|
|
@@ -7893,7 +7893,7 @@ const Sn = (g, A) => {
|
|
|
7893
7893
|
}
|
|
7894
7894
|
}
|
|
7895
7895
|
}
|
|
7896
|
-
`, Gn =
|
|
7896
|
+
`, Gn = M`
|
|
7897
7897
|
${dt}
|
|
7898
7898
|
mutation CreateBundle($collectionId: String) {
|
|
7899
7899
|
bundleCreate(collectionId: $collectionId) {
|
|
@@ -7912,25 +7912,25 @@ const Sn = (g, A) => {
|
|
|
7912
7912
|
}
|
|
7913
7913
|
}
|
|
7914
7914
|
}
|
|
7915
|
-
`, vn =
|
|
7915
|
+
`, vn = M`
|
|
7916
7916
|
mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
|
|
7917
7917
|
bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
|
|
7918
7918
|
id
|
|
7919
7919
|
}
|
|
7920
7920
|
}
|
|
7921
|
-
`, kn =
|
|
7921
|
+
`, kn = M`
|
|
7922
7922
|
mutation BundleAddTransaction($id: String!, $transactionId: String!) {
|
|
7923
7923
|
bundleAddTransaction(id: $id, transactionId: $transactionId) {
|
|
7924
7924
|
id
|
|
7925
7925
|
}
|
|
7926
7926
|
}
|
|
7927
|
-
`,
|
|
7927
|
+
`, Jn = M`
|
|
7928
7928
|
mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
|
|
7929
7929
|
bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
|
|
7930
7930
|
id
|
|
7931
7931
|
}
|
|
7932
7932
|
}
|
|
7933
|
-
`,
|
|
7933
|
+
`, bn = M`
|
|
7934
7934
|
mutation BundleRemoveTransaction(
|
|
7935
7935
|
$id: String!
|
|
7936
7936
|
$transactionId: String!
|
|
@@ -7945,7 +7945,7 @@ const Sn = (g, A) => {
|
|
|
7945
7945
|
id
|
|
7946
7946
|
}
|
|
7947
7947
|
}
|
|
7948
|
-
`, Tn =
|
|
7948
|
+
`, Tn = M`
|
|
7949
7949
|
mutation BundleRemoveTransactions(
|
|
7950
7950
|
$id: String!
|
|
7951
7951
|
$transactionIds: [String!]!
|
|
@@ -7960,7 +7960,7 @@ const Sn = (g, A) => {
|
|
|
7960
7960
|
id
|
|
7961
7961
|
}
|
|
7962
7962
|
}
|
|
7963
|
-
`, Ln =
|
|
7963
|
+
`, Ln = M`
|
|
7964
7964
|
mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
|
|
7965
7965
|
bundleAddStakeholder(id: $id, details: $details, type: $type) {
|
|
7966
7966
|
id
|
|
@@ -7980,7 +7980,7 @@ const Sn = (g, A) => {
|
|
|
7980
7980
|
}
|
|
7981
7981
|
}
|
|
7982
7982
|
}
|
|
7983
|
-
`, On =
|
|
7983
|
+
`, On = M`
|
|
7984
7984
|
mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
|
|
7985
7985
|
bundleUpdateStakeholders(id: $id, input: $input) {
|
|
7986
7986
|
id
|
|
@@ -8000,7 +8000,7 @@ const Sn = (g, A) => {
|
|
|
8000
8000
|
}
|
|
8001
8001
|
}
|
|
8002
8002
|
}
|
|
8003
|
-
`, zn =
|
|
8003
|
+
`, zn = M`
|
|
8004
8004
|
mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
|
|
8005
8005
|
bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
|
|
8006
8006
|
id
|
|
@@ -8105,8 +8105,8 @@ class ge {
|
|
|
8105
8105
|
var s;
|
|
8106
8106
|
return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
|
|
8107
8107
|
(i) => {
|
|
8108
|
-
var
|
|
8109
|
-
return i.globalPropertyConfigurationId === ((
|
|
8108
|
+
var o, r;
|
|
8109
|
+
return i.globalPropertyConfigurationId === ((r = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : r.id) && i.aspectName === this.property.name;
|
|
8110
8110
|
}
|
|
8111
8111
|
);
|
|
8112
8112
|
})
|
|
@@ -8132,7 +8132,7 @@ class jn extends ge {
|
|
|
8132
8132
|
const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
8133
8133
|
if (!e)
|
|
8134
8134
|
return Promise.resolve();
|
|
8135
|
-
const t = await
|
|
8135
|
+
const t = await b.getLocalOrFromServer(e);
|
|
8136
8136
|
return t ? this.applyImageSelection(t, A) : Promise.resolve();
|
|
8137
8137
|
}
|
|
8138
8138
|
async applyImageSelection(A, e) {
|
|
@@ -8252,7 +8252,7 @@ class Wn extends wt {
|
|
|
8252
8252
|
return this.getSharedSteps()[0].getCustomColor();
|
|
8253
8253
|
}
|
|
8254
8254
|
}
|
|
8255
|
-
const Xn =
|
|
8255
|
+
const Xn = M`
|
|
8256
8256
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
8257
8257
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
8258
8258
|
id
|
|
@@ -8262,7 +8262,7 @@ const Xn = y`
|
|
|
8262
8262
|
}
|
|
8263
8263
|
}
|
|
8264
8264
|
}
|
|
8265
|
-
`, qn =
|
|
8265
|
+
`, qn = M`
|
|
8266
8266
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
8267
8267
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
8268
8268
|
id
|
|
@@ -8272,7 +8272,7 @@ const Xn = y`
|
|
|
8272
8272
|
}
|
|
8273
8273
|
}
|
|
8274
8274
|
}
|
|
8275
|
-
`, Zn =
|
|
8275
|
+
`, Zn = M`
|
|
8276
8276
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
8277
8277
|
globalPropertyState(bundleId: $bundleId) {
|
|
8278
8278
|
id
|
|
@@ -8312,7 +8312,7 @@ class $n {
|
|
|
8312
8312
|
var e;
|
|
8313
8313
|
if (!this.globalPropertyState)
|
|
8314
8314
|
throw new Error("Global property state not initialized");
|
|
8315
|
-
const A = await
|
|
8315
|
+
const A = await x.getShadowGraphqlClient().mutate({
|
|
8316
8316
|
mutation: qn,
|
|
8317
8317
|
variables: {
|
|
8318
8318
|
id: this.globalPropertyState.id,
|
|
@@ -8326,7 +8326,7 @@ class $n {
|
|
|
8326
8326
|
}
|
|
8327
8327
|
async getOrCreateGlobalPropertyState() {
|
|
8328
8328
|
var t;
|
|
8329
|
-
const A = await
|
|
8329
|
+
const A = await x.getShadowGraphqlClient().query({
|
|
8330
8330
|
query: Zn,
|
|
8331
8331
|
errorPolicy: "all",
|
|
8332
8332
|
fetchPolicy: "no-cache",
|
|
@@ -8336,7 +8336,7 @@ class $n {
|
|
|
8336
8336
|
});
|
|
8337
8337
|
if (A.data.globalPropertyState && A.data.globalPropertyState.id)
|
|
8338
8338
|
return A.data.globalPropertyState;
|
|
8339
|
-
const e = await
|
|
8339
|
+
const e = await x.getShadowGraphqlClient().mutate({
|
|
8340
8340
|
mutation: Xn,
|
|
8341
8341
|
variables: {
|
|
8342
8342
|
bundleId: this.bundleId
|
|
@@ -8382,7 +8382,7 @@ class _n {
|
|
|
8382
8382
|
this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
|
|
8383
8383
|
transactions: []
|
|
8384
8384
|
};
|
|
8385
|
-
const s = this.state.transactions.find((
|
|
8385
|
+
const s = this.state.transactions.find((o) => o.transactionId === n);
|
|
8386
8386
|
s ? s.transform = e : this.state.transactions.push({
|
|
8387
8387
|
transactionId: n,
|
|
8388
8388
|
transform: e
|
|
@@ -8471,18 +8471,20 @@ class es {
|
|
|
8471
8471
|
/**
|
|
8472
8472
|
* A helper function for getting integrations
|
|
8473
8473
|
* @param type The type of integration you want.
|
|
8474
|
+
* @param externalId An external integration ID to further filter by. Otherwise we return the first encountered.
|
|
8474
8475
|
* @returns The integration if found. Throws an error if not found as this data is typically a neccesity.
|
|
8475
8476
|
*/
|
|
8476
|
-
getIntegrationByType(A) {
|
|
8477
|
-
const
|
|
8478
|
-
var
|
|
8479
|
-
|
|
8477
|
+
getIntegrationByType(A, e) {
|
|
8478
|
+
const a = (this.product.integrationProducts || []).find((n) => {
|
|
8479
|
+
var r, c, B;
|
|
8480
|
+
const s = (r = n.integration) == null ? void 0 : r.type, i = ((c = n.integration) == null ? void 0 : c.type) === A, o = e ? ((B = n.integration) == null ? void 0 : B.externalIntegrationId) === e : !0;
|
|
8481
|
+
return s && i && o;
|
|
8480
8482
|
});
|
|
8481
|
-
if (!
|
|
8483
|
+
if (!a)
|
|
8482
8484
|
throw new Error(
|
|
8483
8485
|
"Failed to find requested integration type on product. This is generally due to a configuration error"
|
|
8484
8486
|
);
|
|
8485
|
-
return
|
|
8487
|
+
return a;
|
|
8486
8488
|
}
|
|
8487
8489
|
/**
|
|
8488
8490
|
* A helper function for pulling the default workflow.
|
|
@@ -8490,7 +8492,7 @@ class es {
|
|
|
8490
8492
|
getDefaultWorkflow() {
|
|
8491
8493
|
const A = this.product.workflows || [];
|
|
8492
8494
|
if (A.length === 0)
|
|
8493
|
-
throw new
|
|
8495
|
+
throw new H(
|
|
8494
8496
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
8495
8497
|
);
|
|
8496
8498
|
const e = this.productResource.workflowId;
|
|
@@ -8592,11 +8594,11 @@ class as {
|
|
|
8592
8594
|
class fe {
|
|
8593
8595
|
constructor(A, e, t, a) {
|
|
8594
8596
|
var n, s, i;
|
|
8595
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((
|
|
8597
|
+
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((o) => [o.key, o.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new _n(e.bundleStateData), this.globalConfiguration = (s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration, this.globalPropertyStateManager = new $n(
|
|
8596
8598
|
this.id,
|
|
8597
8599
|
this.checkConditionalHandlesChanged.bind(this)
|
|
8598
8600
|
), this.globalPropertyHandleService = new Kn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
|
|
8599
|
-
((i = e.transactions) == null ? void 0 : i.map((
|
|
8601
|
+
((i = e.transactions) == null ? void 0 : i.map((o) => o.id)) || [],
|
|
8600
8602
|
a
|
|
8601
8603
|
);
|
|
8602
8604
|
}
|
|
@@ -8668,9 +8670,9 @@ class fe {
|
|
|
8668
8670
|
throw new Error(
|
|
8669
8671
|
"Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
|
|
8670
8672
|
);
|
|
8671
|
-
const a =
|
|
8672
|
-
await
|
|
8673
|
-
mutation:
|
|
8673
|
+
const a = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
|
|
8674
|
+
await x.getShadowGraphqlClient().mutate({
|
|
8675
|
+
mutation: Jn,
|
|
8674
8676
|
variables: {
|
|
8675
8677
|
id: this.id,
|
|
8676
8678
|
transactionIds: e,
|
|
@@ -8694,8 +8696,8 @@ class fe {
|
|
|
8694
8696
|
(i) => i.getWorkflowManager().getTransaction().id === t
|
|
8695
8697
|
))
|
|
8696
8698
|
throw new Error("Unable to add transaction to bundle - Already Exists!");
|
|
8697
|
-
const s = (
|
|
8698
|
-
await
|
|
8699
|
+
const s = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
|
|
8700
|
+
await x.getShadowGraphqlClient().mutate({
|
|
8699
8701
|
mutation: kn,
|
|
8700
8702
|
variables: {
|
|
8701
8703
|
id: this.id,
|
|
@@ -8727,8 +8729,8 @@ class fe {
|
|
|
8727
8729
|
const a = this.workflowExperiences.find(
|
|
8728
8730
|
(n) => n.getWorkflowManager().getTransaction().id === e.id
|
|
8729
8731
|
);
|
|
8730
|
-
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await
|
|
8731
|
-
mutation:
|
|
8732
|
+
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await x.getShadowGraphqlClient().mutate({
|
|
8733
|
+
mutation: bn,
|
|
8732
8734
|
variables: {
|
|
8733
8735
|
id: this.id,
|
|
8734
8736
|
transactionId: e.id,
|
|
@@ -8754,7 +8756,7 @@ class fe {
|
|
|
8754
8756
|
1
|
|
8755
8757
|
)[0]
|
|
8756
8758
|
);
|
|
8757
|
-
this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await
|
|
8759
|
+
this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
|
|
8758
8760
|
mutation: Tn,
|
|
8759
8761
|
variables: {
|
|
8760
8762
|
id: this.id,
|
|
@@ -8812,7 +8814,7 @@ class fe {
|
|
|
8812
8814
|
}
|
|
8813
8815
|
async addStakeholder(A, e) {
|
|
8814
8816
|
var n;
|
|
8815
|
-
const t = await
|
|
8817
|
+
const t = await x.getShadowGraphqlClient().mutate({
|
|
8816
8818
|
mutation: Ln,
|
|
8817
8819
|
variables: {
|
|
8818
8820
|
id: this.id,
|
|
@@ -8827,7 +8829,7 @@ class fe {
|
|
|
8827
8829
|
}
|
|
8828
8830
|
async updateStakeholders(A) {
|
|
8829
8831
|
var a;
|
|
8830
|
-
const e = await
|
|
8832
|
+
const e = await x.getShadowGraphqlClient().mutate({
|
|
8831
8833
|
mutation: On,
|
|
8832
8834
|
variables: {
|
|
8833
8835
|
id: this.id,
|
|
@@ -8840,7 +8842,7 @@ class fe {
|
|
|
8840
8842
|
this.storeStakeholderCustomers(t);
|
|
8841
8843
|
}
|
|
8842
8844
|
async getAllStakeholders() {
|
|
8843
|
-
const A = await
|
|
8845
|
+
const A = await x.getShadowGraphqlClient().query({
|
|
8844
8846
|
query: Hn,
|
|
8845
8847
|
errorPolicy: "all",
|
|
8846
8848
|
variables: {
|
|
@@ -8928,7 +8930,7 @@ class fe {
|
|
|
8928
8930
|
}
|
|
8929
8931
|
async updateBundle() {
|
|
8930
8932
|
var e;
|
|
8931
|
-
if (!((e = (await
|
|
8933
|
+
if (!((e = (await x.getShadowGraphqlClient().mutate({
|
|
8932
8934
|
mutation: vn,
|
|
8933
8935
|
variables: {
|
|
8934
8936
|
id: this.id,
|
|
@@ -8940,7 +8942,7 @@ class fe {
|
|
|
8940
8942
|
throw new Error("Bundle not found!");
|
|
8941
8943
|
}
|
|
8942
8944
|
async updateTransactionOrder() {
|
|
8943
|
-
await
|
|
8945
|
+
await x.getShadowGraphqlClient().mutate({
|
|
8944
8946
|
mutation: zn,
|
|
8945
8947
|
variables: {
|
|
8946
8948
|
id: this.id,
|
|
@@ -8971,7 +8973,7 @@ class fe {
|
|
|
8971
8973
|
);
|
|
8972
8974
|
}
|
|
8973
8975
|
}
|
|
8974
|
-
const ns =
|
|
8976
|
+
const ns = M`
|
|
8975
8977
|
mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
|
|
8976
8978
|
processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
|
|
8977
8979
|
id
|
|
@@ -8988,7 +8990,7 @@ class ss {
|
|
|
8988
8990
|
*/
|
|
8989
8991
|
async execute(A, e, t) {
|
|
8990
8992
|
var B, l, d;
|
|
8991
|
-
const n = (l = (B = (await
|
|
8993
|
+
const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
|
|
8992
8994
|
mutation: ns,
|
|
8993
8995
|
variables: {
|
|
8994
8996
|
processFlowId: A,
|
|
@@ -8998,14 +9000,14 @@ class ss {
|
|
|
8998
9000
|
if (!n)
|
|
8999
9001
|
throw new Error("Failed to create process execution.");
|
|
9000
9002
|
function s(E) {
|
|
9001
|
-
return new Promise((
|
|
9002
|
-
setTimeout(
|
|
9003
|
+
return new Promise((h) => {
|
|
9004
|
+
setTimeout(h, E);
|
|
9003
9005
|
});
|
|
9004
9006
|
}
|
|
9005
|
-
let i = !1,
|
|
9007
|
+
let i = !1, o = 0, r, c;
|
|
9006
9008
|
for (; !i; ) {
|
|
9007
|
-
|
|
9008
|
-
query:
|
|
9009
|
+
r = await x.getShadowGraphqlClient().query({
|
|
9010
|
+
query: M`
|
|
9009
9011
|
query getProcessFlowExecution($ids: [String]!) {
|
|
9010
9012
|
processExecutions(ids: $ids) {
|
|
9011
9013
|
id
|
|
@@ -9023,8 +9025,8 @@ class ss {
|
|
|
9023
9025
|
ids: [n]
|
|
9024
9026
|
}
|
|
9025
9027
|
});
|
|
9026
|
-
const E = (d =
|
|
9027
|
-
if (!
|
|
9028
|
+
const E = (d = r.data) == null ? void 0 : d.processExecutions[0];
|
|
9029
|
+
if (!r || !E)
|
|
9028
9030
|
throw new Error("Failed to retrieve server response for execution.");
|
|
9029
9031
|
if (E.failedAt)
|
|
9030
9032
|
throw new Error(
|
|
@@ -9034,9 +9036,9 @@ class ss {
|
|
|
9034
9036
|
i = !0, c = new is(E);
|
|
9035
9037
|
break;
|
|
9036
9038
|
}
|
|
9037
|
-
|
|
9038
|
-
const
|
|
9039
|
-
if (
|
|
9039
|
+
o += 1;
|
|
9040
|
+
const h = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
|
|
9041
|
+
if (o >= h)
|
|
9040
9042
|
throw new Error("Maximum wait time exceeded for execution result.");
|
|
9041
9043
|
await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
|
|
9042
9044
|
}
|
|
@@ -9141,7 +9143,7 @@ class Et extends os {
|
|
|
9141
9143
|
return A.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
9142
9144
|
}
|
|
9143
9145
|
}
|
|
9144
|
-
const cs =
|
|
9146
|
+
const cs = M`
|
|
9145
9147
|
fragment RegionFields on Region {
|
|
9146
9148
|
width
|
|
9147
9149
|
top
|
|
@@ -9159,7 +9161,7 @@ const cs = y`
|
|
|
9159
9161
|
height
|
|
9160
9162
|
}
|
|
9161
9163
|
}
|
|
9162
|
-
`, gs =
|
|
9164
|
+
`, gs = M`
|
|
9163
9165
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
9164
9166
|
latDeg
|
|
9165
9167
|
lonDeg
|
|
@@ -9170,7 +9172,7 @@ const cs = y`
|
|
|
9170
9172
|
z
|
|
9171
9173
|
}
|
|
9172
9174
|
}
|
|
9173
|
-
`, ls =
|
|
9175
|
+
`, ls = M`
|
|
9174
9176
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
9175
9177
|
antiAliasing {
|
|
9176
9178
|
samples
|
|
@@ -9254,14 +9256,14 @@ const cs = y`
|
|
|
9254
9256
|
weight
|
|
9255
9257
|
}
|
|
9256
9258
|
}
|
|
9257
|
-
`, Bs =
|
|
9259
|
+
`, Bs = M`
|
|
9258
9260
|
fragment ModelAnimationFields on ModelAnimation {
|
|
9259
9261
|
from
|
|
9260
9262
|
to
|
|
9261
9263
|
loop
|
|
9262
9264
|
name
|
|
9263
9265
|
}
|
|
9264
|
-
`, ds = (g) =>
|
|
9266
|
+
`, ds = (g) => M`
|
|
9265
9267
|
${kA(g)}
|
|
9266
9268
|
${se}
|
|
9267
9269
|
${je}
|
|
@@ -9363,7 +9365,6 @@ const cs = y`
|
|
|
9363
9365
|
stepTitle
|
|
9364
9366
|
helpText
|
|
9365
9367
|
mandatory
|
|
9366
|
-
silent
|
|
9367
9368
|
conditions {
|
|
9368
9369
|
requiredVariantSelections
|
|
9369
9370
|
targetStepName
|
|
@@ -9657,7 +9658,7 @@ const cs = y`
|
|
|
9657
9658
|
}
|
|
9658
9659
|
}
|
|
9659
9660
|
}
|
|
9660
|
-
`, ws =
|
|
9661
|
+
`, ws = M`
|
|
9661
9662
|
query GetTransactionForPartner($id: String!) {
|
|
9662
9663
|
transactions(ids: [$id]) {
|
|
9663
9664
|
id
|
|
@@ -9674,7 +9675,7 @@ const cs = y`
|
|
|
9674
9675
|
}
|
|
9675
9676
|
}
|
|
9676
9677
|
}
|
|
9677
|
-
`, Es =
|
|
9678
|
+
`, Es = M`
|
|
9678
9679
|
${kA(!1)}
|
|
9679
9680
|
query GetWorkflowForTheme($id: String!) {
|
|
9680
9681
|
workflow(id: $id) {
|
|
@@ -9696,7 +9697,7 @@ const cs = y`
|
|
|
9696
9697
|
}
|
|
9697
9698
|
}
|
|
9698
9699
|
}
|
|
9699
|
-
`, hs =
|
|
9700
|
+
`, hs = M`
|
|
9700
9701
|
query GetCustomer($emailAddress: String!) {
|
|
9701
9702
|
customer(emailAddress: $emailAddress) {
|
|
9702
9703
|
id
|
|
@@ -9706,7 +9707,7 @@ const cs = y`
|
|
|
9706
9707
|
}
|
|
9707
9708
|
}
|
|
9708
9709
|
}
|
|
9709
|
-
`, Cs =
|
|
9710
|
+
`, Cs = M`
|
|
9710
9711
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
9711
9712
|
customerCreate(details: $details) {
|
|
9712
9713
|
id
|
|
@@ -9716,7 +9717,7 @@ const cs = y`
|
|
|
9716
9717
|
}
|
|
9717
9718
|
}
|
|
9718
9719
|
}
|
|
9719
|
-
`, Qs =
|
|
9720
|
+
`, Qs = M`
|
|
9720
9721
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
9721
9722
|
customerAuthenticate(loginToken: $loginToken) {
|
|
9722
9723
|
id
|
|
@@ -9743,11 +9744,11 @@ const cs = y`
|
|
|
9743
9744
|
}
|
|
9744
9745
|
}
|
|
9745
9746
|
}
|
|
9746
|
-
`, us =
|
|
9747
|
+
`, us = M`
|
|
9747
9748
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
9748
9749
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
9749
9750
|
}
|
|
9750
|
-
`, ms =
|
|
9751
|
+
`, ms = M`
|
|
9751
9752
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
9752
9753
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
9753
9754
|
id
|
|
@@ -9779,13 +9780,13 @@ const cs = y`
|
|
|
9779
9780
|
var A;
|
|
9780
9781
|
for (const e in g.layouts) {
|
|
9781
9782
|
const t = g.layouts[e].elements.filter(
|
|
9782
|
-
(n) => n.type ===
|
|
9783
|
+
(n) => n.type === U.Illustration
|
|
9783
9784
|
);
|
|
9784
9785
|
for (let n = 0; n < t.length; ++n) {
|
|
9785
9786
|
const s = t[n];
|
|
9786
9787
|
s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
|
|
9787
9788
|
}
|
|
9788
|
-
const a = g.layouts[e].elements.filter((n) => n.type ===
|
|
9789
|
+
const a = g.layouts[e].elements.filter((n) => n.type === U.Textbox);
|
|
9789
9790
|
for (let n = 0; n < a.length; ++n) {
|
|
9790
9791
|
const s = a[n];
|
|
9791
9792
|
(A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
|
|
@@ -9793,7 +9794,7 @@ const cs = y`
|
|
|
9793
9794
|
}
|
|
9794
9795
|
}, ps = async (g, A) => {
|
|
9795
9796
|
var a;
|
|
9796
|
-
const e = await
|
|
9797
|
+
const e = await x.getShadowGraphqlClient().query({
|
|
9797
9798
|
query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
|
|
9798
9799
|
errorPolicy: "all",
|
|
9799
9800
|
fetchPolicy: "no-cache",
|
|
@@ -9805,9 +9806,9 @@ const cs = y`
|
|
|
9805
9806
|
throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
|
|
9806
9807
|
return t.forEach((n) => {
|
|
9807
9808
|
n.steps.forEach((s) => {
|
|
9808
|
-
var i,
|
|
9809
|
-
delete s.data.__typename, (i = s.option) != null && i.id && ((
|
|
9810
|
-
c.asset &&
|
|
9809
|
+
var i, o, r;
|
|
9810
|
+
delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && b.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && b.cacheAsset(s.option.colorProfile), (r = s.option.variants) == null || r.forEach((c) => {
|
|
9811
|
+
c.asset && b.cacheAsset(c.asset), c.displayImage && b.cacheAsset(c.displayImage), c.thumbnail && b.cacheAsset(c.thumbnail), c.material && b.cacheMaterial(c.material);
|
|
9811
9812
|
}), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
|
|
9812
9813
|
});
|
|
9813
9814
|
}), t;
|
|
@@ -9817,7 +9818,7 @@ const cs = y`
|
|
|
9817
9818
|
throw new Error(`Workflow not found: ${g}`);
|
|
9818
9819
|
return t;
|
|
9819
9820
|
}, ht = async (g, A) => {
|
|
9820
|
-
const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i,
|
|
9821
|
+
const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, o) => e[o] === void 0);
|
|
9821
9822
|
if (t.length === 0)
|
|
9822
9823
|
return Promise.all(e);
|
|
9823
9824
|
const a = ps(t, A), n = t.map(
|
|
@@ -9845,12 +9846,12 @@ class fs {
|
|
|
9845
9846
|
constructor(A) {
|
|
9846
9847
|
this.updateTransactionState = async (e) => {
|
|
9847
9848
|
try {
|
|
9848
|
-
return
|
|
9849
|
+
return x.getShadowGraphqlClient().mutate({
|
|
9849
9850
|
...e,
|
|
9850
9851
|
mutation: la
|
|
9851
9852
|
});
|
|
9852
9853
|
} catch (t) {
|
|
9853
|
-
throw console.error(t), new
|
|
9854
|
+
throw console.error(t), new H("Critical - Unable to synchronize workflow state with server.");
|
|
9854
9855
|
}
|
|
9855
9856
|
}, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
|
|
9856
9857
|
}
|
|
@@ -9859,7 +9860,7 @@ class fs {
|
|
|
9859
9860
|
* and the Spiff Commerce platform.
|
|
9860
9861
|
*/
|
|
9861
9862
|
getAssetManager() {
|
|
9862
|
-
return
|
|
9863
|
+
return b;
|
|
9863
9864
|
}
|
|
9864
9865
|
getCurrencyCode() {
|
|
9865
9866
|
if (this.currencyCode === void 0)
|
|
@@ -9879,15 +9880,15 @@ class fs {
|
|
|
9879
9880
|
*/
|
|
9880
9881
|
async authenticateBundleFromLocalStorage(A) {
|
|
9881
9882
|
var a, n;
|
|
9882
|
-
const e =
|
|
9883
|
+
const e = S.getMap("bundleOwnerIds");
|
|
9883
9884
|
if (e != null && e.has(A)) {
|
|
9884
9885
|
const s = e.get(A);
|
|
9885
9886
|
return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
|
|
9886
9887
|
}
|
|
9887
|
-
const t =
|
|
9888
|
+
const t = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9888
9889
|
if (t.has(A)) {
|
|
9889
|
-
const s = t.get(A),
|
|
9890
|
-
if (
|
|
9890
|
+
const s = t.get(A), o = (S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
|
|
9891
|
+
if (o && await this.authenticateCustomerId(o)) {
|
|
9891
9892
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
9892
9893
|
(B) => {
|
|
9893
9894
|
var l;
|
|
@@ -9914,8 +9915,8 @@ class fs {
|
|
|
9914
9915
|
* @throws An error if the transaction is not found.
|
|
9915
9916
|
*/
|
|
9916
9917
|
async authenticateTransactionFromLocalStorage(A) {
|
|
9917
|
-
var c, B, l, d, E,
|
|
9918
|
-
const e =
|
|
9918
|
+
var c, B, l, d, E, h;
|
|
9919
|
+
const e = x.getShadowGraphqlClient(), t = await e.query({
|
|
9919
9920
|
query: ws,
|
|
9920
9921
|
errorPolicy: "all",
|
|
9921
9922
|
fetchPolicy: "no-cache",
|
|
@@ -9930,45 +9931,45 @@ class fs {
|
|
|
9930
9931
|
throw new Error(`Unable to read transaction: ${A}`);
|
|
9931
9932
|
if (a.isOrdered)
|
|
9932
9933
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
9933
|
-
const s =
|
|
9934
|
+
const s = S.getMap("transactionOwnerIds");
|
|
9934
9935
|
if (s != null && s.has(A)) {
|
|
9935
9936
|
const w = s.get(A);
|
|
9936
9937
|
return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
|
|
9937
9938
|
}
|
|
9938
|
-
const i =
|
|
9939
|
+
const i = S.getMap("transactionCustomerIds");
|
|
9939
9940
|
if (i != null && i.has(A)) {
|
|
9940
9941
|
const w = i.get(A);
|
|
9941
9942
|
if (w && await this.authenticateCustomerId(w)) {
|
|
9942
|
-
const
|
|
9943
|
+
const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
9943
9944
|
(u) => {
|
|
9944
|
-
var
|
|
9945
|
-
return (p = (
|
|
9945
|
+
var D, p;
|
|
9946
|
+
return (p = (D = u.bundle) == null ? void 0 : D.transactions) == null ? void 0 : p.some((f) => f.id === A);
|
|
9946
9947
|
}
|
|
9947
|
-
)) || ((
|
|
9948
|
+
)) || ((h = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : h.find(
|
|
9948
9949
|
(u) => {
|
|
9949
|
-
var
|
|
9950
|
-
return ((
|
|
9950
|
+
var D;
|
|
9951
|
+
return ((D = u.transaction) == null ? void 0 : D.id) === A;
|
|
9951
9952
|
}
|
|
9952
9953
|
));
|
|
9953
|
-
if (
|
|
9954
|
+
if (C)
|
|
9954
9955
|
return Promise.resolve({
|
|
9955
9956
|
success: !0,
|
|
9956
|
-
stakeholderType:
|
|
9957
|
+
stakeholderType: C.type
|
|
9957
9958
|
});
|
|
9958
9959
|
}
|
|
9959
9960
|
}
|
|
9960
|
-
const
|
|
9961
|
+
const r = (await e.query({
|
|
9961
9962
|
query: Es,
|
|
9962
9963
|
errorPolicy: "all",
|
|
9963
9964
|
variables: {
|
|
9964
9965
|
id: a.workflowId
|
|
9965
9966
|
}
|
|
9966
9967
|
})).data.workflow;
|
|
9967
|
-
if (!
|
|
9968
|
+
if (!r)
|
|
9968
9969
|
throw new Error(`Unable to read workflow: ${a.workflowId}`);
|
|
9969
9970
|
return Promise.resolve({
|
|
9970
9971
|
success: !1,
|
|
9971
|
-
theme:
|
|
9972
|
+
theme: r.overrideTheme,
|
|
9972
9973
|
customLogoLink: a.customLogoLink
|
|
9973
9974
|
});
|
|
9974
9975
|
}
|
|
@@ -9976,8 +9977,8 @@ class fs {
|
|
|
9976
9977
|
this.customer = void 0;
|
|
9977
9978
|
}
|
|
9978
9979
|
clearCustomerForTransaction(A) {
|
|
9979
|
-
const e =
|
|
9980
|
-
e != null && e.has(A) && (e.delete(A),
|
|
9980
|
+
const e = S.getMap("transactionCustomerIds");
|
|
9981
|
+
e != null && e.has(A) && (e.delete(A), S.setMap("transactionCustomerIds", e));
|
|
9981
9982
|
}
|
|
9982
9983
|
getStakeholderTypeForTransaction(A) {
|
|
9983
9984
|
var t, a;
|
|
@@ -9993,7 +9994,7 @@ class fs {
|
|
|
9993
9994
|
async getOrCreateCustomer(A) {
|
|
9994
9995
|
var s;
|
|
9995
9996
|
this.customer = void 0;
|
|
9996
|
-
const e =
|
|
9997
|
+
const e = x.getShadowGraphqlClient(), a = (await e.query({
|
|
9997
9998
|
query: hs,
|
|
9998
9999
|
errorPolicy: "all",
|
|
9999
10000
|
fetchPolicy: "no-cache",
|
|
@@ -10002,7 +10003,7 @@ class fs {
|
|
|
10002
10003
|
}
|
|
10003
10004
|
})).data.customer;
|
|
10004
10005
|
if (!a.id) {
|
|
10005
|
-
const
|
|
10006
|
+
const o = (s = (await e.mutate({
|
|
10006
10007
|
mutation: Cs,
|
|
10007
10008
|
errorPolicy: "all",
|
|
10008
10009
|
fetchPolicy: "no-cache",
|
|
@@ -10012,10 +10013,10 @@ class fs {
|
|
|
10012
10013
|
}
|
|
10013
10014
|
}
|
|
10014
10015
|
})).data) == null ? void 0 : s.customerCreate;
|
|
10015
|
-
if (!
|
|
10016
|
+
if (!o)
|
|
10016
10017
|
throw new Error("Unable to create customer.");
|
|
10017
|
-
return this.storeCustomer(
|
|
10018
|
-
customer:
|
|
10018
|
+
return this.storeCustomer(o), this.customer = o, {
|
|
10019
|
+
customer: o,
|
|
10019
10020
|
isAuthenticated: !1
|
|
10020
10021
|
};
|
|
10021
10022
|
}
|
|
@@ -10028,7 +10029,7 @@ class fs {
|
|
|
10028
10029
|
}
|
|
10029
10030
|
async authenticateCustomerId(A) {
|
|
10030
10031
|
var i;
|
|
10031
|
-
const e =
|
|
10032
|
+
const e = x.getShadowGraphqlClient(), t = S.getMap("customerTokens");
|
|
10032
10033
|
if (!(t != null && t.has(A)))
|
|
10033
10034
|
return !1;
|
|
10034
10035
|
const a = t.get(A);
|
|
@@ -10049,7 +10050,7 @@ class fs {
|
|
|
10049
10050
|
* @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
|
|
10050
10051
|
*/
|
|
10051
10052
|
async generateVerificationCode(A) {
|
|
10052
|
-
await
|
|
10053
|
+
await x.getShadowGraphqlClient().mutate({
|
|
10053
10054
|
mutation: us,
|
|
10054
10055
|
variables: {
|
|
10055
10056
|
emailAddress: A
|
|
@@ -10064,7 +10065,7 @@ class fs {
|
|
|
10064
10065
|
*/
|
|
10065
10066
|
async verifyCode(A, e) {
|
|
10066
10067
|
var n, s;
|
|
10067
|
-
const a = (n = (await
|
|
10068
|
+
const a = (n = (await x.getShadowGraphqlClient().mutate({
|
|
10068
10069
|
mutation: ms,
|
|
10069
10070
|
errorPolicy: "all",
|
|
10070
10071
|
fetchPolicy: "no-cache",
|
|
@@ -10076,8 +10077,8 @@ class fs {
|
|
|
10076
10077
|
if (a != null && a.loginToken) {
|
|
10077
10078
|
if (!((s = a.partner) != null && s.id))
|
|
10078
10079
|
throw new Error(`Unable to find customer: ${A}`);
|
|
10079
|
-
const i =
|
|
10080
|
-
return i.set(a.id, a.loginToken),
|
|
10080
|
+
const i = S.getMap("customerTokens") || /* @__PURE__ */ new Map();
|
|
10081
|
+
return i.set(a.id, a.loginToken), S.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
|
|
10081
10082
|
...a,
|
|
10082
10083
|
loginToken: void 0
|
|
10083
10084
|
}, !0;
|
|
@@ -10090,7 +10091,7 @@ class fs {
|
|
|
10090
10091
|
*/
|
|
10091
10092
|
async getNewBundle(A) {
|
|
10092
10093
|
var s;
|
|
10093
|
-
const t = (s = (await
|
|
10094
|
+
const t = (s = (await x.getShadowGraphqlClient().mutate({
|
|
10094
10095
|
mutation: Gn,
|
|
10095
10096
|
variables: {
|
|
10096
10097
|
collectionId: A
|
|
@@ -10099,10 +10100,10 @@ class fs {
|
|
|
10099
10100
|
})).data) == null ? void 0 : s.bundleCreate;
|
|
10100
10101
|
if (!(t != null && t.id))
|
|
10101
10102
|
throw new Error("Unable to create bundle");
|
|
10102
|
-
const a =
|
|
10103
|
-
a.set(t.id, t.partner.id),
|
|
10104
|
-
const n =
|
|
10105
|
-
return n.set(t.id, t.bundleOwnerId),
|
|
10103
|
+
const a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10104
|
+
a.set(t.id, t.partner.id), S.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
|
|
10105
|
+
const n = S.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
10106
|
+
return n.set(t.id, t.bundleOwnerId), S.setMap("bundleOwnerIds", n), new fe(this, t);
|
|
10106
10107
|
}
|
|
10107
10108
|
/**
|
|
10108
10109
|
* Retrieves an existing bundle from the API, by id.
|
|
@@ -10113,9 +10114,9 @@ class fs {
|
|
|
10113
10114
|
*/
|
|
10114
10115
|
async getExistingBundle(A, e, t) {
|
|
10115
10116
|
var c, B, l, d;
|
|
10116
|
-
const a =
|
|
10117
|
+
const a = S.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
|
|
10117
10118
|
n && TA(n);
|
|
10118
|
-
const s = await
|
|
10119
|
+
const s = await x.getShadowGraphqlClient().query({
|
|
10119
10120
|
query: Pn,
|
|
10120
10121
|
variables: {
|
|
10121
10122
|
id: A
|
|
@@ -10124,10 +10125,10 @@ class fs {
|
|
|
10124
10125
|
});
|
|
10125
10126
|
if (!((c = s.data) != null && c.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
|
|
10126
10127
|
throw new Error(`Unable to find bundle: ${A}`);
|
|
10127
|
-
const i = (d = s.data) == null ? void 0 : d.bundles[0],
|
|
10128
|
-
|
|
10129
|
-
const
|
|
10130
|
-
return await
|
|
10128
|
+
const i = (d = s.data) == null ? void 0 : d.bundles[0], o = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10129
|
+
o.set(i.id, i.partner.id), S.setMap("bundlePartnerIds", o);
|
|
10130
|
+
const r = new fe(this, i, e, t);
|
|
10131
|
+
return await r.getInitializationPromise(), r;
|
|
10131
10132
|
}
|
|
10132
10133
|
/**
|
|
10133
10134
|
* Retrieves all existing bundle stakeholders from the API, for the currently authenticated customer.
|
|
@@ -10137,7 +10138,7 @@ class fs {
|
|
|
10137
10138
|
var n;
|
|
10138
10139
|
if (!this.customer)
|
|
10139
10140
|
throw new Error("Customer not authenticated.");
|
|
10140
|
-
const A = await
|
|
10141
|
+
const A = await x.getShadowGraphqlClient().query({
|
|
10141
10142
|
query: Un,
|
|
10142
10143
|
variables: {
|
|
10143
10144
|
id: this.customer.id
|
|
@@ -10146,11 +10147,11 @@ class fs {
|
|
|
10146
10147
|
});
|
|
10147
10148
|
if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
|
|
10148
10149
|
throw new Error("Unable to find customer.");
|
|
10149
|
-
const t = A.data.customers[0].bundleStakeholders || [], a =
|
|
10150
|
+
const t = A.data.customers[0].bundleStakeholders || [], a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10150
10151
|
return t.forEach((s) => {
|
|
10151
|
-
var i,
|
|
10152
|
-
(i = s.bundle) != null && i.id && ((
|
|
10153
|
-
}),
|
|
10152
|
+
var i, o;
|
|
10153
|
+
(i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
|
|
10154
|
+
}), S.setMap("bundlePartnerIds", a), t;
|
|
10154
10155
|
}
|
|
10155
10156
|
/**
|
|
10156
10157
|
* Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
|
|
@@ -10161,40 +10162,40 @@ class fs {
|
|
|
10161
10162
|
* @returns A workflow experience configured as requested.
|
|
10162
10163
|
*/
|
|
10163
10164
|
async getWorkflowExperience(A, e, t, a) {
|
|
10164
|
-
var B, l, d, E
|
|
10165
|
+
var B, l, d, E;
|
|
10165
10166
|
if (!a)
|
|
10166
10167
|
return await this.getWorkflowExperienceDeprecated(A, e, t);
|
|
10167
10168
|
const n = async () => {
|
|
10168
|
-
var
|
|
10169
|
-
const
|
|
10169
|
+
var w, Q;
|
|
10170
|
+
const h = x.getShadowGraphqlClient();
|
|
10170
10171
|
if (a.type === "transaction") {
|
|
10171
|
-
const { transactionId:
|
|
10172
|
+
const { transactionId: C, readOnly: u } = a, D = await h.query({
|
|
10172
10173
|
query: EA,
|
|
10173
10174
|
variables: {
|
|
10174
|
-
ids: [
|
|
10175
|
+
ids: [C]
|
|
10175
10176
|
},
|
|
10176
10177
|
errorPolicy: "all",
|
|
10177
10178
|
fetchPolicy: "no-cache"
|
|
10178
10179
|
});
|
|
10179
|
-
if (!((
|
|
10180
|
-
throw new
|
|
10181
|
-
const
|
|
10182
|
-
if (!
|
|
10183
|
-
throw new
|
|
10184
|
-
const
|
|
10185
|
-
if (!
|
|
10186
|
-
throw new
|
|
10187
|
-
return { transaction:
|
|
10180
|
+
if (!((w = D.data) != null && w.transactions) || D.data.transactions.length === 0)
|
|
10181
|
+
throw new H("Existing transaction not found.");
|
|
10182
|
+
const p = (Q = D.data) == null ? void 0 : Q.transactions[0];
|
|
10183
|
+
if (!p.workflowId)
|
|
10184
|
+
throw new H("Existing transaction has no workflow ID.");
|
|
10185
|
+
const f = await pA(p.workflowId);
|
|
10186
|
+
if (!p.product)
|
|
10187
|
+
throw new H("Failed to load transaction, product not available.");
|
|
10188
|
+
return { transaction: p, workflow: f, readOnly: u };
|
|
10188
10189
|
}
|
|
10189
10190
|
if (a.type === "integration" || a.type === "external") {
|
|
10190
|
-
const
|
|
10191
|
-
const
|
|
10191
|
+
const C = async () => {
|
|
10192
|
+
const f = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10192
10193
|
externalIntegrationId: a.externalIntegrationId,
|
|
10193
10194
|
externalProductId: a.externalProductId
|
|
10194
|
-
},
|
|
10195
|
+
}, m = await h.mutate({
|
|
10195
10196
|
mutation: ue,
|
|
10196
10197
|
variables: {
|
|
10197
|
-
...
|
|
10198
|
+
...f,
|
|
10198
10199
|
bulk: a.bulk,
|
|
10199
10200
|
workflowId: a.workflowId,
|
|
10200
10201
|
claim: !0
|
|
@@ -10204,60 +10205,59 @@ class fs {
|
|
|
10204
10205
|
// TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
|
|
10205
10206
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
10206
10207
|
});
|
|
10207
|
-
if (!
|
|
10208
|
-
throw new
|
|
10209
|
-
const
|
|
10210
|
-
if (!
|
|
10211
|
-
throw new
|
|
10212
|
-
return
|
|
10213
|
-
},
|
|
10214
|
-
return { transaction:
|
|
10208
|
+
if (!m.data || !m.data.transactionCreate)
|
|
10209
|
+
throw new H("Failed to create transaction!");
|
|
10210
|
+
const y = m.data.transactionCreate;
|
|
10211
|
+
if (!y.product)
|
|
10212
|
+
throw new H("Failed to create transaction, product not available.");
|
|
10213
|
+
return y;
|
|
10214
|
+
}, u = pA(a.workflowId, a == null ? void 0 : a.graphql), [D, p] = await Promise.all([C(), u]);
|
|
10215
|
+
return { transaction: D, workflow: p };
|
|
10215
10216
|
}
|
|
10216
|
-
throw new
|
|
10217
|
-
}, { transaction: s, workflow: i, readOnly:
|
|
10217
|
+
throw new H("No workflow ID provided.");
|
|
10218
|
+
}, { transaction: s, workflow: i, readOnly: o } = await n();
|
|
10218
10219
|
this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
|
|
10219
|
-
const
|
|
10220
|
+
const r = {
|
|
10220
10221
|
product: s.product,
|
|
10221
10222
|
transaction: s,
|
|
10222
10223
|
layouts: [],
|
|
10223
|
-
|
|
10224
|
-
stateMutationFunc: r ? async () => {
|
|
10224
|
+
stateMutationFunc: o ? async () => {
|
|
10225
10225
|
throw new v("State mutation is forbidden in read only mode!");
|
|
10226
|
-
} : async (
|
|
10227
|
-
const
|
|
10228
|
-
return this.updateTransactionState({ ...
|
|
10226
|
+
} : async (h) => {
|
|
10227
|
+
const Q = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
|
|
10228
|
+
return this.updateTransactionState({ ...h, context: { transactionOwnerId: Q } });
|
|
10229
10229
|
},
|
|
10230
|
-
readOnly:
|
|
10230
|
+
readOnly: o,
|
|
10231
10231
|
workflow: i
|
|
10232
10232
|
};
|
|
10233
10233
|
if (a.type === "transaction" && s.workflowState) {
|
|
10234
|
-
const
|
|
10235
|
-
|
|
10236
|
-
} else if (!
|
|
10237
|
-
const
|
|
10238
|
-
|
|
10234
|
+
const h = JSON.parse(s.workflowState);
|
|
10235
|
+
r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
|
|
10236
|
+
} else if (!o && a.workflowState) {
|
|
10237
|
+
const h = JSON.parse(a.workflowState);
|
|
10238
|
+
r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
|
|
10239
10239
|
} else
|
|
10240
|
-
|
|
10241
|
-
|
|
10242
|
-
|
|
10240
|
+
r.layouts = KA(
|
|
10241
|
+
r.transaction,
|
|
10242
|
+
r.workflow
|
|
10243
10243
|
);
|
|
10244
|
-
if (
|
|
10245
|
-
|
|
10246
|
-
), a.previewService ? (
|
|
10247
|
-
model:
|
|
10248
|
-
contextService:
|
|
10249
|
-
}))) : (
|
|
10250
|
-
model:
|
|
10251
|
-
contextService:
|
|
10244
|
+
if (r.renderableContextService = new QA(
|
|
10245
|
+
r.layouts
|
|
10246
|
+
), a.previewService ? (r.previewService = a.previewService, (l = r.product) != null && l.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
10247
|
+
model: r.product.modelUrl,
|
|
10248
|
+
contextService: r.renderableContextService
|
|
10249
|
+
}))) : (r.previewService = t && t(i), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
|
|
10250
|
+
model: r.product.modelUrl,
|
|
10251
|
+
contextService: r.renderableContextService
|
|
10252
10252
|
}))), a.type !== "transaction") {
|
|
10253
|
-
const
|
|
10254
|
-
|
|
10253
|
+
const h = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10254
|
+
h.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), S.setMap("transactionOwnerIds", h);
|
|
10255
10255
|
} else {
|
|
10256
|
-
const
|
|
10257
|
-
|
|
10256
|
+
const w = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
|
|
10257
|
+
w && eA(w), r.isReloadedTransaction = !0;
|
|
10258
10258
|
}
|
|
10259
|
-
this.initialized = !0, this.experienceOptions =
|
|
10260
|
-
const c = new CA(this,
|
|
10259
|
+
this.initialized = !0, this.experienceOptions = r;
|
|
10260
|
+
const c = new CA(this, r);
|
|
10261
10261
|
return await c.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await c.attachCustomerDetails({ email: this.customer.emailAddress }), c;
|
|
10262
10262
|
}
|
|
10263
10263
|
/**
|
|
@@ -10269,39 +10269,39 @@ class fs {
|
|
|
10269
10269
|
*/
|
|
10270
10270
|
async getWorkflowExperiences(A, e) {
|
|
10271
10271
|
if (A.length === 0)
|
|
10272
|
-
throw new
|
|
10273
|
-
const t =
|
|
10274
|
-
(
|
|
10272
|
+
throw new H("No options provided!");
|
|
10273
|
+
const t = x.getShadowGraphqlClient(), a = A.map((C, u) => ({ option: C, index: u })), n = a.filter((C) => C.option.type === "transaction"), s = a.filter(
|
|
10274
|
+
(C) => C.option.type === "integration" || C.option.type === "external"
|
|
10275
10275
|
), i = async () => {
|
|
10276
|
-
var p,
|
|
10276
|
+
var p, f;
|
|
10277
10277
|
if (n.length === 0)
|
|
10278
10278
|
return [];
|
|
10279
|
-
const
|
|
10279
|
+
const C = n.map((m) => m.option.transactionId), u = await t.query({
|
|
10280
10280
|
query: EA,
|
|
10281
10281
|
variables: {
|
|
10282
|
-
ids:
|
|
10282
|
+
ids: C
|
|
10283
10283
|
},
|
|
10284
10284
|
errorPolicy: "all",
|
|
10285
10285
|
fetchPolicy: "no-cache"
|
|
10286
|
-
}),
|
|
10287
|
-
if (
|
|
10288
|
-
const m = ((
|
|
10289
|
-
throw new
|
|
10286
|
+
}), D = u.data.transactions;
|
|
10287
|
+
if (D.length !== n.length) {
|
|
10288
|
+
const m = ((f = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
|
|
10289
|
+
throw new H(`Not all transactions were found: ${m}`);
|
|
10290
10290
|
}
|
|
10291
|
-
return
|
|
10291
|
+
return D.map((m, y) => {
|
|
10292
10292
|
var Y;
|
|
10293
10293
|
return {
|
|
10294
10294
|
transaction: m,
|
|
10295
10295
|
workflowId: m.workflowId,
|
|
10296
10296
|
readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
|
|
10297
|
-
index: n[
|
|
10297
|
+
index: n[y].index
|
|
10298
10298
|
};
|
|
10299
10299
|
});
|
|
10300
|
-
},
|
|
10301
|
-
var
|
|
10300
|
+
}, o = async () => {
|
|
10301
|
+
var D, p, f;
|
|
10302
10302
|
if (s.length === 0)
|
|
10303
10303
|
return [];
|
|
10304
|
-
const
|
|
10304
|
+
const C = await t.mutate({
|
|
10305
10305
|
mutation: ca,
|
|
10306
10306
|
variables: {
|
|
10307
10307
|
inputs: s.map((m) => ({
|
|
@@ -10315,39 +10315,37 @@ class fs {
|
|
|
10315
10315
|
},
|
|
10316
10316
|
errorPolicy: "all",
|
|
10317
10317
|
fetchPolicy: "no-cache"
|
|
10318
|
-
}), u = (
|
|
10318
|
+
}), u = (D = C.data) == null ? void 0 : D.transactionCreateMany;
|
|
10319
10319
|
if (!u || u.length === 0) {
|
|
10320
|
-
const m = ((
|
|
10321
|
-
throw new
|
|
10320
|
+
const m = ((f = (p = C.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
|
|
10321
|
+
throw new H(`Failed to create transactions: ${m}`);
|
|
10322
10322
|
}
|
|
10323
|
-
return u.map((m,
|
|
10323
|
+
return u.map((m, y) => ({
|
|
10324
10324
|
transaction: m,
|
|
10325
10325
|
workflowId: m.workflowId,
|
|
10326
10326
|
readOnly: !1,
|
|
10327
|
-
index: s[
|
|
10327
|
+
index: s[y].index
|
|
10328
10328
|
}));
|
|
10329
|
-
},
|
|
10330
|
-
|
|
10331
|
-
const { transaction: u, workflowId: f, readOnly: p, index: D } = h, m = l.get(f), M = A[D];
|
|
10329
|
+
}, r = (await Promise.all([i(), o()])).flat(), c = [...new Set(r.map((C) => C.workflowId))], B = await ht(c, e), l = new Map(B.map((C) => [C.id, C])), d = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = r.map(async (C) => {
|
|
10330
|
+
const { transaction: u, workflowId: D, readOnly: p, index: f } = C, m = l.get(D), y = A[f];
|
|
10332
10331
|
!d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
|
|
10333
10332
|
const Y = d.get(u.id) || void 0, F = {
|
|
10334
10333
|
product: u.product,
|
|
10335
10334
|
transaction: u,
|
|
10336
10335
|
layouts: [],
|
|
10337
|
-
singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
|
|
10338
10336
|
stateMutationFunc: p ? async () => {
|
|
10339
10337
|
throw new v("State mutation is forbidden in read only mode!");
|
|
10340
|
-
} : async (
|
|
10338
|
+
} : async (R) => this.updateTransactionState({ ...R, context: { transactionOwnerId: Y } }),
|
|
10341
10339
|
readOnly: p,
|
|
10342
10340
|
workflow: m,
|
|
10343
|
-
isReloadedTransaction:
|
|
10341
|
+
isReloadedTransaction: y.type === "transaction"
|
|
10344
10342
|
};
|
|
10345
|
-
if (
|
|
10346
|
-
const
|
|
10347
|
-
F.layouts = Object.values(
|
|
10348
|
-
} else if (!p &&
|
|
10349
|
-
const
|
|
10350
|
-
F.layouts = Object.values(
|
|
10343
|
+
if (y.type === "transaction" && u.workflowState) {
|
|
10344
|
+
const R = JSON.parse(u.workflowState);
|
|
10345
|
+
F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
|
|
10346
|
+
} else if (!p && y.workflowState) {
|
|
10347
|
+
const R = JSON.parse(y.workflowState);
|
|
10348
|
+
F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
|
|
10351
10349
|
} else
|
|
10352
10350
|
F.layouts = KA(
|
|
10353
10351
|
F.transaction,
|
|
@@ -10355,12 +10353,12 @@ class fs {
|
|
|
10355
10353
|
);
|
|
10356
10354
|
return F.renderableContextService = new QA(
|
|
10357
10355
|
F.layouts
|
|
10358
|
-
), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index:
|
|
10356
|
+
), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: f, options: y };
|
|
10359
10357
|
});
|
|
10360
|
-
|
|
10361
|
-
const Q = (await Promise.all(E)).sort((
|
|
10362
|
-
const { experienceOptions: u, options:
|
|
10363
|
-
return await p.getWorkflowManager().getInitializationPromise(),
|
|
10358
|
+
S.setMap("transactionOwnerIds", d);
|
|
10359
|
+
const Q = (await Promise.all(E)).sort((C, u) => C.index - u.index).map(async (C) => {
|
|
10360
|
+
const { experienceOptions: u, options: D } = C, p = new CA(this, u);
|
|
10361
|
+
return await p.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
|
|
10364
10362
|
});
|
|
10365
10363
|
return await Promise.all(Q);
|
|
10366
10364
|
}
|
|
@@ -10372,8 +10370,8 @@ class fs {
|
|
|
10372
10370
|
async initFromIntegrationProduct(A) {
|
|
10373
10371
|
var s;
|
|
10374
10372
|
if (A === "")
|
|
10375
|
-
throw new
|
|
10376
|
-
const t = await
|
|
10373
|
+
throw new H("No integration product ID provided.");
|
|
10374
|
+
const t = await x.getShadowGraphqlClient().mutate({
|
|
10377
10375
|
mutation: ue,
|
|
10378
10376
|
variables: {
|
|
10379
10377
|
integrationProductId: A,
|
|
@@ -10386,13 +10384,13 @@ class fs {
|
|
|
10386
10384
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
10387
10385
|
});
|
|
10388
10386
|
if (!t.data || !t.data.transactionCreate)
|
|
10389
|
-
throw new
|
|
10387
|
+
throw new H("Failed to create transaction!");
|
|
10390
10388
|
const a = t.data.transactionCreate;
|
|
10391
10389
|
if (!a.product)
|
|
10392
|
-
throw new
|
|
10390
|
+
throw new H("Failed to create transaction, product not available.");
|
|
10393
10391
|
this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
|
|
10394
|
-
const n =
|
|
10395
|
-
n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""),
|
|
10392
|
+
const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10393
|
+
n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), S.setMap("transactionOwnerIds", n), this.experienceOptions = {
|
|
10396
10394
|
product: a.product,
|
|
10397
10395
|
transaction: a,
|
|
10398
10396
|
layouts: [],
|
|
@@ -10406,10 +10404,10 @@ class fs {
|
|
|
10406
10404
|
* @deprecated Use getWorkflowExperience to initialize the experience.
|
|
10407
10405
|
*/
|
|
10408
10406
|
async initFromTransaction(A, e = !1) {
|
|
10409
|
-
var i,
|
|
10407
|
+
var i, o, r, c;
|
|
10410
10408
|
if (A === "")
|
|
10411
|
-
throw new
|
|
10412
|
-
const t =
|
|
10409
|
+
throw new H("No transaction ID provided.");
|
|
10410
|
+
const t = x.getShadowGraphqlClient(), a = async () => {
|
|
10413
10411
|
var d, E;
|
|
10414
10412
|
const l = (d = (await t.query({
|
|
10415
10413
|
query: EA,
|
|
@@ -10418,9 +10416,9 @@ class fs {
|
|
|
10418
10416
|
errorPolicy: "all"
|
|
10419
10417
|
})).data) == null ? void 0 : d.transactions[0];
|
|
10420
10418
|
if (!l)
|
|
10421
|
-
throw new
|
|
10419
|
+
throw new H("Failed to read transaction.");
|
|
10422
10420
|
if (!l.product)
|
|
10423
|
-
throw new
|
|
10421
|
+
throw new H("Failed to load transaction, product not available.");
|
|
10424
10422
|
this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
|
|
10425
10423
|
product: l.product,
|
|
10426
10424
|
transaction: l,
|
|
@@ -10433,7 +10431,7 @@ class fs {
|
|
|
10433
10431
|
};
|
|
10434
10432
|
if (e)
|
|
10435
10433
|
return await a();
|
|
10436
|
-
const n =
|
|
10434
|
+
const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
|
|
10437
10435
|
if (s) {
|
|
10438
10436
|
eA(s);
|
|
10439
10437
|
const l = (i = (await t.query({
|
|
@@ -10444,10 +10442,10 @@ class fs {
|
|
|
10444
10442
|
errorPolicy: "all"
|
|
10445
10443
|
})).data) == null ? void 0 : i.transactions[0];
|
|
10446
10444
|
if (!l)
|
|
10447
|
-
throw new
|
|
10445
|
+
throw new H("Failed to read transaction.");
|
|
10448
10446
|
if (!l.product)
|
|
10449
|
-
throw new
|
|
10450
|
-
this.currencyCode = (
|
|
10447
|
+
throw new H("Failed to load transaction, product not available.");
|
|
10448
|
+
this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
|
|
10451
10449
|
product: l.product,
|
|
10452
10450
|
transaction: l,
|
|
10453
10451
|
layouts: [],
|
|
@@ -10457,16 +10455,16 @@ class fs {
|
|
|
10457
10455
|
return;
|
|
10458
10456
|
}
|
|
10459
10457
|
try {
|
|
10460
|
-
const l = (
|
|
10458
|
+
const l = (r = (await t.mutate({
|
|
10461
10459
|
mutation: ga,
|
|
10462
10460
|
variables: { id: A },
|
|
10463
10461
|
errorPolicy: "all"
|
|
10464
|
-
})).data) == null ? void 0 :
|
|
10462
|
+
})).data) == null ? void 0 : r.transactionClaim;
|
|
10465
10463
|
if (!l)
|
|
10466
|
-
throw new
|
|
10464
|
+
throw new H("Failed to read transaction.");
|
|
10467
10465
|
if (!l.product)
|
|
10468
|
-
throw new
|
|
10469
|
-
this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId),
|
|
10466
|
+
throw new H("Failed to load transaction, product not available.");
|
|
10467
|
+
this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), S.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
10470
10468
|
product: l.product,
|
|
10471
10469
|
transaction: l,
|
|
10472
10470
|
layouts: [],
|
|
@@ -10474,7 +10472,7 @@ class fs {
|
|
|
10474
10472
|
readOnly: e
|
|
10475
10473
|
}, this.initialized = !0;
|
|
10476
10474
|
} catch {
|
|
10477
|
-
throw new
|
|
10475
|
+
throw new H("Attempted to access a transaction that isn't available.");
|
|
10478
10476
|
}
|
|
10479
10477
|
}
|
|
10480
10478
|
/**
|
|
@@ -10483,29 +10481,29 @@ class fs {
|
|
|
10483
10481
|
async getWorkflowExperienceDeprecated(A, e, t) {
|
|
10484
10482
|
var a, n, s, i;
|
|
10485
10483
|
if (!this.initialized || !this.experienceOptions)
|
|
10486
|
-
throw new
|
|
10484
|
+
throw new H("Cannot launch experience: Not initialized.");
|
|
10487
10485
|
if (this.experienceOptions.transaction.workflowId) {
|
|
10488
|
-
const
|
|
10489
|
-
if (this.experienceOptions.workflow =
|
|
10486
|
+
const o = await pA(this.experienceOptions.transaction.workflowId);
|
|
10487
|
+
if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
|
|
10490
10488
|
const c = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10491
10489
|
this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await AA(c), await tA(c), this.experienceOptions.reloadedState = c;
|
|
10492
10490
|
}
|
|
10493
|
-
this.experienceOptions.previewService = t && t(
|
|
10491
|
+
this.experienceOptions.previewService = t && t(o), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
|
|
10494
10492
|
model: this.experienceOptions.product.modelUrl,
|
|
10495
10493
|
contextService: this.experienceOptions.renderableContextService
|
|
10496
10494
|
}));
|
|
10497
|
-
const
|
|
10498
|
-
return await
|
|
10495
|
+
const r = new CA(this, this.experienceOptions);
|
|
10496
|
+
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
10499
10497
|
}
|
|
10500
10498
|
if (A) {
|
|
10501
|
-
const
|
|
10499
|
+
const o = x.getShadowGraphqlClient().mutate({
|
|
10502
10500
|
mutation: Ba,
|
|
10503
10501
|
variables: {
|
|
10504
10502
|
workflowId: A,
|
|
10505
10503
|
id: this.experienceOptions.transaction.id
|
|
10506
10504
|
}
|
|
10507
|
-
}),
|
|
10508
|
-
if (await Promise.all([
|
|
10505
|
+
}), r = pA(A);
|
|
10506
|
+
if (await Promise.all([o, r]), this.experienceOptions.workflow = await r, e) {
|
|
10509
10507
|
const B = JSON.parse(e);
|
|
10510
10508
|
this.experienceOptions.layouts = Object.values(B.layouts).map((l) => l.layout), await AA(B), await tA(B), this.experienceOptions.reloadedState = B;
|
|
10511
10509
|
} else
|
|
@@ -10513,14 +10511,14 @@ class fs {
|
|
|
10513
10511
|
this.experienceOptions.transaction,
|
|
10514
10512
|
this.experienceOptions.workflow
|
|
10515
10513
|
);
|
|
10516
|
-
this.experienceOptions.previewService = t && t(await
|
|
10514
|
+
this.experienceOptions.previewService = t && t(await r), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (s = this.experienceOptions.product) != null && s.modelUrl && (this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.loadModel({
|
|
10517
10515
|
model: this.experienceOptions.product.modelUrl,
|
|
10518
10516
|
contextService: this.experienceOptions.renderableContextService
|
|
10519
10517
|
}));
|
|
10520
10518
|
const c = new CA(this, this.experienceOptions);
|
|
10521
10519
|
return await c.getWorkflowManager().getInitializationPromise(), c;
|
|
10522
10520
|
}
|
|
10523
|
-
throw new
|
|
10521
|
+
throw new H("No workflow ID provided.");
|
|
10524
10522
|
}
|
|
10525
10523
|
/**
|
|
10526
10524
|
* @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
|
|
@@ -10536,7 +10534,7 @@ class fs {
|
|
|
10536
10534
|
*/
|
|
10537
10535
|
getProduct() {
|
|
10538
10536
|
if (!this.initialized || !this.experienceOptions)
|
|
10539
|
-
throw new
|
|
10537
|
+
throw new H("Cannot get product: Not initialized.");
|
|
10540
10538
|
return this.experienceOptions.product;
|
|
10541
10539
|
}
|
|
10542
10540
|
/**
|
|
@@ -10545,12 +10543,12 @@ class fs {
|
|
|
10545
10543
|
*/
|
|
10546
10544
|
getTransaction() {
|
|
10547
10545
|
if (!this.initialized || !this.experienceOptions)
|
|
10548
|
-
throw new
|
|
10546
|
+
throw new H("Cannot get transaction: Not initialized.");
|
|
10549
10547
|
return this.experienceOptions.transaction;
|
|
10550
10548
|
}
|
|
10551
10549
|
storeCustomer(A) {
|
|
10552
|
-
const e =
|
|
10553
|
-
e.set(A.partner.id, A.id),
|
|
10550
|
+
const e = S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
|
|
10551
|
+
e.set(A.partner.id, A.id), S.setMap("partnerCustomerIds", e);
|
|
10554
10552
|
}
|
|
10555
10553
|
}
|
|
10556
10554
|
class ks {
|
|
@@ -10779,7 +10777,7 @@ export {
|
|
|
10779
10777
|
nn as InformationStepHandle,
|
|
10780
10778
|
ei as LayoutElementFactory,
|
|
10781
10779
|
ti as LayoutElementType,
|
|
10782
|
-
|
|
10780
|
+
T as LayoutNotFoundError,
|
|
10783
10781
|
$a as MaterialStepHandle,
|
|
10784
10782
|
SA as MisconfigurationError,
|
|
10785
10783
|
ks as MockWorkflowManager,
|
|
@@ -10814,7 +10812,7 @@ export {
|
|
|
10814
10812
|
gi as UnitOfMeasurement,
|
|
10815
10813
|
X as Variant,
|
|
10816
10814
|
CA as WorkflowExperienceImpl,
|
|
10817
|
-
|
|
10815
|
+
b as assetService,
|
|
10818
10816
|
Bn as createDesign,
|
|
10819
10817
|
li as dataUrlFromExternalUrl,
|
|
10820
10818
|
zA as designService,
|
|
@@ -10835,7 +10833,7 @@ export {
|
|
|
10835
10833
|
mi as getSvgElement,
|
|
10836
10834
|
pA as getWorkflow,
|
|
10837
10835
|
ht as getWorkflows,
|
|
10838
|
-
|
|
10836
|
+
x as graphQlManager,
|
|
10839
10837
|
fA as illustrationStepService,
|
|
10840
10838
|
pi as loadFont,
|
|
10841
10839
|
$e as materialStepService,
|
|
@@ -10843,7 +10841,7 @@ export {
|
|
|
10843
10841
|
Ya as moduleStepService,
|
|
10844
10842
|
z as optionService,
|
|
10845
10843
|
Ii as patternImageDataCache,
|
|
10846
|
-
|
|
10844
|
+
S as persistenceService,
|
|
10847
10845
|
At as pictureStepService,
|
|
10848
10846
|
et as questionStepService,
|
|
10849
10847
|
Di as registerFetchImplementation,
|