@spiffcommerce/core 16.4.3 → 16.5.0-rc.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 +23 -0
- package/dist/index.js +1039 -1035
- package/dist/index.umd.cjs +23 -22
- 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 y } 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 H, 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 JA, 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 be } 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 Je 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 Je {
|
|
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 L 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 Je {
|
|
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 P 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 bt {
|
|
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 Jt = () => {
|
|
117
117
|
try {
|
|
118
|
-
return localStorage ? new
|
|
118
|
+
return localStorage ? new bt() : 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
|
+
}, x = Jt();
|
|
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: r } = i, o = r || {}, c = await zt(), B = i.bearer ?? c.bearer, l = i.partnerId ?? c.partnerId, d = i.activeIntegration ?? c.activeIntegration, E = i.transactionOwnerId ?? c.transactionOwnerId, C = i.customerToken ?? c.customerToken, w = i.applicationKey ?? c.applicationKey, Q = i.bundleOwnerId ?? c.bundleOwnerId;
|
|
194
|
+
return B && (o.Authorization = `Bearer ${B}`), l && (o.partnerId = l), d && (o.activeIntegration = d), E && (o.transactionOwnerId = E), C && (o.customerToken = C), w && (o["X-Application-Key"] = w), Q && (o.bundleOwnerId = Q), {
|
|
195
|
+
headers: o
|
|
196
196
|
};
|
|
197
|
-
}), t = kt(({ operation: s, graphQLErrors: i, networkError:
|
|
198
|
-
const
|
|
199
|
-
|
|
197
|
+
}), t = kt(({ operation: s, graphQLErrors: i, networkError: r }) => {
|
|
198
|
+
const o = i || [];
|
|
199
|
+
r && console.log("GraphQL Network error"), o.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 N = new Kt(), jt = y`
|
|
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) => y`
|
|
262
262
|
${g && jt || ""}
|
|
263
263
|
fragment AssetFields on Asset {
|
|
264
264
|
name
|
|
@@ -273,14 +273,14 @@ const x = new Kt(), jt = M`
|
|
|
273
273
|
}
|
|
274
274
|
${g && "...AssetMetadataFields" || ""}
|
|
275
275
|
}
|
|
276
|
-
`, Vt =
|
|
276
|
+
`, Vt = y`
|
|
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 = y`
|
|
284
284
|
fragment MaterialFields on Material {
|
|
285
285
|
id
|
|
286
286
|
name
|
|
@@ -321,14 +321,14 @@ const x = new Kt(), jt = M`
|
|
|
321
321
|
fileLink
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
-
`, Wt =
|
|
324
|
+
`, Wt = y`
|
|
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 = y`
|
|
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 x = new Kt(), jt = M`
|
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
344
|
}
|
|
345
|
-
`, Ke = async (g) => (await
|
|
345
|
+
`, Ke = async (g) => (await N.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 N.getShadowGraphqlClient().query({
|
|
353
353
|
query: Wt,
|
|
354
354
|
errorPolicy: "all",
|
|
355
355
|
fetchPolicy: "no-cache",
|
|
@@ -358,7 +358,7 @@ const x = new Kt(), jt = M`
|
|
|
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 N.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]), r = [];
|
|
379
|
+
for (let o = 0; o < i.length; o++)
|
|
380
|
+
r.push(i.charCodeAt(o));
|
|
381
|
+
return new Blob([new Uint8Array(r)], { 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, r) => {
|
|
437
|
+
const o = new XMLHttpRequest();
|
|
438
|
+
o.open("PUT", s.assetResponse.uploadUrl, !0), o.setRequestHeader("Content-Type", s.mimeType), o.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), o.upload.onprogress = (c) => {
|
|
439
439
|
c.lengthComputable && t(c.loaded * 100 / c.total);
|
|
440
|
-
},
|
|
440
|
+
}, o.onload = () => {
|
|
441
441
|
const c = s.assetResponse.asset;
|
|
442
442
|
LA.add(s.assetResponse.asset), i(c);
|
|
443
|
-
},
|
|
443
|
+
}, o.onerror = r, o.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 T.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 = x.getMap(sA);
|
|
506
506
|
t && t.forEach((a, n) => {
|
|
507
507
|
e.set(n, a);
|
|
508
|
-
}),
|
|
508
|
+
}), x.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 = x.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]), x.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 = x.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 T = 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 = y`
|
|
550
550
|
fragment OptionFields on Option {
|
|
551
551
|
id
|
|
552
552
|
name
|
|
@@ -586,7 +586,7 @@ const BA = new _t(), je = M`
|
|
|
586
586
|
...AssetFields
|
|
587
587
|
}
|
|
588
588
|
}
|
|
589
|
-
`, Aa =
|
|
589
|
+
`, Aa = y`
|
|
590
590
|
${kA(!1)}
|
|
591
591
|
${se}
|
|
592
592
|
${je}
|
|
@@ -596,7 +596,7 @@ const BA = new _t(), je = M`
|
|
|
596
596
|
}
|
|
597
597
|
}
|
|
598
598
|
`, ea = async (g) => {
|
|
599
|
-
const A = await
|
|
599
|
+
const A = await N.getShadowGraphqlClient().query({
|
|
600
600
|
query: Aa,
|
|
601
601
|
errorPolicy: "all",
|
|
602
602
|
fetchPolicy: "no-cache",
|
|
@@ -606,8 +606,8 @@ const BA = new _t(), je = M`
|
|
|
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 && T.cacheAsset(e.defaultVariant.asset), e.colorProfile && T.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
|
|
610
|
+
n.asset && T.cacheAsset(n.asset), n.displayImage && T.cacheAsset(n.displayImage), n.thumbnail && T.cacheAsset(n.thumbnail), n.material && T.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((r) => r.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((r) => r.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 = y`
|
|
678
678
|
mutation CreateTransaction(
|
|
679
679
|
$integrationProductId: String
|
|
680
680
|
$externalIntegrationId: String
|
|
@@ -768,7 +768,7 @@ const ue = M`
|
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
770
|
}
|
|
771
|
-
`, ca =
|
|
771
|
+
`, ca = y`
|
|
772
772
|
mutation CreateTransactions($inputs: [TransactionCreateInput]!) {
|
|
773
773
|
transactionCreateMany(inputs: $inputs) {
|
|
774
774
|
id
|
|
@@ -848,7 +848,7 @@ const ue = M`
|
|
|
848
848
|
}
|
|
849
849
|
}
|
|
850
850
|
}
|
|
851
|
-
`, ga =
|
|
851
|
+
`, ga = y`
|
|
852
852
|
mutation ClaimTransaction($id: String!) {
|
|
853
853
|
transactionClaim(id: $id) {
|
|
854
854
|
id
|
|
@@ -928,7 +928,7 @@ const ue = M`
|
|
|
928
928
|
}
|
|
929
929
|
}
|
|
930
930
|
}
|
|
931
|
-
`, EA =
|
|
931
|
+
`, EA = y`
|
|
932
932
|
query ReadTransactions($ids: [String]!) {
|
|
933
933
|
transactions(ids: $ids) {
|
|
934
934
|
bulk
|
|
@@ -1015,26 +1015,26 @@ const ue = M`
|
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
1017
|
}
|
|
1018
|
-
`, la =
|
|
1018
|
+
`, la = y`
|
|
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 = y`
|
|
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 = y`
|
|
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
|
+
y`
|
|
1038
1038
|
query ReadTransactionForDesignCreation($id: String!) {
|
|
1039
1039
|
transactions(ids: [$id]) {
|
|
1040
1040
|
id
|
|
@@ -1087,7 +1087,7 @@ M`
|
|
|
1087
1087
|
}
|
|
1088
1088
|
}
|
|
1089
1089
|
`;
|
|
1090
|
-
const Ve =
|
|
1090
|
+
const Ve = y`
|
|
1091
1091
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1092
1092
|
transactions(ids: $ids) {
|
|
1093
1093
|
id
|
|
@@ -1202,65 +1202,66 @@ const Ve = M`
|
|
|
1202
1202
|
});
|
|
1203
1203
|
for (const n of g.steps) {
|
|
1204
1204
|
if (A.bulkScene) {
|
|
1205
|
-
let
|
|
1205
|
+
let r = !1;
|
|
1206
1206
|
switch (n.type) {
|
|
1207
1207
|
case I.DigitalContent:
|
|
1208
|
-
n.data.varyUpload && (
|
|
1208
|
+
n.data.varyUpload && (r = !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) && (r = !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) && (r = !0);
|
|
1220
1220
|
}
|
|
1221
1221
|
break;
|
|
1222
1222
|
case I.Material:
|
|
1223
|
-
n.data.varySelection && (
|
|
1223
|
+
n.data.varySelection && (r = !0);
|
|
1224
1224
|
break;
|
|
1225
1225
|
case I.Model:
|
|
1226
|
-
n.data.varySelection && (
|
|
1226
|
+
n.data.varySelection && (r = !0);
|
|
1227
1227
|
break;
|
|
1228
1228
|
case I.Picture:
|
|
1229
|
-
n.data.varySelection && (
|
|
1229
|
+
n.data.varySelection && (r = !0);
|
|
1230
1230
|
break;
|
|
1231
1231
|
case I.Question:
|
|
1232
|
-
n.data.varySelections && (
|
|
1232
|
+
n.data.varySelections && (r = !0);
|
|
1233
1233
|
break;
|
|
1234
1234
|
case I.Shape:
|
|
1235
|
-
n.data.varySelection && (
|
|
1235
|
+
n.data.varySelection && (r = !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 && (r = !0);
|
|
1241
1241
|
}
|
|
1242
1242
|
break;
|
|
1243
1243
|
}
|
|
1244
|
-
if (
|
|
1244
|
+
if (r)
|
|
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
|
-
|
|
1248
|
+
if (!n.silent)
|
|
1249
|
+
if (!s)
|
|
1250
|
+
t.push({
|
|
1251
|
+
name: n.stepName,
|
|
1252
|
+
title: n.stepTitle,
|
|
1253
|
+
renderableSteps: iA.includes(n.type) ? [] : [n],
|
|
1254
|
+
silentSteps: iA.includes(n.type) ? [n] : []
|
|
1255
|
+
});
|
|
1256
|
+
else {
|
|
1257
|
+
const r = t.find((o) => o.name === s.name);
|
|
1258
|
+
r ? iA.includes(n.type) ? r.silentSteps.push(n) : r.renderableSteps.push(n) : t.push({
|
|
1259
|
+
name: s.name,
|
|
1260
|
+
title: s.name,
|
|
1261
|
+
renderableSteps: iA.includes(n.type) ? [] : [n],
|
|
1262
|
+
silentSteps: iA.includes(n.type) ? [n] : []
|
|
1263
|
+
});
|
|
1264
|
+
}
|
|
1264
1265
|
}
|
|
1265
1266
|
if (A.bulkScene) {
|
|
1266
1267
|
const n = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
|
|
@@ -1313,28 +1314,28 @@ const Ve = M`
|
|
|
1313
1314
|
const e = {
|
|
1314
1315
|
name: g.name,
|
|
1315
1316
|
title: g.title,
|
|
1316
|
-
renderableSteps: g.renderableSteps.filter(
|
|
1317
|
+
renderableSteps: g.renderableSteps.filter(
|
|
1318
|
+
(t) => nA(t, A) && !t.silent
|
|
1319
|
+
),
|
|
1317
1320
|
silentSteps: g.silentSteps.filter((t) => nA(t, A))
|
|
1318
1321
|
};
|
|
1319
1322
|
return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
|
|
1320
|
-
}, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A) => {
|
|
1321
|
-
var
|
|
1322
|
-
const
|
|
1323
|
-
for (const
|
|
1324
|
-
for (const
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
const a = e.filter((s) => s.renderableSteps.filter(
|
|
1331
|
-
(o) => t.includes(o.stepName)
|
|
1323
|
+
}, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A, e = !1) => {
|
|
1324
|
+
var s;
|
|
1325
|
+
const t = aA(g, A), a = [];
|
|
1326
|
+
for (const i of t)
|
|
1327
|
+
for (const r of i.renderableSteps) {
|
|
1328
|
+
const o = (((s = r.option) == null ? void 0 : s.variants) || []).length;
|
|
1329
|
+
r.type === I.Model || r.type === I.Material || r.type === I.Picture || r.type === I.Shape ? (o > 1 || e) && a.push(r.stepName) : a.push(r.stepName);
|
|
1330
|
+
}
|
|
1331
|
+
const n = t.filter((i) => i.renderableSteps.filter(
|
|
1332
|
+
(o) => a.includes(o.stepName)
|
|
1332
1333
|
).length > 0);
|
|
1333
|
-
for (const
|
|
1334
|
-
|
|
1335
|
-
(
|
|
1334
|
+
for (const i of n)
|
|
1335
|
+
i.renderableSteps = i.renderableSteps.filter(
|
|
1336
|
+
(r) => a.includes(r.stepName)
|
|
1336
1337
|
);
|
|
1337
|
-
return
|
|
1338
|
+
return n;
|
|
1338
1339
|
};
|
|
1339
1340
|
class Xe {
|
|
1340
1341
|
constructor() {
|
|
@@ -1403,10 +1404,10 @@ class qe {
|
|
|
1403
1404
|
function Qa(g, A, e, t) {
|
|
1404
1405
|
const a = e.width * g.zoom, n = e.height * g.zoom;
|
|
1405
1406
|
if (t) {
|
|
1406
|
-
const i = g,
|
|
1407
|
-
i.zoom = Math.max(
|
|
1408
|
-
const
|
|
1409
|
-
return i.x = hA(g.x, A.width -
|
|
1407
|
+
const i = g, r = Math.max(A.width / e.width, A.height / e.height);
|
|
1408
|
+
i.zoom = Math.max(r, g.zoom);
|
|
1409
|
+
const o = e.width * i.zoom, c = e.height * i.zoom;
|
|
1410
|
+
return i.x = hA(g.x, A.width - o, 0), i.y = hA(g.y, A.height - c, 0), i;
|
|
1410
1411
|
}
|
|
1411
1412
|
const s = g;
|
|
1412
1413
|
return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
|
|
@@ -1431,8 +1432,8 @@ class ua {
|
|
|
1431
1432
|
if (a.currentFrameSources) {
|
|
1432
1433
|
let n = !1;
|
|
1433
1434
|
for (let s = 0; s < a.currentFrameSources.length; s++) {
|
|
1434
|
-
const i = a.currentFrameSources[s],
|
|
1435
|
-
ke(
|
|
1435
|
+
const i = a.currentFrameSources[s], r = await Ae(i);
|
|
1436
|
+
ke(r, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = r, n = !0);
|
|
1436
1437
|
}
|
|
1437
1438
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
1438
1439
|
(s) => s(this.frameData)
|
|
@@ -1501,7 +1502,7 @@ class ua {
|
|
|
1501
1502
|
if (this.imageData && this.offsets && this.frameData) {
|
|
1502
1503
|
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
|
|
1503
1504
|
const n = this.frameData.map((s, i) => {
|
|
1504
|
-
const
|
|
1505
|
+
const r = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, o = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, c = e[i] - r * A[i], B = t[i] - o * A[i];
|
|
1505
1506
|
return {
|
|
1506
1507
|
x: c,
|
|
1507
1508
|
y: B,
|
|
@@ -1565,8 +1566,8 @@ class ua {
|
|
|
1565
1566
|
if (!this.workflowManager)
|
|
1566
1567
|
throw new v("No workflow manager set, cannot update offsets.");
|
|
1567
1568
|
const s = this.workflowManager.getCommandDispatcher();
|
|
1568
|
-
a.forEach((i,
|
|
1569
|
-
s(new Me(i, e, A[
|
|
1569
|
+
a.forEach((i, r) => {
|
|
1570
|
+
s(new Me(i, e, A[r]));
|
|
1570
1571
|
}), this.stepName && this.workflowManager.updateStorage(this.stepName, {
|
|
1571
1572
|
frameOffsetsList: A
|
|
1572
1573
|
}), n && n();
|
|
@@ -1591,19 +1592,19 @@ class ua {
|
|
|
1591
1592
|
class me {
|
|
1592
1593
|
constructor(A, e, t) {
|
|
1593
1594
|
this.processRegion = async (a) => {
|
|
1594
|
-
var
|
|
1595
|
+
var r, o, c, B;
|
|
1595
1596
|
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1596
1597
|
if (!n)
|
|
1597
|
-
throw new
|
|
1598
|
+
throw new L(a);
|
|
1598
1599
|
let s = "";
|
|
1599
1600
|
if (this.configuration.type === I.ProductOverlay) {
|
|
1600
1601
|
let l = "";
|
|
1601
|
-
if ((
|
|
1602
|
+
if ((r = this.product) != null && r.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
|
|
1602
1603
|
throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1603
1604
|
}
|
|
1604
1605
|
const i = this.evaluateAssetType();
|
|
1605
|
-
if (i ===
|
|
1606
|
-
const l = this.configuration.type === I.SilentIllustration ? (
|
|
1606
|
+
if (i === H.Image) {
|
|
1607
|
+
const l = this.configuration.type === I.SilentIllustration ? (o = this.configuration.data.asset) == null ? void 0 : o.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
|
|
1607
1608
|
if (!l)
|
|
1608
1609
|
throw new Error("Undefined raster silent step source");
|
|
1609
1610
|
const d = {
|
|
@@ -1636,10 +1637,10 @@ class me {
|
|
|
1636
1637
|
Q("Undefined vector silent step source");
|
|
1637
1638
|
return;
|
|
1638
1639
|
}
|
|
1639
|
-
Z(l, !0).then((
|
|
1640
|
-
w(
|
|
1641
|
-
}).catch((
|
|
1642
|
-
}))()),
|
|
1640
|
+
Z(l, !0).then((h) => {
|
|
1641
|
+
w(h);
|
|
1642
|
+
}).catch((h) => console.error(h));
|
|
1643
|
+
}))()), C = {
|
|
1643
1644
|
stepName: this.configuration.stepName,
|
|
1644
1645
|
id: k(),
|
|
1645
1646
|
cachedObjectURL: await FA(E.svg),
|
|
@@ -1660,10 +1661,10 @@ class me {
|
|
|
1660
1661
|
};
|
|
1661
1662
|
return {
|
|
1662
1663
|
regionElement: {
|
|
1663
|
-
id:
|
|
1664
|
+
id: C.id,
|
|
1664
1665
|
region: a
|
|
1665
1666
|
},
|
|
1666
|
-
command: new J(
|
|
1667
|
+
command: new J(C, n)
|
|
1667
1668
|
};
|
|
1668
1669
|
}
|
|
1669
1670
|
}, this.configuration = A, this.layouts = e, this.product = t || void 0;
|
|
@@ -1678,7 +1679,7 @@ class me {
|
|
|
1678
1679
|
return this.configuration.type === I.ProductOverlay ? Promise.all(
|
|
1679
1680
|
this.configuration.data.regions.map((A) => {
|
|
1680
1681
|
if (!this.layouts.find((t) => A.panelId === t.panelId))
|
|
1681
|
-
throw new
|
|
1682
|
+
throw new L(A);
|
|
1682
1683
|
return this.processRegion(A);
|
|
1683
1684
|
})
|
|
1684
1685
|
) : Promise.reject("Unknown silent step. This is a bug");
|
|
@@ -1686,7 +1687,7 @@ class me {
|
|
|
1686
1687
|
evaluateAssetType() {
|
|
1687
1688
|
var e, t, a;
|
|
1688
1689
|
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];
|
|
1689
|
-
return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ?
|
|
1690
|
+
return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ? H.Image : A != null && A.endsWith(".svg") || A != null && A.startsWith("image/svg+xml") ? H.Illustration : H.Illustration;
|
|
1690
1691
|
}
|
|
1691
1692
|
}
|
|
1692
1693
|
const ma = async (g) => {
|
|
@@ -1734,32 +1735,32 @@ class pa {
|
|
|
1734
1735
|
const a = e.getSerializedStep(
|
|
1735
1736
|
A.stepName,
|
|
1736
1737
|
t.serializableWorkflow.steps
|
|
1737
|
-
),
|
|
1738
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
1738
|
+
), r = Object.values(t.layouts).map((o) => o.elements).flat().filter((o) => o.stepName === A.stepName).map((o) => ({ id: o.id, region: o.stepRegion }));
|
|
1739
|
+
await e.setSelectionsAndElements(A.stepName, [], r, async () => {
|
|
1739
1740
|
var B, l;
|
|
1740
|
-
const
|
|
1741
|
+
const o = (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;
|
|
1741
1742
|
e.updateStorage(A.stepName, {
|
|
1742
|
-
videoShortUrl:
|
|
1743
|
+
videoShortUrl: o,
|
|
1743
1744
|
videoUrl: c
|
|
1744
1745
|
});
|
|
1745
1746
|
});
|
|
1746
1747
|
}
|
|
1747
|
-
async regenerateQRCode(A, e, t, a, n, s, i,
|
|
1748
|
+
async regenerateQRCode(A, e, t, a, n, s, i, r, o) {
|
|
1748
1749
|
if (!e && t !== "" && a === "") {
|
|
1749
1750
|
const c = async () => {
|
|
1750
|
-
var
|
|
1751
|
-
const
|
|
1752
|
-
return { asset:
|
|
1753
|
-
}, B = await new Promise((
|
|
1751
|
+
var f, p;
|
|
1752
|
+
const h = (await Ke([t]))[0], u = (p = (f = h == null ? void 0 : h.versions) == null ? void 0 : f.find((D) => D.name === "mpeg4")) == null ? void 0 : p.link;
|
|
1753
|
+
return { asset: h, link: u };
|
|
1754
|
+
}, B = await new Promise((h, u) => {
|
|
1754
1755
|
new Ze(
|
|
1755
1756
|
async () => !!(await c()).link,
|
|
1756
1757
|
async () => {
|
|
1757
|
-
const
|
|
1758
|
-
if (!
|
|
1759
|
-
throw new lA(
|
|
1760
|
-
|
|
1758
|
+
const f = await c();
|
|
1759
|
+
if (!f.link || !f.link)
|
|
1760
|
+
throw new lA(f.asset);
|
|
1761
|
+
h({
|
|
1761
1762
|
rel: "mpeg4",
|
|
1762
|
-
href:
|
|
1763
|
+
href: f.link
|
|
1763
1764
|
});
|
|
1764
1765
|
},
|
|
1765
1766
|
() => {
|
|
@@ -1769,34 +1770,34 @@ class pa {
|
|
|
1769
1770
|
40
|
|
1770
1771
|
);
|
|
1771
1772
|
});
|
|
1772
|
-
A.forEach((
|
|
1773
|
+
A.forEach((h) => r(new $(h.id)));
|
|
1773
1774
|
const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
|
|
1774
1775
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1775
1776
|
const E = d.toString();
|
|
1776
1777
|
if (E.length >= 2e3)
|
|
1777
1778
|
throw new vA("Cannot create QR code, URL too long.");
|
|
1778
|
-
const
|
|
1779
|
-
if (i(
|
|
1779
|
+
const C = await ma(E);
|
|
1780
|
+
if (i(C), !s.data || !s.data.regions)
|
|
1780
1781
|
throw new SA(s, "Missing regions.");
|
|
1781
|
-
const w = await this.regionElements(s), Q = await this.command(
|
|
1782
|
+
const w = await this.regionElements(s), Q = await this.command(C, w, n, s.stepName);
|
|
1782
1783
|
Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
|
|
1783
1784
|
n.updateStorage(s.stepName, {
|
|
1784
|
-
videoShortUrl:
|
|
1785
|
+
videoShortUrl: C,
|
|
1785
1786
|
videoUrl: a
|
|
1786
|
-
}),
|
|
1787
|
+
}), o(!1);
|
|
1787
1788
|
});
|
|
1788
1789
|
} else
|
|
1789
|
-
|
|
1790
|
+
o(!1);
|
|
1790
1791
|
}
|
|
1791
1792
|
async regionElements(A) {
|
|
1792
1793
|
const e = (t) => ({ id: k(), region: t });
|
|
1793
1794
|
return A.data.regions.map(e);
|
|
1794
1795
|
}
|
|
1795
1796
|
async command(A, e, t, a) {
|
|
1796
|
-
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await
|
|
1797
|
-
const c =
|
|
1797
|
+
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await be(A, { type: "svg" }))}`, r = e.map((o) => {
|
|
1798
|
+
const c = o.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
|
|
1798
1799
|
if (!B && c)
|
|
1799
|
-
throw new
|
|
1800
|
+
throw new L(c);
|
|
1800
1801
|
if (B && !c)
|
|
1801
1802
|
throw new Error("Region not found");
|
|
1802
1803
|
if (!B || !c)
|
|
@@ -1805,9 +1806,9 @@ class pa {
|
|
|
1805
1806
|
{
|
|
1806
1807
|
stepRegion: c,
|
|
1807
1808
|
stepName: a,
|
|
1808
|
-
id:
|
|
1809
|
+
id: o.id,
|
|
1809
1810
|
src: i,
|
|
1810
|
-
type:
|
|
1811
|
+
type: H.Image,
|
|
1811
1812
|
y: c.top,
|
|
1812
1813
|
x: c.left,
|
|
1813
1814
|
width: c.width,
|
|
@@ -1817,7 +1818,7 @@ class pa {
|
|
|
1817
1818
|
B
|
|
1818
1819
|
);
|
|
1819
1820
|
});
|
|
1820
|
-
return { command: new G(
|
|
1821
|
+
return { command: new G(r), followup: async () => {
|
|
1821
1822
|
} };
|
|
1822
1823
|
}
|
|
1823
1824
|
}
|
|
@@ -1860,11 +1861,11 @@ class Da {
|
|
|
1860
1861
|
);
|
|
1861
1862
|
}
|
|
1862
1863
|
async reload(A, e, t) {
|
|
1863
|
-
var
|
|
1864
|
+
var o;
|
|
1864
1865
|
const a = e.getSerializedStep(
|
|
1865
1866
|
A.stepName,
|
|
1866
1867
|
t.serializableWorkflow.steps
|
|
1867
|
-
),
|
|
1868
|
+
), r = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName).map((c) => ({ id: c.id, region: c.stepRegion }));
|
|
1868
1869
|
if (!A.option || (A.option.variants || []).length === 0) {
|
|
1869
1870
|
const c = A.data.regions.map((B) => Be(B));
|
|
1870
1871
|
e.updateStorage(A.stepName, {
|
|
@@ -1873,13 +1874,13 @@ class Da {
|
|
|
1873
1874
|
}
|
|
1874
1875
|
if (a) {
|
|
1875
1876
|
const c = async () => {
|
|
1876
|
-
var d, E,
|
|
1877
|
+
var d, E, C, w;
|
|
1877
1878
|
const B = (d = a.storage) == null ? void 0 : d.framePatternSrc, l = (E = a.storage) == null ? void 0 : E.frameOffsetsList;
|
|
1878
1879
|
if (e.updateMetadata(A.stepName, {
|
|
1879
1880
|
frameOffsetsList: l,
|
|
1880
1881
|
framePatternSrc: B
|
|
1881
1882
|
}), B) {
|
|
1882
|
-
const Q = (
|
|
1883
|
+
const Q = (C = e.getStepSpecificServices(A.stepName)) == null ? void 0 : C.frameService;
|
|
1883
1884
|
if (!Q)
|
|
1884
1885
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1885
1886
|
await this.loadPatternFromString(B, Q), e.updateMetadata(A.stepName, { image: B }), e.updateStorage(A.stepName, {
|
|
@@ -1897,11 +1898,11 @@ class Da {
|
|
|
1897
1898
|
if (a.selectedVariants && a.selectedVariants.length > 0) {
|
|
1898
1899
|
const B = a.selectedVariants[0].id;
|
|
1899
1900
|
if (A.option && B) {
|
|
1900
|
-
const l = (
|
|
1901
|
+
const l = (o = A.option.variants) == null ? void 0 : o.find((d) => d.id === B);
|
|
1901
1902
|
l && await e.setSelectionsAndElements(
|
|
1902
1903
|
A.stepName,
|
|
1903
1904
|
[l],
|
|
1904
|
-
|
|
1905
|
+
r,
|
|
1905
1906
|
async () => {
|
|
1906
1907
|
const d = await Promise.all(
|
|
1907
1908
|
A.data.regions.map((E) => this.frameSourceSvg(l, E))
|
|
@@ -1911,19 +1912,19 @@ class Da {
|
|
|
1911
1912
|
);
|
|
1912
1913
|
}
|
|
1913
1914
|
} else
|
|
1914
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
1915
|
+
await e.setSelectionsAndElements(A.stepName, [], r, c);
|
|
1915
1916
|
}
|
|
1916
1917
|
}
|
|
1917
1918
|
selectImage(A, e, t) {
|
|
1918
1919
|
t.setEditedStatus(A.stepName, !0), (e.fileLink || "").endsWith("pdf") ? t.addPoller(
|
|
1919
1920
|
new Ze(
|
|
1920
1921
|
async () => {
|
|
1921
|
-
var
|
|
1922
|
-
const s = (
|
|
1922
|
+
var r;
|
|
1923
|
+
const s = (r = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : r.find((o) => o.name === "svg");
|
|
1923
1924
|
return s ? (await fetch(s.link)).status === 200 : !1;
|
|
1924
1925
|
},
|
|
1925
1926
|
() => {
|
|
1926
|
-
|
|
1927
|
+
T.getLocalOrFromServer(e.key || "").then((n) => {
|
|
1927
1928
|
this.loadPatternFromAsset(n, A, t);
|
|
1928
1929
|
});
|
|
1929
1930
|
},
|
|
@@ -1947,7 +1948,7 @@ class Da {
|
|
|
1947
1948
|
return new J(
|
|
1948
1949
|
{
|
|
1949
1950
|
id: A,
|
|
1950
|
-
type:
|
|
1951
|
+
type: H.Frame,
|
|
1951
1952
|
x: e.left,
|
|
1952
1953
|
y: e.top,
|
|
1953
1954
|
width: e.width,
|
|
@@ -1996,28 +1997,28 @@ class Da {
|
|
|
1996
1997
|
const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
|
|
1997
1998
|
if (!i)
|
|
1998
1999
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1999
|
-
const
|
|
2000
|
+
const r = await Promise.all(
|
|
2000
2001
|
A.data.regions.map((d) => this.frameSourceSvg(e, d))
|
|
2001
2002
|
);
|
|
2002
2003
|
n && n(!0);
|
|
2003
|
-
const
|
|
2004
|
+
const o = await Promise.all(
|
|
2004
2005
|
A.data.regions.map(async (d, E) => {
|
|
2005
|
-
const
|
|
2006
|
+
const C = await Ae(r[E]), w = i.getImageData(), Q = t.map((m) => new $(m.id)), h = w ? ee(w, C) : void 0, u = w ? {
|
|
2006
2007
|
id: k(),
|
|
2007
2008
|
src: w.src,
|
|
2008
|
-
x: (
|
|
2009
|
-
y: (
|
|
2009
|
+
x: (h == null ? void 0 : h.x) || 0,
|
|
2010
|
+
y: (h == null ? void 0 : h.y) || 0,
|
|
2010
2011
|
width: w.width,
|
|
2011
2012
|
height: w.height,
|
|
2012
|
-
scaleX: (
|
|
2013
|
-
scaleY: (
|
|
2013
|
+
scaleX: (h == null ? void 0 : h.zoom) || 1,
|
|
2014
|
+
scaleY: (h == null ? void 0 : h.zoom) || 1,
|
|
2014
2015
|
rotation: 0
|
|
2015
|
-
} : void 0,
|
|
2016
|
-
if (!
|
|
2017
|
-
throw new
|
|
2016
|
+
} : void 0, f = k(), D = a.getLayouts().find((m) => m.panelId === d.panelId);
|
|
2017
|
+
if (!D)
|
|
2018
|
+
throw new L(d);
|
|
2018
2019
|
return {
|
|
2019
|
-
command: this.getCreateElementCommand(
|
|
2020
|
-
frameData:
|
|
2020
|
+
command: this.getCreateElementCommand(f, d, D, {
|
|
2021
|
+
frameData: C,
|
|
2021
2022
|
pattern: u,
|
|
2022
2023
|
disablePlaceholder: A.data.disablePlaceholder,
|
|
2023
2024
|
focalBlur: A.data.focalBlur,
|
|
@@ -2026,23 +2027,23 @@ class Da {
|
|
|
2026
2027
|
stepName: A.stepName
|
|
2027
2028
|
}),
|
|
2028
2029
|
regionEl: {
|
|
2029
|
-
id:
|
|
2030
|
+
id: f,
|
|
2030
2031
|
region: d
|
|
2031
2032
|
},
|
|
2032
2033
|
removeExistingCommands: Q
|
|
2033
2034
|
};
|
|
2034
2035
|
})
|
|
2035
|
-
), c =
|
|
2036
|
+
), c = o.map((d) => d.command), B = o.map((d) => d.removeExistingCommands).flat();
|
|
2036
2037
|
return {
|
|
2037
2038
|
command: new G([...c, ...B]),
|
|
2038
2039
|
followup: async () => {
|
|
2039
2040
|
n && n(!1), await a.setSelectionsAndElements(
|
|
2040
2041
|
A.stepName,
|
|
2041
2042
|
e ? [e] : [],
|
|
2042
|
-
[...
|
|
2043
|
+
[...o.map((d) => d.regionEl)],
|
|
2043
2044
|
async () => {
|
|
2044
2045
|
var d;
|
|
2045
|
-
if (a.updateStorage(A.stepName, { currentFrameSources:
|
|
2046
|
+
if (a.updateStorage(A.stepName, { currentFrameSources: r }), s) {
|
|
2046
2047
|
const E = (d = a.getStepSpecificServices(
|
|
2047
2048
|
A.stepName
|
|
2048
2049
|
)) == null ? void 0 : d.frameService;
|
|
@@ -2097,7 +2098,7 @@ class fa {
|
|
|
2097
2098
|
src: a.src,
|
|
2098
2099
|
svg: a.svg.svg,
|
|
2099
2100
|
cachedObjectURL: a.objectURL,
|
|
2100
|
-
type:
|
|
2101
|
+
type: H.Illustration,
|
|
2101
2102
|
y: e.top,
|
|
2102
2103
|
x: e.left,
|
|
2103
2104
|
rotation: e.rotation,
|
|
@@ -2138,15 +2139,15 @@ class fa {
|
|
|
2138
2139
|
return null;
|
|
2139
2140
|
}
|
|
2140
2141
|
async reload(A, e, t) {
|
|
2141
|
-
var
|
|
2142
|
+
var o;
|
|
2142
2143
|
const a = e.getSerializedStep(
|
|
2143
2144
|
A.stepName,
|
|
2144
2145
|
t.serializableWorkflow.steps
|
|
2145
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2146
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2146
2147
|
if (a != null && a.selectedVariants) {
|
|
2147
2148
|
const c = a.selectedVariants[0].id;
|
|
2148
|
-
if (
|
|
2149
|
-
const B = (
|
|
2149
|
+
if (r && c) {
|
|
2150
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2150
2151
|
if (B) {
|
|
2151
2152
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2152
2153
|
await e.setSelectionsAndElements(
|
|
@@ -2180,13 +2181,13 @@ class fa {
|
|
|
2180
2181
|
const s = {};
|
|
2181
2182
|
for (const [B, l] of n.entries())
|
|
2182
2183
|
s[B] = { browserValue: l, spotColor: (c = s[B]) == null ? void 0 : c.spotColor };
|
|
2183
|
-
const i = ft(A, e, t, s),
|
|
2184
|
+
const i = ft(A, e, t, s), r = await FA(i), o = [];
|
|
2184
2185
|
for (const B of a) {
|
|
2185
2186
|
for (const [l, d] of n.entries())
|
|
2186
|
-
|
|
2187
|
-
|
|
2187
|
+
o.push(new jA(B, l, d));
|
|
2188
|
+
o.push(new Ft(B, i, r));
|
|
2188
2189
|
}
|
|
2189
|
-
return new G(
|
|
2190
|
+
return new G(o);
|
|
2190
2191
|
}
|
|
2191
2192
|
async changeColors(A, e, t, a, n) {
|
|
2192
2193
|
var d, E;
|
|
@@ -2194,36 +2195,36 @@ class fa {
|
|
|
2194
2195
|
return;
|
|
2195
2196
|
const s = MA(
|
|
2196
2197
|
e[0].id,
|
|
2197
|
-
a().map((
|
|
2198
|
-
), i = { ...s.colors },
|
|
2199
|
-
Object.entries(i).forEach(([
|
|
2200
|
-
const Q = { browserValue: w.browserValue },
|
|
2201
|
-
|
|
2198
|
+
a().map((C) => C.layoutState)
|
|
2199
|
+
), i = { ...s.colors }, r = {};
|
|
2200
|
+
Object.entries(i).forEach(([C, w]) => {
|
|
2201
|
+
const Q = { browserValue: w.browserValue }, h = w.spotColor;
|
|
2202
|
+
h && (Q.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), r[C] = Q;
|
|
2202
2203
|
});
|
|
2203
|
-
for (const [
|
|
2204
|
-
i[
|
|
2205
|
-
let
|
|
2204
|
+
for (const [C, w] of n.entries())
|
|
2205
|
+
i[C] = { browserValue: w, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, r[C] = { browserValue: w };
|
|
2206
|
+
let o = Array.from(Object.values(i)).map((C) => C.browserValue);
|
|
2206
2207
|
const c = A.data.colorOption;
|
|
2207
|
-
c && ((E = c.variants) == null || E.forEach((
|
|
2208
|
-
|
|
2208
|
+
c && ((E = c.variants) == null || E.forEach((C) => {
|
|
2209
|
+
o = o.map((w) => {
|
|
2209
2210
|
var Q;
|
|
2210
|
-
return w.toLowerCase() === ((Q =
|
|
2211
|
+
return w.toLowerCase() === ((Q = C.color) == null ? void 0 : Q.toLowerCase()) ? C.name : w;
|
|
2211
2212
|
});
|
|
2212
|
-
})), t.updateMetadata(A.stepName, { colors:
|
|
2213
|
+
})), t.updateMetadata(A.stepName, { colors: o });
|
|
2213
2214
|
const B = /* @__PURE__ */ new Map();
|
|
2214
|
-
if (Object.entries(i).forEach(([
|
|
2215
|
-
B.set(
|
|
2215
|
+
if (Object.entries(i).forEach(([C, w]) => {
|
|
2216
|
+
B.set(C, w.browserValue);
|
|
2216
2217
|
}), !s.svg)
|
|
2217
2218
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
2218
2219
|
const l = await this.changeColorsCommand(
|
|
2219
2220
|
s.svg,
|
|
2220
2221
|
s.width,
|
|
2221
2222
|
s.height,
|
|
2222
|
-
e.map((
|
|
2223
|
+
e.map((C) => C.id),
|
|
2223
2224
|
B
|
|
2224
2225
|
);
|
|
2225
2226
|
t.updateStorage(A.stepName, {
|
|
2226
|
-
colors:
|
|
2227
|
+
colors: r
|
|
2227
2228
|
}), t.getCommandDispatcher()(l);
|
|
2228
2229
|
}
|
|
2229
2230
|
async selectVariant(A, e, t, a, n) {
|
|
@@ -2235,43 +2236,43 @@ class fa {
|
|
|
2235
2236
|
if (!A.data || !A.data.regions)
|
|
2236
2237
|
throw new SA(A, "Missing regions.");
|
|
2237
2238
|
a(!0);
|
|
2238
|
-
const s = t.map((
|
|
2239
|
+
const s = t.map((h) => new $(h.id));
|
|
2239
2240
|
n.setMandatoryFulfilled(A.stepName, !1);
|
|
2240
2241
|
const i = e.asset;
|
|
2241
2242
|
if (!i)
|
|
2242
2243
|
throw new _(e);
|
|
2243
|
-
const
|
|
2244
|
-
if (!
|
|
2244
|
+
const r = i.fileLink;
|
|
2245
|
+
if (!r)
|
|
2245
2246
|
throw new lA(i);
|
|
2246
|
-
const
|
|
2247
|
-
const u = n.getLayouts().find((p) => p.panelId ===
|
|
2247
|
+
const o = await ye(await this.getIllustrationBody(r)), c = await FA(o.svg), B = (h) => {
|
|
2248
|
+
const u = n.getLayouts().find((p) => p.panelId === h.panelId);
|
|
2248
2249
|
if (!u)
|
|
2249
|
-
throw new
|
|
2250
|
-
const
|
|
2250
|
+
throw new L(h);
|
|
2251
|
+
const f = k();
|
|
2251
2252
|
return {
|
|
2252
|
-
regionElement: { id:
|
|
2253
|
-
command: this.getCreateElementCommand(
|
|
2253
|
+
regionElement: { id: f, region: h },
|
|
2254
|
+
command: this.getCreateElementCommand(f, h, u, {
|
|
2254
2255
|
stepName: A.stepName,
|
|
2255
|
-
src:
|
|
2256
|
+
src: r,
|
|
2256
2257
|
objectURL: c,
|
|
2257
|
-
svg:
|
|
2258
|
+
svg: o
|
|
2258
2259
|
})
|
|
2259
2260
|
};
|
|
2260
|
-
}, l = A.data.regions.map(B), E = [...l.map((
|
|
2261
|
-
let
|
|
2261
|
+
}, l = A.data.regions.map(B), E = [...l.map((h) => h.command), ...s];
|
|
2262
|
+
let C = Array.from(Object.values(o.colors)).map((h) => h.browserValue);
|
|
2262
2263
|
const w = A.data.colorOption;
|
|
2263
|
-
return w && ((Q = w.variants) == null || Q.forEach((
|
|
2264
|
-
|
|
2265
|
-
var
|
|
2266
|
-
return u.toLowerCase() === ((
|
|
2264
|
+
return w && ((Q = w.variants) == null || Q.forEach((h) => {
|
|
2265
|
+
C = C.map((u) => {
|
|
2266
|
+
var f;
|
|
2267
|
+
return u.toLowerCase() === ((f = h.color) == null ? void 0 : f.toLowerCase()) ? h.name : u;
|
|
2267
2268
|
});
|
|
2268
|
-
})), n.updateMetadata(A.stepName, { colors:
|
|
2269
|
+
})), n.updateMetadata(A.stepName, { colors: C }), {
|
|
2269
2270
|
command: new G(E),
|
|
2270
2271
|
followup: async () => {
|
|
2271
2272
|
await n.setSelectionsAndElements(
|
|
2272
2273
|
A.stepName,
|
|
2273
2274
|
[e],
|
|
2274
|
-
l.map((
|
|
2275
|
+
l.map((h) => h.regionElement),
|
|
2275
2276
|
async () => {
|
|
2276
2277
|
n.setMandatoryFulfilled(A.stepName, !0), a(!1);
|
|
2277
2278
|
}
|
|
@@ -2297,17 +2298,17 @@ class Fa {
|
|
|
2297
2298
|
return null;
|
|
2298
2299
|
}
|
|
2299
2300
|
async reload(A, e, t) {
|
|
2300
|
-
var
|
|
2301
|
+
var o;
|
|
2301
2302
|
const a = e.getSerializedStep(
|
|
2302
2303
|
A.stepName,
|
|
2303
2304
|
t.serializableWorkflow.steps
|
|
2304
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2305
|
-
if (!
|
|
2305
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2306
|
+
if (!r)
|
|
2306
2307
|
throw new YA(A);
|
|
2307
2308
|
if (a != null && a.selectedVariants) {
|
|
2308
2309
|
const c = a.selectedVariants[0].id;
|
|
2309
2310
|
if (c) {
|
|
2310
|
-
const B = (
|
|
2311
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2311
2312
|
if (B) {
|
|
2312
2313
|
const l = B.material, d = i.map((E) => ({ id: E.id, region: E.stepRegion }));
|
|
2313
2314
|
await e.setSelectionsAndElements(
|
|
@@ -2317,8 +2318,8 @@ class Fa {
|
|
|
2317
2318
|
async () => {
|
|
2318
2319
|
const E = e.getModelContainer();
|
|
2319
2320
|
if (E) {
|
|
2320
|
-
const
|
|
2321
|
-
Promise.all(
|
|
2321
|
+
const C = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, r.id || "", l || {}));
|
|
2322
|
+
Promise.all(C).then(
|
|
2322
2323
|
() => e.setMandatoryFulfilled(A.stepName, !0)
|
|
2323
2324
|
);
|
|
2324
2325
|
}
|
|
@@ -2371,15 +2372,15 @@ class Ma {
|
|
|
2371
2372
|
return null;
|
|
2372
2373
|
}
|
|
2373
2374
|
async reload(A, e, t) {
|
|
2374
|
-
var
|
|
2375
|
+
var o;
|
|
2375
2376
|
const a = e.getSerializedStep(
|
|
2376
2377
|
A.stepName,
|
|
2377
2378
|
t.serializableWorkflow.steps
|
|
2378
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2379
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2379
2380
|
if (a != null && a.selectedVariants) {
|
|
2380
2381
|
const c = a.selectedVariants[0].id;
|
|
2381
|
-
if (
|
|
2382
|
-
const B = (
|
|
2382
|
+
if (r && c) {
|
|
2383
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2383
2384
|
if (B) {
|
|
2384
2385
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2385
2386
|
await e.setSelectionsAndElements(
|
|
@@ -2390,13 +2391,13 @@ class Ma {
|
|
|
2390
2391
|
var E;
|
|
2391
2392
|
const d = e.getModelContainer();
|
|
2392
2393
|
if (d && A.option) {
|
|
2393
|
-
const
|
|
2394
|
-
if (!
|
|
2394
|
+
const C = (E = B.asset) == null ? void 0 : E.fileLink;
|
|
2395
|
+
if (!C)
|
|
2395
2396
|
throw new _(B);
|
|
2396
2397
|
await d.applyModelVariant(
|
|
2397
2398
|
A.stepName || "",
|
|
2398
2399
|
{
|
|
2399
|
-
model:
|
|
2400
|
+
model: C,
|
|
2400
2401
|
contextService: e.getLayoutPreviewService()
|
|
2401
2402
|
},
|
|
2402
2403
|
A.data.replaceProductModel || !1
|
|
@@ -2454,10 +2455,10 @@ class ya {
|
|
|
2454
2455
|
const a = e.getSerializedStep(
|
|
2455
2456
|
A.stepName,
|
|
2456
2457
|
t.serializableWorkflow.steps
|
|
2457
|
-
),
|
|
2458
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
2459
|
-
var
|
|
2460
|
-
e.updateStorage(A.stepName, { text: (
|
|
2458
|
+
), r = Object.values(t.layouts).map((o) => o.elements).flat().filter((o) => o.stepName === A.stepName).map((o) => ({ id: o.id, region: o.stepRegion }));
|
|
2459
|
+
await e.setSelectionsAndElements(A.stepName, [], r, async () => {
|
|
2460
|
+
var o, c;
|
|
2461
|
+
e.updateStorage(A.stepName, { text: (o = a == null ? void 0 : a.storage) == null ? void 0 : o.text }), e.setMandatoryFulfilled(A.stepName, ((c = a == null ? void 0 : a.storage) == null ? void 0 : c.text) !== "");
|
|
2461
2462
|
});
|
|
2462
2463
|
}
|
|
2463
2464
|
async changeText(A, e, t, a, n) {
|
|
@@ -2469,14 +2470,14 @@ class ya {
|
|
|
2469
2470
|
const s = t.getRegionElements(A.stepName), i = (c = t.getStepSpecificServices(A.stepName)) == null ? void 0 : c.module;
|
|
2470
2471
|
if (!i)
|
|
2471
2472
|
return console.error("Missing module."), null;
|
|
2472
|
-
const
|
|
2473
|
-
if (!this.validateInput(A, e,
|
|
2473
|
+
const r = t.getProfanities();
|
|
2474
|
+
if (!this.validateInput(A, e, r, n))
|
|
2474
2475
|
return t.setMandatoryFulfilled(A.stepName, !1), console.error(a), null;
|
|
2475
2476
|
if (t.setMandatoryFulfilled(A.stepName, e !== ""), !A.data || !A.data.regions || A.data.regions.length <= 0)
|
|
2476
2477
|
return console.error("Missing configuration."), null;
|
|
2477
2478
|
t.updateStorage(A.stepName, { text: e });
|
|
2478
|
-
const
|
|
2479
|
-
const E = d || k(), w = t.getLayouts().find((
|
|
2479
|
+
const o = (B, l, d) => {
|
|
2480
|
+
const E = d || k(), w = t.getLayouts().find((h) => h.panelId === l.panelId);
|
|
2480
2481
|
if (!w)
|
|
2481
2482
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2482
2483
|
const Q = [];
|
|
@@ -2488,7 +2489,7 @@ class ya {
|
|
|
2488
2489
|
colors: {},
|
|
2489
2490
|
id: E,
|
|
2490
2491
|
svg: B,
|
|
2491
|
-
type:
|
|
2492
|
+
type: H.Illustration,
|
|
2492
2493
|
y: l.top,
|
|
2493
2494
|
x: l.left,
|
|
2494
2495
|
rotation: l.rotation,
|
|
@@ -2511,7 +2512,7 @@ class ya {
|
|
|
2511
2512
|
if (!d.region)
|
|
2512
2513
|
return null;
|
|
2513
2514
|
const E = i.svgPrint(e, d.region);
|
|
2514
|
-
return
|
|
2515
|
+
return o(E, d.region, d.id);
|
|
2515
2516
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
2516
2517
|
return {
|
|
2517
2518
|
command: new G(l),
|
|
@@ -2520,7 +2521,7 @@ class ya {
|
|
|
2520
2521
|
};
|
|
2521
2522
|
} else {
|
|
2522
2523
|
const B = A.data.regions.map(
|
|
2523
|
-
(d) =>
|
|
2524
|
+
(d) => o(i.svgPrint(e, d), d)
|
|
2524
2525
|
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
2525
2526
|
return {
|
|
2526
2527
|
command: new G(l),
|
|
@@ -2546,8 +2547,8 @@ class ya {
|
|
|
2546
2547
|
const n = XA(e.toLowerCase());
|
|
2547
2548
|
for (const s of n)
|
|
2548
2549
|
for (const i in t) {
|
|
2549
|
-
const
|
|
2550
|
-
if (s ===
|
|
2550
|
+
const r = t[i].toLowerCase().replace(/\s/g, "");
|
|
2551
|
+
if (s === r)
|
|
2551
2552
|
return a("Blocked profanity."), !1;
|
|
2552
2553
|
}
|
|
2553
2554
|
return a(""), !0;
|
|
@@ -2567,15 +2568,15 @@ class Sa {
|
|
|
2567
2568
|
return e.markStepsAsInitialised([A.stepName]), null;
|
|
2568
2569
|
}
|
|
2569
2570
|
async reload(A, e, t) {
|
|
2570
|
-
var
|
|
2571
|
+
var o;
|
|
2571
2572
|
const a = e.getSerializedStep(
|
|
2572
2573
|
A.stepName,
|
|
2573
2574
|
t.serializableWorkflow.steps
|
|
2574
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2575
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2575
2576
|
if (a != null && a.selectedVariants) {
|
|
2576
2577
|
const c = a.selectedVariants[0].id;
|
|
2577
|
-
if (
|
|
2578
|
-
const B = (
|
|
2578
|
+
if (r && c) {
|
|
2579
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2579
2580
|
if (B) {
|
|
2580
2581
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2581
2582
|
await e.setSelectionsAndElements(
|
|
@@ -2602,10 +2603,10 @@ class Sa {
|
|
|
2602
2603
|
if (!s)
|
|
2603
2604
|
return console.error("No URL for picture!"), null;
|
|
2604
2605
|
a(!0), t.setMandatoryFulfilled(A.stepName, !1);
|
|
2605
|
-
const
|
|
2606
|
-
const d = t.getLayouts().find((
|
|
2606
|
+
const r = t.getRegionElements(A.stepName).map((B) => new $(B.id)), o = (B) => {
|
|
2607
|
+
const d = t.getLayouts().find((C) => C.panelId === B.panelId);
|
|
2607
2608
|
if (!d)
|
|
2608
|
-
throw new
|
|
2609
|
+
throw new L(B);
|
|
2609
2610
|
const E = k();
|
|
2610
2611
|
return {
|
|
2611
2612
|
regionElement: { id: E, region: B },
|
|
@@ -2615,7 +2616,7 @@ class Sa {
|
|
|
2615
2616
|
stepRegion: B,
|
|
2616
2617
|
id: E,
|
|
2617
2618
|
src: s,
|
|
2618
|
-
type:
|
|
2619
|
+
type: H.Image,
|
|
2619
2620
|
y: B.top,
|
|
2620
2621
|
x: B.left,
|
|
2621
2622
|
rotation: B.rotation,
|
|
@@ -2629,9 +2630,9 @@ class Sa {
|
|
|
2629
2630
|
d
|
|
2630
2631
|
)
|
|
2631
2632
|
};
|
|
2632
|
-
}, c = A.data.regions.map(
|
|
2633
|
+
}, c = A.data.regions.map(o);
|
|
2633
2634
|
return {
|
|
2634
|
-
command: new G([...
|
|
2635
|
+
command: new G([...r, ...c.map((B) => B.command)]),
|
|
2635
2636
|
followup: async () => {
|
|
2636
2637
|
await t.setSelectionsAndElements(
|
|
2637
2638
|
A.stepName,
|
|
@@ -2656,9 +2657,9 @@ class xa {
|
|
|
2656
2657
|
else {
|
|
2657
2658
|
const n = a.variants;
|
|
2658
2659
|
if (z.getDefaultVariant(a)) {
|
|
2659
|
-
const i = n == null ? void 0 : n.find((
|
|
2660
|
-
var
|
|
2661
|
-
return
|
|
2660
|
+
const i = n == null ? void 0 : n.find((r) => {
|
|
2661
|
+
var o;
|
|
2662
|
+
return r.id === ((o = a.defaultVariant) == null ? void 0 : o.id);
|
|
2662
2663
|
});
|
|
2663
2664
|
return this.selectVariantLambda(A, (i == null ? void 0 : i.id) || "", e);
|
|
2664
2665
|
}
|
|
@@ -2674,8 +2675,8 @@ class xa {
|
|
|
2674
2675
|
if (a != null && a.selectedVariants) {
|
|
2675
2676
|
const i = a.selectedVariants[0].id;
|
|
2676
2677
|
if (n && i) {
|
|
2677
|
-
const
|
|
2678
|
-
|
|
2678
|
+
const r = (s = n.variants) == null ? void 0 : s.find((o) => o.id === i);
|
|
2679
|
+
r && await e.setSelectionsAndElements(A.stepName, [r], []);
|
|
2679
2680
|
}
|
|
2680
2681
|
}
|
|
2681
2682
|
}
|
|
@@ -2721,9 +2722,9 @@ class Na {
|
|
|
2721
2722
|
}
|
|
2722
2723
|
setCustomColor(A, e, t) {
|
|
2723
2724
|
const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
|
|
2724
|
-
const
|
|
2725
|
-
if (!a.find((c) => c.panelId === (
|
|
2726
|
-
throw new
|
|
2725
|
+
const r = i.region;
|
|
2726
|
+
if (!a.find((c) => c.panelId === (r == null ? void 0 : r.panelId)))
|
|
2727
|
+
throw new L(r);
|
|
2727
2728
|
return new jA(i.id, this.shapeFillId, A);
|
|
2728
2729
|
}).filter((i) => !!i);
|
|
2729
2730
|
t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
|
|
@@ -2754,15 +2755,15 @@ class Na {
|
|
|
2754
2755
|
n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2755
2756
|
}
|
|
2756
2757
|
async reload(A, e, t) {
|
|
2757
|
-
var
|
|
2758
|
+
var o;
|
|
2758
2759
|
const a = e.getSerializedStep(
|
|
2759
2760
|
A.stepName,
|
|
2760
2761
|
t.serializableWorkflow.steps
|
|
2761
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2762
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2762
2763
|
if (a != null && a.selectedVariants) {
|
|
2763
2764
|
const c = a.selectedVariants[0].id;
|
|
2764
|
-
if (
|
|
2765
|
-
const B = (
|
|
2765
|
+
if (r && c) {
|
|
2766
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2766
2767
|
if (B) {
|
|
2767
2768
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2768
2769
|
await e.setSelectionsAndElements(
|
|
@@ -2781,23 +2782,23 @@ class Na {
|
|
|
2781
2782
|
}
|
|
2782
2783
|
}
|
|
2783
2784
|
async selectVariantCommand(A, e, t, a) {
|
|
2784
|
-
var
|
|
2785
|
-
const n = a.getLayouts(), s = (
|
|
2786
|
-
var
|
|
2787
|
-
if (((
|
|
2785
|
+
var r;
|
|
2786
|
+
const n = a.getLayouts(), s = (r = a.getStepStorage(A.stepName)) == null ? void 0 : r.colour, i = () => {
|
|
2787
|
+
var o, c;
|
|
2788
|
+
if (((o = e.variant) == null ? void 0 : o.color) === "#custom")
|
|
2788
2789
|
return s || "#FFFFFF";
|
|
2789
2790
|
if ((c = e.variant) != null && c.color)
|
|
2790
2791
|
return e.variant.color;
|
|
2791
2792
|
throw new Error("Failed to resolve color for shape step.");
|
|
2792
2793
|
};
|
|
2793
2794
|
if (t.length > 0) {
|
|
2794
|
-
const
|
|
2795
|
+
const o = (B) => {
|
|
2795
2796
|
const l = B.region;
|
|
2796
|
-
if (!n.find((
|
|
2797
|
-
throw new
|
|
2797
|
+
if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
|
|
2798
|
+
throw new L(l);
|
|
2798
2799
|
const E = i();
|
|
2799
2800
|
return new jA(B.id, this.shapeFillId, E);
|
|
2800
|
-
}, c = t.map(
|
|
2801
|
+
}, c = t.map(o).filter((B) => !!B);
|
|
2801
2802
|
return {
|
|
2802
2803
|
command: new G(c),
|
|
2803
2804
|
followup: async () => {
|
|
@@ -2809,11 +2810,11 @@ class Na {
|
|
|
2809
2810
|
}
|
|
2810
2811
|
};
|
|
2811
2812
|
} else {
|
|
2812
|
-
const
|
|
2813
|
+
const o = (d) => {
|
|
2813
2814
|
const E = n.find((u) => u.panelId === d.panelId);
|
|
2814
2815
|
if (!E)
|
|
2815
|
-
throw new
|
|
2816
|
-
const
|
|
2816
|
+
throw new L(d);
|
|
2817
|
+
const C = i(), w = `
|
|
2817
2818
|
<svg
|
|
2818
2819
|
xmlns="http://www.w3.org/2000/svg"
|
|
2819
2820
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -2830,23 +2831,23 @@ class Na {
|
|
|
2830
2831
|
width="1"
|
|
2831
2832
|
height="1"
|
|
2832
2833
|
class="${this.shapeFillId}"
|
|
2833
|
-
fill="${
|
|
2834
|
+
fill="${C}"
|
|
2834
2835
|
/>
|
|
2835
2836
|
</svg>
|
|
2836
2837
|
`, Q = {};
|
|
2837
|
-
Q[this.shapeFillId] = { browserValue:
|
|
2838
|
-
const
|
|
2838
|
+
Q[this.shapeFillId] = { browserValue: C };
|
|
2839
|
+
const h = k();
|
|
2839
2840
|
return {
|
|
2840
|
-
id:
|
|
2841
|
+
id: h,
|
|
2841
2842
|
region: d,
|
|
2842
2843
|
command: new J(
|
|
2843
2844
|
{
|
|
2844
2845
|
stepRegion: d,
|
|
2845
2846
|
stepName: A.stepName,
|
|
2846
2847
|
colors: Q,
|
|
2847
|
-
id:
|
|
2848
|
+
id: h,
|
|
2848
2849
|
svg: w,
|
|
2849
|
-
type:
|
|
2850
|
+
type: H.Illustration,
|
|
2850
2851
|
y: d.top,
|
|
2851
2852
|
x: d.left,
|
|
2852
2853
|
rotation: d.rotation,
|
|
@@ -2860,7 +2861,7 @@ class Na {
|
|
|
2860
2861
|
E
|
|
2861
2862
|
)
|
|
2862
2863
|
};
|
|
2863
|
-
}, c = A.data.regions.map(
|
|
2864
|
+
}, c = A.data.regions.map(o), 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 }));
|
|
2864
2865
|
return {
|
|
2865
2866
|
command: new G(B),
|
|
2866
2867
|
followup: async () => {
|
|
@@ -2922,9 +2923,9 @@ class Ua {
|
|
|
2922
2923
|
);
|
|
2923
2924
|
const a = [], n = e ? Mt(e.assetUrl) : void 0;
|
|
2924
2925
|
if (n) {
|
|
2925
|
-
const s = t.split("").filter((
|
|
2926
|
-
for (let
|
|
2927
|
-
i[
|
|
2926
|
+
const s = t.split("").filter((r) => !Ha.includes(r)).join(""), i = s.split("").map((r) => n.getFont().charToGlyph(r));
|
|
2927
|
+
for (let r = 0; r < i.length; r++)
|
|
2928
|
+
i[r].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(r)));
|
|
2928
2929
|
}
|
|
2929
2930
|
for (let s = 0; s < a.length; s++)
|
|
2930
2931
|
t = t.replaceAll(a[s], "");
|
|
@@ -2933,10 +2934,10 @@ class Ua {
|
|
|
2933
2934
|
const a = [];
|
|
2934
2935
|
e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
2935
2936
|
const n = t.getProfanities(), s = XA(A.toLowerCase());
|
|
2936
|
-
for (const
|
|
2937
|
-
for (const
|
|
2938
|
-
const c = n[
|
|
2939
|
-
if (
|
|
2937
|
+
for (const r of s)
|
|
2938
|
+
for (const o in n) {
|
|
2939
|
+
const c = n[o].toLowerCase().replace(/\s/g, "");
|
|
2940
|
+
if (r === c) {
|
|
2940
2941
|
a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
|
|
2941
2942
|
break;
|
|
2942
2943
|
}
|
|
@@ -2953,7 +2954,7 @@ class Ua {
|
|
|
2953
2954
|
if (t)
|
|
2954
2955
|
await this.reload(A, e, t);
|
|
2955
2956
|
else {
|
|
2956
|
-
const
|
|
2957
|
+
const r = this.getDefaultImageFillVariant(A.data), o = (n = r == null ? void 0 : r.asset) == null ? void 0 : n.fileLink, c = o ? await VA(o) : void 0, B = c ? {
|
|
2957
2958
|
src: c.src,
|
|
2958
2959
|
height: c.height,
|
|
2959
2960
|
width: c.width,
|
|
@@ -2966,7 +2967,7 @@ class Ua {
|
|
|
2966
2967
|
}), e.updateMetadata(A.stepName, {
|
|
2967
2968
|
text: A.data.defaultText || "",
|
|
2968
2969
|
color: ((i = await this.getDefaultColorVariant(A.data)) == null ? void 0 : i.name) || await this.getDefaultColor(A.data),
|
|
2969
|
-
fillImage:
|
|
2970
|
+
fillImage: r == null ? void 0 : r.name
|
|
2970
2971
|
});
|
|
2971
2972
|
const l = z.getDefaultVariant(a);
|
|
2972
2973
|
if (l)
|
|
@@ -3010,7 +3011,7 @@ class Ua {
|
|
|
3010
3011
|
return [];
|
|
3011
3012
|
}
|
|
3012
3013
|
async changeFillColor(A, e, t, a) {
|
|
3013
|
-
var
|
|
3014
|
+
var r;
|
|
3014
3015
|
if (!A.data || !A.data.regions)
|
|
3015
3016
|
return;
|
|
3016
3017
|
const n = a.getCommandDispatcher();
|
|
@@ -3018,14 +3019,14 @@ class Ua {
|
|
|
3018
3019
|
const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
|
|
3019
3020
|
s ? a.updateStorage(A.stepName, {
|
|
3020
3021
|
color: e.fill,
|
|
3021
|
-
colorProfileAssetKey: (
|
|
3022
|
+
colorProfileAssetKey: (r = s.colorProfile) == null ? void 0 : r.key
|
|
3022
3023
|
}) : a.updateStorage(A.stepName, {
|
|
3023
3024
|
color: e.fill
|
|
3024
3025
|
});
|
|
3025
|
-
for (const
|
|
3026
|
+
for (const o of t) {
|
|
3026
3027
|
if (!e.fill)
|
|
3027
3028
|
throw new Error("Fill not set on new color selection!");
|
|
3028
|
-
const c = new yt(
|
|
3029
|
+
const c = new yt(o.id, e.fill, i);
|
|
3029
3030
|
n(c);
|
|
3030
3031
|
}
|
|
3031
3032
|
}
|
|
@@ -3052,18 +3053,18 @@ class Ua {
|
|
|
3052
3053
|
return Promise.resolve([]);
|
|
3053
3054
|
}
|
|
3054
3055
|
async changeFillImage(A, e, t, a) {
|
|
3055
|
-
var i,
|
|
3056
|
+
var i, r;
|
|
3056
3057
|
if (!A.data || !A.data.regions)
|
|
3057
3058
|
return;
|
|
3058
|
-
const n = a.getCommandDispatcher(), s = (
|
|
3059
|
+
const n = a.getCommandDispatcher(), s = (r = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : r.find((o) => {
|
|
3059
3060
|
var c;
|
|
3060
|
-
return ((c =
|
|
3061
|
+
return ((c = o.asset) == null ? void 0 : c.fileLink) === e.src;
|
|
3061
3062
|
});
|
|
3062
3063
|
a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
|
|
3063
3064
|
fillImage: e
|
|
3064
3065
|
});
|
|
3065
|
-
for (const
|
|
3066
|
-
const c = new
|
|
3066
|
+
for (const o of t) {
|
|
3067
|
+
const c = new JA(o.id, e);
|
|
3067
3068
|
n(c);
|
|
3068
3069
|
}
|
|
3069
3070
|
}
|
|
@@ -3082,27 +3083,27 @@ class Ua {
|
|
|
3082
3083
|
};
|
|
3083
3084
|
if (i.errors.length > 0)
|
|
3084
3085
|
return i.helperText = i.errors[0].localizationKey, i;
|
|
3085
|
-
const
|
|
3086
|
-
i.helperText = `${
|
|
3087
|
-
const
|
|
3086
|
+
const r = (t.data.maxLength - s.length).toString();
|
|
3087
|
+
i.helperText = `${r} characters remaining`;
|
|
3088
|
+
const o = a.getTransaction().bulk && t.data.varyText || !1, c = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
|
|
3088
3089
|
for (const d of e) {
|
|
3089
3090
|
if (!d.fontData)
|
|
3090
3091
|
throw new v("Failed to resolve font data for text.");
|
|
3091
|
-
const [E,
|
|
3092
|
+
const [E, C] = IA(
|
|
3092
3093
|
d.fontSize,
|
|
3093
3094
|
d.fontData,
|
|
3094
3095
|
{ left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
|
|
3095
3096
|
[s],
|
|
3096
3097
|
{ size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
|
|
3097
3098
|
);
|
|
3098
|
-
B.set(d.id, E), l.set(d.id,
|
|
3099
|
-
const w = t.data.curved ? s : (
|
|
3099
|
+
B.set(d.id, E), l.set(d.id, C);
|
|
3100
|
+
const w = t.data.curved ? s : (C || []).join(`
|
|
3100
3101
|
`);
|
|
3101
|
-
c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w,
|
|
3102
|
+
c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, o));
|
|
3102
3103
|
}
|
|
3103
3104
|
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, {
|
|
3104
3105
|
text: s
|
|
3105
|
-
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying =
|
|
3106
|
+
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying = o, i);
|
|
3106
3107
|
}
|
|
3107
3108
|
async selectVariant(A, e, t, a, n) {
|
|
3108
3109
|
const s = await this.selectVariantCommand(
|
|
@@ -3129,34 +3130,34 @@ class Ua {
|
|
|
3129
3130
|
}
|
|
3130
3131
|
}
|
|
3131
3132
|
async reload(A, e, t) {
|
|
3132
|
-
var
|
|
3133
|
+
var o, c, B;
|
|
3133
3134
|
const a = e.getSerializedStep(
|
|
3134
3135
|
A.stepName,
|
|
3135
3136
|
t.serializableWorkflow.steps
|
|
3136
|
-
), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName),
|
|
3137
|
+
), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), r = A.option;
|
|
3137
3138
|
if (a != null && a.selectedVariants) {
|
|
3138
3139
|
const l = a.selectedVariants[0].id;
|
|
3139
|
-
if (
|
|
3140
|
-
const d = (
|
|
3140
|
+
if (r && l) {
|
|
3141
|
+
const d = (o = r.variants) == null ? void 0 : o.find((E) => E.id === l);
|
|
3141
3142
|
if (d) {
|
|
3142
|
-
const E = await this.fontDataFromVariant(d),
|
|
3143
|
+
const E = await this.fontDataFromVariant(d), C = 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;
|
|
3143
3144
|
await e.setSelectionsAndElements(
|
|
3144
3145
|
A.stepName,
|
|
3145
3146
|
[d],
|
|
3146
|
-
|
|
3147
|
+
C,
|
|
3147
3148
|
async () => {
|
|
3148
3149
|
e.updateMetadata(A.stepName, { color: w, text: Q }), e.updateStorage(A.stepName, { text: Q, inputText: Q });
|
|
3149
|
-
const u = i.map((p) => new we(p.id, E)),
|
|
3150
|
-
e.getCommandDispatcher()(
|
|
3150
|
+
const u = i.map((p) => new we(p.id, E)), f = new G(u);
|
|
3151
|
+
e.getCommandDispatcher()(f), e.setMandatoryFulfilled(A.stepName, !0);
|
|
3151
3152
|
}
|
|
3152
3153
|
);
|
|
3153
|
-
const { command:
|
|
3154
|
+
const { command: h } = K.updateInputText(
|
|
3154
3155
|
Q || "",
|
|
3155
3156
|
i,
|
|
3156
3157
|
A,
|
|
3157
3158
|
e
|
|
3158
3159
|
);
|
|
3159
|
-
|
|
3160
|
+
h && e.getCommandDispatcher()(h);
|
|
3160
3161
|
}
|
|
3161
3162
|
}
|
|
3162
3163
|
}
|
|
@@ -3191,14 +3192,14 @@ class Ua {
|
|
|
3191
3192
|
name: a.names.fullName.en
|
|
3192
3193
|
};
|
|
3193
3194
|
}
|
|
3194
|
-
async selectVariantCommand(A, e, t, a, n, s, i,
|
|
3195
|
+
async selectVariantCommand(A, e, t, a, n, s, i, r) {
|
|
3195
3196
|
var B;
|
|
3196
|
-
const
|
|
3197
|
+
const o = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
|
|
3197
3198
|
if (a.length > 0) {
|
|
3198
|
-
const l = a.map((
|
|
3199
|
-
if (
|
|
3200
|
-
const
|
|
3201
|
-
l.push(...
|
|
3199
|
+
const l = a.map((C) => new we(C.id, c));
|
|
3200
|
+
if (r) {
|
|
3201
|
+
const C = a.map((w) => new JA(w.id, r));
|
|
3202
|
+
l.push(...C);
|
|
3202
3203
|
}
|
|
3203
3204
|
const d = await this.changeInputTextWithRegion(
|
|
3204
3205
|
A,
|
|
@@ -3214,7 +3215,7 @@ class Ua {
|
|
|
3214
3215
|
return d && l.push(d), {
|
|
3215
3216
|
command: new G(l),
|
|
3216
3217
|
followup: async () => {
|
|
3217
|
-
n.markUpdateCompleted(
|
|
3218
|
+
n.markUpdateCompleted(o), await n.setSelectionsAndElements(A.stepName, [e], a);
|
|
3218
3219
|
}
|
|
3219
3220
|
};
|
|
3220
3221
|
} else {
|
|
@@ -3236,16 +3237,16 @@ class Ua {
|
|
|
3236
3237
|
s,
|
|
3237
3238
|
i
|
|
3238
3239
|
), E = l.flatMap((w) => w.commands);
|
|
3239
|
-
if (
|
|
3240
|
+
if (r) {
|
|
3240
3241
|
const w = l.map(
|
|
3241
|
-
(Q) => new
|
|
3242
|
+
(Q) => new JA(Q.regionElement.id, r)
|
|
3242
3243
|
);
|
|
3243
3244
|
E.push(...w);
|
|
3244
3245
|
}
|
|
3245
3246
|
return d && E.push(d), {
|
|
3246
3247
|
command: new G(E),
|
|
3247
3248
|
followup: async () => {
|
|
3248
|
-
n.markUpdateCompleted(
|
|
3249
|
+
n.markUpdateCompleted(o);
|
|
3249
3250
|
}
|
|
3250
3251
|
};
|
|
3251
3252
|
}
|
|
@@ -3261,37 +3262,37 @@ class Ua {
|
|
|
3261
3262
|
async createTextboxRegions(A, e, t, a, n, s) {
|
|
3262
3263
|
if (!t || !t.regions)
|
|
3263
3264
|
throw new Error("Step data not supplied");
|
|
3264
|
-
const i = s.getTransaction().bulk && t.varyText || !1,
|
|
3265
|
+
const i = s.getTransaction().bulk && t.varyText || !1, r = i ? "" : n.text || t.defaultText || "", o = this.getProcessedInput(r, t, !1), c = async (l) => {
|
|
3265
3266
|
var w;
|
|
3266
|
-
const E = s.getLayouts().find((Q) => Q.panelId === l.panelId),
|
|
3267
|
+
const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), C = k();
|
|
3267
3268
|
try {
|
|
3268
3269
|
if (!E)
|
|
3269
3270
|
throw new PA("Failed to find layout for region: " + l.panelId);
|
|
3270
3271
|
const Q = t.colorOption;
|
|
3271
|
-
let
|
|
3272
|
+
let h;
|
|
3272
3273
|
if (Q && Q.variants) {
|
|
3273
|
-
const
|
|
3274
|
+
const b = Q.variants.find((V) => {
|
|
3274
3275
|
var W;
|
|
3275
3276
|
return V.id === ((W = Q.defaultVariant) == null ? void 0 : W.id);
|
|
3276
3277
|
}) || Q.variants[0];
|
|
3277
|
-
|
|
3278
|
+
h = this.createTextFillSpotColor(Q, b), s.updateStorage(A, {
|
|
3278
3279
|
colorProfileAssetKey: (w = Q.colorProfile) == null ? void 0 : w.key
|
|
3279
3280
|
});
|
|
3280
3281
|
}
|
|
3281
|
-
const u = await this.getDefaultColor(t),
|
|
3282
|
+
const u = await this.getDefaultColor(t), f = u || "#000000", p = {
|
|
3282
3283
|
stepRegion: l,
|
|
3283
3284
|
stepName: A,
|
|
3284
3285
|
align: this.textAlign(t),
|
|
3285
|
-
fill: n.color ? n.color :
|
|
3286
|
+
fill: n.color ? n.color : f,
|
|
3286
3287
|
fontSize: t.size || OA,
|
|
3287
3288
|
fontData: a,
|
|
3288
|
-
id:
|
|
3289
|
+
id: C,
|
|
3289
3290
|
layer: l.layer,
|
|
3290
3291
|
layerIndex: l.layerIndex,
|
|
3291
3292
|
rotation: l.rotation,
|
|
3292
|
-
text:
|
|
3293
|
-
input:
|
|
3294
|
-
type:
|
|
3293
|
+
text: o,
|
|
3294
|
+
input: r,
|
|
3295
|
+
type: H.Textbox,
|
|
3295
3296
|
vertical: t.vertical,
|
|
3296
3297
|
x: l.left,
|
|
3297
3298
|
y: l.top,
|
|
@@ -3301,8 +3302,8 @@ class Ua {
|
|
|
3301
3302
|
verticalAlign: t.verticalAlign || "middle",
|
|
3302
3303
|
curved: t.curved,
|
|
3303
3304
|
paths: t.paths,
|
|
3304
|
-
fillSpotColorDefinition:
|
|
3305
|
-
},
|
|
3305
|
+
fillSpotColorDefinition: h
|
|
3306
|
+
}, D = [], m = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map();
|
|
3306
3307
|
if (!p.fontData)
|
|
3307
3308
|
throw new v("Failed to resolve font data for text.");
|
|
3308
3309
|
const [Y, F] = IA(
|
|
@@ -3316,19 +3317,19 @@ class Ua {
|
|
|
3316
3317
|
rotation: p.rotation,
|
|
3317
3318
|
panelId: ""
|
|
3318
3319
|
},
|
|
3319
|
-
[
|
|
3320
|
+
[o],
|
|
3320
3321
|
{ size: t.size, minSize: t.minSize, maxSize: t.maxSize }
|
|
3321
3322
|
);
|
|
3322
|
-
m.set(p.id, Y),
|
|
3323
|
-
const
|
|
3323
|
+
m.set(p.id, Y), M.set(p.id, F);
|
|
3324
|
+
const U = t.curved || t.vertical ? o : (F || []).join(`
|
|
3324
3325
|
`);
|
|
3325
|
-
|
|
3326
|
-
this.generateTextChangeCommandsForRegion(Y, t, p.id,
|
|
3326
|
+
D.push(
|
|
3327
|
+
this.generateTextChangeCommandsForRegion(Y, t, p.id, U, i)
|
|
3327
3328
|
);
|
|
3328
|
-
const
|
|
3329
|
-
return
|
|
3330
|
-
regionElement: { id:
|
|
3331
|
-
commands: [
|
|
3329
|
+
const S = new J(p, E);
|
|
3330
|
+
return S.varying = i, {
|
|
3331
|
+
regionElement: { id: C, region: l },
|
|
3332
|
+
commands: [S, ...D],
|
|
3332
3333
|
newElement: p,
|
|
3333
3334
|
fontData: a
|
|
3334
3335
|
};
|
|
@@ -3344,9 +3345,9 @@ class Ua {
|
|
|
3344
3345
|
B.map((l) => l.regionElement),
|
|
3345
3346
|
async () => {
|
|
3346
3347
|
s.updateMetadata(A, {
|
|
3347
|
-
text:
|
|
3348
|
+
text: r
|
|
3348
3349
|
}), s.updateStorage(A, {
|
|
3349
|
-
text:
|
|
3350
|
+
text: r
|
|
3350
3351
|
});
|
|
3351
3352
|
}
|
|
3352
3353
|
), B;
|
|
@@ -3354,68 +3355,68 @@ class Ua {
|
|
|
3354
3355
|
generateTextChangeCommandsForRegion(A, e, t, a, n) {
|
|
3355
3356
|
const s = [], i = new Yt(t, a);
|
|
3356
3357
|
if (i.varying = n, s.push(i), !e.size) {
|
|
3357
|
-
const
|
|
3358
|
-
|
|
3358
|
+
const o = new St(t, A);
|
|
3359
|
+
o.varying = n, s.push(o);
|
|
3359
3360
|
}
|
|
3360
|
-
const
|
|
3361
|
-
return
|
|
3361
|
+
const r = new G(s);
|
|
3362
|
+
return r.varying = n, r;
|
|
3362
3363
|
}
|
|
3363
3364
|
/**
|
|
3364
3365
|
* @deprecated
|
|
3365
3366
|
*/
|
|
3366
|
-
async changeInputTextWithRegion(A, e, t, a, n, s, i,
|
|
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(),
|
|
3367
|
+
async changeInputTextWithRegion(A, e, t, a, n, s, i, r, o, c) {
|
|
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(), C = /* @__PURE__ */ new Map();
|
|
3368
3369
|
for (const p of d)
|
|
3369
3370
|
if (p.region) {
|
|
3370
|
-
const [
|
|
3371
|
+
const [D, m] = IA(
|
|
3371
3372
|
e,
|
|
3372
3373
|
t,
|
|
3373
3374
|
p.region,
|
|
3374
3375
|
[l],
|
|
3375
3376
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
3376
3377
|
);
|
|
3377
|
-
E.set(p.id,
|
|
3378
|
+
E.set(p.id, D), C.set(p.id, m);
|
|
3378
3379
|
}
|
|
3379
3380
|
const Q = (() => {
|
|
3380
3381
|
if (A.data && A.data.maxLength && l.length > A.data.maxLength)
|
|
3381
3382
|
return c && c(!0), { info: "0" };
|
|
3382
|
-
const p = s.getProfanities(),
|
|
3383
|
-
for (const m of
|
|
3384
|
-
for (const
|
|
3385
|
-
const Y = p[
|
|
3383
|
+
const p = s.getProfanities(), D = XA(l.toLowerCase());
|
|
3384
|
+
for (const m of D)
|
|
3385
|
+
for (const M in p) {
|
|
3386
|
+
const Y = p[M].toLowerCase().replace(/\s/g, "");
|
|
3386
3387
|
if (m === Y)
|
|
3387
|
-
return
|
|
3388
|
+
return r(!0), { error: "Blocked profanity." };
|
|
3388
3389
|
}
|
|
3389
3390
|
return !A.data.vertical && !A.data.allowNewlines && (l.includes(`
|
|
3390
|
-
`) || l.includes("\r")) ? (
|
|
3391
|
+
`) || l.includes("\r")) ? (r(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(C.values()).every((M) => M) ? (r(!0), { error: "Does not fit." }) : (r(!1), { info: (A.data.maxLength - l.length).toString() });
|
|
3391
3392
|
})();
|
|
3392
3393
|
if (Q.error) {
|
|
3393
|
-
|
|
3394
|
+
o(Q.error);
|
|
3394
3395
|
return;
|
|
3395
3396
|
}
|
|
3396
|
-
if (
|
|
3397
|
+
if (o(`${Q.info} characters remaining` || ""), c)
|
|
3397
3398
|
return;
|
|
3398
3399
|
s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
|
|
3399
3400
|
text: this.injectReplaceableText(B, A.data)
|
|
3400
3401
|
});
|
|
3401
|
-
const
|
|
3402
|
+
const h = s.getTransaction().bulk && A.data.varyText || !1;
|
|
3402
3403
|
n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
|
|
3403
3404
|
const u = [];
|
|
3404
3405
|
for (const p of d) {
|
|
3405
|
-
const
|
|
3406
|
+
const D = A.data.curved ? l : (C.get(p.id) || []).join(`
|
|
3406
3407
|
`);
|
|
3407
3408
|
u.push(
|
|
3408
3409
|
this.generateTextChangeCommandsForRegion(
|
|
3409
3410
|
E.get(p.id) || 1,
|
|
3410
3411
|
A.data,
|
|
3411
3412
|
p.id,
|
|
3412
|
-
|
|
3413
|
-
|
|
3413
|
+
D,
|
|
3414
|
+
h
|
|
3414
3415
|
)
|
|
3415
3416
|
);
|
|
3416
3417
|
}
|
|
3417
|
-
const
|
|
3418
|
-
return
|
|
3418
|
+
const f = new G(u);
|
|
3419
|
+
return f.varying = h, f;
|
|
3419
3420
|
}
|
|
3420
3421
|
}
|
|
3421
3422
|
const K = new Ua();
|
|
@@ -4682,27 +4683,27 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
4682
4683
|
</g>
|
|
4683
4684
|
</svg>
|
|
4684
4685
|
|
|
4685
|
-
`,
|
|
4686
|
-
const e =
|
|
4686
|
+
`, R = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
|
|
4687
|
+
const e = R("rect");
|
|
4687
4688
|
return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
|
|
4688
4689
|
}, ka = () => {
|
|
4689
|
-
const g =
|
|
4690
|
+
const g = R("svg");
|
|
4690
4691
|
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;
|
|
4691
|
-
},
|
|
4692
|
-
const A =
|
|
4692
|
+
}, ba = (g) => {
|
|
4693
|
+
const A = R("use");
|
|
4693
4694
|
return A.setAttribute("xlink:href", g), A.setAttribute("href", g), A;
|
|
4694
4695
|
};
|
|
4695
4696
|
function tt(g) {
|
|
4696
4697
|
const A = ka(), e = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], t = parseFloat(e[1]), a = parseFloat(e[2]);
|
|
4697
4698
|
return A.setAttribute("height", `${a}`), A.setAttribute("width", `${t}`), [A, a, t];
|
|
4698
4699
|
}
|
|
4699
|
-
const
|
|
4700
|
-
const t =
|
|
4700
|
+
const Ja = (g, A, e) => {
|
|
4701
|
+
const t = R("g");
|
|
4701
4702
|
g.appendChild(t), t.setAttribute("id", e), t.innerHTML = A;
|
|
4702
4703
|
};
|
|
4703
4704
|
function at(g, A, e) {
|
|
4704
4705
|
const t = k();
|
|
4705
|
-
|
|
4706
|
+
Ja(A, e, `bgdef-${t}`), g.appendChild(ba(`#bgdef-${t}`));
|
|
4706
4707
|
}
|
|
4707
4708
|
const nt = (g, A, e, t) => {
|
|
4708
4709
|
const a = wA("filter");
|
|
@@ -4718,16 +4719,16 @@ const nt = (g, A, e, t) => {
|
|
|
4718
4719
|
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;
|
|
4719
4720
|
};
|
|
4720
4721
|
function re(g, A, e, t, a, n) {
|
|
4721
|
-
const s = a || 1, i = n || 1,
|
|
4722
|
+
const s = a || 1, i = n || 1, r = {
|
|
4722
4723
|
x: A[0],
|
|
4723
4724
|
y: A[1],
|
|
4724
4725
|
width: A[2] - A[0],
|
|
4725
4726
|
height: A[3] - A[1]
|
|
4726
4727
|
};
|
|
4727
|
-
if (
|
|
4728
|
+
if (r.width <= 0)
|
|
4728
4729
|
return;
|
|
4729
|
-
const
|
|
4730
|
-
g.setAttribute("transform", `translate(${c} ${B}) scale(${
|
|
4730
|
+
const o = Ta(r.height, r.width, e * s, t * i), c = (t - o * r.width) / 2 - o * r.x, B = (e - o * r.height) / 2 - o * r.y;
|
|
4731
|
+
g.setAttribute("transform", `translate(${c} ${B}) scale(${o} ${o})`);
|
|
4731
4732
|
}
|
|
4732
4733
|
function Ta(g, A, e, t) {
|
|
4733
4734
|
const a = e / g, n = t / A;
|
|
@@ -4762,10 +4763,10 @@ class ce {
|
|
|
4762
4763
|
let e = "";
|
|
4763
4764
|
const a = (n) => {
|
|
4764
4765
|
const s = [], i = n.relative ? n.type : n.type.toUpperCase();
|
|
4765
|
-
let
|
|
4766
|
-
const
|
|
4767
|
-
|
|
4768
|
-
for (const c of
|
|
4766
|
+
let r = e !== i;
|
|
4767
|
+
const o = pe[n.type];
|
|
4768
|
+
r && (s.push(i), e = i);
|
|
4769
|
+
for (const c of o) {
|
|
4769
4770
|
const B = n[c];
|
|
4770
4771
|
let l;
|
|
4771
4772
|
switch (typeof B) {
|
|
@@ -4778,7 +4779,7 @@ class ce {
|
|
|
4778
4779
|
default:
|
|
4779
4780
|
throw new rA("Failed to encode path.");
|
|
4780
4781
|
}
|
|
4781
|
-
|
|
4782
|
+
r || s.push(" "), s.push(l), r = !1;
|
|
4782
4783
|
}
|
|
4783
4784
|
return s.join("");
|
|
4784
4785
|
};
|
|
@@ -4788,24 +4789,24 @@ class ce {
|
|
|
4788
4789
|
const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
|
|
4789
4790
|
let n;
|
|
4790
4791
|
for (e.lastIndex = 0; n = e.exec(A); ) {
|
|
4791
|
-
const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat),
|
|
4792
|
-
if (i.length <
|
|
4792
|
+
const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), r = s === n[1], o = pe[s];
|
|
4793
|
+
if (i.length < o.length)
|
|
4793
4794
|
throw new rA(
|
|
4794
|
-
`Path type "${s}" given ${i.length} arguments, expected ${
|
|
4795
|
+
`Path type "${s}" given ${i.length} arguments, expected ${o.length}.`
|
|
4795
4796
|
);
|
|
4796
|
-
if (
|
|
4797
|
-
if (i.length %
|
|
4797
|
+
if (o.length > 0) {
|
|
4798
|
+
if (i.length % o.length !== 0)
|
|
4798
4799
|
throw new rA(
|
|
4799
|
-
`Path type "${s}" given ${i.length} arguments, not divisible by ${
|
|
4800
|
+
`Path type "${s}" given ${i.length} arguments, not divisible by ${o.length}`
|
|
4800
4801
|
);
|
|
4801
|
-
for (let c = 0; c < i.length /
|
|
4802
|
-
const B = { type: s, relative:
|
|
4803
|
-
for (let l = 0; l <
|
|
4804
|
-
B[
|
|
4802
|
+
for (let c = 0; c < i.length / o.length; c++) {
|
|
4803
|
+
const B = { type: s, relative: r };
|
|
4804
|
+
for (let l = 0; l < o.length; l++)
|
|
4805
|
+
B[o[l]] = i[c * o.length + l];
|
|
4805
4806
|
a.push(B);
|
|
4806
4807
|
}
|
|
4807
4808
|
} else
|
|
4808
|
-
a.push({ type: s, relative:
|
|
4809
|
+
a.push({ type: s, relative: r });
|
|
4809
4810
|
}
|
|
4810
4811
|
return a;
|
|
4811
4812
|
}
|
|
@@ -4816,12 +4817,12 @@ class ce {
|
|
|
4816
4817
|
["x", "y"]
|
|
4817
4818
|
], a = (n) => {
|
|
4818
4819
|
for (let s = 0; s < t.length; s++) {
|
|
4819
|
-
const [i,
|
|
4820
|
-
if (i in n &&
|
|
4821
|
-
const
|
|
4820
|
+
const [i, r] = t[s];
|
|
4821
|
+
if (i in n && r in n) {
|
|
4822
|
+
const o = [n[i], n[r]], c = e(o);
|
|
4822
4823
|
if (c.length < 2)
|
|
4823
4824
|
throw new rA("Transformer must return at least 2 points.");
|
|
4824
|
-
n[i] = c[0], n[
|
|
4825
|
+
n[i] = c[0], n[r] = c[1];
|
|
4825
4826
|
}
|
|
4826
4827
|
}
|
|
4827
4828
|
return n;
|
|
@@ -4859,31 +4860,31 @@ class La extends ie {
|
|
|
4859
4860
|
}
|
|
4860
4861
|
brandSvg(A, e) {
|
|
4861
4862
|
const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
|
|
4862
|
-
const p =
|
|
4863
|
-
p.appendChild(
|
|
4864
|
-
const m =
|
|
4863
|
+
const p = R("g"), D = R("defs");
|
|
4864
|
+
p.appendChild(D), D.appendChild(nt(3, 7, 4, "shadow"));
|
|
4865
|
+
const m = R("g");
|
|
4865
4866
|
p.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = t;
|
|
4866
|
-
const
|
|
4867
|
-
p.appendChild(
|
|
4868
|
-
const Y =
|
|
4867
|
+
const M = R("g");
|
|
4868
|
+
p.appendChild(M), M.setAttribute("fill", "red"), M.setAttribute("stroke", "red"), M.setAttribute("stroke-width", "9"), M.innerHTML = t;
|
|
4869
|
+
const Y = R("g");
|
|
4869
4870
|
p.appendChild(Y), Y.setAttribute("fill", "#9d2621"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = t;
|
|
4870
|
-
const F =
|
|
4871
|
-
return p.appendChild(F), F.setAttribute("fill", "yellow"), F.innerHTML = t, new ce(p).transform(([
|
|
4872
|
-
}, [
|
|
4873
|
-
if (!
|
|
4871
|
+
const F = R("g");
|
|
4872
|
+
return p.appendChild(F), F.setAttribute("fill", "yellow"), F.innerHTML = t, new ce(p).transform(([S, b]) => [S, b + (n / 2 - S) ** 2 / (n * 2.9)]), p;
|
|
4873
|
+
}, [r, o, c] = tt(e);
|
|
4874
|
+
if (!r)
|
|
4874
4875
|
return "";
|
|
4875
|
-
const B =
|
|
4876
|
-
|
|
4877
|
-
const l =
|
|
4878
|
-
|
|
4876
|
+
const B = R("defs");
|
|
4877
|
+
r.appendChild(B), at(r, B, e);
|
|
4878
|
+
const l = o * 0.23, d = c * 0.94, E = c * 0.04, C = o * 0.53, w = R("g");
|
|
4879
|
+
r.appendChild(w), w.setAttribute("transform", `translate(${E} ${C}) rotate(-21)`);
|
|
4879
4880
|
const Q = oe(l, d);
|
|
4880
4881
|
Q.setAttribute("opacity", "0"), w.appendChild(Q);
|
|
4881
|
-
const
|
|
4882
|
-
w.appendChild(
|
|
4882
|
+
const h = R("g");
|
|
4883
|
+
w.appendChild(h);
|
|
4883
4884
|
const u = i();
|
|
4884
|
-
|
|
4885
|
-
const
|
|
4886
|
-
return re(
|
|
4885
|
+
h.appendChild(u);
|
|
4886
|
+
const f = ne(s);
|
|
4887
|
+
return re(h, f, l, d), st(r.outerHTML);
|
|
4887
4888
|
}
|
|
4888
4889
|
}
|
|
4889
4890
|
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==";
|
|
@@ -4898,39 +4899,39 @@ class za extends ie {
|
|
|
4898
4899
|
return this.svg(A);
|
|
4899
4900
|
}
|
|
4900
4901
|
svg(A) {
|
|
4901
|
-
const e = ae(Oa), a = A !== "" ? ((
|
|
4902
|
+
const e = ae(Oa), a = A !== "" ? ((r) => r.charAt(0).toUpperCase() + r.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), s = A.length < this.shortLength, i = s ? this.backgroundShortSvg : this.backgroundSvg;
|
|
4902
4903
|
return this.brandSvg(n, i, s);
|
|
4903
4904
|
}
|
|
4904
4905
|
brandSvg(A, e, t) {
|
|
4905
|
-
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1,
|
|
4906
|
-
const m =
|
|
4907
|
-
m.appendChild(
|
|
4908
|
-
const Y =
|
|
4906
|
+
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, r = A.toPathData(3), o = () => {
|
|
4907
|
+
const m = R("g"), M = R("g");
|
|
4908
|
+
m.appendChild(M), M.setAttribute("stroke", "#5C1A0D"), M.setAttribute("stroke-width", "4"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
|
|
4909
|
+
const Y = R("g");
|
|
4909
4910
|
m.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
|
|
4910
|
-
const F =
|
|
4911
|
+
const F = R("g");
|
|
4911
4912
|
m.appendChild(F), F.setAttribute("fill", "white"), F.innerHTML = a;
|
|
4912
|
-
const
|
|
4913
|
-
return
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
]),
|
|
4913
|
+
const U = new ce(m);
|
|
4914
|
+
return U.transform(([S, b]) => [S, b + ((i - S) * b) ** 2 / (i * 5e4)]), U.transform(([S, b]) => [
|
|
4915
|
+
S,
|
|
4916
|
+
b + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
|
|
4917
|
+
]), U.transform(([S, b]) => [S - (s - b) * (i - S) / 800, b]), m;
|
|
4917
4918
|
}, [c, B, l] = tt(e);
|
|
4918
4919
|
if (!c)
|
|
4919
4920
|
return "";
|
|
4920
|
-
const d =
|
|
4921
|
+
const d = R("defs");
|
|
4921
4922
|
c.appendChild(d), at(c, d, e);
|
|
4922
|
-
let E,
|
|
4923
|
-
t ? (E = B * 0.25 * (1 + 0.1),
|
|
4924
|
-
const
|
|
4925
|
-
c.appendChild(
|
|
4926
|
-
const u = oe(E,
|
|
4927
|
-
u.setAttribute("opacity", "0"),
|
|
4928
|
-
const
|
|
4929
|
-
|
|
4930
|
-
const p =
|
|
4931
|
-
|
|
4932
|
-
const
|
|
4933
|
-
return re(
|
|
4923
|
+
let E, C, w, Q;
|
|
4924
|
+
t ? (E = B * 0.25 * (1 + 0.1), C = l / 2 * (1 + 0.1), w = l * 0.22, Q = B * 0.32) : (E = B * 0.22 * (1 + 0.1), C = l * 0.8, w = l * 0.067, Q = B * 0.33);
|
|
4925
|
+
const h = R("g");
|
|
4926
|
+
c.appendChild(h), h.setAttribute("transform", `translate(${w} ${Q}) rotate(-10)`);
|
|
4927
|
+
const u = oe(E, C);
|
|
4928
|
+
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
4929
|
+
const f = R("g");
|
|
4930
|
+
h.appendChild(f);
|
|
4931
|
+
const p = o();
|
|
4932
|
+
f.appendChild(p);
|
|
4933
|
+
const D = ne(r);
|
|
4934
|
+
return re(f, D, E, C), c.outerHTML;
|
|
4934
4935
|
}
|
|
4935
4936
|
// 1 if true, 0 if false.
|
|
4936
4937
|
}
|
|
@@ -4946,35 +4947,35 @@ class ja extends ie {
|
|
|
4946
4947
|
return this.svgElement(A, e);
|
|
4947
4948
|
}
|
|
4948
4949
|
svgElement(A, e) {
|
|
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),
|
|
4950
|
-
const u =
|
|
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), r = s.getBoundingBox(), o = r.x2 - r.x1, c = s.toPathData(3), B = () => {
|
|
4951
|
+
const u = R("g");
|
|
4951
4952
|
u.classList.add("module-text-group");
|
|
4952
|
-
const
|
|
4953
|
-
u.appendChild(
|
|
4954
|
-
const p =
|
|
4955
|
-
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"),
|
|
4956
|
-
const
|
|
4957
|
-
|
|
4958
|
-
const m =
|
|
4953
|
+
const f = R("defs");
|
|
4954
|
+
u.appendChild(f), f.appendChild(nt(0, 2, 2, "shadow"));
|
|
4955
|
+
const p = R("path");
|
|
4956
|
+
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), f.appendChild(p);
|
|
4957
|
+
const D = R("g");
|
|
4958
|
+
D.classList.add("module-layer0"), u.appendChild(D), D.setAttribute("filter", "url(#shadow)"), D.innerHTML = p.outerHTML;
|
|
4959
|
+
const m = R("g");
|
|
4959
4960
|
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;
|
|
4960
|
-
const
|
|
4961
|
-
|
|
4962
|
-
const Y =
|
|
4963
|
-
return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([
|
|
4964
|
-
}, l =
|
|
4961
|
+
const M = R("g");
|
|
4962
|
+
M.classList.add("module-layer2"), u.appendChild(M), M.setAttribute("fill", "rgb(255,209,0)"), M.setAttribute("transform", "translate(1,-0.1)"), M.innerHTML = i;
|
|
4963
|
+
const Y = R("g");
|
|
4964
|
+
return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([U, S]) => [U, S + (o / 2 - U) ** 2 / (o * 6)]), u;
|
|
4965
|
+
}, l = R("g");
|
|
4965
4966
|
l.classList.add("module-root");
|
|
4966
|
-
const d =
|
|
4967
|
+
const d = R("defs");
|
|
4967
4968
|
l.appendChild(d);
|
|
4968
|
-
const E =
|
|
4969
|
+
const E = R("g");
|
|
4969
4970
|
E.classList.add("module-bounds"), l.appendChild(E);
|
|
4970
|
-
const
|
|
4971
|
-
|
|
4972
|
-
const w =
|
|
4971
|
+
const C = oe(e.height, e.width);
|
|
4972
|
+
C.setAttribute("opacity", "0"), E.appendChild(C);
|
|
4973
|
+
const w = R("g");
|
|
4973
4974
|
w.classList.add("module-text-enclosure"), l.appendChild(w);
|
|
4974
4975
|
const Q = B();
|
|
4975
4976
|
w.appendChild(Q);
|
|
4976
|
-
const
|
|
4977
|
-
return re(w,
|
|
4977
|
+
const h = ne(c);
|
|
4978
|
+
return re(w, h, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
|
|
4978
4979
|
}
|
|
4979
4980
|
}
|
|
4980
4981
|
async function it(g) {
|
|
@@ -5003,25 +5004,24 @@ class Ie extends Xe {
|
|
|
5003
5004
|
}
|
|
5004
5005
|
}
|
|
5005
5006
|
class Wa {
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
var w;
|
|
5007
|
+
constructor(A, e, t, a, n, s, i, r, o, c, B = !1, l, d = !1, E = !1) {
|
|
5008
|
+
this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
|
|
5009
|
+
var Q;
|
|
5010
5010
|
if (!this.previewService)
|
|
5011
5011
|
return;
|
|
5012
|
-
const
|
|
5013
|
-
if (
|
|
5014
|
-
for (const [,
|
|
5015
|
-
|
|
5012
|
+
const C = this.getCommandContext().getAllLayouts(), w = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
|
|
5013
|
+
if (w)
|
|
5014
|
+
for (const [, h] of w)
|
|
5015
|
+
h.render(
|
|
5016
5016
|
this.getWorkflow(),
|
|
5017
|
-
|
|
5017
|
+
C,
|
|
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.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 =
|
|
5021
|
+
}, this.updateTransaction = n, this.commandContext = a, this.reloadedState = c, this.transaction = s, this.readOnly = B, this.singleVariantsRenderable = E, 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 = r, 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 = o, 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((C) => {
|
|
5024
|
+
throw console.error(C), 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 r = this.workflow.finalizeStepConfig;
|
|
5035
|
+
if (!r)
|
|
5036
5036
|
return;
|
|
5037
|
-
const
|
|
5038
|
-
|
|
5037
|
+
const o = r.lookAtAnimation, c = r.modelAnimation;
|
|
5038
|
+
o && ((B = this.previewService) == null || B.executeCameraAnimation(o)), 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((r) => {
|
|
5041
|
+
this.storage[r.stepName] = r.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((r) => r.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 r, o, c;
|
|
5247
|
+
if (!((r = n.option) != null && r.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 = ((o = this.stepSelections[n.stepName]) == null ? void 0 : o.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((r) => {
|
|
5381
|
+
const o = i.findIndex((c) => c.id === r.id);
|
|
5382
|
+
o > -1 && i.splice(o, 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 (o, c, B) => {
|
|
5400
|
+
if (o.type === I.SilentIllustration) {
|
|
5401
|
+
const l = await new me(o, c).trigger();
|
|
5402
|
+
return { step: o, results: l };
|
|
5403
|
+
} else if (o.type === I.ProductOverlay) {
|
|
5404
5404
|
const l = await new me(
|
|
5405
|
-
|
|
5405
|
+
o,
|
|
5406
5406
|
c,
|
|
5407
5407
|
B
|
|
5408
5408
|
).trigger();
|
|
5409
|
-
return { step:
|
|
5409
|
+
return { step: o, results: l };
|
|
5410
5410
|
}
|
|
5411
5411
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
5412
5412
|
}, n = A.filter(
|
|
5413
|
-
(
|
|
5413
|
+
(o) => !this.stepInitialised[o.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 o of n)
|
|
5419
|
+
this.markStepsAsInitialised([o.stepName]), e || i.push(a(o, this.layouts, t));
|
|
5420
|
+
const r = await Promise.all(i);
|
|
5421
|
+
for (const o of r)
|
|
5422
|
+
s.stepElements[o.step.stepName] = o.results.map((c) => c.regionElement), s.commands = [...s.commands, ...o.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((D, m) => D + m.selectedVariants.map((M) => M.priceModifier || 0).reduce((M, Y) => M + Y, 0), 0), this.workflow.steps.forEach((D) => {
|
|
5460
|
+
nA(D, this.stepSelections) || (this.stepInitialised[D.stepName] = !1, delete this.stepMetadata[D.stepName], delete this.stepSelections[D.stepName], delete this.storage[D.stepName]);
|
|
5461
5461
|
});
|
|
5462
|
-
const s = this.allScenes, i = aA(s, n),
|
|
5463
|
-
(
|
|
5462
|
+
const s = this.allScenes, i = aA(s, n), r = aA(s, this.stepSelections), o = i.map((D) => D.silentSteps).flat(), B = r.map((D) => D.silentSteps).flat().filter(
|
|
5463
|
+
(D) => !o.some((m) => m.stepName === D.stepName)
|
|
5464
5464
|
);
|
|
5465
|
-
|
|
5466
|
-
nA(
|
|
5465
|
+
o.forEach((D) => {
|
|
5466
|
+
nA(D, this.stepSelections) || (this.stepInitialised[D.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 C = this.workflow.steps.find((D) => D.stepName === A);
|
|
5475
|
+
if ((C == null ? void 0 : C.type) === I.Frame) {
|
|
5476
|
+
const D = this.getStepSpecificServices(A);
|
|
5477
|
+
(p = D == null ? void 0 : D.frameService) == null || p.setTargetElements(t.map((m) => m.id));
|
|
5478
|
+
}
|
|
5479
|
+
const w = l.map((D) => new $(D.id)), Q = new Ee(this.constructSerializableWorkflow()), h = [...E, ...w, Q];
|
|
5480
|
+
h.length > 0 && this.commandContext.apply(new G(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5481
|
+
const u = this.getInvalidModelVariants(), f = this.modelContainer;
|
|
5482
|
+
if (f) {
|
|
5483
|
+
const D = u.map(
|
|
5484
|
+
(m) => f.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(D);
|
|
5493
5493
|
}
|
|
5494
5494
|
await this.onSelectionChange(), a && await a();
|
|
5495
5495
|
}
|
|
5496
5496
|
async ensureStepsAreLoaded() {
|
|
5497
|
-
var
|
|
5497
|
+
var r, o;
|
|
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
|
+
((o = (r = this.reloadedState) == null ? void 0 : r.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : o.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 = y`
|
|
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 = M`
|
|
|
5823
5823
|
}
|
|
5824
5824
|
}
|
|
5825
5825
|
}
|
|
5826
|
-
`, Xa =
|
|
5826
|
+
`, Xa = y`
|
|
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 N.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 N.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: r, errors: o, 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
|
+
r && this.manager.getCommandDispatcher()(r);
|
|
6171
|
+
const B = this.manager.getInformationResults(), l = (E = o[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 C = B.filter((w) => w.stepID !== this.step.stepName);
|
|
6183
|
+
this.manager.setInformationResults(C);
|
|
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 = y`
|
|
6286
6286
|
fragment CreateDesignTransaction on Transaction {
|
|
6287
6287
|
id
|
|
6288
6288
|
bulk
|
|
@@ -6299,7 +6299,7 @@ const ct = M`
|
|
|
6299
6299
|
workflowViewerLink
|
|
6300
6300
|
workflowViewerReadOnlyLink
|
|
6301
6301
|
}
|
|
6302
|
-
`, sn =
|
|
6302
|
+
`, sn = y`
|
|
6303
6303
|
${ct}
|
|
6304
6304
|
mutation CreateDesign(
|
|
6305
6305
|
$name: String!
|
|
@@ -6331,7 +6331,7 @@ const ct = M`
|
|
|
6331
6331
|
}
|
|
6332
6332
|
}
|
|
6333
6333
|
}
|
|
6334
|
-
`, on =
|
|
6334
|
+
`, on = y`
|
|
6335
6335
|
${ct}
|
|
6336
6336
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6337
6337
|
designCreateMany(inputs: $inputs) {
|
|
@@ -6347,7 +6347,7 @@ const ct = M`
|
|
|
6347
6347
|
}
|
|
6348
6348
|
`, rn = async (g) => {
|
|
6349
6349
|
var e;
|
|
6350
|
-
return (e = (await
|
|
6350
|
+
return (e = (await N.getShadowGraphqlClient().mutate({
|
|
6351
6351
|
mutation: sn,
|
|
6352
6352
|
errorPolicy: "all",
|
|
6353
6353
|
fetchPolicy: "no-cache",
|
|
@@ -6364,7 +6364,7 @@ const ct = M`
|
|
|
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 N.getShadowGraphqlClient().mutate({
|
|
6368
6368
|
mutation: on,
|
|
6369
6369
|
errorPolicy: "all",
|
|
6370
6370
|
fetchPolicy: "no-cache",
|
|
@@ -6385,23 +6385,23 @@ const ct = M`
|
|
|
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], r = n.data;
|
|
6389
|
+
if (!i || !i.image || r.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], r = n.data;
|
|
6395
|
+
if (!i || r.hideColorsInCart && e || !i.colors)
|
|
6396
6396
|
return s;
|
|
6397
6397
|
if (i.colors.length > 0) {
|
|
6398
|
-
const
|
|
6399
|
-
s[`${n.stepTitle} colors`] =
|
|
6398
|
+
const o = i.colors.join(", ").toUpperCase();
|
|
6399
|
+
s[`${n.stepTitle} colors`] = o;
|
|
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], r = n.data;
|
|
6404
|
+
if (!i || i.text === void 0 || i.text === null || r.hideTextInCart && e)
|
|
6405
6405
|
return s;
|
|
6406
6406
|
s[`${n.stepTitle} text`] = i.text;
|
|
6407
6407
|
}
|
|
@@ -6409,8 +6409,8 @@ const ct = M`
|
|
|
6409
6409
|
const i = g[n.stepName];
|
|
6410
6410
|
if (!i)
|
|
6411
6411
|
return s;
|
|
6412
|
-
const
|
|
6413
|
-
(!
|
|
6412
|
+
const r = n.data;
|
|
6413
|
+
(!r.hideTextInCart || !e && i.text !== void 0 && i.text !== null) && (s[`${n.stepTitle} text`] = i.text), i.color && (!r.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
|
|
6414
6414
|
}
|
|
6415
6415
|
return s;
|
|
6416
6416
|
}, a = {};
|
|
@@ -6436,22 +6436,22 @@ const ct = M`
|
|
|
6436
6436
|
};
|
|
6437
6437
|
}
|
|
6438
6438
|
for (const s of Object.keys(g)) {
|
|
6439
|
-
const i = g[s],
|
|
6439
|
+
const i = g[s], r = A.steps.find((o) => o.stepTitle === s);
|
|
6440
6440
|
if (i.length === 1)
|
|
6441
|
-
a[`${
|
|
6441
|
+
a[`${r == null ? void 0 : r.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 o = 0; o < i.length; o++)
|
|
6447
|
+
a[`${r == null ? void 0 : r.stepTitle} selection ${o + 1}`] = {
|
|
6448
|
+
value: i[o].name,
|
|
6449
|
+
priceModifier: i[o].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, r, o) => {
|
|
6454
|
+
const B = (x.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 = M`
|
|
|
6461
6461
|
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
6462
6462
|
lineItemImageUrl: s || "",
|
|
6463
6463
|
optionsCost: t,
|
|
6464
|
-
processExecutionId:
|
|
6464
|
+
processExecutionId: o,
|
|
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), r && (l.sku = r), 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 = M`
|
|
|
6489
6489
|
t
|
|
6490
6490
|
);
|
|
6491
6491
|
}, lt = async (g, A, e, t, a, n, s, i) => {
|
|
6492
|
-
const
|
|
6492
|
+
const r = A.basePrice || 0, o = g.priceModifierTotal || 0, c = gn(t, e, void 0, n);
|
|
6493
6493
|
return gt(
|
|
6494
6494
|
g,
|
|
6495
6495
|
A,
|
|
6496
|
-
o,
|
|
6497
6496
|
r,
|
|
6497
|
+
o,
|
|
6498
6498
|
n,
|
|
6499
6499
|
c,
|
|
6500
6500
|
s,
|
|
@@ -6502,38 +6502,38 @@ const ct = M`
|
|
|
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, r, o) => {
|
|
6506
|
+
var M;
|
|
6507
6507
|
await (async () => {
|
|
6508
|
-
var
|
|
6509
|
-
if (
|
|
6510
|
-
return
|
|
6508
|
+
var S;
|
|
6509
|
+
if (o !== void 0)
|
|
6510
|
+
return o;
|
|
6511
6511
|
await g.outstandingRequestsPromise();
|
|
6512
|
-
const F = await
|
|
6512
|
+
const F = await N.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
|
+
}), U = (S = F.data) == null ? void 0 : S.transactions[0].workflowState;
|
|
6518
|
+
return F.errors ? (F.errors.forEach((b) => {
|
|
6519
|
+
F.errors && console.log("Server Error:", b.message);
|
|
6520
|
+
}), null) : U ?? 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 = (M = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : M.lookAtAnimation, E = l && A.showModelOnFinishStep && !!d, C = r && $A(r, A, !0), w = r && $A(r, A, !1), Q = async (Y) => {
|
|
6523
6523
|
const F = {};
|
|
6524
|
-
let
|
|
6524
|
+
let U = 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 S of Object.keys(n)) {
|
|
6527
|
+
const b = n[S], V = A.steps.find((W) => W.stepName === S);
|
|
6528
|
+
for (let W = 0; W < b.selections.length; ++W) {
|
|
6529
|
+
const q = b.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 bA = V.stepTitle;
|
|
6532
|
+
F[bA] ? F[bA].push({
|
|
6533
6533
|
id: q.id || "",
|
|
6534
6534
|
name: q.name,
|
|
6535
6535
|
priceModifier: q.priceModifier
|
|
6536
|
-
}) : F[
|
|
6536
|
+
}) : F[bA] = [
|
|
6537
6537
|
{
|
|
6538
6538
|
id: q.id || "",
|
|
6539
6539
|
name: q.name,
|
|
@@ -6541,18 +6541,18 @@ const ct = M`
|
|
|
6541
6541
|
}
|
|
6542
6542
|
];
|
|
6543
6543
|
}
|
|
6544
|
-
|
|
6544
|
+
U += q.priceModifier;
|
|
6545
6545
|
}
|
|
6546
6546
|
}
|
|
6547
|
-
return [F,
|
|
6548
|
-
}, [
|
|
6549
|
-
Object.keys(
|
|
6550
|
-
), [
|
|
6551
|
-
Object.keys(
|
|
6547
|
+
return [F, U];
|
|
6548
|
+
}, [h] = await Q(!0), u = Object.fromEntries(
|
|
6549
|
+
Object.keys(h).map((Y) => [Y, h[Y].map((F) => F.id)])
|
|
6550
|
+
), [f] = await Q(!1), p = Object.fromEntries(
|
|
6551
|
+
Object.keys(f).map((Y) => [
|
|
6552
6552
|
Y,
|
|
6553
|
-
|
|
6553
|
+
f[Y].map((F) => F.id)
|
|
6554
6554
|
])
|
|
6555
|
-
),
|
|
6555
|
+
), D = await i(E);
|
|
6556
6556
|
return {
|
|
6557
6557
|
designDetails: (() => {
|
|
6558
6558
|
const Y = {
|
|
@@ -6564,29 +6564,29 @@ const ct = M`
|
|
|
6564
6564
|
workflowId: A.id,
|
|
6565
6565
|
transactionId: a.id,
|
|
6566
6566
|
useThreeDimPreview: !!E,
|
|
6567
|
-
previewImage:
|
|
6567
|
+
previewImage: D
|
|
6568
6568
|
};
|
|
6569
6569
|
if (w) {
|
|
6570
6570
|
const F = [];
|
|
6571
|
-
for (const [
|
|
6572
|
-
F.push({ key:
|
|
6571
|
+
for (const [U, S] of Object.entries(w))
|
|
6572
|
+
F.push({ key: U, value: S });
|
|
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 [U, S] of Object.entries(p))
|
|
6578
|
+
F.push({ key: U, ids: S });
|
|
6579
6579
|
Y.selectedVariants = F;
|
|
6580
6580
|
}
|
|
6581
6581
|
return Y;
|
|
6582
6582
|
})(),
|
|
6583
|
-
cartSelectionsWithPrices:
|
|
6584
|
-
cartMetadata:
|
|
6583
|
+
cartSelectionsWithPrices: h,
|
|
6584
|
+
cartMetadata: C
|
|
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, r, o, c, B, l) => {
|
|
6587
|
+
var u, f, p;
|
|
6588
|
+
r("workflow.steps.finish.finalize.buildingLayouts");
|
|
6589
|
+
const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await Bt(
|
|
6590
6590
|
g,
|
|
6591
6591
|
A,
|
|
6592
6592
|
e,
|
|
@@ -6597,24 +6597,24 @@ const ct = M`
|
|
|
6597
6597
|
B,
|
|
6598
6598
|
l
|
|
6599
6599
|
);
|
|
6600
|
-
|
|
6600
|
+
r("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await o(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
|
+
r("workflow.steps.finish.finalize.updatingTransaction");
|
|
6605
|
+
const h = w.transaction;
|
|
6606
6606
|
return n.bulk ? ln(
|
|
6607
|
-
|
|
6607
|
+
h,
|
|
6608
6608
|
a,
|
|
6609
6609
|
Q,
|
|
6610
|
-
(
|
|
6610
|
+
(f = w == null ? void 0 : w.processExecution) == null ? void 0 : f.id
|
|
6611
6611
|
) : await lt(
|
|
6612
|
-
|
|
6612
|
+
h,
|
|
6613
6613
|
a,
|
|
6614
6614
|
A,
|
|
6615
6615
|
E,
|
|
6616
6616
|
w == null ? void 0 : w.sku,
|
|
6617
|
-
|
|
6617
|
+
C,
|
|
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 = M`
|
|
|
6625
6625
|
})
|
|
6626
6626
|
);
|
|
6627
6627
|
const t = await (async () => {
|
|
6628
|
-
var
|
|
6629
|
-
const i = await
|
|
6628
|
+
var r;
|
|
6629
|
+
const i = await N.getShadowGraphqlClient().query({
|
|
6630
6630
|
query: Ve,
|
|
6631
|
-
variables: { ids: g.map((
|
|
6631
|
+
variables: { ids: g.map((o) => o.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((o) => {
|
|
6636
|
+
i.errors && console.log("Server Error:", o.message);
|
|
6637
|
+
}), null) : (r = i.data) != null && r.transactions ? i.data.transactions.map((o) => o.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 = M`
|
|
|
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 r = g[i], o = a[i], c = s.transaction;
|
|
6661
6661
|
return await lt(
|
|
6662
6662
|
c,
|
|
6663
|
-
|
|
6664
|
-
|
|
6665
|
-
|
|
6663
|
+
r.product,
|
|
6664
|
+
r.workflow,
|
|
6665
|
+
o.cartSelectionsWithPrices,
|
|
6666
6666
|
s.sku,
|
|
6667
|
-
|
|
6667
|
+
o.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 = x.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
|
+
x.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((r) => {
|
|
6753
|
+
if (r) {
|
|
6754
|
+
const o = URL.createObjectURL(r);
|
|
6755
|
+
s(o);
|
|
6756
6756
|
}
|
|
6757
6757
|
});
|
|
6758
|
-
} catch (
|
|
6759
|
-
i(
|
|
6758
|
+
} catch (r) {
|
|
6759
|
+
i(r);
|
|
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 r = i.renderableSteps.map((o) => o.stepName);
|
|
6789
6789
|
return {
|
|
6790
6790
|
id: i.name,
|
|
6791
6791
|
title: i.title,
|
|
6792
|
-
renderableSteps:
|
|
6792
|
+
renderableSteps: r
|
|
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 N.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 h, u;
|
|
6828
|
+
const t = this.workflowManager.getWorkflow(), a = (h = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : h.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(), r = t.defaultPreviewPanelIndex || 0, o = t.panels[r], c = i.find((f) => {
|
|
6837
6837
|
var p;
|
|
6838
|
-
return ((p =
|
|
6838
|
+
return ((p = f.layoutState) == null ? void 0 : p.layout.panelId) === (o == null ? void 0 : o.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
|
+
}), C = xe(E);
|
|
6858
|
+
await (await Ge.from(d, C, {
|
|
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 N.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 r;
|
|
6944
|
+
return ((r = i.customer) == null ? void 0 : r.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 = x.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
|
|
6950
|
+
i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), x.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 r;
|
|
6965
6965
|
if (A)
|
|
6966
6966
|
return A;
|
|
6967
|
-
const n = this.getWorkflowManager().getTransaction().id, i = (
|
|
6967
|
+
const n = this.getWorkflowManager().getTransaction().id, i = (r = (await zA.getSavedDesigns()).find((o) => o.transactionId === n)) == null ? void 0 : r.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((r) => r.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((r) => {
|
|
7026
|
+
A.get(s.stepTitle)[r] = i[r];
|
|
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 r = i.toString(), c = `data:image/svg+xml;base64,${he(await be(r, { 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 L(d);
|
|
7053
|
+
const C = k();
|
|
7054
7054
|
return new J(
|
|
7055
7055
|
{
|
|
7056
|
-
id:
|
|
7056
|
+
id: C,
|
|
7057
7057
|
src: c,
|
|
7058
|
-
type:
|
|
7058
|
+
type: H.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 r = async (o) => {
|
|
7079
|
+
var C;
|
|
7080
7080
|
const c = await Pt(
|
|
7081
|
-
|
|
7081
|
+
o || {
|
|
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
|
+
(C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
|
|
7086
|
+
), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === o.panelId);
|
|
7087
7087
|
if (!d)
|
|
7088
|
-
throw new
|
|
7088
|
+
throw new L(o);
|
|
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: H.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: o.left,
|
|
7107
|
+
y: o.top,
|
|
7108
|
+
width: o.width,
|
|
7109
|
+
height: o.height,
|
|
7110
|
+
layer: o.layer,
|
|
7111
|
+
layerIndex: o.layerIndex,
|
|
7112
|
+
rotation: o.rotation,
|
|
7113
|
+
scaleX: o.width / B.width,
|
|
7114
|
+
scaleY: o.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((o) => r(o)))).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, D;
|
|
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 = (D = s.asset) == null ? void 0 : D.fileLink;
|
|
7138
7138
|
if (!i)
|
|
7139
7139
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7140
|
-
const
|
|
7140
|
+
const r = await Z(i, !0), o = /<svg.*?<\/svg>/s, c = r.match(o) || [], 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 C = {};
|
|
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 M = m.attributes.getNamedItem("fill");
|
|
7148
|
+
if (M && M.value !== "none") {
|
|
7149
|
+
const F = M.value, S = `spiff-fill-${F.replace(/\W/g, "")}`;
|
|
7150
|
+
m.classList.add(S), C[S] = { 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, S = `spiff-stroke-${F.replace(/\W/g, "")}`;
|
|
7155
|
+
m.classList.add(S), C[S] = { 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), h = a.colors;
|
|
7159
|
+
if (h) {
|
|
7160
|
+
for (const [m, M] of Object.entries(C))
|
|
7161
|
+
for (const Y of Object.keys(h))
|
|
7162
|
+
if (M.browserValue === Y) {
|
|
7163
|
+
C[m] = { browserValue: h[Y] };
|
|
7164
7164
|
break;
|
|
7165
7165
|
}
|
|
7166
7166
|
}
|
|
7167
7167
|
const u = (m) => {
|
|
7168
|
-
const
|
|
7169
|
-
if (!
|
|
7170
|
-
throw new
|
|
7168
|
+
const M = g.find((F) => F.panelId === m.panelId);
|
|
7169
|
+
if (!M)
|
|
7170
|
+
throw new L(m);
|
|
7171
7171
|
const Y = k();
|
|
7172
7172
|
return new J(
|
|
7173
7173
|
{
|
|
7174
|
-
colors:
|
|
7174
|
+
colors: C,
|
|
7175
7175
|
id: Y,
|
|
7176
7176
|
svg: Q,
|
|
7177
|
-
type:
|
|
7177
|
+
type: H.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
|
+
M
|
|
7188
7188
|
);
|
|
7189
|
-
},
|
|
7189
|
+
}, f = t.data.regions;
|
|
7190
7190
|
try {
|
|
7191
|
-
return
|
|
7191
|
+
return f.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, r) => {
|
|
7197
|
+
const o = g.find((B) => B.panelId === r.panelId);
|
|
7198
|
+
if (!o)
|
|
7199
|
+
throw new L(r);
|
|
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: H.Illustration,
|
|
7207
|
+
y: r.top,
|
|
7208
|
+
x: r.left,
|
|
7209
|
+
rotation: r.rotation,
|
|
7210
|
+
width: r.width,
|
|
7211
|
+
height: r.height,
|
|
7212
|
+
layer: r.layer,
|
|
7213
|
+
layerIndex: r.layerIndex
|
|
7214
7214
|
},
|
|
7215
|
-
|
|
7215
|
+
o
|
|
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 r = (l) => {
|
|
7240
|
+
const d = g.find((C) => C.panelId === l.panelId);
|
|
7241
7241
|
if (!d)
|
|
7242
|
-
throw new
|
|
7242
|
+
throw new L(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: H.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
|
+
}, o = t.data.regions;
|
|
7262
7262
|
try {
|
|
7263
|
-
return
|
|
7263
|
+
return o.map(r);
|
|
7264
7264
|
} catch (l) {
|
|
7265
7265
|
return console.error(l), [];
|
|
7266
7266
|
}
|
|
7267
7267
|
}, pn = async (g, A, e, t) => {
|
|
7268
|
-
var
|
|
7268
|
+
var o;
|
|
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 = ((o = n.variants) == null ? void 0 : o.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 L(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" } }, C = k();
|
|
7301
7301
|
return new J(
|
|
7302
7302
|
{
|
|
7303
7303
|
colors: E,
|
|
7304
|
-
id:
|
|
7304
|
+
id: C,
|
|
7305
7305
|
svg: l,
|
|
7306
|
-
type:
|
|
7306
|
+
type: H.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
|
+
}, r = t.data.regions;
|
|
7319
7319
|
try {
|
|
7320
|
-
return
|
|
7320
|
+
return r.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 o, c;
|
|
7327
|
+
return A.type === I.ProductOverlay ? e || ((o = A.data.asset) == null ? void 0 : o.fileLink) || "" : ((c = A.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
7328
|
+
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), r = A.data.regions;
|
|
7329
7329
|
if (i === "image")
|
|
7330
7330
|
try {
|
|
7331
|
-
|
|
7332
|
-
const c = g.find((l) => l.panelId ===
|
|
7331
|
+
r.forEach((o) => {
|
|
7332
|
+
const c = g.find((l) => l.panelId === o.panelId);
|
|
7333
7333
|
if (!c)
|
|
7334
|
-
throw new
|
|
7334
|
+
throw new L(o);
|
|
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: o.top,
|
|
7340
|
+
x: o.left,
|
|
7341
|
+
width: o.width,
|
|
7342
|
+
height: o.height,
|
|
7343
|
+
layer: o.layer,
|
|
7344
|
+
layerIndex: o.layerIndex,
|
|
7345
7345
|
productOverlay: A.type === I.ProductOverlay ? !0 : void 0,
|
|
7346
7346
|
scaleX: 1,
|
|
7347
7347
|
scaleY: 1,
|
|
7348
|
-
rotation:
|
|
7348
|
+
rotation: o.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 (o) {
|
|
7355
|
+
console.error(o);
|
|
7356
7356
|
}
|
|
7357
7357
|
else {
|
|
7358
|
-
const
|
|
7358
|
+
const o = 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
|
+
r.forEach((B) => {
|
|
7365
7365
|
const l = g.find((E) => E.panelId === B.panelId);
|
|
7366
7366
|
if (!l)
|
|
7367
|
-
throw new
|
|
7367
|
+
throw new L(B);
|
|
7368
7368
|
const d = {
|
|
7369
7369
|
id: k(),
|
|
7370
7370
|
src: n,
|
|
7371
7371
|
asset_key: n,
|
|
7372
|
-
svg: c(
|
|
7372
|
+
svg: c(o),
|
|
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", r = () => {
|
|
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((f) => f.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 h = Q.asset.fileLink;
|
|
7402
|
+
if (h)
|
|
7403
|
+
return h;
|
|
7404
7404
|
}, c = await (async () => {
|
|
7405
|
-
const w =
|
|
7405
|
+
const w = r();
|
|
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 h = z.getDefaultVariant(Q);
|
|
7421
|
+
return h == null ? void 0 : h.color;
|
|
7422
|
+
}, E = n.color || await d(t.data), C = t.data.regions;
|
|
7423
|
+
for (const w of C) {
|
|
7424
7424
|
const Q = g.find((u) => u.panelId === w.panelId);
|
|
7425
7425
|
if (!Q)
|
|
7426
7426
|
continue;
|
|
7427
|
-
const
|
|
7427
|
+
const h = {
|
|
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: H.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, f] = 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
|
+
...h,
|
|
7469
7469
|
fontSize: u,
|
|
7470
|
-
text:
|
|
7470
|
+
text: h.curved ? h.text : (f || []).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(h, 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((r) => r.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, r) {
|
|
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 = r;
|
|
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((C) => ({
|
|
7682
|
+
stepName: C.stepName,
|
|
7683
|
+
stepAspectType: C.aspect,
|
|
7684
|
+
value: C.value
|
|
7685
7685
|
})), d = await xn(
|
|
7686
7686
|
Sn(l, this.workflow),
|
|
7687
7687
|
this.workflow,
|
|
7688
|
-
this.layouts.map((
|
|
7688
|
+
this.layouts.map((C) => C.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((C) => {
|
|
7692
|
+
const w = e.find((Q) => Q.stepName === C.stepName);
|
|
7693
|
+
w && w.type === H.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
|
|
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, r;
|
|
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, r = a * (n / t)) : (i = t * (s / a), r = s);
|
|
7701
|
+
const E = this.resizeFit({ width: i, height: r });
|
|
7702
|
+
i = E.width, r = E.height;
|
|
7703
7703
|
} else
|
|
7704
|
-
i = this.getDynamicTextureResolution().width,
|
|
7705
|
-
const
|
|
7704
|
+
i = this.getDynamicTextureResolution().width, r = this.getDynamicTextureResolution().height;
|
|
7705
|
+
const o = Ye(A.layoutState.layout, e, {
|
|
7706
7706
|
renderingConfiguration: { purpose: Se.ThreeD }
|
|
7707
|
-
}), c = xe(
|
|
7707
|
+
}), c = xe(o), 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, r), 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((r) => new Ut(r))).apply(a);
|
|
7739
7739
|
const s = await Fn(g, A, e, t);
|
|
7740
7740
|
return new G(s).apply(a);
|
|
7741
|
-
}, Nn =
|
|
7741
|
+
}, Nn = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
7922
7922
|
mutation BundleAddTransaction($id: String!, $transactionId: String!) {
|
|
7923
7923
|
bundleAddTransaction(id: $id, transactionId: $transactionId) {
|
|
7924
7924
|
id
|
|
7925
7925
|
}
|
|
7926
7926
|
}
|
|
7927
|
-
`,
|
|
7927
|
+
`, bn = y`
|
|
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
|
+
`, Jn = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 = y`
|
|
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 r, o;
|
|
8109
|
+
return i.globalPropertyConfigurationId === ((o = (r = this.bundle.getProductCollection()) == null ? void 0 : r.getResource().globalPropertyConfiguration) == null ? void 0 : o.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 T.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 = y`
|
|
8256
8256
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
8257
8257
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
8258
8258
|
id
|
|
@@ -8262,7 +8262,7 @@ const Xn = M`
|
|
|
8262
8262
|
}
|
|
8263
8263
|
}
|
|
8264
8264
|
}
|
|
8265
|
-
`, qn =
|
|
8265
|
+
`, qn = y`
|
|
8266
8266
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
8267
8267
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
8268
8268
|
id
|
|
@@ -8272,7 +8272,7 @@ const Xn = M`
|
|
|
8272
8272
|
}
|
|
8273
8273
|
}
|
|
8274
8274
|
}
|
|
8275
|
-
`, Zn =
|
|
8275
|
+
`, Zn = y`
|
|
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 N.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 N.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 N.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((r) => r.transactionId === n);
|
|
8386
8386
|
s ? s.transform = e : this.state.transactions.push({
|
|
8387
8387
|
transactionId: n,
|
|
8388
8388
|
transform: e
|
|
@@ -8490,7 +8490,7 @@ class es {
|
|
|
8490
8490
|
getDefaultWorkflow() {
|
|
8491
8491
|
const A = this.product.workflows || [];
|
|
8492
8492
|
if (A.length === 0)
|
|
8493
|
-
throw new
|
|
8493
|
+
throw new P(
|
|
8494
8494
|
"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
8495
|
);
|
|
8496
8496
|
const e = this.productResource.workflowId;
|
|
@@ -8592,11 +8592,11 @@ class as {
|
|
|
8592
8592
|
class fe {
|
|
8593
8593
|
constructor(A, e, t, a) {
|
|
8594
8594
|
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((
|
|
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((r) => [r.key, r.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
8596
|
this.id,
|
|
8597
8597
|
this.checkConditionalHandlesChanged.bind(this)
|
|
8598
8598
|
), this.globalPropertyHandleService = new Kn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
|
|
8599
|
-
((i = e.transactions) == null ? void 0 : i.map((
|
|
8599
|
+
((i = e.transactions) == null ? void 0 : i.map((r) => r.id)) || [],
|
|
8600
8600
|
a
|
|
8601
8601
|
);
|
|
8602
8602
|
}
|
|
@@ -8668,9 +8668,9 @@ class fe {
|
|
|
8668
8668
|
throw new Error(
|
|
8669
8669
|
"Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
|
|
8670
8670
|
);
|
|
8671
|
-
const a =
|
|
8672
|
-
await
|
|
8673
|
-
mutation:
|
|
8671
|
+
const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
|
|
8672
|
+
await N.getShadowGraphqlClient().mutate({
|
|
8673
|
+
mutation: bn,
|
|
8674
8674
|
variables: {
|
|
8675
8675
|
id: this.id,
|
|
8676
8676
|
transactionIds: e,
|
|
@@ -8694,8 +8694,8 @@ class fe {
|
|
|
8694
8694
|
(i) => i.getWorkflowManager().getTransaction().id === t
|
|
8695
8695
|
))
|
|
8696
8696
|
throw new Error("Unable to add transaction to bundle - Already Exists!");
|
|
8697
|
-
const s = (
|
|
8698
|
-
await
|
|
8697
|
+
const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
|
|
8698
|
+
await N.getShadowGraphqlClient().mutate({
|
|
8699
8699
|
mutation: kn,
|
|
8700
8700
|
variables: {
|
|
8701
8701
|
id: this.id,
|
|
@@ -8727,8 +8727,8 @@ class fe {
|
|
|
8727
8727
|
const a = this.workflowExperiences.find(
|
|
8728
8728
|
(n) => n.getWorkflowManager().getTransaction().id === e.id
|
|
8729
8729
|
);
|
|
8730
|
-
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await
|
|
8731
|
-
mutation:
|
|
8730
|
+
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
|
|
8731
|
+
mutation: Jn,
|
|
8732
8732
|
variables: {
|
|
8733
8733
|
id: this.id,
|
|
8734
8734
|
transactionId: e.id,
|
|
@@ -8754,7 +8754,7 @@ class fe {
|
|
|
8754
8754
|
1
|
|
8755
8755
|
)[0]
|
|
8756
8756
|
);
|
|
8757
|
-
this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await
|
|
8757
|
+
this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
|
|
8758
8758
|
mutation: Tn,
|
|
8759
8759
|
variables: {
|
|
8760
8760
|
id: this.id,
|
|
@@ -8812,7 +8812,7 @@ class fe {
|
|
|
8812
8812
|
}
|
|
8813
8813
|
async addStakeholder(A, e) {
|
|
8814
8814
|
var n;
|
|
8815
|
-
const t = await
|
|
8815
|
+
const t = await N.getShadowGraphqlClient().mutate({
|
|
8816
8816
|
mutation: Ln,
|
|
8817
8817
|
variables: {
|
|
8818
8818
|
id: this.id,
|
|
@@ -8827,7 +8827,7 @@ class fe {
|
|
|
8827
8827
|
}
|
|
8828
8828
|
async updateStakeholders(A) {
|
|
8829
8829
|
var a;
|
|
8830
|
-
const e = await
|
|
8830
|
+
const e = await N.getShadowGraphqlClient().mutate({
|
|
8831
8831
|
mutation: On,
|
|
8832
8832
|
variables: {
|
|
8833
8833
|
id: this.id,
|
|
@@ -8840,7 +8840,7 @@ class fe {
|
|
|
8840
8840
|
this.storeStakeholderCustomers(t);
|
|
8841
8841
|
}
|
|
8842
8842
|
async getAllStakeholders() {
|
|
8843
|
-
const A = await
|
|
8843
|
+
const A = await N.getShadowGraphqlClient().query({
|
|
8844
8844
|
query: Hn,
|
|
8845
8845
|
errorPolicy: "all",
|
|
8846
8846
|
variables: {
|
|
@@ -8928,7 +8928,7 @@ class fe {
|
|
|
8928
8928
|
}
|
|
8929
8929
|
async updateBundle() {
|
|
8930
8930
|
var e;
|
|
8931
|
-
if (!((e = (await
|
|
8931
|
+
if (!((e = (await N.getShadowGraphqlClient().mutate({
|
|
8932
8932
|
mutation: vn,
|
|
8933
8933
|
variables: {
|
|
8934
8934
|
id: this.id,
|
|
@@ -8940,7 +8940,7 @@ class fe {
|
|
|
8940
8940
|
throw new Error("Bundle not found!");
|
|
8941
8941
|
}
|
|
8942
8942
|
async updateTransactionOrder() {
|
|
8943
|
-
await
|
|
8943
|
+
await N.getShadowGraphqlClient().mutate({
|
|
8944
8944
|
mutation: zn,
|
|
8945
8945
|
variables: {
|
|
8946
8946
|
id: this.id,
|
|
@@ -8971,7 +8971,7 @@ class fe {
|
|
|
8971
8971
|
);
|
|
8972
8972
|
}
|
|
8973
8973
|
}
|
|
8974
|
-
const ns =
|
|
8974
|
+
const ns = y`
|
|
8975
8975
|
mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
|
|
8976
8976
|
processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
|
|
8977
8977
|
id
|
|
@@ -8988,7 +8988,7 @@ class ss {
|
|
|
8988
8988
|
*/
|
|
8989
8989
|
async execute(A, e, t) {
|
|
8990
8990
|
var B, l, d;
|
|
8991
|
-
const n = (l = (B = (await
|
|
8991
|
+
const n = (l = (B = (await N.getShadowGraphqlClient().mutate({
|
|
8992
8992
|
mutation: ns,
|
|
8993
8993
|
variables: {
|
|
8994
8994
|
processFlowId: A,
|
|
@@ -8998,14 +8998,14 @@ class ss {
|
|
|
8998
8998
|
if (!n)
|
|
8999
8999
|
throw new Error("Failed to create process execution.");
|
|
9000
9000
|
function s(E) {
|
|
9001
|
-
return new Promise((
|
|
9002
|
-
setTimeout(
|
|
9001
|
+
return new Promise((C) => {
|
|
9002
|
+
setTimeout(C, E);
|
|
9003
9003
|
});
|
|
9004
9004
|
}
|
|
9005
|
-
let i = !1,
|
|
9005
|
+
let i = !1, r = 0, o, c;
|
|
9006
9006
|
for (; !i; ) {
|
|
9007
|
-
|
|
9008
|
-
query:
|
|
9007
|
+
o = await N.getShadowGraphqlClient().query({
|
|
9008
|
+
query: y`
|
|
9009
9009
|
query getProcessFlowExecution($ids: [String]!) {
|
|
9010
9010
|
processExecutions(ids: $ids) {
|
|
9011
9011
|
id
|
|
@@ -9023,8 +9023,8 @@ class ss {
|
|
|
9023
9023
|
ids: [n]
|
|
9024
9024
|
}
|
|
9025
9025
|
});
|
|
9026
|
-
const E = (d =
|
|
9027
|
-
if (!
|
|
9026
|
+
const E = (d = o.data) == null ? void 0 : d.processExecutions[0];
|
|
9027
|
+
if (!o || !E)
|
|
9028
9028
|
throw new Error("Failed to retrieve server response for execution.");
|
|
9029
9029
|
if (E.failedAt)
|
|
9030
9030
|
throw new Error(
|
|
@@ -9034,9 +9034,9 @@ class ss {
|
|
|
9034
9034
|
i = !0, c = new is(E);
|
|
9035
9035
|
break;
|
|
9036
9036
|
}
|
|
9037
|
-
|
|
9038
|
-
const
|
|
9039
|
-
if (
|
|
9037
|
+
r += 1;
|
|
9038
|
+
const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
|
|
9039
|
+
if (r >= C)
|
|
9040
9040
|
throw new Error("Maximum wait time exceeded for execution result.");
|
|
9041
9041
|
await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
|
|
9042
9042
|
}
|
|
@@ -9141,7 +9141,7 @@ class Et extends os {
|
|
|
9141
9141
|
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
9142
|
}
|
|
9143
9143
|
}
|
|
9144
|
-
const cs =
|
|
9144
|
+
const cs = y`
|
|
9145
9145
|
fragment RegionFields on Region {
|
|
9146
9146
|
width
|
|
9147
9147
|
top
|
|
@@ -9159,7 +9159,7 @@ const cs = M`
|
|
|
9159
9159
|
height
|
|
9160
9160
|
}
|
|
9161
9161
|
}
|
|
9162
|
-
`, gs =
|
|
9162
|
+
`, gs = y`
|
|
9163
9163
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
9164
9164
|
latDeg
|
|
9165
9165
|
lonDeg
|
|
@@ -9170,7 +9170,7 @@ const cs = M`
|
|
|
9170
9170
|
z
|
|
9171
9171
|
}
|
|
9172
9172
|
}
|
|
9173
|
-
`, ls =
|
|
9173
|
+
`, ls = y`
|
|
9174
9174
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
9175
9175
|
antiAliasing {
|
|
9176
9176
|
samples
|
|
@@ -9254,14 +9254,14 @@ const cs = M`
|
|
|
9254
9254
|
weight
|
|
9255
9255
|
}
|
|
9256
9256
|
}
|
|
9257
|
-
`, Bs =
|
|
9257
|
+
`, Bs = y`
|
|
9258
9258
|
fragment ModelAnimationFields on ModelAnimation {
|
|
9259
9259
|
from
|
|
9260
9260
|
to
|
|
9261
9261
|
loop
|
|
9262
9262
|
name
|
|
9263
9263
|
}
|
|
9264
|
-
`, ds = (g) =>
|
|
9264
|
+
`, ds = (g) => y`
|
|
9265
9265
|
${kA(g)}
|
|
9266
9266
|
${se}
|
|
9267
9267
|
${je}
|
|
@@ -9363,6 +9363,7 @@ const cs = M`
|
|
|
9363
9363
|
stepTitle
|
|
9364
9364
|
helpText
|
|
9365
9365
|
mandatory
|
|
9366
|
+
silent
|
|
9366
9367
|
conditions {
|
|
9367
9368
|
requiredVariantSelections
|
|
9368
9369
|
targetStepName
|
|
@@ -9656,7 +9657,7 @@ const cs = M`
|
|
|
9656
9657
|
}
|
|
9657
9658
|
}
|
|
9658
9659
|
}
|
|
9659
|
-
`, ws =
|
|
9660
|
+
`, ws = y`
|
|
9660
9661
|
query GetTransactionForPartner($id: String!) {
|
|
9661
9662
|
transactions(ids: [$id]) {
|
|
9662
9663
|
id
|
|
@@ -9673,7 +9674,7 @@ const cs = M`
|
|
|
9673
9674
|
}
|
|
9674
9675
|
}
|
|
9675
9676
|
}
|
|
9676
|
-
`, Es =
|
|
9677
|
+
`, Es = y`
|
|
9677
9678
|
${kA(!1)}
|
|
9678
9679
|
query GetWorkflowForTheme($id: String!) {
|
|
9679
9680
|
workflow(id: $id) {
|
|
@@ -9695,7 +9696,7 @@ const cs = M`
|
|
|
9695
9696
|
}
|
|
9696
9697
|
}
|
|
9697
9698
|
}
|
|
9698
|
-
`, hs =
|
|
9699
|
+
`, hs = y`
|
|
9699
9700
|
query GetCustomer($emailAddress: String!) {
|
|
9700
9701
|
customer(emailAddress: $emailAddress) {
|
|
9701
9702
|
id
|
|
@@ -9705,7 +9706,7 @@ const cs = M`
|
|
|
9705
9706
|
}
|
|
9706
9707
|
}
|
|
9707
9708
|
}
|
|
9708
|
-
`, Cs =
|
|
9709
|
+
`, Cs = y`
|
|
9709
9710
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
9710
9711
|
customerCreate(details: $details) {
|
|
9711
9712
|
id
|
|
@@ -9715,7 +9716,7 @@ const cs = M`
|
|
|
9715
9716
|
}
|
|
9716
9717
|
}
|
|
9717
9718
|
}
|
|
9718
|
-
`, Qs =
|
|
9719
|
+
`, Qs = y`
|
|
9719
9720
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
9720
9721
|
customerAuthenticate(loginToken: $loginToken) {
|
|
9721
9722
|
id
|
|
@@ -9742,11 +9743,11 @@ const cs = M`
|
|
|
9742
9743
|
}
|
|
9743
9744
|
}
|
|
9744
9745
|
}
|
|
9745
|
-
`, us =
|
|
9746
|
+
`, us = y`
|
|
9746
9747
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
9747
9748
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
9748
9749
|
}
|
|
9749
|
-
`, ms =
|
|
9750
|
+
`, ms = y`
|
|
9750
9751
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
9751
9752
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
9752
9753
|
id
|
|
@@ -9778,13 +9779,13 @@ const cs = M`
|
|
|
9778
9779
|
var A;
|
|
9779
9780
|
for (const e in g.layouts) {
|
|
9780
9781
|
const t = g.layouts[e].elements.filter(
|
|
9781
|
-
(n) => n.type ===
|
|
9782
|
+
(n) => n.type === H.Illustration
|
|
9782
9783
|
);
|
|
9783
9784
|
for (let n = 0; n < t.length; ++n) {
|
|
9784
9785
|
const s = t[n];
|
|
9785
9786
|
s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
|
|
9786
9787
|
}
|
|
9787
|
-
const a = g.layouts[e].elements.filter((n) => n.type ===
|
|
9788
|
+
const a = g.layouts[e].elements.filter((n) => n.type === H.Textbox);
|
|
9788
9789
|
for (let n = 0; n < a.length; ++n) {
|
|
9789
9790
|
const s = a[n];
|
|
9790
9791
|
(A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
|
|
@@ -9792,7 +9793,7 @@ const cs = M`
|
|
|
9792
9793
|
}
|
|
9793
9794
|
}, ps = async (g, A) => {
|
|
9794
9795
|
var a;
|
|
9795
|
-
const e = await
|
|
9796
|
+
const e = await N.getShadowGraphqlClient().query({
|
|
9796
9797
|
query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
|
|
9797
9798
|
errorPolicy: "all",
|
|
9798
9799
|
fetchPolicy: "no-cache",
|
|
@@ -9804,9 +9805,9 @@ const cs = M`
|
|
|
9804
9805
|
throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
|
|
9805
9806
|
return t.forEach((n) => {
|
|
9806
9807
|
n.steps.forEach((s) => {
|
|
9807
|
-
var i,
|
|
9808
|
-
delete s.data.__typename, (i = s.option) != null && i.id && ((
|
|
9809
|
-
c.asset &&
|
|
9808
|
+
var i, r, o;
|
|
9809
|
+
delete s.data.__typename, (i = s.option) != null && i.id && ((r = s.option.defaultVariant) != null && r.asset && T.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && T.cacheAsset(s.option.colorProfile), (o = s.option.variants) == null || o.forEach((c) => {
|
|
9810
|
+
c.asset && T.cacheAsset(c.asset), c.displayImage && T.cacheAsset(c.displayImage), c.thumbnail && T.cacheAsset(c.thumbnail), c.material && T.cacheMaterial(c.material);
|
|
9810
9811
|
}), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
|
|
9811
9812
|
});
|
|
9812
9813
|
}), t;
|
|
@@ -9816,7 +9817,7 @@ const cs = M`
|
|
|
9816
9817
|
throw new Error(`Workflow not found: ${g}`);
|
|
9817
9818
|
return t;
|
|
9818
9819
|
}, ht = async (g, A) => {
|
|
9819
|
-
const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i,
|
|
9820
|
+
const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, r) => e[r] === void 0);
|
|
9820
9821
|
if (t.length === 0)
|
|
9821
9822
|
return Promise.all(e);
|
|
9822
9823
|
const a = ps(t, A), n = t.map(
|
|
@@ -9844,12 +9845,12 @@ class fs {
|
|
|
9844
9845
|
constructor(A) {
|
|
9845
9846
|
this.updateTransactionState = async (e) => {
|
|
9846
9847
|
try {
|
|
9847
|
-
return
|
|
9848
|
+
return N.getShadowGraphqlClient().mutate({
|
|
9848
9849
|
...e,
|
|
9849
9850
|
mutation: la
|
|
9850
9851
|
});
|
|
9851
9852
|
} catch (t) {
|
|
9852
|
-
throw console.error(t), new
|
|
9853
|
+
throw console.error(t), new P("Critical - Unable to synchronize workflow state with server.");
|
|
9853
9854
|
}
|
|
9854
9855
|
}, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
|
|
9855
9856
|
}
|
|
@@ -9858,7 +9859,7 @@ class fs {
|
|
|
9858
9859
|
* and the Spiff Commerce platform.
|
|
9859
9860
|
*/
|
|
9860
9861
|
getAssetManager() {
|
|
9861
|
-
return
|
|
9862
|
+
return T;
|
|
9862
9863
|
}
|
|
9863
9864
|
getCurrencyCode() {
|
|
9864
9865
|
if (this.currencyCode === void 0)
|
|
@@ -9878,15 +9879,15 @@ class fs {
|
|
|
9878
9879
|
*/
|
|
9879
9880
|
async authenticateBundleFromLocalStorage(A) {
|
|
9880
9881
|
var a, n;
|
|
9881
|
-
const e =
|
|
9882
|
+
const e = x.getMap("bundleOwnerIds");
|
|
9882
9883
|
if (e != null && e.has(A)) {
|
|
9883
9884
|
const s = e.get(A);
|
|
9884
9885
|
return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
|
|
9885
9886
|
}
|
|
9886
|
-
const t =
|
|
9887
|
+
const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9887
9888
|
if (t.has(A)) {
|
|
9888
|
-
const s = t.get(A),
|
|
9889
|
-
if (
|
|
9889
|
+
const s = t.get(A), r = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
|
|
9890
|
+
if (r && await this.authenticateCustomerId(r)) {
|
|
9890
9891
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
9891
9892
|
(B) => {
|
|
9892
9893
|
var l;
|
|
@@ -9913,8 +9914,8 @@ class fs {
|
|
|
9913
9914
|
* @throws An error if the transaction is not found.
|
|
9914
9915
|
*/
|
|
9915
9916
|
async authenticateTransactionFromLocalStorage(A) {
|
|
9916
|
-
var c, B, l, d, E,
|
|
9917
|
-
const e =
|
|
9917
|
+
var c, B, l, d, E, C;
|
|
9918
|
+
const e = N.getShadowGraphqlClient(), t = await e.query({
|
|
9918
9919
|
query: ws,
|
|
9919
9920
|
errorPolicy: "all",
|
|
9920
9921
|
fetchPolicy: "no-cache",
|
|
@@ -9929,45 +9930,45 @@ class fs {
|
|
|
9929
9930
|
throw new Error(`Unable to read transaction: ${A}`);
|
|
9930
9931
|
if (a.isOrdered)
|
|
9931
9932
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
9932
|
-
const s =
|
|
9933
|
+
const s = x.getMap("transactionOwnerIds");
|
|
9933
9934
|
if (s != null && s.has(A)) {
|
|
9934
9935
|
const w = s.get(A);
|
|
9935
9936
|
return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
|
|
9936
9937
|
}
|
|
9937
|
-
const i =
|
|
9938
|
+
const i = x.getMap("transactionCustomerIds");
|
|
9938
9939
|
if (i != null && i.has(A)) {
|
|
9939
9940
|
const w = i.get(A);
|
|
9940
9941
|
if (w && await this.authenticateCustomerId(w)) {
|
|
9941
|
-
const
|
|
9942
|
+
const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
9942
9943
|
(u) => {
|
|
9943
|
-
var
|
|
9944
|
-
return (p = (
|
|
9944
|
+
var f, p;
|
|
9945
|
+
return (p = (f = u.bundle) == null ? void 0 : f.transactions) == null ? void 0 : p.some((D) => D.id === A);
|
|
9945
9946
|
}
|
|
9946
|
-
)) || ((
|
|
9947
|
+
)) || ((C = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : C.find(
|
|
9947
9948
|
(u) => {
|
|
9948
|
-
var
|
|
9949
|
-
return ((
|
|
9949
|
+
var f;
|
|
9950
|
+
return ((f = u.transaction) == null ? void 0 : f.id) === A;
|
|
9950
9951
|
}
|
|
9951
9952
|
));
|
|
9952
|
-
if (
|
|
9953
|
+
if (h)
|
|
9953
9954
|
return Promise.resolve({
|
|
9954
9955
|
success: !0,
|
|
9955
|
-
stakeholderType:
|
|
9956
|
+
stakeholderType: h.type
|
|
9956
9957
|
});
|
|
9957
9958
|
}
|
|
9958
9959
|
}
|
|
9959
|
-
const
|
|
9960
|
+
const o = (await e.query({
|
|
9960
9961
|
query: Es,
|
|
9961
9962
|
errorPolicy: "all",
|
|
9962
9963
|
variables: {
|
|
9963
9964
|
id: a.workflowId
|
|
9964
9965
|
}
|
|
9965
9966
|
})).data.workflow;
|
|
9966
|
-
if (!
|
|
9967
|
+
if (!o)
|
|
9967
9968
|
throw new Error(`Unable to read workflow: ${a.workflowId}`);
|
|
9968
9969
|
return Promise.resolve({
|
|
9969
9970
|
success: !1,
|
|
9970
|
-
theme:
|
|
9971
|
+
theme: o.overrideTheme,
|
|
9971
9972
|
customLogoLink: a.customLogoLink
|
|
9972
9973
|
});
|
|
9973
9974
|
}
|
|
@@ -9975,8 +9976,8 @@ class fs {
|
|
|
9975
9976
|
this.customer = void 0;
|
|
9976
9977
|
}
|
|
9977
9978
|
clearCustomerForTransaction(A) {
|
|
9978
|
-
const e =
|
|
9979
|
-
e != null && e.has(A) && (e.delete(A),
|
|
9979
|
+
const e = x.getMap("transactionCustomerIds");
|
|
9980
|
+
e != null && e.has(A) && (e.delete(A), x.setMap("transactionCustomerIds", e));
|
|
9980
9981
|
}
|
|
9981
9982
|
getStakeholderTypeForTransaction(A) {
|
|
9982
9983
|
var t, a;
|
|
@@ -9992,7 +9993,7 @@ class fs {
|
|
|
9992
9993
|
async getOrCreateCustomer(A) {
|
|
9993
9994
|
var s;
|
|
9994
9995
|
this.customer = void 0;
|
|
9995
|
-
const e =
|
|
9996
|
+
const e = N.getShadowGraphqlClient(), a = (await e.query({
|
|
9996
9997
|
query: hs,
|
|
9997
9998
|
errorPolicy: "all",
|
|
9998
9999
|
fetchPolicy: "no-cache",
|
|
@@ -10001,7 +10002,7 @@ class fs {
|
|
|
10001
10002
|
}
|
|
10002
10003
|
})).data.customer;
|
|
10003
10004
|
if (!a.id) {
|
|
10004
|
-
const
|
|
10005
|
+
const r = (s = (await e.mutate({
|
|
10005
10006
|
mutation: Cs,
|
|
10006
10007
|
errorPolicy: "all",
|
|
10007
10008
|
fetchPolicy: "no-cache",
|
|
@@ -10011,10 +10012,10 @@ class fs {
|
|
|
10011
10012
|
}
|
|
10012
10013
|
}
|
|
10013
10014
|
})).data) == null ? void 0 : s.customerCreate;
|
|
10014
|
-
if (!
|
|
10015
|
+
if (!r)
|
|
10015
10016
|
throw new Error("Unable to create customer.");
|
|
10016
|
-
return this.storeCustomer(
|
|
10017
|
-
customer:
|
|
10017
|
+
return this.storeCustomer(r), this.customer = r, {
|
|
10018
|
+
customer: r,
|
|
10018
10019
|
isAuthenticated: !1
|
|
10019
10020
|
};
|
|
10020
10021
|
}
|
|
@@ -10027,7 +10028,7 @@ class fs {
|
|
|
10027
10028
|
}
|
|
10028
10029
|
async authenticateCustomerId(A) {
|
|
10029
10030
|
var i;
|
|
10030
|
-
const e =
|
|
10031
|
+
const e = N.getShadowGraphqlClient(), t = x.getMap("customerTokens");
|
|
10031
10032
|
if (!(t != null && t.has(A)))
|
|
10032
10033
|
return !1;
|
|
10033
10034
|
const a = t.get(A);
|
|
@@ -10048,7 +10049,7 @@ class fs {
|
|
|
10048
10049
|
* @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
|
|
10049
10050
|
*/
|
|
10050
10051
|
async generateVerificationCode(A) {
|
|
10051
|
-
await
|
|
10052
|
+
await N.getShadowGraphqlClient().mutate({
|
|
10052
10053
|
mutation: us,
|
|
10053
10054
|
variables: {
|
|
10054
10055
|
emailAddress: A
|
|
@@ -10063,7 +10064,7 @@ class fs {
|
|
|
10063
10064
|
*/
|
|
10064
10065
|
async verifyCode(A, e) {
|
|
10065
10066
|
var n, s;
|
|
10066
|
-
const a = (n = (await
|
|
10067
|
+
const a = (n = (await N.getShadowGraphqlClient().mutate({
|
|
10067
10068
|
mutation: ms,
|
|
10068
10069
|
errorPolicy: "all",
|
|
10069
10070
|
fetchPolicy: "no-cache",
|
|
@@ -10075,8 +10076,8 @@ class fs {
|
|
|
10075
10076
|
if (a != null && a.loginToken) {
|
|
10076
10077
|
if (!((s = a.partner) != null && s.id))
|
|
10077
10078
|
throw new Error(`Unable to find customer: ${A}`);
|
|
10078
|
-
const i =
|
|
10079
|
-
return i.set(a.id, a.loginToken),
|
|
10079
|
+
const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
|
|
10080
|
+
return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
|
|
10080
10081
|
...a,
|
|
10081
10082
|
loginToken: void 0
|
|
10082
10083
|
}, !0;
|
|
@@ -10089,7 +10090,7 @@ class fs {
|
|
|
10089
10090
|
*/
|
|
10090
10091
|
async getNewBundle(A) {
|
|
10091
10092
|
var s;
|
|
10092
|
-
const t = (s = (await
|
|
10093
|
+
const t = (s = (await N.getShadowGraphqlClient().mutate({
|
|
10093
10094
|
mutation: Gn,
|
|
10094
10095
|
variables: {
|
|
10095
10096
|
collectionId: A
|
|
@@ -10098,10 +10099,10 @@ class fs {
|
|
|
10098
10099
|
})).data) == null ? void 0 : s.bundleCreate;
|
|
10099
10100
|
if (!(t != null && t.id))
|
|
10100
10101
|
throw new Error("Unable to create bundle");
|
|
10101
|
-
const a =
|
|
10102
|
-
a.set(t.id, t.partner.id),
|
|
10103
|
-
const n =
|
|
10104
|
-
return n.set(t.id, t.bundleOwnerId),
|
|
10102
|
+
const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10103
|
+
a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
|
|
10104
|
+
const n = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
10105
|
+
return n.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", n), new fe(this, t);
|
|
10105
10106
|
}
|
|
10106
10107
|
/**
|
|
10107
10108
|
* Retrieves an existing bundle from the API, by id.
|
|
@@ -10112,9 +10113,9 @@ class fs {
|
|
|
10112
10113
|
*/
|
|
10113
10114
|
async getExistingBundle(A, e, t) {
|
|
10114
10115
|
var c, B, l, d;
|
|
10115
|
-
const a =
|
|
10116
|
+
const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
|
|
10116
10117
|
n && TA(n);
|
|
10117
|
-
const s = await
|
|
10118
|
+
const s = await N.getShadowGraphqlClient().query({
|
|
10118
10119
|
query: Pn,
|
|
10119
10120
|
variables: {
|
|
10120
10121
|
id: A
|
|
@@ -10123,10 +10124,10 @@ class fs {
|
|
|
10123
10124
|
});
|
|
10124
10125
|
if (!((c = s.data) != null && c.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
|
|
10125
10126
|
throw new Error(`Unable to find bundle: ${A}`);
|
|
10126
|
-
const i = (d = s.data) == null ? void 0 : d.bundles[0],
|
|
10127
|
-
|
|
10128
|
-
const
|
|
10129
|
-
return await
|
|
10127
|
+
const i = (d = s.data) == null ? void 0 : d.bundles[0], r = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10128
|
+
r.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", r);
|
|
10129
|
+
const o = new fe(this, i, e, t);
|
|
10130
|
+
return await o.getInitializationPromise(), o;
|
|
10130
10131
|
}
|
|
10131
10132
|
/**
|
|
10132
10133
|
* Retrieves all existing bundle stakeholders from the API, for the currently authenticated customer.
|
|
@@ -10136,7 +10137,7 @@ class fs {
|
|
|
10136
10137
|
var n;
|
|
10137
10138
|
if (!this.customer)
|
|
10138
10139
|
throw new Error("Customer not authenticated.");
|
|
10139
|
-
const A = await
|
|
10140
|
+
const A = await N.getShadowGraphqlClient().query({
|
|
10140
10141
|
query: Un,
|
|
10141
10142
|
variables: {
|
|
10142
10143
|
id: this.customer.id
|
|
@@ -10145,11 +10146,11 @@ class fs {
|
|
|
10145
10146
|
});
|
|
10146
10147
|
if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
|
|
10147
10148
|
throw new Error("Unable to find customer.");
|
|
10148
|
-
const t = A.data.customers[0].bundleStakeholders || [], a =
|
|
10149
|
+
const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10149
10150
|
return t.forEach((s) => {
|
|
10150
|
-
var i,
|
|
10151
|
-
(i = s.bundle) != null && i.id && ((
|
|
10152
|
-
}),
|
|
10151
|
+
var i, r;
|
|
10152
|
+
(i = s.bundle) != null && i.id && ((r = s.bundle.partner) != null && r.id) && a.set(s.bundle.id, s.bundle.partner.id);
|
|
10153
|
+
}), x.setMap("bundlePartnerIds", a), t;
|
|
10153
10154
|
}
|
|
10154
10155
|
/**
|
|
10155
10156
|
* Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
|
|
@@ -10160,40 +10161,40 @@ class fs {
|
|
|
10160
10161
|
* @returns A workflow experience configured as requested.
|
|
10161
10162
|
*/
|
|
10162
10163
|
async getWorkflowExperience(A, e, t, a) {
|
|
10163
|
-
var B, l, d, E;
|
|
10164
|
+
var B, l, d, E, C;
|
|
10164
10165
|
if (!a)
|
|
10165
10166
|
return await this.getWorkflowExperienceDeprecated(A, e, t);
|
|
10166
10167
|
const n = async () => {
|
|
10167
|
-
var
|
|
10168
|
-
const
|
|
10168
|
+
var Q, h;
|
|
10169
|
+
const w = N.getShadowGraphqlClient();
|
|
10169
10170
|
if (a.type === "transaction") {
|
|
10170
|
-
const { transactionId:
|
|
10171
|
+
const { transactionId: u, readOnly: f } = a, p = await w.query({
|
|
10171
10172
|
query: EA,
|
|
10172
10173
|
variables: {
|
|
10173
|
-
ids: [
|
|
10174
|
+
ids: [u]
|
|
10174
10175
|
},
|
|
10175
10176
|
errorPolicy: "all",
|
|
10176
10177
|
fetchPolicy: "no-cache"
|
|
10177
10178
|
});
|
|
10178
|
-
if (!((
|
|
10179
|
-
throw new
|
|
10180
|
-
const
|
|
10181
|
-
if (!
|
|
10182
|
-
throw new
|
|
10183
|
-
const
|
|
10184
|
-
if (!
|
|
10185
|
-
throw new
|
|
10186
|
-
return { transaction:
|
|
10179
|
+
if (!((Q = p.data) != null && Q.transactions) || p.data.transactions.length === 0)
|
|
10180
|
+
throw new P("Existing transaction not found.");
|
|
10181
|
+
const D = (h = p.data) == null ? void 0 : h.transactions[0];
|
|
10182
|
+
if (!D.workflowId)
|
|
10183
|
+
throw new P("Existing transaction has no workflow ID.");
|
|
10184
|
+
const m = await pA(D.workflowId);
|
|
10185
|
+
if (!D.product)
|
|
10186
|
+
throw new P("Failed to load transaction, product not available.");
|
|
10187
|
+
return { transaction: D, workflow: m, readOnly: f };
|
|
10187
10188
|
}
|
|
10188
10189
|
if (a.type === "integration" || a.type === "external") {
|
|
10189
|
-
const
|
|
10190
|
-
const
|
|
10190
|
+
const u = async () => {
|
|
10191
|
+
const m = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10191
10192
|
externalIntegrationId: a.externalIntegrationId,
|
|
10192
10193
|
externalProductId: a.externalProductId
|
|
10193
|
-
},
|
|
10194
|
+
}, M = await w.mutate({
|
|
10194
10195
|
mutation: ue,
|
|
10195
10196
|
variables: {
|
|
10196
|
-
...
|
|
10197
|
+
...m,
|
|
10197
10198
|
bulk: a.bulk,
|
|
10198
10199
|
workflowId: a.workflowId,
|
|
10199
10200
|
claim: !0
|
|
@@ -10203,59 +10204,60 @@ class fs {
|
|
|
10203
10204
|
// TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
|
|
10204
10205
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
10205
10206
|
});
|
|
10206
|
-
if (!
|
|
10207
|
-
throw new
|
|
10208
|
-
const
|
|
10209
|
-
if (!
|
|
10210
|
-
throw new
|
|
10211
|
-
return
|
|
10212
|
-
},
|
|
10213
|
-
return { transaction:
|
|
10207
|
+
if (!M.data || !M.data.transactionCreate)
|
|
10208
|
+
throw new P("Failed to create transaction!");
|
|
10209
|
+
const Y = M.data.transactionCreate;
|
|
10210
|
+
if (!Y.product)
|
|
10211
|
+
throw new P("Failed to create transaction, product not available.");
|
|
10212
|
+
return Y;
|
|
10213
|
+
}, f = pA(a.workflowId, a == null ? void 0 : a.graphql), [p, D] = await Promise.all([u(), f]);
|
|
10214
|
+
return { transaction: p, workflow: D };
|
|
10214
10215
|
}
|
|
10215
|
-
throw new
|
|
10216
|
-
}, { transaction: s, workflow: i, readOnly:
|
|
10216
|
+
throw new P("No workflow ID provided.");
|
|
10217
|
+
}, { transaction: s, workflow: i, readOnly: r } = await n();
|
|
10217
10218
|
this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
|
|
10218
|
-
const
|
|
10219
|
+
const o = {
|
|
10219
10220
|
product: s.product,
|
|
10220
10221
|
transaction: s,
|
|
10221
10222
|
layouts: [],
|
|
10222
|
-
|
|
10223
|
+
singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
|
|
10224
|
+
stateMutationFunc: r ? async () => {
|
|
10223
10225
|
throw new v("State mutation is forbidden in read only mode!");
|
|
10224
|
-
} : async (
|
|
10225
|
-
const
|
|
10226
|
-
return this.updateTransactionState({ ...
|
|
10226
|
+
} : async (w) => {
|
|
10227
|
+
const h = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
|
|
10228
|
+
return this.updateTransactionState({ ...w, context: { transactionOwnerId: h } });
|
|
10227
10229
|
},
|
|
10228
|
-
readOnly:
|
|
10230
|
+
readOnly: r,
|
|
10229
10231
|
workflow: i
|
|
10230
10232
|
};
|
|
10231
10233
|
if (a.type === "transaction" && s.workflowState) {
|
|
10232
|
-
const
|
|
10233
|
-
|
|
10234
|
-
} else if (!
|
|
10235
|
-
const
|
|
10236
|
-
|
|
10234
|
+
const w = JSON.parse(s.workflowState);
|
|
10235
|
+
o.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), o.reloadedState = w;
|
|
10236
|
+
} else if (!r && a.workflowState) {
|
|
10237
|
+
const w = JSON.parse(a.workflowState);
|
|
10238
|
+
o.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), o.reloadedState = w;
|
|
10237
10239
|
} else
|
|
10238
|
-
|
|
10239
|
-
|
|
10240
|
-
|
|
10240
|
+
o.layouts = KA(
|
|
10241
|
+
o.transaction,
|
|
10242
|
+
o.workflow
|
|
10241
10243
|
);
|
|
10242
|
-
if (
|
|
10243
|
-
|
|
10244
|
-
), a.previewService ? (
|
|
10245
|
-
model:
|
|
10246
|
-
contextService:
|
|
10247
|
-
}))) : (
|
|
10248
|
-
model:
|
|
10249
|
-
contextService:
|
|
10244
|
+
if (o.renderableContextService = new QA(
|
|
10245
|
+
o.layouts
|
|
10246
|
+
), a.previewService ? (o.previewService = a.previewService, (d = o.product) != null && d.modelUrl && (o.modelContainer = o.previewService.loadModel({
|
|
10247
|
+
model: o.product.modelUrl,
|
|
10248
|
+
contextService: o.renderableContextService
|
|
10249
|
+
}))) : (o.previewService = t && t(i), (E = o.product) != null && E.modelUrl && (o.modelContainer = (C = o.previewService) == null ? void 0 : C.loadModel({
|
|
10250
|
+
model: o.product.modelUrl,
|
|
10251
|
+
contextService: o.renderableContextService
|
|
10250
10252
|
}))), a.type !== "transaction") {
|
|
10251
|
-
const
|
|
10252
|
-
|
|
10253
|
+
const w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10254
|
+
w.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), x.setMap("transactionOwnerIds", w);
|
|
10253
10255
|
} else {
|
|
10254
|
-
const
|
|
10255
|
-
|
|
10256
|
+
const Q = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
|
|
10257
|
+
Q && eA(Q), o.isReloadedTransaction = !0;
|
|
10256
10258
|
}
|
|
10257
|
-
this.initialized = !0, this.experienceOptions =
|
|
10258
|
-
const c = new CA(this,
|
|
10259
|
+
this.initialized = !0, this.experienceOptions = o;
|
|
10260
|
+
const c = new CA(this, o);
|
|
10259
10261
|
return await c.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await c.attachCustomerDetails({ email: this.customer.emailAddress }), c;
|
|
10260
10262
|
}
|
|
10261
10263
|
/**
|
|
@@ -10267,39 +10269,39 @@ class fs {
|
|
|
10267
10269
|
*/
|
|
10268
10270
|
async getWorkflowExperiences(A, e) {
|
|
10269
10271
|
if (A.length === 0)
|
|
10270
|
-
throw new
|
|
10271
|
-
const t =
|
|
10272
|
-
(
|
|
10272
|
+
throw new P("No options provided!");
|
|
10273
|
+
const t = N.getShadowGraphqlClient(), a = A.map((h, u) => ({ option: h, index: u })), n = a.filter((h) => h.option.type === "transaction"), s = a.filter(
|
|
10274
|
+
(h) => h.option.type === "integration" || h.option.type === "external"
|
|
10273
10275
|
), i = async () => {
|
|
10274
|
-
var p,
|
|
10276
|
+
var p, D;
|
|
10275
10277
|
if (n.length === 0)
|
|
10276
10278
|
return [];
|
|
10277
|
-
const
|
|
10279
|
+
const h = n.map((m) => m.option.transactionId), u = await t.query({
|
|
10278
10280
|
query: EA,
|
|
10279
10281
|
variables: {
|
|
10280
|
-
ids:
|
|
10282
|
+
ids: h
|
|
10281
10283
|
},
|
|
10282
10284
|
errorPolicy: "all",
|
|
10283
10285
|
fetchPolicy: "no-cache"
|
|
10284
|
-
}),
|
|
10285
|
-
if (
|
|
10286
|
-
const m = ((
|
|
10287
|
-
throw new
|
|
10286
|
+
}), f = u.data.transactions;
|
|
10287
|
+
if (f.length !== n.length) {
|
|
10288
|
+
const m = ((D = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
|
|
10289
|
+
throw new P(`Not all transactions were found: ${m}`);
|
|
10288
10290
|
}
|
|
10289
|
-
return
|
|
10291
|
+
return f.map((m, M) => {
|
|
10290
10292
|
var Y;
|
|
10291
10293
|
return {
|
|
10292
10294
|
transaction: m,
|
|
10293
10295
|
workflowId: m.workflowId,
|
|
10294
10296
|
readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
|
|
10295
|
-
index: n[
|
|
10297
|
+
index: n[M].index
|
|
10296
10298
|
};
|
|
10297
10299
|
});
|
|
10298
|
-
},
|
|
10299
|
-
var
|
|
10300
|
+
}, r = async () => {
|
|
10301
|
+
var f, p, D;
|
|
10300
10302
|
if (s.length === 0)
|
|
10301
10303
|
return [];
|
|
10302
|
-
const
|
|
10304
|
+
const h = await t.mutate({
|
|
10303
10305
|
mutation: ca,
|
|
10304
10306
|
variables: {
|
|
10305
10307
|
inputs: s.map((m) => ({
|
|
@@ -10313,37 +10315,39 @@ class fs {
|
|
|
10313
10315
|
},
|
|
10314
10316
|
errorPolicy: "all",
|
|
10315
10317
|
fetchPolicy: "no-cache"
|
|
10316
|
-
}), u = (
|
|
10318
|
+
}), u = (f = h.data) == null ? void 0 : f.transactionCreateMany;
|
|
10317
10319
|
if (!u || u.length === 0) {
|
|
10318
|
-
const m = ((
|
|
10319
|
-
throw new
|
|
10320
|
+
const m = ((D = (p = h.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
|
|
10321
|
+
throw new P(`Failed to create transactions: ${m}`);
|
|
10320
10322
|
}
|
|
10321
|
-
return u.map((m,
|
|
10323
|
+
return u.map((m, M) => ({
|
|
10322
10324
|
transaction: m,
|
|
10323
10325
|
workflowId: m.workflowId,
|
|
10324
10326
|
readOnly: !1,
|
|
10325
|
-
index: s[
|
|
10327
|
+
index: s[M].index
|
|
10326
10328
|
}));
|
|
10327
|
-
},
|
|
10328
|
-
|
|
10329
|
+
}, o = (await Promise.all([i(), r()])).flat(), c = [...new Set(o.map((h) => h.workflowId))], B = await ht(c, e), l = new Map(B.map((h) => [h.id, h])), d = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = o.map(async (h) => {
|
|
10330
|
+
var U;
|
|
10331
|
+
const { transaction: u, workflowId: f, readOnly: p, index: D } = h, m = l.get(f), M = A[D];
|
|
10329
10332
|
!d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
|
|
10330
10333
|
const Y = d.get(u.id) || void 0, F = {
|
|
10331
10334
|
product: u.product,
|
|
10332
10335
|
transaction: u,
|
|
10333
10336
|
layouts: [],
|
|
10337
|
+
singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
|
|
10334
10338
|
stateMutationFunc: p ? async () => {
|
|
10335
10339
|
throw new v("State mutation is forbidden in read only mode!");
|
|
10336
|
-
} : async (
|
|
10340
|
+
} : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
|
|
10337
10341
|
readOnly: p,
|
|
10338
10342
|
workflow: m,
|
|
10339
|
-
isReloadedTransaction:
|
|
10343
|
+
isReloadedTransaction: M.type === "transaction"
|
|
10340
10344
|
};
|
|
10341
|
-
if (
|
|
10342
|
-
const
|
|
10343
|
-
F.layouts = Object.values(
|
|
10344
|
-
} else if (!p &&
|
|
10345
|
-
const
|
|
10346
|
-
F.layouts = Object.values(
|
|
10345
|
+
if (M.type === "transaction" && u.workflowState) {
|
|
10346
|
+
const S = JSON.parse(u.workflowState);
|
|
10347
|
+
F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
|
|
10348
|
+
} else if (!p && M.workflowState) {
|
|
10349
|
+
const S = JSON.parse(M.workflowState);
|
|
10350
|
+
F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
|
|
10347
10351
|
} else
|
|
10348
10352
|
F.layouts = KA(
|
|
10349
10353
|
F.transaction,
|
|
@@ -10351,12 +10355,12 @@ class fs {
|
|
|
10351
10355
|
);
|
|
10352
10356
|
return F.renderableContextService = new QA(
|
|
10353
10357
|
F.layouts
|
|
10354
|
-
), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index:
|
|
10358
|
+
), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: D, options: M };
|
|
10355
10359
|
});
|
|
10356
|
-
|
|
10357
|
-
const Q = (await Promise.all(E)).sort((
|
|
10358
|
-
const { experienceOptions: u, options:
|
|
10359
|
-
return await p.getWorkflowManager().getInitializationPromise(),
|
|
10360
|
+
x.setMap("transactionOwnerIds", d);
|
|
10361
|
+
const Q = (await Promise.all(E)).sort((h, u) => h.index - u.index).map(async (h) => {
|
|
10362
|
+
const { experienceOptions: u, options: f } = h, p = new CA(this, u);
|
|
10363
|
+
return await p.getWorkflowManager().getInitializationPromise(), f.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
|
|
10360
10364
|
});
|
|
10361
10365
|
return await Promise.all(Q);
|
|
10362
10366
|
}
|
|
@@ -10368,8 +10372,8 @@ class fs {
|
|
|
10368
10372
|
async initFromIntegrationProduct(A) {
|
|
10369
10373
|
var s;
|
|
10370
10374
|
if (A === "")
|
|
10371
|
-
throw new
|
|
10372
|
-
const t = await
|
|
10375
|
+
throw new P("No integration product ID provided.");
|
|
10376
|
+
const t = await N.getShadowGraphqlClient().mutate({
|
|
10373
10377
|
mutation: ue,
|
|
10374
10378
|
variables: {
|
|
10375
10379
|
integrationProductId: A,
|
|
@@ -10382,13 +10386,13 @@ class fs {
|
|
|
10382
10386
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
10383
10387
|
});
|
|
10384
10388
|
if (!t.data || !t.data.transactionCreate)
|
|
10385
|
-
throw new
|
|
10389
|
+
throw new P("Failed to create transaction!");
|
|
10386
10390
|
const a = t.data.transactionCreate;
|
|
10387
10391
|
if (!a.product)
|
|
10388
|
-
throw new
|
|
10392
|
+
throw new P("Failed to create transaction, product not available.");
|
|
10389
10393
|
this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
|
|
10390
|
-
const n =
|
|
10391
|
-
n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""),
|
|
10394
|
+
const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10395
|
+
n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
|
|
10392
10396
|
product: a.product,
|
|
10393
10397
|
transaction: a,
|
|
10394
10398
|
layouts: [],
|
|
@@ -10402,10 +10406,10 @@ class fs {
|
|
|
10402
10406
|
* @deprecated Use getWorkflowExperience to initialize the experience.
|
|
10403
10407
|
*/
|
|
10404
10408
|
async initFromTransaction(A, e = !1) {
|
|
10405
|
-
var i,
|
|
10409
|
+
var i, r, o, c;
|
|
10406
10410
|
if (A === "")
|
|
10407
|
-
throw new
|
|
10408
|
-
const t =
|
|
10411
|
+
throw new P("No transaction ID provided.");
|
|
10412
|
+
const t = N.getShadowGraphqlClient(), a = async () => {
|
|
10409
10413
|
var d, E;
|
|
10410
10414
|
const l = (d = (await t.query({
|
|
10411
10415
|
query: EA,
|
|
@@ -10414,9 +10418,9 @@ class fs {
|
|
|
10414
10418
|
errorPolicy: "all"
|
|
10415
10419
|
})).data) == null ? void 0 : d.transactions[0];
|
|
10416
10420
|
if (!l)
|
|
10417
|
-
throw new
|
|
10421
|
+
throw new P("Failed to read transaction.");
|
|
10418
10422
|
if (!l.product)
|
|
10419
|
-
throw new
|
|
10423
|
+
throw new P("Failed to load transaction, product not available.");
|
|
10420
10424
|
this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
|
|
10421
10425
|
product: l.product,
|
|
10422
10426
|
transaction: l,
|
|
@@ -10429,7 +10433,7 @@ class fs {
|
|
|
10429
10433
|
};
|
|
10430
10434
|
if (e)
|
|
10431
10435
|
return await a();
|
|
10432
|
-
const n =
|
|
10436
|
+
const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
|
|
10433
10437
|
if (s) {
|
|
10434
10438
|
eA(s);
|
|
10435
10439
|
const l = (i = (await t.query({
|
|
@@ -10440,10 +10444,10 @@ class fs {
|
|
|
10440
10444
|
errorPolicy: "all"
|
|
10441
10445
|
})).data) == null ? void 0 : i.transactions[0];
|
|
10442
10446
|
if (!l)
|
|
10443
|
-
throw new
|
|
10447
|
+
throw new P("Failed to read transaction.");
|
|
10444
10448
|
if (!l.product)
|
|
10445
|
-
throw new
|
|
10446
|
-
this.currencyCode = (
|
|
10449
|
+
throw new P("Failed to load transaction, product not available.");
|
|
10450
|
+
this.currencyCode = (r = l.product.partner) == null ? void 0 : r.currencyCode, this.experienceOptions = {
|
|
10447
10451
|
product: l.product,
|
|
10448
10452
|
transaction: l,
|
|
10449
10453
|
layouts: [],
|
|
@@ -10453,16 +10457,16 @@ class fs {
|
|
|
10453
10457
|
return;
|
|
10454
10458
|
}
|
|
10455
10459
|
try {
|
|
10456
|
-
const l = (
|
|
10460
|
+
const l = (o = (await t.mutate({
|
|
10457
10461
|
mutation: ga,
|
|
10458
10462
|
variables: { id: A },
|
|
10459
10463
|
errorPolicy: "all"
|
|
10460
|
-
})).data) == null ? void 0 :
|
|
10464
|
+
})).data) == null ? void 0 : o.transactionClaim;
|
|
10461
10465
|
if (!l)
|
|
10462
|
-
throw new
|
|
10466
|
+
throw new P("Failed to read transaction.");
|
|
10463
10467
|
if (!l.product)
|
|
10464
|
-
throw new
|
|
10465
|
-
this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId),
|
|
10468
|
+
throw new P("Failed to load transaction, product not available.");
|
|
10469
|
+
this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), x.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
10466
10470
|
product: l.product,
|
|
10467
10471
|
transaction: l,
|
|
10468
10472
|
layouts: [],
|
|
@@ -10470,7 +10474,7 @@ class fs {
|
|
|
10470
10474
|
readOnly: e
|
|
10471
10475
|
}, this.initialized = !0;
|
|
10472
10476
|
} catch {
|
|
10473
|
-
throw new
|
|
10477
|
+
throw new P("Attempted to access a transaction that isn't available.");
|
|
10474
10478
|
}
|
|
10475
10479
|
}
|
|
10476
10480
|
/**
|
|
@@ -10479,29 +10483,29 @@ class fs {
|
|
|
10479
10483
|
async getWorkflowExperienceDeprecated(A, e, t) {
|
|
10480
10484
|
var a, n, s, i;
|
|
10481
10485
|
if (!this.initialized || !this.experienceOptions)
|
|
10482
|
-
throw new
|
|
10486
|
+
throw new P("Cannot launch experience: Not initialized.");
|
|
10483
10487
|
if (this.experienceOptions.transaction.workflowId) {
|
|
10484
|
-
const
|
|
10485
|
-
if (this.experienceOptions.workflow =
|
|
10488
|
+
const r = await pA(this.experienceOptions.transaction.workflowId);
|
|
10489
|
+
if (this.experienceOptions.workflow = r, this.experienceOptions.transaction.workflowState) {
|
|
10486
10490
|
const c = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10487
10491
|
this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await AA(c), await tA(c), this.experienceOptions.reloadedState = c;
|
|
10488
10492
|
}
|
|
10489
|
-
this.experienceOptions.previewService = t && t(
|
|
10493
|
+
this.experienceOptions.previewService = t && t(r), 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({
|
|
10490
10494
|
model: this.experienceOptions.product.modelUrl,
|
|
10491
10495
|
contextService: this.experienceOptions.renderableContextService
|
|
10492
10496
|
}));
|
|
10493
|
-
const
|
|
10494
|
-
return await
|
|
10497
|
+
const o = new CA(this, this.experienceOptions);
|
|
10498
|
+
return await o.getWorkflowManager().getInitializationPromise(), o;
|
|
10495
10499
|
}
|
|
10496
10500
|
if (A) {
|
|
10497
|
-
const
|
|
10501
|
+
const r = N.getShadowGraphqlClient().mutate({
|
|
10498
10502
|
mutation: Ba,
|
|
10499
10503
|
variables: {
|
|
10500
10504
|
workflowId: A,
|
|
10501
10505
|
id: this.experienceOptions.transaction.id
|
|
10502
10506
|
}
|
|
10503
|
-
}),
|
|
10504
|
-
if (await Promise.all([
|
|
10507
|
+
}), o = pA(A);
|
|
10508
|
+
if (await Promise.all([r, o]), this.experienceOptions.workflow = await o, e) {
|
|
10505
10509
|
const B = JSON.parse(e);
|
|
10506
10510
|
this.experienceOptions.layouts = Object.values(B.layouts).map((l) => l.layout), await AA(B), await tA(B), this.experienceOptions.reloadedState = B;
|
|
10507
10511
|
} else
|
|
@@ -10509,14 +10513,14 @@ class fs {
|
|
|
10509
10513
|
this.experienceOptions.transaction,
|
|
10510
10514
|
this.experienceOptions.workflow
|
|
10511
10515
|
);
|
|
10512
|
-
this.experienceOptions.previewService = t && t(await
|
|
10516
|
+
this.experienceOptions.previewService = t && t(await o), 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({
|
|
10513
10517
|
model: this.experienceOptions.product.modelUrl,
|
|
10514
10518
|
contextService: this.experienceOptions.renderableContextService
|
|
10515
10519
|
}));
|
|
10516
10520
|
const c = new CA(this, this.experienceOptions);
|
|
10517
10521
|
return await c.getWorkflowManager().getInitializationPromise(), c;
|
|
10518
10522
|
}
|
|
10519
|
-
throw new
|
|
10523
|
+
throw new P("No workflow ID provided.");
|
|
10520
10524
|
}
|
|
10521
10525
|
/**
|
|
10522
10526
|
* @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
|
|
@@ -10532,7 +10536,7 @@ class fs {
|
|
|
10532
10536
|
*/
|
|
10533
10537
|
getProduct() {
|
|
10534
10538
|
if (!this.initialized || !this.experienceOptions)
|
|
10535
|
-
throw new
|
|
10539
|
+
throw new P("Cannot get product: Not initialized.");
|
|
10536
10540
|
return this.experienceOptions.product;
|
|
10537
10541
|
}
|
|
10538
10542
|
/**
|
|
@@ -10541,12 +10545,12 @@ class fs {
|
|
|
10541
10545
|
*/
|
|
10542
10546
|
getTransaction() {
|
|
10543
10547
|
if (!this.initialized || !this.experienceOptions)
|
|
10544
|
-
throw new
|
|
10548
|
+
throw new P("Cannot get transaction: Not initialized.");
|
|
10545
10549
|
return this.experienceOptions.transaction;
|
|
10546
10550
|
}
|
|
10547
10551
|
storeCustomer(A) {
|
|
10548
|
-
const e =
|
|
10549
|
-
e.set(A.partner.id, A.id),
|
|
10552
|
+
const e = x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
|
|
10553
|
+
e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
|
|
10550
10554
|
}
|
|
10551
10555
|
}
|
|
10552
10556
|
class ks {
|
|
@@ -10775,7 +10779,7 @@ export {
|
|
|
10775
10779
|
nn as InformationStepHandle,
|
|
10776
10780
|
ei as LayoutElementFactory,
|
|
10777
10781
|
ti as LayoutElementType,
|
|
10778
|
-
|
|
10782
|
+
L as LayoutNotFoundError,
|
|
10779
10783
|
$a as MaterialStepHandle,
|
|
10780
10784
|
SA as MisconfigurationError,
|
|
10781
10785
|
ks as MockWorkflowManager,
|
|
@@ -10810,7 +10814,7 @@ export {
|
|
|
10810
10814
|
gi as UnitOfMeasurement,
|
|
10811
10815
|
X as Variant,
|
|
10812
10816
|
CA as WorkflowExperienceImpl,
|
|
10813
|
-
|
|
10817
|
+
T as assetService,
|
|
10814
10818
|
Bn as createDesign,
|
|
10815
10819
|
li as dataUrlFromExternalUrl,
|
|
10816
10820
|
zA as designService,
|
|
@@ -10831,7 +10835,7 @@ export {
|
|
|
10831
10835
|
mi as getSvgElement,
|
|
10832
10836
|
pA as getWorkflow,
|
|
10833
10837
|
ht as getWorkflows,
|
|
10834
|
-
|
|
10838
|
+
N as graphQlManager,
|
|
10835
10839
|
fA as illustrationStepService,
|
|
10836
10840
|
pi as loadFont,
|
|
10837
10841
|
$e as materialStepService,
|
|
@@ -10839,7 +10843,7 @@ export {
|
|
|
10839
10843
|
Ya as moduleStepService,
|
|
10840
10844
|
z as optionService,
|
|
10841
10845
|
Ii as patternImageDataCache,
|
|
10842
|
-
|
|
10846
|
+
x as persistenceService,
|
|
10843
10847
|
At as pictureStepService,
|
|
10844
10848
|
et as questionStepService,
|
|
10845
10849
|
Di as registerFetchImplementation,
|