@spiffcommerce/core 16.5.0 → 16.5.1-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 +1040 -1038
- 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;
|
|
@@ -1317,24 +1318,22 @@ const Ve = M`
|
|
|
1317
1318
|
silentSteps: g.silentSteps.filter((t) => nA(t, A))
|
|
1318
1319
|
};
|
|
1319
1320
|
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)
|
|
1321
|
+
}, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A, e = !1) => {
|
|
1322
|
+
var s;
|
|
1323
|
+
const t = aA(g, A), a = [];
|
|
1324
|
+
for (const i of t)
|
|
1325
|
+
for (const r of i.renderableSteps) {
|
|
1326
|
+
const o = (((s = r.option) == null ? void 0 : s.variants) || []).length;
|
|
1327
|
+
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);
|
|
1328
|
+
}
|
|
1329
|
+
const n = t.filter((i) => i.renderableSteps.filter(
|
|
1330
|
+
(o) => a.includes(o.stepName)
|
|
1332
1331
|
).length > 0);
|
|
1333
|
-
for (const
|
|
1334
|
-
|
|
1335
|
-
(
|
|
1332
|
+
for (const i of n)
|
|
1333
|
+
i.renderableSteps = i.renderableSteps.filter(
|
|
1334
|
+
(r) => a.includes(r.stepName)
|
|
1336
1335
|
);
|
|
1337
|
-
return
|
|
1336
|
+
return n;
|
|
1338
1337
|
};
|
|
1339
1338
|
class Xe {
|
|
1340
1339
|
constructor() {
|
|
@@ -1403,10 +1402,10 @@ class qe {
|
|
|
1403
1402
|
function Qa(g, A, e, t) {
|
|
1404
1403
|
const a = e.width * g.zoom, n = e.height * g.zoom;
|
|
1405
1404
|
if (t) {
|
|
1406
|
-
const i = g,
|
|
1407
|
-
i.zoom = Math.max(
|
|
1408
|
-
const
|
|
1409
|
-
return i.x = hA(g.x, A.width -
|
|
1405
|
+
const i = g, r = Math.max(A.width / e.width, A.height / e.height);
|
|
1406
|
+
i.zoom = Math.max(r, g.zoom);
|
|
1407
|
+
const o = e.width * i.zoom, c = e.height * i.zoom;
|
|
1408
|
+
return i.x = hA(g.x, A.width - o, 0), i.y = hA(g.y, A.height - c, 0), i;
|
|
1410
1409
|
}
|
|
1411
1410
|
const s = g;
|
|
1412
1411
|
return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
|
|
@@ -1431,8 +1430,8 @@ class ua {
|
|
|
1431
1430
|
if (a.currentFrameSources) {
|
|
1432
1431
|
let n = !1;
|
|
1433
1432
|
for (let s = 0; s < a.currentFrameSources.length; s++) {
|
|
1434
|
-
const i = a.currentFrameSources[s],
|
|
1435
|
-
ke(
|
|
1433
|
+
const i = a.currentFrameSources[s], r = await Ae(i);
|
|
1434
|
+
ke(r, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = r, n = !0);
|
|
1436
1435
|
}
|
|
1437
1436
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
1438
1437
|
(s) => s(this.frameData)
|
|
@@ -1501,7 +1500,7 @@ class ua {
|
|
|
1501
1500
|
if (this.imageData && this.offsets && this.frameData) {
|
|
1502
1501
|
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
|
|
1503
1502
|
const n = this.frameData.map((s, i) => {
|
|
1504
|
-
const
|
|
1503
|
+
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
1504
|
return {
|
|
1506
1505
|
x: c,
|
|
1507
1506
|
y: B,
|
|
@@ -1565,8 +1564,8 @@ class ua {
|
|
|
1565
1564
|
if (!this.workflowManager)
|
|
1566
1565
|
throw new v("No workflow manager set, cannot update offsets.");
|
|
1567
1566
|
const s = this.workflowManager.getCommandDispatcher();
|
|
1568
|
-
a.forEach((i,
|
|
1569
|
-
s(new Me(i, e, A[
|
|
1567
|
+
a.forEach((i, r) => {
|
|
1568
|
+
s(new Me(i, e, A[r]));
|
|
1570
1569
|
}), this.stepName && this.workflowManager.updateStorage(this.stepName, {
|
|
1571
1570
|
frameOffsetsList: A
|
|
1572
1571
|
}), n && n();
|
|
@@ -1591,19 +1590,19 @@ class ua {
|
|
|
1591
1590
|
class me {
|
|
1592
1591
|
constructor(A, e, t) {
|
|
1593
1592
|
this.processRegion = async (a) => {
|
|
1594
|
-
var
|
|
1593
|
+
var r, o, c, B;
|
|
1595
1594
|
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1596
1595
|
if (!n)
|
|
1597
|
-
throw new
|
|
1596
|
+
throw new L(a);
|
|
1598
1597
|
let s = "";
|
|
1599
1598
|
if (this.configuration.type === I.ProductOverlay) {
|
|
1600
1599
|
let l = "";
|
|
1601
|
-
if ((
|
|
1600
|
+
if ((r = this.product) != null && r.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
|
|
1602
1601
|
throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1603
1602
|
}
|
|
1604
1603
|
const i = this.evaluateAssetType();
|
|
1605
|
-
if (i ===
|
|
1606
|
-
const l = this.configuration.type === I.SilentIllustration ? (
|
|
1604
|
+
if (i === H.Image) {
|
|
1605
|
+
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
1606
|
if (!l)
|
|
1608
1607
|
throw new Error("Undefined raster silent step source");
|
|
1609
1608
|
const d = {
|
|
@@ -1636,10 +1635,10 @@ class me {
|
|
|
1636
1635
|
Q("Undefined vector silent step source");
|
|
1637
1636
|
return;
|
|
1638
1637
|
}
|
|
1639
|
-
Z(l, !0).then((
|
|
1640
|
-
w(
|
|
1641
|
-
}).catch((
|
|
1642
|
-
}))()),
|
|
1638
|
+
Z(l, !0).then((h) => {
|
|
1639
|
+
w(h);
|
|
1640
|
+
}).catch((h) => console.error(h));
|
|
1641
|
+
}))()), C = {
|
|
1643
1642
|
stepName: this.configuration.stepName,
|
|
1644
1643
|
id: k(),
|
|
1645
1644
|
cachedObjectURL: await FA(E.svg),
|
|
@@ -1660,10 +1659,10 @@ class me {
|
|
|
1660
1659
|
};
|
|
1661
1660
|
return {
|
|
1662
1661
|
regionElement: {
|
|
1663
|
-
id:
|
|
1662
|
+
id: C.id,
|
|
1664
1663
|
region: a
|
|
1665
1664
|
},
|
|
1666
|
-
command: new J(
|
|
1665
|
+
command: new J(C, n)
|
|
1667
1666
|
};
|
|
1668
1667
|
}
|
|
1669
1668
|
}, this.configuration = A, this.layouts = e, this.product = t || void 0;
|
|
@@ -1678,7 +1677,7 @@ class me {
|
|
|
1678
1677
|
return this.configuration.type === I.ProductOverlay ? Promise.all(
|
|
1679
1678
|
this.configuration.data.regions.map((A) => {
|
|
1680
1679
|
if (!this.layouts.find((t) => A.panelId === t.panelId))
|
|
1681
|
-
throw new
|
|
1680
|
+
throw new L(A);
|
|
1682
1681
|
return this.processRegion(A);
|
|
1683
1682
|
})
|
|
1684
1683
|
) : Promise.reject("Unknown silent step. This is a bug");
|
|
@@ -1686,7 +1685,7 @@ class me {
|
|
|
1686
1685
|
evaluateAssetType() {
|
|
1687
1686
|
var e, t, a;
|
|
1688
1687
|
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") ?
|
|
1688
|
+
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
1689
|
}
|
|
1691
1690
|
}
|
|
1692
1691
|
const ma = async (g) => {
|
|
@@ -1734,32 +1733,32 @@ class pa {
|
|
|
1734
1733
|
const a = e.getSerializedStep(
|
|
1735
1734
|
A.stepName,
|
|
1736
1735
|
t.serializableWorkflow.steps
|
|
1737
|
-
),
|
|
1738
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
1736
|
+
), r = Object.values(t.layouts).map((o) => o.elements).flat().filter((o) => o.stepName === A.stepName).map((o) => ({ id: o.id, region: o.stepRegion }));
|
|
1737
|
+
await e.setSelectionsAndElements(A.stepName, [], r, async () => {
|
|
1739
1738
|
var B, l;
|
|
1740
|
-
const
|
|
1739
|
+
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
1740
|
e.updateStorage(A.stepName, {
|
|
1742
|
-
videoShortUrl:
|
|
1741
|
+
videoShortUrl: o,
|
|
1743
1742
|
videoUrl: c
|
|
1744
1743
|
});
|
|
1745
1744
|
});
|
|
1746
1745
|
}
|
|
1747
|
-
async regenerateQRCode(A, e, t, a, n, s, i,
|
|
1746
|
+
async regenerateQRCode(A, e, t, a, n, s, i, r, o) {
|
|
1748
1747
|
if (!e && t !== "" && a === "") {
|
|
1749
1748
|
const c = async () => {
|
|
1750
|
-
var
|
|
1751
|
-
const
|
|
1752
|
-
return { asset:
|
|
1753
|
-
}, B = await new Promise((
|
|
1749
|
+
var f, p;
|
|
1750
|
+
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;
|
|
1751
|
+
return { asset: h, link: u };
|
|
1752
|
+
}, B = await new Promise((h, u) => {
|
|
1754
1753
|
new Ze(
|
|
1755
1754
|
async () => !!(await c()).link,
|
|
1756
1755
|
async () => {
|
|
1757
|
-
const
|
|
1758
|
-
if (!
|
|
1759
|
-
throw new lA(
|
|
1760
|
-
|
|
1756
|
+
const f = await c();
|
|
1757
|
+
if (!f.link || !f.link)
|
|
1758
|
+
throw new lA(f.asset);
|
|
1759
|
+
h({
|
|
1761
1760
|
rel: "mpeg4",
|
|
1762
|
-
href:
|
|
1761
|
+
href: f.link
|
|
1763
1762
|
});
|
|
1764
1763
|
},
|
|
1765
1764
|
() => {
|
|
@@ -1769,34 +1768,34 @@ class pa {
|
|
|
1769
1768
|
40
|
|
1770
1769
|
);
|
|
1771
1770
|
});
|
|
1772
|
-
A.forEach((
|
|
1771
|
+
A.forEach((h) => r(new $(h.id)));
|
|
1773
1772
|
const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
|
|
1774
1773
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1775
1774
|
const E = d.toString();
|
|
1776
1775
|
if (E.length >= 2e3)
|
|
1777
1776
|
throw new vA("Cannot create QR code, URL too long.");
|
|
1778
|
-
const
|
|
1779
|
-
if (i(
|
|
1777
|
+
const C = await ma(E);
|
|
1778
|
+
if (i(C), !s.data || !s.data.regions)
|
|
1780
1779
|
throw new SA(s, "Missing regions.");
|
|
1781
|
-
const w = await this.regionElements(s), Q = await this.command(
|
|
1780
|
+
const w = await this.regionElements(s), Q = await this.command(C, w, n, s.stepName);
|
|
1782
1781
|
Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
|
|
1783
1782
|
n.updateStorage(s.stepName, {
|
|
1784
|
-
videoShortUrl:
|
|
1783
|
+
videoShortUrl: C,
|
|
1785
1784
|
videoUrl: a
|
|
1786
|
-
}),
|
|
1785
|
+
}), o(!1);
|
|
1787
1786
|
});
|
|
1788
1787
|
} else
|
|
1789
|
-
|
|
1788
|
+
o(!1);
|
|
1790
1789
|
}
|
|
1791
1790
|
async regionElements(A) {
|
|
1792
1791
|
const e = (t) => ({ id: k(), region: t });
|
|
1793
1792
|
return A.data.regions.map(e);
|
|
1794
1793
|
}
|
|
1795
1794
|
async command(A, e, t, a) {
|
|
1796
|
-
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await
|
|
1797
|
-
const c =
|
|
1795
|
+
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await be(A, { type: "svg" }))}`, r = e.map((o) => {
|
|
1796
|
+
const c = o.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
|
|
1798
1797
|
if (!B && c)
|
|
1799
|
-
throw new
|
|
1798
|
+
throw new L(c);
|
|
1800
1799
|
if (B && !c)
|
|
1801
1800
|
throw new Error("Region not found");
|
|
1802
1801
|
if (!B || !c)
|
|
@@ -1805,9 +1804,9 @@ class pa {
|
|
|
1805
1804
|
{
|
|
1806
1805
|
stepRegion: c,
|
|
1807
1806
|
stepName: a,
|
|
1808
|
-
id:
|
|
1807
|
+
id: o.id,
|
|
1809
1808
|
src: i,
|
|
1810
|
-
type:
|
|
1809
|
+
type: H.Image,
|
|
1811
1810
|
y: c.top,
|
|
1812
1811
|
x: c.left,
|
|
1813
1812
|
width: c.width,
|
|
@@ -1817,7 +1816,7 @@ class pa {
|
|
|
1817
1816
|
B
|
|
1818
1817
|
);
|
|
1819
1818
|
});
|
|
1820
|
-
return { command: new G(
|
|
1819
|
+
return { command: new G(r), followup: async () => {
|
|
1821
1820
|
} };
|
|
1822
1821
|
}
|
|
1823
1822
|
}
|
|
@@ -1860,11 +1859,11 @@ class Da {
|
|
|
1860
1859
|
);
|
|
1861
1860
|
}
|
|
1862
1861
|
async reload(A, e, t) {
|
|
1863
|
-
var
|
|
1862
|
+
var o;
|
|
1864
1863
|
const a = e.getSerializedStep(
|
|
1865
1864
|
A.stepName,
|
|
1866
1865
|
t.serializableWorkflow.steps
|
|
1867
|
-
),
|
|
1866
|
+
), 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
1867
|
if (!A.option || (A.option.variants || []).length === 0) {
|
|
1869
1868
|
const c = A.data.regions.map((B) => Be(B));
|
|
1870
1869
|
e.updateStorage(A.stepName, {
|
|
@@ -1873,13 +1872,13 @@ class Da {
|
|
|
1873
1872
|
}
|
|
1874
1873
|
if (a) {
|
|
1875
1874
|
const c = async () => {
|
|
1876
|
-
var d, E,
|
|
1875
|
+
var d, E, C, w;
|
|
1877
1876
|
const B = (d = a.storage) == null ? void 0 : d.framePatternSrc, l = (E = a.storage) == null ? void 0 : E.frameOffsetsList;
|
|
1878
1877
|
if (e.updateMetadata(A.stepName, {
|
|
1879
1878
|
frameOffsetsList: l,
|
|
1880
1879
|
framePatternSrc: B
|
|
1881
1880
|
}), B) {
|
|
1882
|
-
const Q = (
|
|
1881
|
+
const Q = (C = e.getStepSpecificServices(A.stepName)) == null ? void 0 : C.frameService;
|
|
1883
1882
|
if (!Q)
|
|
1884
1883
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1885
1884
|
await this.loadPatternFromString(B, Q), e.updateMetadata(A.stepName, { image: B }), e.updateStorage(A.stepName, {
|
|
@@ -1897,11 +1896,11 @@ class Da {
|
|
|
1897
1896
|
if (a.selectedVariants && a.selectedVariants.length > 0) {
|
|
1898
1897
|
const B = a.selectedVariants[0].id;
|
|
1899
1898
|
if (A.option && B) {
|
|
1900
|
-
const l = (
|
|
1899
|
+
const l = (o = A.option.variants) == null ? void 0 : o.find((d) => d.id === B);
|
|
1901
1900
|
l && await e.setSelectionsAndElements(
|
|
1902
1901
|
A.stepName,
|
|
1903
1902
|
[l],
|
|
1904
|
-
|
|
1903
|
+
r,
|
|
1905
1904
|
async () => {
|
|
1906
1905
|
const d = await Promise.all(
|
|
1907
1906
|
A.data.regions.map((E) => this.frameSourceSvg(l, E))
|
|
@@ -1911,19 +1910,19 @@ class Da {
|
|
|
1911
1910
|
);
|
|
1912
1911
|
}
|
|
1913
1912
|
} else
|
|
1914
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
1913
|
+
await e.setSelectionsAndElements(A.stepName, [], r, c);
|
|
1915
1914
|
}
|
|
1916
1915
|
}
|
|
1917
1916
|
selectImage(A, e, t) {
|
|
1918
1917
|
t.setEditedStatus(A.stepName, !0), (e.fileLink || "").endsWith("pdf") ? t.addPoller(
|
|
1919
1918
|
new Ze(
|
|
1920
1919
|
async () => {
|
|
1921
|
-
var
|
|
1922
|
-
const s = (
|
|
1920
|
+
var r;
|
|
1921
|
+
const s = (r = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : r.find((o) => o.name === "svg");
|
|
1923
1922
|
return s ? (await fetch(s.link)).status === 200 : !1;
|
|
1924
1923
|
},
|
|
1925
1924
|
() => {
|
|
1926
|
-
|
|
1925
|
+
T.getLocalOrFromServer(e.key || "").then((n) => {
|
|
1927
1926
|
this.loadPatternFromAsset(n, A, t);
|
|
1928
1927
|
});
|
|
1929
1928
|
},
|
|
@@ -1947,7 +1946,7 @@ class Da {
|
|
|
1947
1946
|
return new J(
|
|
1948
1947
|
{
|
|
1949
1948
|
id: A,
|
|
1950
|
-
type:
|
|
1949
|
+
type: H.Frame,
|
|
1951
1950
|
x: e.left,
|
|
1952
1951
|
y: e.top,
|
|
1953
1952
|
width: e.width,
|
|
@@ -1996,28 +1995,28 @@ class Da {
|
|
|
1996
1995
|
const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
|
|
1997
1996
|
if (!i)
|
|
1998
1997
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1999
|
-
const
|
|
1998
|
+
const r = await Promise.all(
|
|
2000
1999
|
A.data.regions.map((d) => this.frameSourceSvg(e, d))
|
|
2001
2000
|
);
|
|
2002
2001
|
n && n(!0);
|
|
2003
|
-
const
|
|
2002
|
+
const o = await Promise.all(
|
|
2004
2003
|
A.data.regions.map(async (d, E) => {
|
|
2005
|
-
const
|
|
2004
|
+
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
2005
|
id: k(),
|
|
2007
2006
|
src: w.src,
|
|
2008
|
-
x: (
|
|
2009
|
-
y: (
|
|
2007
|
+
x: (h == null ? void 0 : h.x) || 0,
|
|
2008
|
+
y: (h == null ? void 0 : h.y) || 0,
|
|
2010
2009
|
width: w.width,
|
|
2011
2010
|
height: w.height,
|
|
2012
|
-
scaleX: (
|
|
2013
|
-
scaleY: (
|
|
2011
|
+
scaleX: (h == null ? void 0 : h.zoom) || 1,
|
|
2012
|
+
scaleY: (h == null ? void 0 : h.zoom) || 1,
|
|
2014
2013
|
rotation: 0
|
|
2015
|
-
} : void 0,
|
|
2016
|
-
if (!
|
|
2017
|
-
throw new
|
|
2014
|
+
} : void 0, f = k(), D = a.getLayouts().find((m) => m.panelId === d.panelId);
|
|
2015
|
+
if (!D)
|
|
2016
|
+
throw new L(d);
|
|
2018
2017
|
return {
|
|
2019
|
-
command: this.getCreateElementCommand(
|
|
2020
|
-
frameData:
|
|
2018
|
+
command: this.getCreateElementCommand(f, d, D, {
|
|
2019
|
+
frameData: C,
|
|
2021
2020
|
pattern: u,
|
|
2022
2021
|
disablePlaceholder: A.data.disablePlaceholder,
|
|
2023
2022
|
focalBlur: A.data.focalBlur,
|
|
@@ -2026,23 +2025,23 @@ class Da {
|
|
|
2026
2025
|
stepName: A.stepName
|
|
2027
2026
|
}),
|
|
2028
2027
|
regionEl: {
|
|
2029
|
-
id:
|
|
2028
|
+
id: f,
|
|
2030
2029
|
region: d
|
|
2031
2030
|
},
|
|
2032
2031
|
removeExistingCommands: Q
|
|
2033
2032
|
};
|
|
2034
2033
|
})
|
|
2035
|
-
), c =
|
|
2034
|
+
), c = o.map((d) => d.command), B = o.map((d) => d.removeExistingCommands).flat();
|
|
2036
2035
|
return {
|
|
2037
2036
|
command: new G([...c, ...B]),
|
|
2038
2037
|
followup: async () => {
|
|
2039
2038
|
n && n(!1), await a.setSelectionsAndElements(
|
|
2040
2039
|
A.stepName,
|
|
2041
2040
|
e ? [e] : [],
|
|
2042
|
-
[...
|
|
2041
|
+
[...o.map((d) => d.regionEl)],
|
|
2043
2042
|
async () => {
|
|
2044
2043
|
var d;
|
|
2045
|
-
if (a.updateStorage(A.stepName, { currentFrameSources:
|
|
2044
|
+
if (a.updateStorage(A.stepName, { currentFrameSources: r }), s) {
|
|
2046
2045
|
const E = (d = a.getStepSpecificServices(
|
|
2047
2046
|
A.stepName
|
|
2048
2047
|
)) == null ? void 0 : d.frameService;
|
|
@@ -2097,7 +2096,7 @@ class fa {
|
|
|
2097
2096
|
src: a.src,
|
|
2098
2097
|
svg: a.svg.svg,
|
|
2099
2098
|
cachedObjectURL: a.objectURL,
|
|
2100
|
-
type:
|
|
2099
|
+
type: H.Illustration,
|
|
2101
2100
|
y: e.top,
|
|
2102
2101
|
x: e.left,
|
|
2103
2102
|
rotation: e.rotation,
|
|
@@ -2138,15 +2137,15 @@ class fa {
|
|
|
2138
2137
|
return null;
|
|
2139
2138
|
}
|
|
2140
2139
|
async reload(A, e, t) {
|
|
2141
|
-
var
|
|
2140
|
+
var o;
|
|
2142
2141
|
const a = e.getSerializedStep(
|
|
2143
2142
|
A.stepName,
|
|
2144
2143
|
t.serializableWorkflow.steps
|
|
2145
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2144
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2146
2145
|
if (a != null && a.selectedVariants) {
|
|
2147
2146
|
const c = a.selectedVariants[0].id;
|
|
2148
|
-
if (
|
|
2149
|
-
const B = (
|
|
2147
|
+
if (r && c) {
|
|
2148
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2150
2149
|
if (B) {
|
|
2151
2150
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2152
2151
|
await e.setSelectionsAndElements(
|
|
@@ -2180,13 +2179,13 @@ class fa {
|
|
|
2180
2179
|
const s = {};
|
|
2181
2180
|
for (const [B, l] of n.entries())
|
|
2182
2181
|
s[B] = { browserValue: l, spotColor: (c = s[B]) == null ? void 0 : c.spotColor };
|
|
2183
|
-
const i = ft(A, e, t, s),
|
|
2182
|
+
const i = ft(A, e, t, s), r = await FA(i), o = [];
|
|
2184
2183
|
for (const B of a) {
|
|
2185
2184
|
for (const [l, d] of n.entries())
|
|
2186
|
-
|
|
2187
|
-
|
|
2185
|
+
o.push(new jA(B, l, d));
|
|
2186
|
+
o.push(new Ft(B, i, r));
|
|
2188
2187
|
}
|
|
2189
|
-
return new G(
|
|
2188
|
+
return new G(o);
|
|
2190
2189
|
}
|
|
2191
2190
|
async changeColors(A, e, t, a, n) {
|
|
2192
2191
|
var d, E;
|
|
@@ -2194,36 +2193,36 @@ class fa {
|
|
|
2194
2193
|
return;
|
|
2195
2194
|
const s = MA(
|
|
2196
2195
|
e[0].id,
|
|
2197
|
-
a().map((
|
|
2198
|
-
), i = { ...s.colors },
|
|
2199
|
-
Object.entries(i).forEach(([
|
|
2200
|
-
const Q = { browserValue: w.browserValue },
|
|
2201
|
-
|
|
2196
|
+
a().map((C) => C.layoutState)
|
|
2197
|
+
), i = { ...s.colors }, r = {};
|
|
2198
|
+
Object.entries(i).forEach(([C, w]) => {
|
|
2199
|
+
const Q = { browserValue: w.browserValue }, h = w.spotColor;
|
|
2200
|
+
h && (Q.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), r[C] = Q;
|
|
2202
2201
|
});
|
|
2203
|
-
for (const [
|
|
2204
|
-
i[
|
|
2205
|
-
let
|
|
2202
|
+
for (const [C, w] of n.entries())
|
|
2203
|
+
i[C] = { browserValue: w, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, r[C] = { browserValue: w };
|
|
2204
|
+
let o = Array.from(Object.values(i)).map((C) => C.browserValue);
|
|
2206
2205
|
const c = A.data.colorOption;
|
|
2207
|
-
c && ((E = c.variants) == null || E.forEach((
|
|
2208
|
-
|
|
2206
|
+
c && ((E = c.variants) == null || E.forEach((C) => {
|
|
2207
|
+
o = o.map((w) => {
|
|
2209
2208
|
var Q;
|
|
2210
|
-
return w.toLowerCase() === ((Q =
|
|
2209
|
+
return w.toLowerCase() === ((Q = C.color) == null ? void 0 : Q.toLowerCase()) ? C.name : w;
|
|
2211
2210
|
});
|
|
2212
|
-
})), t.updateMetadata(A.stepName, { colors:
|
|
2211
|
+
})), t.updateMetadata(A.stepName, { colors: o });
|
|
2213
2212
|
const B = /* @__PURE__ */ new Map();
|
|
2214
|
-
if (Object.entries(i).forEach(([
|
|
2215
|
-
B.set(
|
|
2213
|
+
if (Object.entries(i).forEach(([C, w]) => {
|
|
2214
|
+
B.set(C, w.browserValue);
|
|
2216
2215
|
}), !s.svg)
|
|
2217
2216
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
2218
2217
|
const l = await this.changeColorsCommand(
|
|
2219
2218
|
s.svg,
|
|
2220
2219
|
s.width,
|
|
2221
2220
|
s.height,
|
|
2222
|
-
e.map((
|
|
2221
|
+
e.map((C) => C.id),
|
|
2223
2222
|
B
|
|
2224
2223
|
);
|
|
2225
2224
|
t.updateStorage(A.stepName, {
|
|
2226
|
-
colors:
|
|
2225
|
+
colors: r
|
|
2227
2226
|
}), t.getCommandDispatcher()(l);
|
|
2228
2227
|
}
|
|
2229
2228
|
async selectVariant(A, e, t, a, n) {
|
|
@@ -2235,43 +2234,43 @@ class fa {
|
|
|
2235
2234
|
if (!A.data || !A.data.regions)
|
|
2236
2235
|
throw new SA(A, "Missing regions.");
|
|
2237
2236
|
a(!0);
|
|
2238
|
-
const s = t.map((
|
|
2237
|
+
const s = t.map((h) => new $(h.id));
|
|
2239
2238
|
n.setMandatoryFulfilled(A.stepName, !1);
|
|
2240
2239
|
const i = e.asset;
|
|
2241
2240
|
if (!i)
|
|
2242
2241
|
throw new _(e);
|
|
2243
|
-
const
|
|
2244
|
-
if (!
|
|
2242
|
+
const r = i.fileLink;
|
|
2243
|
+
if (!r)
|
|
2245
2244
|
throw new lA(i);
|
|
2246
|
-
const
|
|
2247
|
-
const u = n.getLayouts().find((p) => p.panelId ===
|
|
2245
|
+
const o = await ye(await this.getIllustrationBody(r)), c = await FA(o.svg), B = (h) => {
|
|
2246
|
+
const u = n.getLayouts().find((p) => p.panelId === h.panelId);
|
|
2248
2247
|
if (!u)
|
|
2249
|
-
throw new
|
|
2250
|
-
const
|
|
2248
|
+
throw new L(h);
|
|
2249
|
+
const f = k();
|
|
2251
2250
|
return {
|
|
2252
|
-
regionElement: { id:
|
|
2253
|
-
command: this.getCreateElementCommand(
|
|
2251
|
+
regionElement: { id: f, region: h },
|
|
2252
|
+
command: this.getCreateElementCommand(f, h, u, {
|
|
2254
2253
|
stepName: A.stepName,
|
|
2255
|
-
src:
|
|
2254
|
+
src: r,
|
|
2256
2255
|
objectURL: c,
|
|
2257
|
-
svg:
|
|
2256
|
+
svg: o
|
|
2258
2257
|
})
|
|
2259
2258
|
};
|
|
2260
|
-
}, l = A.data.regions.map(B), E = [...l.map((
|
|
2261
|
-
let
|
|
2259
|
+
}, l = A.data.regions.map(B), E = [...l.map((h) => h.command), ...s];
|
|
2260
|
+
let C = Array.from(Object.values(o.colors)).map((h) => h.browserValue);
|
|
2262
2261
|
const w = A.data.colorOption;
|
|
2263
|
-
return w && ((Q = w.variants) == null || Q.forEach((
|
|
2264
|
-
|
|
2265
|
-
var
|
|
2266
|
-
return u.toLowerCase() === ((
|
|
2262
|
+
return w && ((Q = w.variants) == null || Q.forEach((h) => {
|
|
2263
|
+
C = C.map((u) => {
|
|
2264
|
+
var f;
|
|
2265
|
+
return u.toLowerCase() === ((f = h.color) == null ? void 0 : f.toLowerCase()) ? h.name : u;
|
|
2267
2266
|
});
|
|
2268
|
-
})), n.updateMetadata(A.stepName, { colors:
|
|
2267
|
+
})), n.updateMetadata(A.stepName, { colors: C }), {
|
|
2269
2268
|
command: new G(E),
|
|
2270
2269
|
followup: async () => {
|
|
2271
2270
|
await n.setSelectionsAndElements(
|
|
2272
2271
|
A.stepName,
|
|
2273
2272
|
[e],
|
|
2274
|
-
l.map((
|
|
2273
|
+
l.map((h) => h.regionElement),
|
|
2275
2274
|
async () => {
|
|
2276
2275
|
n.setMandatoryFulfilled(A.stepName, !0), a(!1);
|
|
2277
2276
|
}
|
|
@@ -2297,17 +2296,17 @@ class Fa {
|
|
|
2297
2296
|
return null;
|
|
2298
2297
|
}
|
|
2299
2298
|
async reload(A, e, t) {
|
|
2300
|
-
var
|
|
2299
|
+
var o;
|
|
2301
2300
|
const a = e.getSerializedStep(
|
|
2302
2301
|
A.stepName,
|
|
2303
2302
|
t.serializableWorkflow.steps
|
|
2304
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2305
|
-
if (!
|
|
2303
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2304
|
+
if (!r)
|
|
2306
2305
|
throw new YA(A);
|
|
2307
2306
|
if (a != null && a.selectedVariants) {
|
|
2308
2307
|
const c = a.selectedVariants[0].id;
|
|
2309
2308
|
if (c) {
|
|
2310
|
-
const B = (
|
|
2309
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2311
2310
|
if (B) {
|
|
2312
2311
|
const l = B.material, d = i.map((E) => ({ id: E.id, region: E.stepRegion }));
|
|
2313
2312
|
await e.setSelectionsAndElements(
|
|
@@ -2317,8 +2316,8 @@ class Fa {
|
|
|
2317
2316
|
async () => {
|
|
2318
2317
|
const E = e.getModelContainer();
|
|
2319
2318
|
if (E) {
|
|
2320
|
-
const
|
|
2321
|
-
Promise.all(
|
|
2319
|
+
const C = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, r.id || "", l || {}));
|
|
2320
|
+
Promise.all(C).then(
|
|
2322
2321
|
() => e.setMandatoryFulfilled(A.stepName, !0)
|
|
2323
2322
|
);
|
|
2324
2323
|
}
|
|
@@ -2371,15 +2370,15 @@ class Ma {
|
|
|
2371
2370
|
return null;
|
|
2372
2371
|
}
|
|
2373
2372
|
async reload(A, e, t) {
|
|
2374
|
-
var
|
|
2373
|
+
var o;
|
|
2375
2374
|
const a = e.getSerializedStep(
|
|
2376
2375
|
A.stepName,
|
|
2377
2376
|
t.serializableWorkflow.steps
|
|
2378
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2377
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2379
2378
|
if (a != null && a.selectedVariants) {
|
|
2380
2379
|
const c = a.selectedVariants[0].id;
|
|
2381
|
-
if (
|
|
2382
|
-
const B = (
|
|
2380
|
+
if (r && c) {
|
|
2381
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2383
2382
|
if (B) {
|
|
2384
2383
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2385
2384
|
await e.setSelectionsAndElements(
|
|
@@ -2390,13 +2389,13 @@ class Ma {
|
|
|
2390
2389
|
var E;
|
|
2391
2390
|
const d = e.getModelContainer();
|
|
2392
2391
|
if (d && A.option) {
|
|
2393
|
-
const
|
|
2394
|
-
if (!
|
|
2392
|
+
const C = (E = B.asset) == null ? void 0 : E.fileLink;
|
|
2393
|
+
if (!C)
|
|
2395
2394
|
throw new _(B);
|
|
2396
2395
|
await d.applyModelVariant(
|
|
2397
2396
|
A.stepName || "",
|
|
2398
2397
|
{
|
|
2399
|
-
model:
|
|
2398
|
+
model: C,
|
|
2400
2399
|
contextService: e.getLayoutPreviewService()
|
|
2401
2400
|
},
|
|
2402
2401
|
A.data.replaceProductModel || !1
|
|
@@ -2454,10 +2453,10 @@ class ya {
|
|
|
2454
2453
|
const a = e.getSerializedStep(
|
|
2455
2454
|
A.stepName,
|
|
2456
2455
|
t.serializableWorkflow.steps
|
|
2457
|
-
),
|
|
2458
|
-
await e.setSelectionsAndElements(A.stepName, [],
|
|
2459
|
-
var
|
|
2460
|
-
e.updateStorage(A.stepName, { text: (
|
|
2456
|
+
), r = Object.values(t.layouts).map((o) => o.elements).flat().filter((o) => o.stepName === A.stepName).map((o) => ({ id: o.id, region: o.stepRegion }));
|
|
2457
|
+
await e.setSelectionsAndElements(A.stepName, [], r, async () => {
|
|
2458
|
+
var o, c;
|
|
2459
|
+
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
2460
|
});
|
|
2462
2461
|
}
|
|
2463
2462
|
async changeText(A, e, t, a, n) {
|
|
@@ -2469,14 +2468,14 @@ class ya {
|
|
|
2469
2468
|
const s = t.getRegionElements(A.stepName), i = (c = t.getStepSpecificServices(A.stepName)) == null ? void 0 : c.module;
|
|
2470
2469
|
if (!i)
|
|
2471
2470
|
return console.error("Missing module."), null;
|
|
2472
|
-
const
|
|
2473
|
-
if (!this.validateInput(A, e,
|
|
2471
|
+
const r = t.getProfanities();
|
|
2472
|
+
if (!this.validateInput(A, e, r, n))
|
|
2474
2473
|
return t.setMandatoryFulfilled(A.stepName, !1), console.error(a), null;
|
|
2475
2474
|
if (t.setMandatoryFulfilled(A.stepName, e !== ""), !A.data || !A.data.regions || A.data.regions.length <= 0)
|
|
2476
2475
|
return console.error("Missing configuration."), null;
|
|
2477
2476
|
t.updateStorage(A.stepName, { text: e });
|
|
2478
|
-
const
|
|
2479
|
-
const E = d || k(), w = t.getLayouts().find((
|
|
2477
|
+
const o = (B, l, d) => {
|
|
2478
|
+
const E = d || k(), w = t.getLayouts().find((h) => h.panelId === l.panelId);
|
|
2480
2479
|
if (!w)
|
|
2481
2480
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2482
2481
|
const Q = [];
|
|
@@ -2488,7 +2487,7 @@ class ya {
|
|
|
2488
2487
|
colors: {},
|
|
2489
2488
|
id: E,
|
|
2490
2489
|
svg: B,
|
|
2491
|
-
type:
|
|
2490
|
+
type: H.Illustration,
|
|
2492
2491
|
y: l.top,
|
|
2493
2492
|
x: l.left,
|
|
2494
2493
|
rotation: l.rotation,
|
|
@@ -2511,7 +2510,7 @@ class ya {
|
|
|
2511
2510
|
if (!d.region)
|
|
2512
2511
|
return null;
|
|
2513
2512
|
const E = i.svgPrint(e, d.region);
|
|
2514
|
-
return
|
|
2513
|
+
return o(E, d.region, d.id);
|
|
2515
2514
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
2516
2515
|
return {
|
|
2517
2516
|
command: new G(l),
|
|
@@ -2520,7 +2519,7 @@ class ya {
|
|
|
2520
2519
|
};
|
|
2521
2520
|
} else {
|
|
2522
2521
|
const B = A.data.regions.map(
|
|
2523
|
-
(d) =>
|
|
2522
|
+
(d) => o(i.svgPrint(e, d), d)
|
|
2524
2523
|
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
2525
2524
|
return {
|
|
2526
2525
|
command: new G(l),
|
|
@@ -2546,8 +2545,8 @@ class ya {
|
|
|
2546
2545
|
const n = XA(e.toLowerCase());
|
|
2547
2546
|
for (const s of n)
|
|
2548
2547
|
for (const i in t) {
|
|
2549
|
-
const
|
|
2550
|
-
if (s ===
|
|
2548
|
+
const r = t[i].toLowerCase().replace(/\s/g, "");
|
|
2549
|
+
if (s === r)
|
|
2551
2550
|
return a("Blocked profanity."), !1;
|
|
2552
2551
|
}
|
|
2553
2552
|
return a(""), !0;
|
|
@@ -2567,15 +2566,15 @@ class Sa {
|
|
|
2567
2566
|
return e.markStepsAsInitialised([A.stepName]), null;
|
|
2568
2567
|
}
|
|
2569
2568
|
async reload(A, e, t) {
|
|
2570
|
-
var
|
|
2569
|
+
var o;
|
|
2571
2570
|
const a = e.getSerializedStep(
|
|
2572
2571
|
A.stepName,
|
|
2573
2572
|
t.serializableWorkflow.steps
|
|
2574
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2573
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2575
2574
|
if (a != null && a.selectedVariants) {
|
|
2576
2575
|
const c = a.selectedVariants[0].id;
|
|
2577
|
-
if (
|
|
2578
|
-
const B = (
|
|
2576
|
+
if (r && c) {
|
|
2577
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2579
2578
|
if (B) {
|
|
2580
2579
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2581
2580
|
await e.setSelectionsAndElements(
|
|
@@ -2602,10 +2601,10 @@ class Sa {
|
|
|
2602
2601
|
if (!s)
|
|
2603
2602
|
return console.error("No URL for picture!"), null;
|
|
2604
2603
|
a(!0), t.setMandatoryFulfilled(A.stepName, !1);
|
|
2605
|
-
const
|
|
2606
|
-
const d = t.getLayouts().find((
|
|
2604
|
+
const r = t.getRegionElements(A.stepName).map((B) => new $(B.id)), o = (B) => {
|
|
2605
|
+
const d = t.getLayouts().find((C) => C.panelId === B.panelId);
|
|
2607
2606
|
if (!d)
|
|
2608
|
-
throw new
|
|
2607
|
+
throw new L(B);
|
|
2609
2608
|
const E = k();
|
|
2610
2609
|
return {
|
|
2611
2610
|
regionElement: { id: E, region: B },
|
|
@@ -2615,7 +2614,7 @@ class Sa {
|
|
|
2615
2614
|
stepRegion: B,
|
|
2616
2615
|
id: E,
|
|
2617
2616
|
src: s,
|
|
2618
|
-
type:
|
|
2617
|
+
type: H.Image,
|
|
2619
2618
|
y: B.top,
|
|
2620
2619
|
x: B.left,
|
|
2621
2620
|
rotation: B.rotation,
|
|
@@ -2629,9 +2628,9 @@ class Sa {
|
|
|
2629
2628
|
d
|
|
2630
2629
|
)
|
|
2631
2630
|
};
|
|
2632
|
-
}, c = A.data.regions.map(
|
|
2631
|
+
}, c = A.data.regions.map(o);
|
|
2633
2632
|
return {
|
|
2634
|
-
command: new G([...
|
|
2633
|
+
command: new G([...r, ...c.map((B) => B.command)]),
|
|
2635
2634
|
followup: async () => {
|
|
2636
2635
|
await t.setSelectionsAndElements(
|
|
2637
2636
|
A.stepName,
|
|
@@ -2656,9 +2655,9 @@ class xa {
|
|
|
2656
2655
|
else {
|
|
2657
2656
|
const n = a.variants;
|
|
2658
2657
|
if (z.getDefaultVariant(a)) {
|
|
2659
|
-
const i = n == null ? void 0 : n.find((
|
|
2660
|
-
var
|
|
2661
|
-
return
|
|
2658
|
+
const i = n == null ? void 0 : n.find((r) => {
|
|
2659
|
+
var o;
|
|
2660
|
+
return r.id === ((o = a.defaultVariant) == null ? void 0 : o.id);
|
|
2662
2661
|
});
|
|
2663
2662
|
return this.selectVariantLambda(A, (i == null ? void 0 : i.id) || "", e);
|
|
2664
2663
|
}
|
|
@@ -2674,8 +2673,8 @@ class xa {
|
|
|
2674
2673
|
if (a != null && a.selectedVariants) {
|
|
2675
2674
|
const i = a.selectedVariants[0].id;
|
|
2676
2675
|
if (n && i) {
|
|
2677
|
-
const
|
|
2678
|
-
|
|
2676
|
+
const r = (s = n.variants) == null ? void 0 : s.find((o) => o.id === i);
|
|
2677
|
+
r && await e.setSelectionsAndElements(A.stepName, [r], []);
|
|
2679
2678
|
}
|
|
2680
2679
|
}
|
|
2681
2680
|
}
|
|
@@ -2721,9 +2720,9 @@ class Na {
|
|
|
2721
2720
|
}
|
|
2722
2721
|
setCustomColor(A, e, t) {
|
|
2723
2722
|
const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
|
|
2724
|
-
const
|
|
2725
|
-
if (!a.find((c) => c.panelId === (
|
|
2726
|
-
throw new
|
|
2723
|
+
const r = i.region;
|
|
2724
|
+
if (!a.find((c) => c.panelId === (r == null ? void 0 : r.panelId)))
|
|
2725
|
+
throw new L(r);
|
|
2727
2726
|
return new jA(i.id, this.shapeFillId, A);
|
|
2728
2727
|
}).filter((i) => !!i);
|
|
2729
2728
|
t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
|
|
@@ -2754,15 +2753,15 @@ class Na {
|
|
|
2754
2753
|
n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2755
2754
|
}
|
|
2756
2755
|
async reload(A, e, t) {
|
|
2757
|
-
var
|
|
2756
|
+
var o;
|
|
2758
2757
|
const a = e.getSerializedStep(
|
|
2759
2758
|
A.stepName,
|
|
2760
2759
|
t.serializableWorkflow.steps
|
|
2761
|
-
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName),
|
|
2760
|
+
), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
|
|
2762
2761
|
if (a != null && a.selectedVariants) {
|
|
2763
2762
|
const c = a.selectedVariants[0].id;
|
|
2764
|
-
if (
|
|
2765
|
-
const B = (
|
|
2763
|
+
if (r && c) {
|
|
2764
|
+
const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
|
|
2766
2765
|
if (B) {
|
|
2767
2766
|
const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2768
2767
|
await e.setSelectionsAndElements(
|
|
@@ -2781,23 +2780,23 @@ class Na {
|
|
|
2781
2780
|
}
|
|
2782
2781
|
}
|
|
2783
2782
|
async selectVariantCommand(A, e, t, a) {
|
|
2784
|
-
var
|
|
2785
|
-
const n = a.getLayouts(), s = (
|
|
2786
|
-
var
|
|
2787
|
-
if (((
|
|
2783
|
+
var r;
|
|
2784
|
+
const n = a.getLayouts(), s = (r = a.getStepStorage(A.stepName)) == null ? void 0 : r.colour, i = () => {
|
|
2785
|
+
var o, c;
|
|
2786
|
+
if (((o = e.variant) == null ? void 0 : o.color) === "#custom")
|
|
2788
2787
|
return s || "#FFFFFF";
|
|
2789
2788
|
if ((c = e.variant) != null && c.color)
|
|
2790
2789
|
return e.variant.color;
|
|
2791
2790
|
throw new Error("Failed to resolve color for shape step.");
|
|
2792
2791
|
};
|
|
2793
2792
|
if (t.length > 0) {
|
|
2794
|
-
const
|
|
2793
|
+
const o = (B) => {
|
|
2795
2794
|
const l = B.region;
|
|
2796
|
-
if (!n.find((
|
|
2797
|
-
throw new
|
|
2795
|
+
if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
|
|
2796
|
+
throw new L(l);
|
|
2798
2797
|
const E = i();
|
|
2799
2798
|
return new jA(B.id, this.shapeFillId, E);
|
|
2800
|
-
}, c = t.map(
|
|
2799
|
+
}, c = t.map(o).filter((B) => !!B);
|
|
2801
2800
|
return {
|
|
2802
2801
|
command: new G(c),
|
|
2803
2802
|
followup: async () => {
|
|
@@ -2809,11 +2808,11 @@ class Na {
|
|
|
2809
2808
|
}
|
|
2810
2809
|
};
|
|
2811
2810
|
} else {
|
|
2812
|
-
const
|
|
2811
|
+
const o = (d) => {
|
|
2813
2812
|
const E = n.find((u) => u.panelId === d.panelId);
|
|
2814
2813
|
if (!E)
|
|
2815
|
-
throw new
|
|
2816
|
-
const
|
|
2814
|
+
throw new L(d);
|
|
2815
|
+
const C = i(), w = `
|
|
2817
2816
|
<svg
|
|
2818
2817
|
xmlns="http://www.w3.org/2000/svg"
|
|
2819
2818
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -2830,23 +2829,23 @@ class Na {
|
|
|
2830
2829
|
width="1"
|
|
2831
2830
|
height="1"
|
|
2832
2831
|
class="${this.shapeFillId}"
|
|
2833
|
-
fill="${
|
|
2832
|
+
fill="${C}"
|
|
2834
2833
|
/>
|
|
2835
2834
|
</svg>
|
|
2836
2835
|
`, Q = {};
|
|
2837
|
-
Q[this.shapeFillId] = { browserValue:
|
|
2838
|
-
const
|
|
2836
|
+
Q[this.shapeFillId] = { browserValue: C };
|
|
2837
|
+
const h = k();
|
|
2839
2838
|
return {
|
|
2840
|
-
id:
|
|
2839
|
+
id: h,
|
|
2841
2840
|
region: d,
|
|
2842
2841
|
command: new J(
|
|
2843
2842
|
{
|
|
2844
2843
|
stepRegion: d,
|
|
2845
2844
|
stepName: A.stepName,
|
|
2846
2845
|
colors: Q,
|
|
2847
|
-
id:
|
|
2846
|
+
id: h,
|
|
2848
2847
|
svg: w,
|
|
2849
|
-
type:
|
|
2848
|
+
type: H.Illustration,
|
|
2850
2849
|
y: d.top,
|
|
2851
2850
|
x: d.left,
|
|
2852
2851
|
rotation: d.rotation,
|
|
@@ -2860,7 +2859,7 @@ class Na {
|
|
|
2860
2859
|
E
|
|
2861
2860
|
)
|
|
2862
2861
|
};
|
|
2863
|
-
}, c = A.data.regions.map(
|
|
2862
|
+
}, 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
2863
|
return {
|
|
2865
2864
|
command: new G(B),
|
|
2866
2865
|
followup: async () => {
|
|
@@ -2922,9 +2921,9 @@ class Ua {
|
|
|
2922
2921
|
);
|
|
2923
2922
|
const a = [], n = e ? Mt(e.assetUrl) : void 0;
|
|
2924
2923
|
if (n) {
|
|
2925
|
-
const s = t.split("").filter((
|
|
2926
|
-
for (let
|
|
2927
|
-
i[
|
|
2924
|
+
const s = t.split("").filter((r) => !Ha.includes(r)).join(""), i = s.split("").map((r) => n.getFont().charToGlyph(r));
|
|
2925
|
+
for (let r = 0; r < i.length; r++)
|
|
2926
|
+
i[r].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(r)));
|
|
2928
2927
|
}
|
|
2929
2928
|
for (let s = 0; s < a.length; s++)
|
|
2930
2929
|
t = t.replaceAll(a[s], "");
|
|
@@ -2933,10 +2932,10 @@ class Ua {
|
|
|
2933
2932
|
const a = [];
|
|
2934
2933
|
e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
2935
2934
|
const n = t.getProfanities(), s = XA(A.toLowerCase());
|
|
2936
|
-
for (const
|
|
2937
|
-
for (const
|
|
2938
|
-
const c = n[
|
|
2939
|
-
if (
|
|
2935
|
+
for (const r of s)
|
|
2936
|
+
for (const o in n) {
|
|
2937
|
+
const c = n[o].toLowerCase().replace(/\s/g, "");
|
|
2938
|
+
if (r === c) {
|
|
2940
2939
|
a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
|
|
2941
2940
|
break;
|
|
2942
2941
|
}
|
|
@@ -2953,7 +2952,7 @@ class Ua {
|
|
|
2953
2952
|
if (t)
|
|
2954
2953
|
await this.reload(A, e, t);
|
|
2955
2954
|
else {
|
|
2956
|
-
const
|
|
2955
|
+
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
2956
|
src: c.src,
|
|
2958
2957
|
height: c.height,
|
|
2959
2958
|
width: c.width,
|
|
@@ -2966,7 +2965,7 @@ class Ua {
|
|
|
2966
2965
|
}), e.updateMetadata(A.stepName, {
|
|
2967
2966
|
text: A.data.defaultText || "",
|
|
2968
2967
|
color: ((i = await this.getDefaultColorVariant(A.data)) == null ? void 0 : i.name) || await this.getDefaultColor(A.data),
|
|
2969
|
-
fillImage:
|
|
2968
|
+
fillImage: r == null ? void 0 : r.name
|
|
2970
2969
|
});
|
|
2971
2970
|
const l = z.getDefaultVariant(a);
|
|
2972
2971
|
if (l)
|
|
@@ -3010,7 +3009,7 @@ class Ua {
|
|
|
3010
3009
|
return [];
|
|
3011
3010
|
}
|
|
3012
3011
|
async changeFillColor(A, e, t, a) {
|
|
3013
|
-
var
|
|
3012
|
+
var r;
|
|
3014
3013
|
if (!A.data || !A.data.regions)
|
|
3015
3014
|
return;
|
|
3016
3015
|
const n = a.getCommandDispatcher();
|
|
@@ -3018,14 +3017,14 @@ class Ua {
|
|
|
3018
3017
|
const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
|
|
3019
3018
|
s ? a.updateStorage(A.stepName, {
|
|
3020
3019
|
color: e.fill,
|
|
3021
|
-
colorProfileAssetKey: (
|
|
3020
|
+
colorProfileAssetKey: (r = s.colorProfile) == null ? void 0 : r.key
|
|
3022
3021
|
}) : a.updateStorage(A.stepName, {
|
|
3023
3022
|
color: e.fill
|
|
3024
3023
|
});
|
|
3025
|
-
for (const
|
|
3024
|
+
for (const o of t) {
|
|
3026
3025
|
if (!e.fill)
|
|
3027
3026
|
throw new Error("Fill not set on new color selection!");
|
|
3028
|
-
const c = new yt(
|
|
3027
|
+
const c = new yt(o.id, e.fill, i);
|
|
3029
3028
|
n(c);
|
|
3030
3029
|
}
|
|
3031
3030
|
}
|
|
@@ -3052,18 +3051,18 @@ class Ua {
|
|
|
3052
3051
|
return Promise.resolve([]);
|
|
3053
3052
|
}
|
|
3054
3053
|
async changeFillImage(A, e, t, a) {
|
|
3055
|
-
var i,
|
|
3054
|
+
var i, r;
|
|
3056
3055
|
if (!A.data || !A.data.regions)
|
|
3057
3056
|
return;
|
|
3058
|
-
const n = a.getCommandDispatcher(), s = (
|
|
3057
|
+
const n = a.getCommandDispatcher(), s = (r = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : r.find((o) => {
|
|
3059
3058
|
var c;
|
|
3060
|
-
return ((c =
|
|
3059
|
+
return ((c = o.asset) == null ? void 0 : c.fileLink) === e.src;
|
|
3061
3060
|
});
|
|
3062
3061
|
a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
|
|
3063
3062
|
fillImage: e
|
|
3064
3063
|
});
|
|
3065
|
-
for (const
|
|
3066
|
-
const c = new
|
|
3064
|
+
for (const o of t) {
|
|
3065
|
+
const c = new JA(o.id, e);
|
|
3067
3066
|
n(c);
|
|
3068
3067
|
}
|
|
3069
3068
|
}
|
|
@@ -3082,27 +3081,27 @@ class Ua {
|
|
|
3082
3081
|
};
|
|
3083
3082
|
if (i.errors.length > 0)
|
|
3084
3083
|
return i.helperText = i.errors[0].localizationKey, i;
|
|
3085
|
-
const
|
|
3086
|
-
i.helperText = `${
|
|
3087
|
-
const
|
|
3084
|
+
const r = (t.data.maxLength - s.length).toString();
|
|
3085
|
+
i.helperText = `${r} characters remaining`;
|
|
3086
|
+
const o = a.getTransaction().bulk && t.data.varyText || !1, c = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
|
|
3088
3087
|
for (const d of e) {
|
|
3089
3088
|
if (!d.fontData)
|
|
3090
3089
|
throw new v("Failed to resolve font data for text.");
|
|
3091
|
-
const [E,
|
|
3090
|
+
const [E, C] = IA(
|
|
3092
3091
|
d.fontSize,
|
|
3093
3092
|
d.fontData,
|
|
3094
3093
|
{ left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
|
|
3095
3094
|
[s],
|
|
3096
3095
|
{ size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
|
|
3097
3096
|
);
|
|
3098
|
-
B.set(d.id, E), l.set(d.id,
|
|
3099
|
-
const w = t.data.curved ? s : (
|
|
3097
|
+
B.set(d.id, E), l.set(d.id, C);
|
|
3098
|
+
const w = t.data.curved ? s : (C || []).join(`
|
|
3100
3099
|
`);
|
|
3101
|
-
c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w,
|
|
3100
|
+
c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, o));
|
|
3102
3101
|
}
|
|
3103
3102
|
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
3103
|
text: s
|
|
3105
|
-
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying =
|
|
3104
|
+
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying = o, i);
|
|
3106
3105
|
}
|
|
3107
3106
|
async selectVariant(A, e, t, a, n) {
|
|
3108
3107
|
const s = await this.selectVariantCommand(
|
|
@@ -3129,34 +3128,34 @@ class Ua {
|
|
|
3129
3128
|
}
|
|
3130
3129
|
}
|
|
3131
3130
|
async reload(A, e, t) {
|
|
3132
|
-
var
|
|
3131
|
+
var o, c, B;
|
|
3133
3132
|
const a = e.getSerializedStep(
|
|
3134
3133
|
A.stepName,
|
|
3135
3134
|
t.serializableWorkflow.steps
|
|
3136
|
-
), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName),
|
|
3135
|
+
), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), r = A.option;
|
|
3137
3136
|
if (a != null && a.selectedVariants) {
|
|
3138
3137
|
const l = a.selectedVariants[0].id;
|
|
3139
|
-
if (
|
|
3140
|
-
const d = (
|
|
3138
|
+
if (r && l) {
|
|
3139
|
+
const d = (o = r.variants) == null ? void 0 : o.find((E) => E.id === l);
|
|
3141
3140
|
if (d) {
|
|
3142
|
-
const E = await this.fontDataFromVariant(d),
|
|
3141
|
+
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
3142
|
await e.setSelectionsAndElements(
|
|
3144
3143
|
A.stepName,
|
|
3145
3144
|
[d],
|
|
3146
|
-
|
|
3145
|
+
C,
|
|
3147
3146
|
async () => {
|
|
3148
3147
|
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()(
|
|
3148
|
+
const u = i.map((p) => new we(p.id, E)), f = new G(u);
|
|
3149
|
+
e.getCommandDispatcher()(f), e.setMandatoryFulfilled(A.stepName, !0);
|
|
3151
3150
|
}
|
|
3152
3151
|
);
|
|
3153
|
-
const { command:
|
|
3152
|
+
const { command: h } = K.updateInputText(
|
|
3154
3153
|
Q || "",
|
|
3155
3154
|
i,
|
|
3156
3155
|
A,
|
|
3157
3156
|
e
|
|
3158
3157
|
);
|
|
3159
|
-
|
|
3158
|
+
h && e.getCommandDispatcher()(h);
|
|
3160
3159
|
}
|
|
3161
3160
|
}
|
|
3162
3161
|
}
|
|
@@ -3191,14 +3190,14 @@ class Ua {
|
|
|
3191
3190
|
name: a.names.fullName.en
|
|
3192
3191
|
};
|
|
3193
3192
|
}
|
|
3194
|
-
async selectVariantCommand(A, e, t, a, n, s, i,
|
|
3193
|
+
async selectVariantCommand(A, e, t, a, n, s, i, r) {
|
|
3195
3194
|
var B;
|
|
3196
|
-
const
|
|
3195
|
+
const o = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
|
|
3197
3196
|
if (a.length > 0) {
|
|
3198
|
-
const l = a.map((
|
|
3199
|
-
if (
|
|
3200
|
-
const
|
|
3201
|
-
l.push(...
|
|
3197
|
+
const l = a.map((C) => new we(C.id, c));
|
|
3198
|
+
if (r) {
|
|
3199
|
+
const C = a.map((w) => new JA(w.id, r));
|
|
3200
|
+
l.push(...C);
|
|
3202
3201
|
}
|
|
3203
3202
|
const d = await this.changeInputTextWithRegion(
|
|
3204
3203
|
A,
|
|
@@ -3214,7 +3213,7 @@ class Ua {
|
|
|
3214
3213
|
return d && l.push(d), {
|
|
3215
3214
|
command: new G(l),
|
|
3216
3215
|
followup: async () => {
|
|
3217
|
-
n.markUpdateCompleted(
|
|
3216
|
+
n.markUpdateCompleted(o), await n.setSelectionsAndElements(A.stepName, [e], a);
|
|
3218
3217
|
}
|
|
3219
3218
|
};
|
|
3220
3219
|
} else {
|
|
@@ -3236,16 +3235,16 @@ class Ua {
|
|
|
3236
3235
|
s,
|
|
3237
3236
|
i
|
|
3238
3237
|
), E = l.flatMap((w) => w.commands);
|
|
3239
|
-
if (
|
|
3238
|
+
if (r) {
|
|
3240
3239
|
const w = l.map(
|
|
3241
|
-
(Q) => new
|
|
3240
|
+
(Q) => new JA(Q.regionElement.id, r)
|
|
3242
3241
|
);
|
|
3243
3242
|
E.push(...w);
|
|
3244
3243
|
}
|
|
3245
3244
|
return d && E.push(d), {
|
|
3246
3245
|
command: new G(E),
|
|
3247
3246
|
followup: async () => {
|
|
3248
|
-
n.markUpdateCompleted(
|
|
3247
|
+
n.markUpdateCompleted(o);
|
|
3249
3248
|
}
|
|
3250
3249
|
};
|
|
3251
3250
|
}
|
|
@@ -3261,37 +3260,37 @@ class Ua {
|
|
|
3261
3260
|
async createTextboxRegions(A, e, t, a, n, s) {
|
|
3262
3261
|
if (!t || !t.regions)
|
|
3263
3262
|
throw new Error("Step data not supplied");
|
|
3264
|
-
const i = s.getTransaction().bulk && t.varyText || !1,
|
|
3263
|
+
const i = s.getTransaction().bulk && t.varyText || !1, r = i ? "" : n.text || t.defaultText || "", o = this.getProcessedInput(r, t, !1), c = async (l) => {
|
|
3265
3264
|
var w;
|
|
3266
|
-
const E = s.getLayouts().find((Q) => Q.panelId === l.panelId),
|
|
3265
|
+
const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), C = k();
|
|
3267
3266
|
try {
|
|
3268
3267
|
if (!E)
|
|
3269
3268
|
throw new PA("Failed to find layout for region: " + l.panelId);
|
|
3270
3269
|
const Q = t.colorOption;
|
|
3271
|
-
let
|
|
3270
|
+
let h;
|
|
3272
3271
|
if (Q && Q.variants) {
|
|
3273
|
-
const
|
|
3272
|
+
const b = Q.variants.find((V) => {
|
|
3274
3273
|
var W;
|
|
3275
3274
|
return V.id === ((W = Q.defaultVariant) == null ? void 0 : W.id);
|
|
3276
3275
|
}) || Q.variants[0];
|
|
3277
|
-
|
|
3276
|
+
h = this.createTextFillSpotColor(Q, b), s.updateStorage(A, {
|
|
3278
3277
|
colorProfileAssetKey: (w = Q.colorProfile) == null ? void 0 : w.key
|
|
3279
3278
|
});
|
|
3280
3279
|
}
|
|
3281
|
-
const u = await this.getDefaultColor(t),
|
|
3280
|
+
const u = await this.getDefaultColor(t), f = u || "#000000", p = {
|
|
3282
3281
|
stepRegion: l,
|
|
3283
3282
|
stepName: A,
|
|
3284
3283
|
align: this.textAlign(t),
|
|
3285
|
-
fill: n.color ? n.color :
|
|
3284
|
+
fill: n.color ? n.color : f,
|
|
3286
3285
|
fontSize: t.size || OA,
|
|
3287
3286
|
fontData: a,
|
|
3288
|
-
id:
|
|
3287
|
+
id: C,
|
|
3289
3288
|
layer: l.layer,
|
|
3290
3289
|
layerIndex: l.layerIndex,
|
|
3291
3290
|
rotation: l.rotation,
|
|
3292
|
-
text:
|
|
3293
|
-
input:
|
|
3294
|
-
type:
|
|
3291
|
+
text: o,
|
|
3292
|
+
input: r,
|
|
3293
|
+
type: H.Textbox,
|
|
3295
3294
|
vertical: t.vertical,
|
|
3296
3295
|
x: l.left,
|
|
3297
3296
|
y: l.top,
|
|
@@ -3301,8 +3300,8 @@ class Ua {
|
|
|
3301
3300
|
verticalAlign: t.verticalAlign || "middle",
|
|
3302
3301
|
curved: t.curved,
|
|
3303
3302
|
paths: t.paths,
|
|
3304
|
-
fillSpotColorDefinition:
|
|
3305
|
-
},
|
|
3303
|
+
fillSpotColorDefinition: h
|
|
3304
|
+
}, D = [], m = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map();
|
|
3306
3305
|
if (!p.fontData)
|
|
3307
3306
|
throw new v("Failed to resolve font data for text.");
|
|
3308
3307
|
const [Y, F] = IA(
|
|
@@ -3316,19 +3315,19 @@ class Ua {
|
|
|
3316
3315
|
rotation: p.rotation,
|
|
3317
3316
|
panelId: ""
|
|
3318
3317
|
},
|
|
3319
|
-
[
|
|
3318
|
+
[o],
|
|
3320
3319
|
{ size: t.size, minSize: t.minSize, maxSize: t.maxSize }
|
|
3321
3320
|
);
|
|
3322
|
-
m.set(p.id, Y),
|
|
3323
|
-
const
|
|
3321
|
+
m.set(p.id, Y), M.set(p.id, F);
|
|
3322
|
+
const U = t.curved || t.vertical ? o : (F || []).join(`
|
|
3324
3323
|
`);
|
|
3325
|
-
|
|
3326
|
-
this.generateTextChangeCommandsForRegion(Y, t, p.id,
|
|
3324
|
+
D.push(
|
|
3325
|
+
this.generateTextChangeCommandsForRegion(Y, t, p.id, U, i)
|
|
3327
3326
|
);
|
|
3328
|
-
const
|
|
3329
|
-
return
|
|
3330
|
-
regionElement: { id:
|
|
3331
|
-
commands: [
|
|
3327
|
+
const S = new J(p, E);
|
|
3328
|
+
return S.varying = i, {
|
|
3329
|
+
regionElement: { id: C, region: l },
|
|
3330
|
+
commands: [S, ...D],
|
|
3332
3331
|
newElement: p,
|
|
3333
3332
|
fontData: a
|
|
3334
3333
|
};
|
|
@@ -3344,9 +3343,9 @@ class Ua {
|
|
|
3344
3343
|
B.map((l) => l.regionElement),
|
|
3345
3344
|
async () => {
|
|
3346
3345
|
s.updateMetadata(A, {
|
|
3347
|
-
text:
|
|
3346
|
+
text: r
|
|
3348
3347
|
}), s.updateStorage(A, {
|
|
3349
|
-
text:
|
|
3348
|
+
text: r
|
|
3350
3349
|
});
|
|
3351
3350
|
}
|
|
3352
3351
|
), B;
|
|
@@ -3354,68 +3353,68 @@ class Ua {
|
|
|
3354
3353
|
generateTextChangeCommandsForRegion(A, e, t, a, n) {
|
|
3355
3354
|
const s = [], i = new Yt(t, a);
|
|
3356
3355
|
if (i.varying = n, s.push(i), !e.size) {
|
|
3357
|
-
const
|
|
3358
|
-
|
|
3356
|
+
const o = new St(t, A);
|
|
3357
|
+
o.varying = n, s.push(o);
|
|
3359
3358
|
}
|
|
3360
|
-
const
|
|
3361
|
-
return
|
|
3359
|
+
const r = new G(s);
|
|
3360
|
+
return r.varying = n, r;
|
|
3362
3361
|
}
|
|
3363
3362
|
/**
|
|
3364
3363
|
* @deprecated
|
|
3365
3364
|
*/
|
|
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(),
|
|
3365
|
+
async changeInputTextWithRegion(A, e, t, a, n, s, i, r, o, c) {
|
|
3366
|
+
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
3367
|
for (const p of d)
|
|
3369
3368
|
if (p.region) {
|
|
3370
|
-
const [
|
|
3369
|
+
const [D, m] = IA(
|
|
3371
3370
|
e,
|
|
3372
3371
|
t,
|
|
3373
3372
|
p.region,
|
|
3374
3373
|
[l],
|
|
3375
3374
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
3376
3375
|
);
|
|
3377
|
-
E.set(p.id,
|
|
3376
|
+
E.set(p.id, D), C.set(p.id, m);
|
|
3378
3377
|
}
|
|
3379
3378
|
const Q = (() => {
|
|
3380
3379
|
if (A.data && A.data.maxLength && l.length > A.data.maxLength)
|
|
3381
3380
|
return c && c(!0), { info: "0" };
|
|
3382
|
-
const p = s.getProfanities(),
|
|
3383
|
-
for (const m of
|
|
3384
|
-
for (const
|
|
3385
|
-
const Y = p[
|
|
3381
|
+
const p = s.getProfanities(), D = XA(l.toLowerCase());
|
|
3382
|
+
for (const m of D)
|
|
3383
|
+
for (const M in p) {
|
|
3384
|
+
const Y = p[M].toLowerCase().replace(/\s/g, "");
|
|
3386
3385
|
if (m === Y)
|
|
3387
|
-
return
|
|
3386
|
+
return r(!0), { error: "Blocked profanity." };
|
|
3388
3387
|
}
|
|
3389
3388
|
return !A.data.vertical && !A.data.allowNewlines && (l.includes(`
|
|
3390
|
-
`) || l.includes("\r")) ? (
|
|
3389
|
+
`) || 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
3390
|
})();
|
|
3392
3391
|
if (Q.error) {
|
|
3393
|
-
|
|
3392
|
+
o(Q.error);
|
|
3394
3393
|
return;
|
|
3395
3394
|
}
|
|
3396
|
-
if (
|
|
3395
|
+
if (o(`${Q.info} characters remaining` || ""), c)
|
|
3397
3396
|
return;
|
|
3398
3397
|
s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
|
|
3399
3398
|
text: this.injectReplaceableText(B, A.data)
|
|
3400
3399
|
});
|
|
3401
|
-
const
|
|
3400
|
+
const h = s.getTransaction().bulk && A.data.varyText || !1;
|
|
3402
3401
|
n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
|
|
3403
3402
|
const u = [];
|
|
3404
3403
|
for (const p of d) {
|
|
3405
|
-
const
|
|
3404
|
+
const D = A.data.curved ? l : (C.get(p.id) || []).join(`
|
|
3406
3405
|
`);
|
|
3407
3406
|
u.push(
|
|
3408
3407
|
this.generateTextChangeCommandsForRegion(
|
|
3409
3408
|
E.get(p.id) || 1,
|
|
3410
3409
|
A.data,
|
|
3411
3410
|
p.id,
|
|
3412
|
-
|
|
3413
|
-
|
|
3411
|
+
D,
|
|
3412
|
+
h
|
|
3414
3413
|
)
|
|
3415
3414
|
);
|
|
3416
3415
|
}
|
|
3417
|
-
const
|
|
3418
|
-
return
|
|
3416
|
+
const f = new G(u);
|
|
3417
|
+
return f.varying = h, f;
|
|
3419
3418
|
}
|
|
3420
3419
|
}
|
|
3421
3420
|
const K = new Ua();
|
|
@@ -4682,27 +4681,27 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
4682
4681
|
</g>
|
|
4683
4682
|
</svg>
|
|
4684
4683
|
|
|
4685
|
-
`,
|
|
4686
|
-
const e =
|
|
4684
|
+
`, R = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
|
|
4685
|
+
const e = R("rect");
|
|
4687
4686
|
return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
|
|
4688
4687
|
}, ka = () => {
|
|
4689
|
-
const g =
|
|
4688
|
+
const g = R("svg");
|
|
4690
4689
|
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 =
|
|
4690
|
+
}, ba = (g) => {
|
|
4691
|
+
const A = R("use");
|
|
4693
4692
|
return A.setAttribute("xlink:href", g), A.setAttribute("href", g), A;
|
|
4694
4693
|
};
|
|
4695
4694
|
function tt(g) {
|
|
4696
4695
|
const A = ka(), e = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], t = parseFloat(e[1]), a = parseFloat(e[2]);
|
|
4697
4696
|
return A.setAttribute("height", `${a}`), A.setAttribute("width", `${t}`), [A, a, t];
|
|
4698
4697
|
}
|
|
4699
|
-
const
|
|
4700
|
-
const t =
|
|
4698
|
+
const Ja = (g, A, e) => {
|
|
4699
|
+
const t = R("g");
|
|
4701
4700
|
g.appendChild(t), t.setAttribute("id", e), t.innerHTML = A;
|
|
4702
4701
|
};
|
|
4703
4702
|
function at(g, A, e) {
|
|
4704
4703
|
const t = k();
|
|
4705
|
-
|
|
4704
|
+
Ja(A, e, `bgdef-${t}`), g.appendChild(ba(`#bgdef-${t}`));
|
|
4706
4705
|
}
|
|
4707
4706
|
const nt = (g, A, e, t) => {
|
|
4708
4707
|
const a = wA("filter");
|
|
@@ -4718,16 +4717,16 @@ const nt = (g, A, e, t) => {
|
|
|
4718
4717
|
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
4718
|
};
|
|
4720
4719
|
function re(g, A, e, t, a, n) {
|
|
4721
|
-
const s = a || 1, i = n || 1,
|
|
4720
|
+
const s = a || 1, i = n || 1, r = {
|
|
4722
4721
|
x: A[0],
|
|
4723
4722
|
y: A[1],
|
|
4724
4723
|
width: A[2] - A[0],
|
|
4725
4724
|
height: A[3] - A[1]
|
|
4726
4725
|
};
|
|
4727
|
-
if (
|
|
4726
|
+
if (r.width <= 0)
|
|
4728
4727
|
return;
|
|
4729
|
-
const
|
|
4730
|
-
g.setAttribute("transform", `translate(${c} ${B}) scale(${
|
|
4728
|
+
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;
|
|
4729
|
+
g.setAttribute("transform", `translate(${c} ${B}) scale(${o} ${o})`);
|
|
4731
4730
|
}
|
|
4732
4731
|
function Ta(g, A, e, t) {
|
|
4733
4732
|
const a = e / g, n = t / A;
|
|
@@ -4762,10 +4761,10 @@ class ce {
|
|
|
4762
4761
|
let e = "";
|
|
4763
4762
|
const a = (n) => {
|
|
4764
4763
|
const s = [], i = n.relative ? n.type : n.type.toUpperCase();
|
|
4765
|
-
let
|
|
4766
|
-
const
|
|
4767
|
-
|
|
4768
|
-
for (const c of
|
|
4764
|
+
let r = e !== i;
|
|
4765
|
+
const o = pe[n.type];
|
|
4766
|
+
r && (s.push(i), e = i);
|
|
4767
|
+
for (const c of o) {
|
|
4769
4768
|
const B = n[c];
|
|
4770
4769
|
let l;
|
|
4771
4770
|
switch (typeof B) {
|
|
@@ -4778,7 +4777,7 @@ class ce {
|
|
|
4778
4777
|
default:
|
|
4779
4778
|
throw new rA("Failed to encode path.");
|
|
4780
4779
|
}
|
|
4781
|
-
|
|
4780
|
+
r || s.push(" "), s.push(l), r = !1;
|
|
4782
4781
|
}
|
|
4783
4782
|
return s.join("");
|
|
4784
4783
|
};
|
|
@@ -4788,24 +4787,24 @@ class ce {
|
|
|
4788
4787
|
const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
|
|
4789
4788
|
let n;
|
|
4790
4789
|
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 <
|
|
4790
|
+
const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), r = s === n[1], o = pe[s];
|
|
4791
|
+
if (i.length < o.length)
|
|
4793
4792
|
throw new rA(
|
|
4794
|
-
`Path type "${s}" given ${i.length} arguments, expected ${
|
|
4793
|
+
`Path type "${s}" given ${i.length} arguments, expected ${o.length}.`
|
|
4795
4794
|
);
|
|
4796
|
-
if (
|
|
4797
|
-
if (i.length %
|
|
4795
|
+
if (o.length > 0) {
|
|
4796
|
+
if (i.length % o.length !== 0)
|
|
4798
4797
|
throw new rA(
|
|
4799
|
-
`Path type "${s}" given ${i.length} arguments, not divisible by ${
|
|
4798
|
+
`Path type "${s}" given ${i.length} arguments, not divisible by ${o.length}`
|
|
4800
4799
|
);
|
|
4801
|
-
for (let c = 0; c < i.length /
|
|
4802
|
-
const B = { type: s, relative:
|
|
4803
|
-
for (let l = 0; l <
|
|
4804
|
-
B[
|
|
4800
|
+
for (let c = 0; c < i.length / o.length; c++) {
|
|
4801
|
+
const B = { type: s, relative: r };
|
|
4802
|
+
for (let l = 0; l < o.length; l++)
|
|
4803
|
+
B[o[l]] = i[c * o.length + l];
|
|
4805
4804
|
a.push(B);
|
|
4806
4805
|
}
|
|
4807
4806
|
} else
|
|
4808
|
-
a.push({ type: s, relative:
|
|
4807
|
+
a.push({ type: s, relative: r });
|
|
4809
4808
|
}
|
|
4810
4809
|
return a;
|
|
4811
4810
|
}
|
|
@@ -4816,12 +4815,12 @@ class ce {
|
|
|
4816
4815
|
["x", "y"]
|
|
4817
4816
|
], a = (n) => {
|
|
4818
4817
|
for (let s = 0; s < t.length; s++) {
|
|
4819
|
-
const [i,
|
|
4820
|
-
if (i in n &&
|
|
4821
|
-
const
|
|
4818
|
+
const [i, r] = t[s];
|
|
4819
|
+
if (i in n && r in n) {
|
|
4820
|
+
const o = [n[i], n[r]], c = e(o);
|
|
4822
4821
|
if (c.length < 2)
|
|
4823
4822
|
throw new rA("Transformer must return at least 2 points.");
|
|
4824
|
-
n[i] = c[0], n[
|
|
4823
|
+
n[i] = c[0], n[r] = c[1];
|
|
4825
4824
|
}
|
|
4826
4825
|
}
|
|
4827
4826
|
return n;
|
|
@@ -4859,31 +4858,31 @@ class La extends ie {
|
|
|
4859
4858
|
}
|
|
4860
4859
|
brandSvg(A, e) {
|
|
4861
4860
|
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 =
|
|
4861
|
+
const p = R("g"), D = R("defs");
|
|
4862
|
+
p.appendChild(D), D.appendChild(nt(3, 7, 4, "shadow"));
|
|
4863
|
+
const m = R("g");
|
|
4865
4864
|
p.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = t;
|
|
4866
|
-
const
|
|
4867
|
-
p.appendChild(
|
|
4868
|
-
const Y =
|
|
4865
|
+
const M = R("g");
|
|
4866
|
+
p.appendChild(M), M.setAttribute("fill", "red"), M.setAttribute("stroke", "red"), M.setAttribute("stroke-width", "9"), M.innerHTML = t;
|
|
4867
|
+
const Y = R("g");
|
|
4869
4868
|
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 (!
|
|
4869
|
+
const F = R("g");
|
|
4870
|
+
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;
|
|
4871
|
+
}, [r, o, c] = tt(e);
|
|
4872
|
+
if (!r)
|
|
4874
4873
|
return "";
|
|
4875
|
-
const B =
|
|
4876
|
-
|
|
4877
|
-
const l =
|
|
4878
|
-
|
|
4874
|
+
const B = R("defs");
|
|
4875
|
+
r.appendChild(B), at(r, B, e);
|
|
4876
|
+
const l = o * 0.23, d = c * 0.94, E = c * 0.04, C = o * 0.53, w = R("g");
|
|
4877
|
+
r.appendChild(w), w.setAttribute("transform", `translate(${E} ${C}) rotate(-21)`);
|
|
4879
4878
|
const Q = oe(l, d);
|
|
4880
4879
|
Q.setAttribute("opacity", "0"), w.appendChild(Q);
|
|
4881
|
-
const
|
|
4882
|
-
w.appendChild(
|
|
4880
|
+
const h = R("g");
|
|
4881
|
+
w.appendChild(h);
|
|
4883
4882
|
const u = i();
|
|
4884
|
-
|
|
4885
|
-
const
|
|
4886
|
-
return re(
|
|
4883
|
+
h.appendChild(u);
|
|
4884
|
+
const f = ne(s);
|
|
4885
|
+
return re(h, f, l, d), st(r.outerHTML);
|
|
4887
4886
|
}
|
|
4888
4887
|
}
|
|
4889
4888
|
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 +4897,39 @@ class za extends ie {
|
|
|
4898
4897
|
return this.svg(A);
|
|
4899
4898
|
}
|
|
4900
4899
|
svg(A) {
|
|
4901
|
-
const e = ae(Oa), a = A !== "" ? ((
|
|
4900
|
+
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
4901
|
return this.brandSvg(n, i, s);
|
|
4903
4902
|
}
|
|
4904
4903
|
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 =
|
|
4904
|
+
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, r = A.toPathData(3), o = () => {
|
|
4905
|
+
const m = R("g"), M = R("g");
|
|
4906
|
+
m.appendChild(M), M.setAttribute("stroke", "#5C1A0D"), M.setAttribute("stroke-width", "4"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
|
|
4907
|
+
const Y = R("g");
|
|
4909
4908
|
m.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
|
|
4910
|
-
const F =
|
|
4909
|
+
const F = R("g");
|
|
4911
4910
|
m.appendChild(F), F.setAttribute("fill", "white"), F.innerHTML = a;
|
|
4912
|
-
const
|
|
4913
|
-
return
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
]),
|
|
4911
|
+
const U = new ce(m);
|
|
4912
|
+
return U.transform(([S, b]) => [S, b + ((i - S) * b) ** 2 / (i * 5e4)]), U.transform(([S, b]) => [
|
|
4913
|
+
S,
|
|
4914
|
+
b + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
|
|
4915
|
+
]), U.transform(([S, b]) => [S - (s - b) * (i - S) / 800, b]), m;
|
|
4917
4916
|
}, [c, B, l] = tt(e);
|
|
4918
4917
|
if (!c)
|
|
4919
4918
|
return "";
|
|
4920
|
-
const d =
|
|
4919
|
+
const d = R("defs");
|
|
4921
4920
|
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(
|
|
4921
|
+
let E, C, w, Q;
|
|
4922
|
+
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);
|
|
4923
|
+
const h = R("g");
|
|
4924
|
+
c.appendChild(h), h.setAttribute("transform", `translate(${w} ${Q}) rotate(-10)`);
|
|
4925
|
+
const u = oe(E, C);
|
|
4926
|
+
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
4927
|
+
const f = R("g");
|
|
4928
|
+
h.appendChild(f);
|
|
4929
|
+
const p = o();
|
|
4930
|
+
f.appendChild(p);
|
|
4931
|
+
const D = ne(r);
|
|
4932
|
+
return re(f, D, E, C), c.outerHTML;
|
|
4934
4933
|
}
|
|
4935
4934
|
// 1 if true, 0 if false.
|
|
4936
4935
|
}
|
|
@@ -4946,35 +4945,35 @@ class ja extends ie {
|
|
|
4946
4945
|
return this.svgElement(A, e);
|
|
4947
4946
|
}
|
|
4948
4947
|
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 =
|
|
4948
|
+
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 = () => {
|
|
4949
|
+
const u = R("g");
|
|
4951
4950
|
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 =
|
|
4951
|
+
const f = R("defs");
|
|
4952
|
+
u.appendChild(f), f.appendChild(nt(0, 2, 2, "shadow"));
|
|
4953
|
+
const p = R("path");
|
|
4954
|
+
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), f.appendChild(p);
|
|
4955
|
+
const D = R("g");
|
|
4956
|
+
D.classList.add("module-layer0"), u.appendChild(D), D.setAttribute("filter", "url(#shadow)"), D.innerHTML = p.outerHTML;
|
|
4957
|
+
const m = R("g");
|
|
4959
4958
|
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 =
|
|
4959
|
+
const M = R("g");
|
|
4960
|
+
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;
|
|
4961
|
+
const Y = R("g");
|
|
4962
|
+
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;
|
|
4963
|
+
}, l = R("g");
|
|
4965
4964
|
l.classList.add("module-root");
|
|
4966
|
-
const d =
|
|
4965
|
+
const d = R("defs");
|
|
4967
4966
|
l.appendChild(d);
|
|
4968
|
-
const E =
|
|
4967
|
+
const E = R("g");
|
|
4969
4968
|
E.classList.add("module-bounds"), l.appendChild(E);
|
|
4970
|
-
const
|
|
4971
|
-
|
|
4972
|
-
const w =
|
|
4969
|
+
const C = oe(e.height, e.width);
|
|
4970
|
+
C.setAttribute("opacity", "0"), E.appendChild(C);
|
|
4971
|
+
const w = R("g");
|
|
4973
4972
|
w.classList.add("module-text-enclosure"), l.appendChild(w);
|
|
4974
4973
|
const Q = B();
|
|
4975
4974
|
w.appendChild(Q);
|
|
4976
|
-
const
|
|
4977
|
-
return re(w,
|
|
4975
|
+
const h = ne(c);
|
|
4976
|
+
return re(w, h, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
|
|
4978
4977
|
}
|
|
4979
4978
|
}
|
|
4980
4979
|
async function it(g) {
|
|
@@ -5003,25 +5002,24 @@ class Ie extends Xe {
|
|
|
5003
5002
|
}
|
|
5004
5003
|
}
|
|
5005
5004
|
class Wa {
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
var w;
|
|
5005
|
+
constructor(A, e, t, a, n, s, i, r, o, c, B = !1, l, d = !1, E = !1) {
|
|
5006
|
+
this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
|
|
5007
|
+
var Q;
|
|
5010
5008
|
if (!this.previewService)
|
|
5011
5009
|
return;
|
|
5012
|
-
const
|
|
5013
|
-
if (
|
|
5014
|
-
for (const [,
|
|
5015
|
-
|
|
5010
|
+
const C = this.getCommandContext().getAllLayouts(), w = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
|
|
5011
|
+
if (w)
|
|
5012
|
+
for (const [, h] of w)
|
|
5013
|
+
h.render(
|
|
5016
5014
|
this.getWorkflow(),
|
|
5017
|
-
|
|
5015
|
+
C,
|
|
5018
5016
|
this.getCurrentVariationRecord() || null,
|
|
5019
5017
|
this.getProduct().overlayImageUrl
|
|
5020
5018
|
);
|
|
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 =
|
|
5019
|
+
}, 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
5020
|
this.initialized = !0;
|
|
5023
|
-
}), this.initializationPromise.catch((
|
|
5024
|
-
throw console.error(
|
|
5021
|
+
}), this.initializationPromise.catch((C) => {
|
|
5022
|
+
throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
5025
5023
|
}), this.initializationPromise.finally(
|
|
5026
5024
|
() => this.getCommandContext().registerStateCallback(() => {
|
|
5027
5025
|
this.updateStateWithServer(), this.renderLayouts();
|
|
@@ -5031,14 +5029,14 @@ class Wa {
|
|
|
5031
5029
|
async initializeDefaultWorkflowState(A, e) {
|
|
5032
5030
|
const t = () => {
|
|
5033
5031
|
var B, l;
|
|
5034
|
-
const
|
|
5035
|
-
if (!
|
|
5032
|
+
const r = this.workflow.finalizeStepConfig;
|
|
5033
|
+
if (!r)
|
|
5036
5034
|
return;
|
|
5037
|
-
const
|
|
5038
|
-
|
|
5035
|
+
const o = r.lookAtAnimation, c = r.modelAnimation;
|
|
5036
|
+
o && ((B = this.previewService) == null || B.executeCameraAnimation(o)), c && ((l = this.modelContainer) == null || l.executeAnimation(c));
|
|
5039
5037
|
};
|
|
5040
|
-
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((
|
|
5041
|
-
this.storage[
|
|
5038
|
+
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((r) => {
|
|
5039
|
+
this.storage[r.stepName] = r.storage || {};
|
|
5042
5040
|
}), this.allScenes = await wa(
|
|
5043
5041
|
A,
|
|
5044
5042
|
{
|
|
@@ -5050,7 +5048,7 @@ class Wa {
|
|
|
5050
5048
|
},
|
|
5051
5049
|
e
|
|
5052
5050
|
);
|
|
5053
|
-
const n = aA(this.allScenes, this.stepSelections).map((
|
|
5051
|
+
const n = aA(this.allScenes, this.stepSelections).map((r) => r.silentSteps).flat(), { stepElements: s, commands: i } = await this.stepElementsForIntroducedSilentSteps(n, !!this.reloadedState);
|
|
5054
5052
|
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
5053
|
}
|
|
5056
5054
|
getProduct() {
|
|
@@ -5243,12 +5241,12 @@ class Wa {
|
|
|
5243
5241
|
contextService: this.getLayoutPreviewService()
|
|
5244
5242
|
}).getInitializationPromise();
|
|
5245
5243
|
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 (!((
|
|
5244
|
+
var r, o, c;
|
|
5245
|
+
if (!((r = n.option) != null && r.id)) {
|
|
5248
5246
|
console.error(`Failed to read option id from step: ${n.stepName}`);
|
|
5249
5247
|
return;
|
|
5250
5248
|
}
|
|
5251
|
-
const s = ((
|
|
5249
|
+
const s = ((o = this.stepSelections[n.stepName]) == null ? void 0 : o.selectedVariants) || [];
|
|
5252
5250
|
if (s.length === 0)
|
|
5253
5251
|
return;
|
|
5254
5252
|
const i = s[0];
|
|
@@ -5377,9 +5375,9 @@ class Wa {
|
|
|
5377
5375
|
removeElements(A) {
|
|
5378
5376
|
const e = (t, a) => Object.keys(t).reduce((n, s) => {
|
|
5379
5377
|
const i = [...t[s] || []];
|
|
5380
|
-
return a.forEach((
|
|
5381
|
-
const
|
|
5382
|
-
|
|
5378
|
+
return a.forEach((r) => {
|
|
5379
|
+
const o = i.findIndex((c) => c.id === r.id);
|
|
5380
|
+
o > -1 && i.splice(o, 1);
|
|
5383
5381
|
}), n[s] = i, n;
|
|
5384
5382
|
}, {});
|
|
5385
5383
|
this.stepElements = e(this.stepElements, A);
|
|
@@ -5396,30 +5394,30 @@ class Wa {
|
|
|
5396
5394
|
const t = this.product;
|
|
5397
5395
|
if (!t)
|
|
5398
5396
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
5399
|
-
const a = async (
|
|
5400
|
-
if (
|
|
5401
|
-
const l = await new me(
|
|
5402
|
-
return { step:
|
|
5403
|
-
} else if (
|
|
5397
|
+
const a = async (o, c, B) => {
|
|
5398
|
+
if (o.type === I.SilentIllustration) {
|
|
5399
|
+
const l = await new me(o, c).trigger();
|
|
5400
|
+
return { step: o, results: l };
|
|
5401
|
+
} else if (o.type === I.ProductOverlay) {
|
|
5404
5402
|
const l = await new me(
|
|
5405
|
-
|
|
5403
|
+
o,
|
|
5406
5404
|
c,
|
|
5407
5405
|
B
|
|
5408
5406
|
).trigger();
|
|
5409
|
-
return { step:
|
|
5407
|
+
return { step: o, results: l };
|
|
5410
5408
|
}
|
|
5411
5409
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
5412
5410
|
}, n = A.filter(
|
|
5413
|
-
(
|
|
5411
|
+
(o) => !this.stepInitialised[o.stepName]
|
|
5414
5412
|
), s = {
|
|
5415
5413
|
stepElements: {},
|
|
5416
5414
|
commands: []
|
|
5417
5415
|
}, i = [];
|
|
5418
|
-
for (const
|
|
5419
|
-
this.markStepsAsInitialised([
|
|
5420
|
-
const
|
|
5421
|
-
for (const
|
|
5422
|
-
s.stepElements[
|
|
5416
|
+
for (const o of n)
|
|
5417
|
+
this.markStepsAsInitialised([o.stepName]), e || i.push(a(o, this.layouts, t));
|
|
5418
|
+
const r = await Promise.all(i);
|
|
5419
|
+
for (const o of r)
|
|
5420
|
+
s.stepElements[o.step.stepName] = o.results.map((c) => c.regionElement), s.commands = [...s.commands, ...o.results.map((c) => c.command)];
|
|
5423
5421
|
return s;
|
|
5424
5422
|
}
|
|
5425
5423
|
getStepStorage(A) {
|
|
@@ -5456,14 +5454,14 @@ class Wa {
|
|
|
5456
5454
|
this.stepSelections = {
|
|
5457
5455
|
...this.stepSelections,
|
|
5458
5456
|
[A]: { selectedVariants: e }
|
|
5459
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
5460
|
-
nA(
|
|
5457
|
+
}, 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) => {
|
|
5458
|
+
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
5459
|
});
|
|
5462
|
-
const s = this.allScenes, i = aA(s, n),
|
|
5463
|
-
(
|
|
5460
|
+
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(
|
|
5461
|
+
(D) => !o.some((m) => m.stepName === D.stepName)
|
|
5464
5462
|
);
|
|
5465
|
-
|
|
5466
|
-
nA(
|
|
5463
|
+
o.forEach((D) => {
|
|
5464
|
+
nA(D, this.stepSelections) || (this.stepInitialised[D.stepName] = !1);
|
|
5467
5465
|
});
|
|
5468
5466
|
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: E } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
5469
5467
|
this.stepElements = {
|
|
@@ -5471,17 +5469,17 @@ class Wa {
|
|
|
5471
5469
|
...d,
|
|
5472
5470
|
[A]: t
|
|
5473
5471
|
}, 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) =>
|
|
5472
|
+
const C = this.workflow.steps.find((D) => D.stepName === A);
|
|
5473
|
+
if ((C == null ? void 0 : C.type) === I.Frame) {
|
|
5474
|
+
const D = this.getStepSpecificServices(A);
|
|
5475
|
+
(p = D == null ? void 0 : D.frameService) == null || p.setTargetElements(t.map((m) => m.id));
|
|
5476
|
+
}
|
|
5477
|
+
const w = l.map((D) => new $(D.id)), Q = new Ee(this.constructSerializableWorkflow()), h = [...E, ...w, Q];
|
|
5478
|
+
h.length > 0 && this.commandContext.apply(new G(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5479
|
+
const u = this.getInvalidModelVariants(), f = this.modelContainer;
|
|
5480
|
+
if (f) {
|
|
5481
|
+
const D = u.map(
|
|
5482
|
+
(m) => f.applyModelVariant(
|
|
5485
5483
|
m,
|
|
5486
5484
|
{
|
|
5487
5485
|
contextService: this.getLayoutPreviewService()
|
|
@@ -5489,12 +5487,12 @@ class Wa {
|
|
|
5489
5487
|
!1
|
|
5490
5488
|
)
|
|
5491
5489
|
);
|
|
5492
|
-
await Promise.all(
|
|
5490
|
+
await Promise.all(D);
|
|
5493
5491
|
}
|
|
5494
5492
|
await this.onSelectionChange(), a && await a();
|
|
5495
5493
|
}
|
|
5496
5494
|
async ensureStepsAreLoaded() {
|
|
5497
|
-
var
|
|
5495
|
+
var r, o;
|
|
5498
5496
|
const e = aA(this.allScenes, this.stepSelections).map((c) => c.renderableSteps), t = [], a = e.flat();
|
|
5499
5497
|
for (const c of a)
|
|
5500
5498
|
if (!this.stepInitialised[c.stepName])
|
|
@@ -5502,7 +5500,7 @@ class Wa {
|
|
|
5502
5500
|
case I.Bulk:
|
|
5503
5501
|
this.updateStorage(
|
|
5504
5502
|
"Bulk",
|
|
5505
|
-
((
|
|
5503
|
+
((o = (r = this.reloadedState) == null ? void 0 : r.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : o.storage) || {}
|
|
5506
5504
|
);
|
|
5507
5505
|
break;
|
|
5508
5506
|
case I.DigitalContent:
|
|
@@ -5626,7 +5624,7 @@ class Wa {
|
|
|
5626
5624
|
}), this.renderLayouts();
|
|
5627
5625
|
}
|
|
5628
5626
|
traversableScenes() {
|
|
5629
|
-
return Ca(this.allScenes, this.stepSelections);
|
|
5627
|
+
return Ca(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
|
|
5630
5628
|
}
|
|
5631
5629
|
}
|
|
5632
5630
|
class X {
|
|
@@ -5809,7 +5807,7 @@ const ot = class ZA {
|
|
|
5809
5807
|
};
|
|
5810
5808
|
ot.updateState = /* @__PURE__ */ new Map();
|
|
5811
5809
|
let j = ot;
|
|
5812
|
-
const rt =
|
|
5810
|
+
const rt = y`
|
|
5813
5811
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
5814
5812
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
5815
5813
|
id
|
|
@@ -5823,7 +5821,7 @@ const rt = M`
|
|
|
5823
5821
|
}
|
|
5824
5822
|
}
|
|
5825
5823
|
}
|
|
5826
|
-
`, Xa =
|
|
5824
|
+
`, Xa = y`
|
|
5827
5825
|
mutation UpdateDesignName($transactionId: String!, $designName: String!) {
|
|
5828
5826
|
transactionUpdate(id: $transactionId, designName: $designName) {
|
|
5829
5827
|
id
|
|
@@ -5838,7 +5836,7 @@ class qa extends j {
|
|
|
5838
5836
|
throw new Error("Bulk step does not support variants.");
|
|
5839
5837
|
}
|
|
5840
5838
|
async setDesignName(A) {
|
|
5841
|
-
await
|
|
5839
|
+
await N.getShadowGraphqlClient().mutate({
|
|
5842
5840
|
mutation: Xa,
|
|
5843
5841
|
variables: {
|
|
5844
5842
|
transactionId: this.manager.getTransaction().id,
|
|
@@ -5865,7 +5863,7 @@ class qa extends j {
|
|
|
5865
5863
|
window.open(this.transaction.bulkSourceUrl, "_blank");
|
|
5866
5864
|
}
|
|
5867
5865
|
async sendGoogleSheetLinkToEmail(A) {
|
|
5868
|
-
await
|
|
5866
|
+
await N.getShadowGraphqlClient().mutate({
|
|
5869
5867
|
mutation: rt,
|
|
5870
5868
|
variables: { id: this.transaction.id, details: { emailAddress: A }, type: "Owner" }
|
|
5871
5869
|
}), this.openBulkSourceUrl();
|
|
@@ -6161,14 +6159,14 @@ class an extends j {
|
|
|
6161
6159
|
text: a
|
|
6162
6160
|
}), s)
|
|
6163
6161
|
return e;
|
|
6164
|
-
const { command:
|
|
6162
|
+
const { command: r, errors: o, helperText: c } = K.updateInputText(
|
|
6165
6163
|
a,
|
|
6166
6164
|
t,
|
|
6167
6165
|
this.step,
|
|
6168
6166
|
this.manager
|
|
6169
6167
|
);
|
|
6170
|
-
|
|
6171
|
-
const B = this.manager.getInformationResults(), l = (E =
|
|
6168
|
+
r && this.manager.getCommandDispatcher()(r);
|
|
6169
|
+
const B = this.manager.getInformationResults(), l = (E = o[0]) == null ? void 0 : E.localizationKey;
|
|
6172
6170
|
if (l)
|
|
6173
6171
|
this.manager.setInformationResults([
|
|
6174
6172
|
...B,
|
|
@@ -6179,8 +6177,8 @@ class an extends j {
|
|
|
6179
6177
|
}
|
|
6180
6178
|
]);
|
|
6181
6179
|
else {
|
|
6182
|
-
const
|
|
6183
|
-
this.manager.setInformationResults(
|
|
6180
|
+
const C = B.filter((w) => w.stepID !== this.step.stepName);
|
|
6181
|
+
this.manager.setInformationResults(C);
|
|
6184
6182
|
}
|
|
6185
6183
|
return e.helperText = l || c, e.errorText = l, e;
|
|
6186
6184
|
}
|
|
@@ -6282,7 +6280,7 @@ class oA {
|
|
|
6282
6280
|
}
|
|
6283
6281
|
}
|
|
6284
6282
|
}
|
|
6285
|
-
const ct =
|
|
6283
|
+
const ct = y`
|
|
6286
6284
|
fragment CreateDesignTransaction on Transaction {
|
|
6287
6285
|
id
|
|
6288
6286
|
bulk
|
|
@@ -6299,7 +6297,7 @@ const ct = M`
|
|
|
6299
6297
|
workflowViewerLink
|
|
6300
6298
|
workflowViewerReadOnlyLink
|
|
6301
6299
|
}
|
|
6302
|
-
`, sn =
|
|
6300
|
+
`, sn = y`
|
|
6303
6301
|
${ct}
|
|
6304
6302
|
mutation CreateDesign(
|
|
6305
6303
|
$name: String!
|
|
@@ -6331,7 +6329,7 @@ const ct = M`
|
|
|
6331
6329
|
}
|
|
6332
6330
|
}
|
|
6333
6331
|
}
|
|
6334
|
-
`, on =
|
|
6332
|
+
`, on = y`
|
|
6335
6333
|
${ct}
|
|
6336
6334
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6337
6335
|
designCreateMany(inputs: $inputs) {
|
|
@@ -6347,7 +6345,7 @@ const ct = M`
|
|
|
6347
6345
|
}
|
|
6348
6346
|
`, rn = async (g) => {
|
|
6349
6347
|
var e;
|
|
6350
|
-
return (e = (await
|
|
6348
|
+
return (e = (await N.getShadowGraphqlClient().mutate({
|
|
6351
6349
|
mutation: sn,
|
|
6352
6350
|
errorPolicy: "all",
|
|
6353
6351
|
fetchPolicy: "no-cache",
|
|
@@ -6364,7 +6362,7 @@ const ct = M`
|
|
|
6364
6362
|
})).data) == null ? void 0 : e.designCreate;
|
|
6365
6363
|
}, cn = async (g) => {
|
|
6366
6364
|
var e;
|
|
6367
|
-
return (e = (await
|
|
6365
|
+
return (e = (await N.getShadowGraphqlClient().mutate({
|
|
6368
6366
|
mutation: on,
|
|
6369
6367
|
errorPolicy: "all",
|
|
6370
6368
|
fetchPolicy: "no-cache",
|
|
@@ -6385,23 +6383,23 @@ const ct = M`
|
|
|
6385
6383
|
const t = (n) => {
|
|
6386
6384
|
const s = {};
|
|
6387
6385
|
if (n.type === "Frame") {
|
|
6388
|
-
const i = g[n.stepName],
|
|
6389
|
-
if (!i || !i.image ||
|
|
6386
|
+
const i = g[n.stepName], r = n.data;
|
|
6387
|
+
if (!i || !i.image || r.hideImageInCart && e)
|
|
6390
6388
|
return s;
|
|
6391
6389
|
s[`${n.stepTitle} image`] = i.image;
|
|
6392
6390
|
}
|
|
6393
6391
|
if (n.type === "Illustration") {
|
|
6394
|
-
const i = g[n.stepName],
|
|
6395
|
-
if (!i ||
|
|
6392
|
+
const i = g[n.stepName], r = n.data;
|
|
6393
|
+
if (!i || r.hideColorsInCart && e || !i.colors)
|
|
6396
6394
|
return s;
|
|
6397
6395
|
if (i.colors.length > 0) {
|
|
6398
|
-
const
|
|
6399
|
-
s[`${n.stepTitle} colors`] =
|
|
6396
|
+
const o = i.colors.join(", ").toUpperCase();
|
|
6397
|
+
s[`${n.stepTitle} colors`] = o;
|
|
6400
6398
|
}
|
|
6401
6399
|
}
|
|
6402
6400
|
if (n.type === "Module") {
|
|
6403
|
-
const i = g[n.stepName],
|
|
6404
|
-
if (!i || i.text === void 0 || i.text === null ||
|
|
6401
|
+
const i = g[n.stepName], r = n.data;
|
|
6402
|
+
if (!i || i.text === void 0 || i.text === null || r.hideTextInCart && e)
|
|
6405
6403
|
return s;
|
|
6406
6404
|
s[`${n.stepTitle} text`] = i.text;
|
|
6407
6405
|
}
|
|
@@ -6409,8 +6407,8 @@ const ct = M`
|
|
|
6409
6407
|
const i = g[n.stepName];
|
|
6410
6408
|
if (!i)
|
|
6411
6409
|
return s;
|
|
6412
|
-
const
|
|
6413
|
-
(!
|
|
6410
|
+
const r = n.data;
|
|
6411
|
+
(!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
6412
|
}
|
|
6415
6413
|
return s;
|
|
6416
6414
|
}, a = {};
|
|
@@ -6436,22 +6434,22 @@ const ct = M`
|
|
|
6436
6434
|
};
|
|
6437
6435
|
}
|
|
6438
6436
|
for (const s of Object.keys(g)) {
|
|
6439
|
-
const i = g[s],
|
|
6437
|
+
const i = g[s], r = A.steps.find((o) => o.stepTitle === s);
|
|
6440
6438
|
if (i.length === 1)
|
|
6441
|
-
a[`${
|
|
6439
|
+
a[`${r == null ? void 0 : r.stepTitle} selection`] = {
|
|
6442
6440
|
value: i[0].name,
|
|
6443
6441
|
priceModifier: i[0].priceModifier
|
|
6444
6442
|
};
|
|
6445
6443
|
else if (i.length > 1)
|
|
6446
|
-
for (let
|
|
6447
|
-
a[`${
|
|
6448
|
-
value: i[
|
|
6449
|
-
priceModifier: i[
|
|
6444
|
+
for (let o = 0; o < i.length; o++)
|
|
6445
|
+
a[`${r == null ? void 0 : r.stepTitle} selection ${o + 1}`] = {
|
|
6446
|
+
value: i[o].name,
|
|
6447
|
+
priceModifier: i[o].priceModifier
|
|
6450
6448
|
};
|
|
6451
6449
|
}
|
|
6452
6450
|
return a;
|
|
6453
|
-
}, gt = (g, A, e, t, a, n, s, i,
|
|
6454
|
-
const B = (
|
|
6451
|
+
}, gt = (g, A, e, t, a, n, s, i, r, o) => {
|
|
6452
|
+
const B = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
|
|
6455
6453
|
baseCost: e,
|
|
6456
6454
|
designProductId: g.externalDesignProductId,
|
|
6457
6455
|
designProductVariantId: g.externalDesignProductVariantId,
|
|
@@ -6461,14 +6459,14 @@ const ct = M`
|
|
|
6461
6459
|
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
6462
6460
|
lineItemImageUrl: s || "",
|
|
6463
6461
|
optionsCost: t,
|
|
6464
|
-
processExecutionId:
|
|
6462
|
+
processExecutionId: o,
|
|
6465
6463
|
transactionId: g.id,
|
|
6466
6464
|
transactionOwnerId: B,
|
|
6467
6465
|
weight: A.weight,
|
|
6468
6466
|
workflowViewerLink: g.workflowViewerLink || "",
|
|
6469
6467
|
workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
|
|
6470
6468
|
};
|
|
6471
|
-
return a && (l.metadata = a), i && (l.selectedVariants = i),
|
|
6469
|
+
return a && (l.metadata = a), i && (l.selectedVariants = i), r && (l.sku = r), l;
|
|
6472
6470
|
}, ln = (g, A, e, t) => {
|
|
6473
6471
|
const a = (A.basePrice || 0) * (g.variationsCount || 0), n = g.priceModifierTotal || 0, s = {
|
|
6474
6472
|
items: {
|
|
@@ -6489,12 +6487,12 @@ const ct = M`
|
|
|
6489
6487
|
t
|
|
6490
6488
|
);
|
|
6491
6489
|
}, lt = async (g, A, e, t, a, n, s, i) => {
|
|
6492
|
-
const
|
|
6490
|
+
const r = A.basePrice || 0, o = g.priceModifierTotal || 0, c = gn(t, e, void 0, n);
|
|
6493
6491
|
return gt(
|
|
6494
6492
|
g,
|
|
6495
6493
|
A,
|
|
6496
|
-
o,
|
|
6497
6494
|
r,
|
|
6495
|
+
o,
|
|
6498
6496
|
n,
|
|
6499
6497
|
c,
|
|
6500
6498
|
s,
|
|
@@ -6502,38 +6500,38 @@ const ct = M`
|
|
|
6502
6500
|
a,
|
|
6503
6501
|
i
|
|
6504
6502
|
);
|
|
6505
|
-
}, Bt = async (g, A, e, t, a, n, s, i,
|
|
6506
|
-
var
|
|
6503
|
+
}, Bt = async (g, A, e, t, a, n, s, i, r, o) => {
|
|
6504
|
+
var M;
|
|
6507
6505
|
await (async () => {
|
|
6508
|
-
var
|
|
6509
|
-
if (
|
|
6510
|
-
return
|
|
6506
|
+
var S;
|
|
6507
|
+
if (o !== void 0)
|
|
6508
|
+
return o;
|
|
6511
6509
|
await g.outstandingRequestsPromise();
|
|
6512
|
-
const F = await
|
|
6510
|
+
const F = await N.getShadowGraphqlClient().query({
|
|
6513
6511
|
query: Ve,
|
|
6514
6512
|
variables: { ids: [a.id] },
|
|
6515
6513
|
fetchPolicy: "no-cache",
|
|
6516
6514
|
errorPolicy: "all"
|
|
6517
|
-
}),
|
|
6518
|
-
return F.errors ? (F.errors.forEach((
|
|
6519
|
-
F.errors && console.log("Server Error:",
|
|
6520
|
-
}), null) :
|
|
6515
|
+
}), U = (S = F.data) == null ? void 0 : S.transactions[0].workflowState;
|
|
6516
|
+
return F.errors ? (F.errors.forEach((b) => {
|
|
6517
|
+
F.errors && console.log("Server Error:", b.message);
|
|
6518
|
+
}), null) : U ?? null;
|
|
6521
6519
|
})() || (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 = (
|
|
6520
|
+
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
6521
|
const F = {};
|
|
6524
|
-
let
|
|
6522
|
+
let U = 0;
|
|
6525
6523
|
if (Object.keys(n).length > 0)
|
|
6526
|
-
for (const
|
|
6527
|
-
const
|
|
6528
|
-
for (let W = 0; W <
|
|
6529
|
-
const q =
|
|
6524
|
+
for (const S of Object.keys(n)) {
|
|
6525
|
+
const b = n[S], V = A.steps.find((W) => W.stepName === S);
|
|
6526
|
+
for (let W = 0; W < b.selections.length; ++W) {
|
|
6527
|
+
const q = b.selections[W];
|
|
6530
6528
|
if (V && (!Y || V.option && (V.option.variants || []).length > 1 && !V.data.hideSelectionInCart && !V.data.hideSelectionsInCart)) {
|
|
6531
|
-
const
|
|
6532
|
-
F[
|
|
6529
|
+
const bA = V.stepTitle;
|
|
6530
|
+
F[bA] ? F[bA].push({
|
|
6533
6531
|
id: q.id || "",
|
|
6534
6532
|
name: q.name,
|
|
6535
6533
|
priceModifier: q.priceModifier
|
|
6536
|
-
}) : F[
|
|
6534
|
+
}) : F[bA] = [
|
|
6537
6535
|
{
|
|
6538
6536
|
id: q.id || "",
|
|
6539
6537
|
name: q.name,
|
|
@@ -6541,18 +6539,18 @@ const ct = M`
|
|
|
6541
6539
|
}
|
|
6542
6540
|
];
|
|
6543
6541
|
}
|
|
6544
|
-
|
|
6542
|
+
U += q.priceModifier;
|
|
6545
6543
|
}
|
|
6546
6544
|
}
|
|
6547
|
-
return [F,
|
|
6548
|
-
}, [
|
|
6549
|
-
Object.keys(
|
|
6550
|
-
), [
|
|
6551
|
-
Object.keys(
|
|
6545
|
+
return [F, U];
|
|
6546
|
+
}, [h] = await Q(!0), u = Object.fromEntries(
|
|
6547
|
+
Object.keys(h).map((Y) => [Y, h[Y].map((F) => F.id)])
|
|
6548
|
+
), [f] = await Q(!1), p = Object.fromEntries(
|
|
6549
|
+
Object.keys(f).map((Y) => [
|
|
6552
6550
|
Y,
|
|
6553
|
-
|
|
6551
|
+
f[Y].map((F) => F.id)
|
|
6554
6552
|
])
|
|
6555
|
-
),
|
|
6553
|
+
), D = await i(E);
|
|
6556
6554
|
return {
|
|
6557
6555
|
designDetails: (() => {
|
|
6558
6556
|
const Y = {
|
|
@@ -6564,29 +6562,29 @@ const ct = M`
|
|
|
6564
6562
|
workflowId: A.id,
|
|
6565
6563
|
transactionId: a.id,
|
|
6566
6564
|
useThreeDimPreview: !!E,
|
|
6567
|
-
previewImage:
|
|
6565
|
+
previewImage: D
|
|
6568
6566
|
};
|
|
6569
6567
|
if (w) {
|
|
6570
6568
|
const F = [];
|
|
6571
|
-
for (const [
|
|
6572
|
-
F.push({ key:
|
|
6569
|
+
for (const [U, S] of Object.entries(w))
|
|
6570
|
+
F.push({ key: U, value: S });
|
|
6573
6571
|
Y.metadata = F;
|
|
6574
6572
|
}
|
|
6575
6573
|
if (u) {
|
|
6576
6574
|
const F = [];
|
|
6577
|
-
for (const [
|
|
6578
|
-
F.push({ key:
|
|
6575
|
+
for (const [U, S] of Object.entries(p))
|
|
6576
|
+
F.push({ key: U, ids: S });
|
|
6579
6577
|
Y.selectedVariants = F;
|
|
6580
6578
|
}
|
|
6581
6579
|
return Y;
|
|
6582
6580
|
})(),
|
|
6583
|
-
cartSelectionsWithPrices:
|
|
6584
|
-
cartMetadata:
|
|
6581
|
+
cartSelectionsWithPrices: h,
|
|
6582
|
+
cartMetadata: C
|
|
6585
6583
|
};
|
|
6586
|
-
}, Bn = async (g, A, e, t, a, n, s, i,
|
|
6587
|
-
var u,
|
|
6588
|
-
|
|
6589
|
-
const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata:
|
|
6584
|
+
}, Bn = async (g, A, e, t, a, n, s, i, r, o, c, B, l) => {
|
|
6585
|
+
var u, f, p;
|
|
6586
|
+
r("workflow.steps.finish.finalize.buildingLayouts");
|
|
6587
|
+
const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await Bt(
|
|
6590
6588
|
g,
|
|
6591
6589
|
A,
|
|
6592
6590
|
e,
|
|
@@ -6597,24 +6595,24 @@ const ct = M`
|
|
|
6597
6595
|
B,
|
|
6598
6596
|
l
|
|
6599
6597
|
);
|
|
6600
|
-
|
|
6598
|
+
r("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await o(c);
|
|
6601
6599
|
const w = await rn(d), Q = (u = w == null ? void 0 : w.transaction) == null ? void 0 : u.previewImageLink;
|
|
6602
6600
|
if (!(w != null && w.transaction))
|
|
6603
6601
|
throw new Error("Failed to create design");
|
|
6604
|
-
|
|
6605
|
-
const
|
|
6602
|
+
r("workflow.steps.finish.finalize.updatingTransaction");
|
|
6603
|
+
const h = w.transaction;
|
|
6606
6604
|
return n.bulk ? ln(
|
|
6607
|
-
|
|
6605
|
+
h,
|
|
6608
6606
|
a,
|
|
6609
6607
|
Q,
|
|
6610
|
-
(
|
|
6608
|
+
(f = w == null ? void 0 : w.processExecution) == null ? void 0 : f.id
|
|
6611
6609
|
) : await lt(
|
|
6612
|
-
|
|
6610
|
+
h,
|
|
6613
6611
|
a,
|
|
6614
6612
|
A,
|
|
6615
6613
|
E,
|
|
6616
6614
|
w == null ? void 0 : w.sku,
|
|
6617
|
-
|
|
6615
|
+
C,
|
|
6618
6616
|
Q,
|
|
6619
6617
|
(p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
|
|
6620
6618
|
);
|
|
@@ -6625,16 +6623,16 @@ const ct = M`
|
|
|
6625
6623
|
})
|
|
6626
6624
|
);
|
|
6627
6625
|
const t = await (async () => {
|
|
6628
|
-
var
|
|
6629
|
-
const i = await
|
|
6626
|
+
var r;
|
|
6627
|
+
const i = await N.getShadowGraphqlClient().query({
|
|
6630
6628
|
query: Ve,
|
|
6631
|
-
variables: { ids: g.map((
|
|
6629
|
+
variables: { ids: g.map((o) => o.transaction.id) },
|
|
6632
6630
|
fetchPolicy: "no-cache",
|
|
6633
6631
|
errorPolicy: "all"
|
|
6634
6632
|
});
|
|
6635
|
-
return i.errors ? (i.errors.forEach((
|
|
6636
|
-
i.errors && console.log("Server Error:",
|
|
6637
|
-
}), null) : (
|
|
6633
|
+
return i.errors ? (i.errors.forEach((o) => {
|
|
6634
|
+
i.errors && console.log("Server Error:", o.message);
|
|
6635
|
+
}), null) : (r = i.data) != null && r.transactions ? i.data.transactions.map((o) => o.workflowState ?? null) : null;
|
|
6638
6636
|
})(), a = await Promise.all(
|
|
6639
6637
|
g.map(async (s, i) => await Bt(
|
|
6640
6638
|
s.workflowManager,
|
|
@@ -6657,14 +6655,14 @@ const ct = M`
|
|
|
6657
6655
|
return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
|
|
6658
6656
|
n.map(async (s, i) => {
|
|
6659
6657
|
var B;
|
|
6660
|
-
const
|
|
6658
|
+
const r = g[i], o = a[i], c = s.transaction;
|
|
6661
6659
|
return await lt(
|
|
6662
6660
|
c,
|
|
6663
|
-
|
|
6664
|
-
|
|
6665
|
-
|
|
6661
|
+
r.product,
|
|
6662
|
+
r.workflow,
|
|
6663
|
+
o.cartSelectionsWithPrices,
|
|
6666
6664
|
s.sku,
|
|
6667
|
-
|
|
6665
|
+
o.cartMetadata,
|
|
6668
6666
|
//lineItemImageLink,
|
|
6669
6667
|
void 0,
|
|
6670
6668
|
(B = s.processExecution) == null ? void 0 : B.id
|
|
@@ -6693,7 +6691,7 @@ class wn {
|
|
|
6693
6691
|
*/
|
|
6694
6692
|
async getSavedDesigns() {
|
|
6695
6693
|
if (this.storageMethod === "Local") {
|
|
6696
|
-
const A =
|
|
6694
|
+
const A = x.get(this.localPersistenceKey);
|
|
6697
6695
|
return A ? JSON.parse(A) : [];
|
|
6698
6696
|
}
|
|
6699
6697
|
throw new v("Unexpected storage method requested");
|
|
@@ -6733,7 +6731,7 @@ class wn {
|
|
|
6733
6731
|
}
|
|
6734
6732
|
async setDesigns(A) {
|
|
6735
6733
|
if (this.storageMethod === "Local") {
|
|
6736
|
-
|
|
6734
|
+
x.set(this.localPersistenceKey, JSON.stringify(A));
|
|
6737
6735
|
return;
|
|
6738
6736
|
}
|
|
6739
6737
|
throw new v("Unexpected storage method requested");
|
|
@@ -6749,14 +6747,14 @@ class CA {
|
|
|
6749
6747
|
) && this.save();
|
|
6750
6748
|
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((s, i) => {
|
|
6751
6749
|
try {
|
|
6752
|
-
n.toBlob((
|
|
6753
|
-
if (
|
|
6754
|
-
const
|
|
6755
|
-
s(
|
|
6750
|
+
n.toBlob((r) => {
|
|
6751
|
+
if (r) {
|
|
6752
|
+
const o = URL.createObjectURL(r);
|
|
6753
|
+
s(o);
|
|
6756
6754
|
}
|
|
6757
6755
|
});
|
|
6758
|
-
} catch (
|
|
6759
|
-
i(
|
|
6756
|
+
} catch (r) {
|
|
6757
|
+
i(r);
|
|
6760
6758
|
}
|
|
6761
6759
|
}), !e.workflow)
|
|
6762
6760
|
throw new Error("No Workflow ID provided.");
|
|
@@ -6785,11 +6783,11 @@ class CA {
|
|
|
6785
6783
|
e.isReloadedTransaction
|
|
6786
6784
|
), this.workflowManager.addSelectionCallback((n) => {
|
|
6787
6785
|
const s = n.traversableScenes.map((i) => {
|
|
6788
|
-
const
|
|
6786
|
+
const r = i.renderableSteps.map((o) => o.stepName);
|
|
6789
6787
|
return {
|
|
6790
6788
|
id: i.name,
|
|
6791
6789
|
title: i.title,
|
|
6792
|
-
renderableSteps:
|
|
6790
|
+
renderableSteps: r
|
|
6793
6791
|
};
|
|
6794
6792
|
});
|
|
6795
6793
|
this.renderableScenes = s, this.renderableSceneCallbacks.forEach((i) => i(s));
|
|
@@ -6808,7 +6806,7 @@ class CA {
|
|
|
6808
6806
|
return this.workflowManager;
|
|
6809
6807
|
}
|
|
6810
6808
|
async updateVariationRecords(A) {
|
|
6811
|
-
await
|
|
6809
|
+
await N.getShadowGraphqlClient().mutate({
|
|
6812
6810
|
mutation: da,
|
|
6813
6811
|
variables: {
|
|
6814
6812
|
transactionId: this.workflowManager.getTransaction().id,
|
|
@@ -6824,8 +6822,8 @@ class CA {
|
|
|
6824
6822
|
});
|
|
6825
6823
|
}
|
|
6826
6824
|
async createPreviewImage(A, e) {
|
|
6827
|
-
var
|
|
6828
|
-
const t = this.workflowManager.getWorkflow(), a = (
|
|
6825
|
+
var h, u;
|
|
6826
|
+
const t = this.workflowManager.getWorkflow(), a = (h = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : h.lookAtAnimation;
|
|
6829
6827
|
if (A) {
|
|
6830
6828
|
if (!a)
|
|
6831
6829
|
throw new Error("Failed to generate cart preview image!");
|
|
@@ -6833,9 +6831,9 @@ class CA {
|
|
|
6833
6831
|
}
|
|
6834
6832
|
let n = 2048;
|
|
6835
6833
|
e && e <= 2048 && (n = e);
|
|
6836
|
-
const s = yA(n, n), i = this.commandContext.getAllLayouts(),
|
|
6834
|
+
const s = yA(n, n), i = this.commandContext.getAllLayouts(), r = t.defaultPreviewPanelIndex || 0, o = t.panels[r], c = i.find((f) => {
|
|
6837
6835
|
var p;
|
|
6838
|
-
return ((p =
|
|
6836
|
+
return ((p = f.layoutState) == null ? void 0 : p.layout.panelId) === (o == null ? void 0 : o.name);
|
|
6839
6837
|
}) || i[0], B = c.layoutState.layout.previewRegion ? {
|
|
6840
6838
|
x: c.layoutState.layout.previewRegion.left,
|
|
6841
6839
|
y: c.layoutState.layout.previewRegion.top,
|
|
@@ -6854,8 +6852,8 @@ class CA {
|
|
|
6854
6852
|
purpose: Se.Print,
|
|
6855
6853
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
6856
6854
|
}
|
|
6857
|
-
}),
|
|
6858
|
-
await (await Ge.from(d,
|
|
6855
|
+
}), C = xe(E);
|
|
6856
|
+
await (await Ge.from(d, C, {
|
|
6859
6857
|
anonymousCrossOrigin: !0,
|
|
6860
6858
|
ignoreDimensions: !1,
|
|
6861
6859
|
createCanvas: yA,
|
|
@@ -6931,7 +6929,7 @@ class CA {
|
|
|
6931
6929
|
}
|
|
6932
6930
|
async assignCustomerDetails(A) {
|
|
6933
6931
|
var a, n, s;
|
|
6934
|
-
const t = (s = (n = (a = (await
|
|
6932
|
+
const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
|
|
6935
6933
|
mutation: rt,
|
|
6936
6934
|
variables: {
|
|
6937
6935
|
id: this.getWorkflowManager().getTransaction().id,
|
|
@@ -6940,14 +6938,14 @@ class CA {
|
|
|
6940
6938
|
}
|
|
6941
6939
|
})).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : n.stakeholders) == null ? void 0 : s.find(
|
|
6942
6940
|
(i) => {
|
|
6943
|
-
var
|
|
6944
|
-
return ((
|
|
6941
|
+
var r;
|
|
6942
|
+
return ((r = i.customer) == null ? void 0 : r.emailAddress) === A.emailAddress;
|
|
6945
6943
|
}
|
|
6946
6944
|
);
|
|
6947
6945
|
if (t != null && t.customer) {
|
|
6948
6946
|
this.getWorkflowManager().setTransactionCustomer(t.customer);
|
|
6949
|
-
const i =
|
|
6950
|
-
i.set(this.getWorkflowManager().getTransaction().id, t.customer.id),
|
|
6947
|
+
const i = x.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
|
|
6948
|
+
i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), x.setMap("transactionCustomerIds", i);
|
|
6951
6949
|
}
|
|
6952
6950
|
}
|
|
6953
6951
|
attachRenderableSceneListener(A) {
|
|
@@ -6961,10 +6959,10 @@ class CA {
|
|
|
6961
6959
|
throw new v("State undefined!");
|
|
6962
6960
|
const a = {
|
|
6963
6961
|
title: await (async () => {
|
|
6964
|
-
var
|
|
6962
|
+
var r;
|
|
6965
6963
|
if (A)
|
|
6966
6964
|
return A;
|
|
6967
|
-
const n = this.getWorkflowManager().getTransaction().id, i = (
|
|
6965
|
+
const n = this.getWorkflowManager().getTransaction().id, i = (r = (await zA.getSavedDesigns()).find((o) => o.transactionId === n)) == null ? void 0 : r.title;
|
|
6968
6966
|
return i || "My design";
|
|
6969
6967
|
})(),
|
|
6970
6968
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
@@ -7017,13 +7015,13 @@ class CA {
|
|
|
7017
7015
|
var a;
|
|
7018
7016
|
const A = /* @__PURE__ */ new Map(), e = this.getWorkflowManager().getWorkflowMetadata(), t = this.getWorkflowManager().getWorkflowSelections();
|
|
7019
7017
|
return Object.keys(e).forEach((n) => {
|
|
7020
|
-
const s = this.workflowManager.getWorkflow().steps.find((
|
|
7018
|
+
const s = this.workflowManager.getWorkflow().steps.find((r) => r.stepName === n);
|
|
7021
7019
|
if (!s)
|
|
7022
7020
|
return;
|
|
7023
7021
|
A.has(s.stepTitle) || A.set(s.stepTitle, {});
|
|
7024
7022
|
const i = e[n];
|
|
7025
|
-
Object.keys(i).forEach((
|
|
7026
|
-
A.get(s.stepTitle)[
|
|
7023
|
+
Object.keys(i).forEach((r) => {
|
|
7024
|
+
A.get(s.stepTitle)[r] = i[r];
|
|
7027
7025
|
});
|
|
7028
7026
|
}), (a = Object.keys(t)) == null || a.forEach((n) => {
|
|
7029
7027
|
const s = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === n);
|
|
@@ -7046,16 +7044,16 @@ const En = [
|
|
|
7046
7044
|
], hn = async (g, A, e) => {
|
|
7047
7045
|
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
7046
|
i.searchParams.append("video", he(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
|
|
7049
|
-
const
|
|
7047
|
+
const r = i.toString(), c = `data:image/svg+xml;base64,${he(await be(r, { type: "svg" }))}`, B = (d) => {
|
|
7050
7048
|
const E = g.find((w) => w.panelId === d.panelId);
|
|
7051
7049
|
if (!E)
|
|
7052
|
-
throw new
|
|
7053
|
-
const
|
|
7050
|
+
throw new L(d);
|
|
7051
|
+
const C = k();
|
|
7054
7052
|
return new J(
|
|
7055
7053
|
{
|
|
7056
|
-
id:
|
|
7054
|
+
id: C,
|
|
7057
7055
|
src: c,
|
|
7058
|
-
type:
|
|
7056
|
+
type: H.Image,
|
|
7059
7057
|
y: d.top,
|
|
7060
7058
|
x: d.left,
|
|
7061
7059
|
width: d.width,
|
|
@@ -7075,17 +7073,17 @@ const En = [
|
|
|
7075
7073
|
try {
|
|
7076
7074
|
const i = Rt(a, t.option);
|
|
7077
7075
|
i && (A[t.stepName] = { selectedVariants: [i] });
|
|
7078
|
-
const
|
|
7079
|
-
var
|
|
7076
|
+
const r = async (o) => {
|
|
7077
|
+
var C;
|
|
7080
7078
|
const c = await Pt(
|
|
7081
|
-
|
|
7079
|
+
o || {
|
|
7082
7080
|
width: 1,
|
|
7083
7081
|
height: 1
|
|
7084
7082
|
},
|
|
7085
|
-
(
|
|
7086
|
-
), B = await Ae(c), l = k(), d = g.find((w) => w.panelId ===
|
|
7083
|
+
(C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
|
|
7084
|
+
), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === o.panelId);
|
|
7087
7085
|
if (!d)
|
|
7088
|
-
throw new
|
|
7086
|
+
throw new L(o);
|
|
7089
7087
|
const E = ee(s, B, {
|
|
7090
7088
|
scale: a.scale,
|
|
7091
7089
|
left: a.x,
|
|
@@ -7098,20 +7096,20 @@ const En = [
|
|
|
7098
7096
|
path: B.path,
|
|
7099
7097
|
dataWidth: B.width,
|
|
7100
7098
|
dataHeight: B.height,
|
|
7101
|
-
type:
|
|
7099
|
+
type: H.Frame,
|
|
7102
7100
|
focalBlur: t.data.focalBlur,
|
|
7103
7101
|
focalBlurStrength: t.data.focalBlurStrength,
|
|
7104
7102
|
focalBlurRadius: t.data.focalBlurRadius,
|
|
7105
7103
|
forceImageCover: t.data.forceImageCover,
|
|
7106
|
-
x:
|
|
7107
|
-
y:
|
|
7108
|
-
width:
|
|
7109
|
-
height:
|
|
7110
|
-
layer:
|
|
7111
|
-
layerIndex:
|
|
7112
|
-
rotation:
|
|
7113
|
-
scaleX:
|
|
7114
|
-
scaleY:
|
|
7104
|
+
x: o.left,
|
|
7105
|
+
y: o.top,
|
|
7106
|
+
width: o.width,
|
|
7107
|
+
height: o.height,
|
|
7108
|
+
layer: o.layer,
|
|
7109
|
+
layerIndex: o.layerIndex,
|
|
7110
|
+
rotation: o.rotation,
|
|
7111
|
+
scaleX: o.width / B.width,
|
|
7112
|
+
scaleY: o.height / B.height,
|
|
7115
7113
|
pattern: void 0
|
|
7116
7114
|
},
|
|
7117
7115
|
d
|
|
@@ -7119,12 +7117,12 @@ const En = [
|
|
|
7119
7117
|
new Me(l, s, E)
|
|
7120
7118
|
];
|
|
7121
7119
|
};
|
|
7122
|
-
return (await Promise.all(t.data.regions.map((
|
|
7120
|
+
return (await Promise.all(t.data.regions.map((o) => r(o)))).flat();
|
|
7123
7121
|
} catch (i) {
|
|
7124
7122
|
return console.error(i), [];
|
|
7125
7123
|
}
|
|
7126
7124
|
}, Qn = async (g, A, e, t) => {
|
|
7127
|
-
var p,
|
|
7125
|
+
var p, D;
|
|
7128
7126
|
const a = e.data, n = t.option;
|
|
7129
7127
|
if (!n)
|
|
7130
7128
|
return console.error(`No option for step ${t.stepName}.`), [];
|
|
@@ -7134,47 +7132,47 @@ const En = [
|
|
|
7134
7132
|
if (!s.asset)
|
|
7135
7133
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7136
7134
|
A[t.stepName] = { selectedVariants: [s] };
|
|
7137
|
-
const i = (
|
|
7135
|
+
const i = (D = s.asset) == null ? void 0 : D.fileLink;
|
|
7138
7136
|
if (!i)
|
|
7139
7137
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7140
|
-
const
|
|
7138
|
+
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
7139
|
if (!E)
|
|
7142
7140
|
return console.error("Failed to read SVG."), [];
|
|
7143
7141
|
He(E);
|
|
7144
|
-
const
|
|
7142
|
+
const C = {};
|
|
7145
7143
|
Ht(E, (m) => {
|
|
7146
7144
|
En.includes(m.tagName) && !m.attributes.getNamedItem("fill") && m.setAttribute("fill", "#000000");
|
|
7147
|
-
const
|
|
7148
|
-
if (
|
|
7149
|
-
const F =
|
|
7150
|
-
m.classList.add(
|
|
7145
|
+
const M = m.attributes.getNamedItem("fill");
|
|
7146
|
+
if (M && M.value !== "none") {
|
|
7147
|
+
const F = M.value, S = `spiff-fill-${F.replace(/\W/g, "")}`;
|
|
7148
|
+
m.classList.add(S), C[S] = { browserValue: F };
|
|
7151
7149
|
}
|
|
7152
7150
|
const Y = m.attributes.getNamedItem("stroke");
|
|
7153
7151
|
if (Y && Y.value !== "none") {
|
|
7154
|
-
const F = Y.value,
|
|
7155
|
-
m.classList.add(
|
|
7152
|
+
const F = Y.value, S = `spiff-stroke-${F.replace(/\W/g, "")}`;
|
|
7153
|
+
m.classList.add(S), C[S] = { browserValue: F };
|
|
7156
7154
|
}
|
|
7157
7155
|
});
|
|
7158
|
-
const Q = Ue().serializeToString(E),
|
|
7159
|
-
if (
|
|
7160
|
-
for (const [m,
|
|
7161
|
-
for (const Y of Object.keys(
|
|
7162
|
-
if (
|
|
7163
|
-
|
|
7156
|
+
const Q = Ue().serializeToString(E), h = a.colors;
|
|
7157
|
+
if (h) {
|
|
7158
|
+
for (const [m, M] of Object.entries(C))
|
|
7159
|
+
for (const Y of Object.keys(h))
|
|
7160
|
+
if (M.browserValue === Y) {
|
|
7161
|
+
C[m] = { browserValue: h[Y] };
|
|
7164
7162
|
break;
|
|
7165
7163
|
}
|
|
7166
7164
|
}
|
|
7167
7165
|
const u = (m) => {
|
|
7168
|
-
const
|
|
7169
|
-
if (!
|
|
7170
|
-
throw new
|
|
7166
|
+
const M = g.find((F) => F.panelId === m.panelId);
|
|
7167
|
+
if (!M)
|
|
7168
|
+
throw new L(m);
|
|
7171
7169
|
const Y = k();
|
|
7172
7170
|
return new J(
|
|
7173
7171
|
{
|
|
7174
|
-
colors:
|
|
7172
|
+
colors: C,
|
|
7175
7173
|
id: Y,
|
|
7176
7174
|
svg: Q,
|
|
7177
|
-
type:
|
|
7175
|
+
type: H.Illustration,
|
|
7178
7176
|
y: m.top,
|
|
7179
7177
|
x: m.left,
|
|
7180
7178
|
rotation: m.rotation,
|
|
@@ -7184,35 +7182,35 @@ const En = [
|
|
|
7184
7182
|
layerIndex: m.layerIndex,
|
|
7185
7183
|
immutable: m.immutable
|
|
7186
7184
|
},
|
|
7187
|
-
|
|
7185
|
+
M
|
|
7188
7186
|
);
|
|
7189
|
-
},
|
|
7187
|
+
}, f = t.data.regions;
|
|
7190
7188
|
try {
|
|
7191
|
-
return
|
|
7189
|
+
return f.map(u);
|
|
7192
7190
|
} catch (m) {
|
|
7193
7191
|
return console.error(m), [];
|
|
7194
7192
|
}
|
|
7195
7193
|
}, 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
|
|
7194
|
+
const t = await it(e.data.module), a = A.data, n = (i, r) => {
|
|
7195
|
+
const o = g.find((B) => B.panelId === r.panelId);
|
|
7196
|
+
if (!o)
|
|
7197
|
+
throw new L(r);
|
|
7200
7198
|
const c = k();
|
|
7201
7199
|
return new J(
|
|
7202
7200
|
{
|
|
7203
7201
|
colors: {},
|
|
7204
7202
|
id: c,
|
|
7205
7203
|
svg: i,
|
|
7206
|
-
type:
|
|
7207
|
-
y:
|
|
7208
|
-
x:
|
|
7209
|
-
rotation:
|
|
7210
|
-
width:
|
|
7211
|
-
height:
|
|
7212
|
-
layer:
|
|
7213
|
-
layerIndex:
|
|
7204
|
+
type: H.Illustration,
|
|
7205
|
+
y: r.top,
|
|
7206
|
+
x: r.left,
|
|
7207
|
+
rotation: r.rotation,
|
|
7208
|
+
width: r.width,
|
|
7209
|
+
height: r.height,
|
|
7210
|
+
layer: r.layer,
|
|
7211
|
+
layerIndex: r.layerIndex
|
|
7214
7212
|
},
|
|
7215
|
-
|
|
7213
|
+
o
|
|
7216
7214
|
);
|
|
7217
7215
|
}, s = e.data.regions;
|
|
7218
7216
|
try {
|
|
@@ -7236,16 +7234,16 @@ const En = [
|
|
|
7236
7234
|
const i = (B = s.asset) == null ? void 0 : B.fileLink;
|
|
7237
7235
|
if (!i)
|
|
7238
7236
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
7239
|
-
const
|
|
7240
|
-
const d = g.find((
|
|
7237
|
+
const r = (l) => {
|
|
7238
|
+
const d = g.find((C) => C.panelId === l.panelId);
|
|
7241
7239
|
if (!d)
|
|
7242
|
-
throw new
|
|
7240
|
+
throw new L(l);
|
|
7243
7241
|
const E = k();
|
|
7244
7242
|
return new J(
|
|
7245
7243
|
{
|
|
7246
7244
|
id: E,
|
|
7247
7245
|
src: i,
|
|
7248
|
-
type:
|
|
7246
|
+
type: H.Image,
|
|
7249
7247
|
y: l.top,
|
|
7250
7248
|
x: l.left,
|
|
7251
7249
|
rotation: l.rotation,
|
|
@@ -7258,25 +7256,25 @@ const En = [
|
|
|
7258
7256
|
},
|
|
7259
7257
|
d
|
|
7260
7258
|
);
|
|
7261
|
-
},
|
|
7259
|
+
}, o = t.data.regions;
|
|
7262
7260
|
try {
|
|
7263
|
-
return
|
|
7261
|
+
return o.map(r);
|
|
7264
7262
|
} catch (l) {
|
|
7265
7263
|
return console.error(l), [];
|
|
7266
7264
|
}
|
|
7267
7265
|
}, pn = async (g, A, e, t) => {
|
|
7268
|
-
var
|
|
7266
|
+
var o;
|
|
7269
7267
|
const a = e.data, n = t.option;
|
|
7270
7268
|
if (!n)
|
|
7271
7269
|
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7272
|
-
const s = ((
|
|
7270
|
+
const s = ((o = n.variants) == null ? void 0 : o.find((c) => c.id === a.colorVariantId)) || UA(n);
|
|
7273
7271
|
if (!s)
|
|
7274
7272
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
7275
7273
|
A[t.stepName] = { selectedVariants: [s] };
|
|
7276
7274
|
const i = (c) => {
|
|
7277
7275
|
const B = g.find((w) => w.panelId === c.panelId);
|
|
7278
7276
|
if (!B)
|
|
7279
|
-
throw new
|
|
7277
|
+
throw new L(c);
|
|
7280
7278
|
const l = `
|
|
7281
7279
|
<svg
|
|
7282
7280
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -7297,13 +7295,13 @@ const En = [
|
|
|
7297
7295
|
fill="${s == null ? void 0 : s.color}"
|
|
7298
7296
|
/>
|
|
7299
7297
|
</svg>
|
|
7300
|
-
`, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } },
|
|
7298
|
+
`, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = k();
|
|
7301
7299
|
return new J(
|
|
7302
7300
|
{
|
|
7303
7301
|
colors: E,
|
|
7304
|
-
id:
|
|
7302
|
+
id: C,
|
|
7305
7303
|
svg: l,
|
|
7306
|
-
type:
|
|
7304
|
+
type: H.Illustration,
|
|
7307
7305
|
y: c.top,
|
|
7308
7306
|
x: c.left,
|
|
7309
7307
|
rotation: c.rotation,
|
|
@@ -7315,61 +7313,61 @@ const En = [
|
|
|
7315
7313
|
},
|
|
7316
7314
|
B
|
|
7317
7315
|
);
|
|
7318
|
-
},
|
|
7316
|
+
}, r = t.data.regions;
|
|
7319
7317
|
try {
|
|
7320
|
-
return
|
|
7318
|
+
return r.map(i);
|
|
7321
7319
|
} catch (c) {
|
|
7322
7320
|
return console.error(c), [];
|
|
7323
7321
|
}
|
|
7324
7322
|
}, In = async (g, A, e) => {
|
|
7325
7323
|
const t = [], n = (() => {
|
|
7326
|
-
var
|
|
7327
|
-
return A.type === I.ProductOverlay ? e || ((
|
|
7328
|
-
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ?
|
|
7324
|
+
var o, c;
|
|
7325
|
+
return A.type === I.ProductOverlay ? e || ((o = A.data.asset) == null ? void 0 : o.fileLink) || "" : ((c = A.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
7326
|
+
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), r = A.data.regions;
|
|
7329
7327
|
if (i === "image")
|
|
7330
7328
|
try {
|
|
7331
|
-
|
|
7332
|
-
const c = g.find((l) => l.panelId ===
|
|
7329
|
+
r.forEach((o) => {
|
|
7330
|
+
const c = g.find((l) => l.panelId === o.panelId);
|
|
7333
7331
|
if (!c)
|
|
7334
|
-
throw new
|
|
7332
|
+
throw new L(o);
|
|
7335
7333
|
const B = {
|
|
7336
7334
|
id: k(),
|
|
7337
7335
|
src: n,
|
|
7338
7336
|
type: i,
|
|
7339
|
-
y:
|
|
7340
|
-
x:
|
|
7341
|
-
width:
|
|
7342
|
-
height:
|
|
7343
|
-
layer:
|
|
7344
|
-
layerIndex:
|
|
7337
|
+
y: o.top,
|
|
7338
|
+
x: o.left,
|
|
7339
|
+
width: o.width,
|
|
7340
|
+
height: o.height,
|
|
7341
|
+
layer: o.layer,
|
|
7342
|
+
layerIndex: o.layerIndex,
|
|
7345
7343
|
productOverlay: A.type === I.ProductOverlay ? !0 : void 0,
|
|
7346
7344
|
scaleX: 1,
|
|
7347
7345
|
scaleY: 1,
|
|
7348
|
-
rotation:
|
|
7346
|
+
rotation: o.rotation,
|
|
7349
7347
|
excludeFromExport: A.data.excludeFromPrint,
|
|
7350
7348
|
preserveAspectRatio: "none"
|
|
7351
7349
|
};
|
|
7352
7350
|
t.push(new J(B, c));
|
|
7353
7351
|
});
|
|
7354
|
-
} catch (
|
|
7355
|
-
console.error(
|
|
7352
|
+
} catch (o) {
|
|
7353
|
+
console.error(o);
|
|
7356
7354
|
}
|
|
7357
7355
|
else {
|
|
7358
|
-
const
|
|
7356
|
+
const o = await Z(n, !0), c = (B) => {
|
|
7359
7357
|
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
7358
|
if (!Q)
|
|
7361
7359
|
throw new rA("Failed to read SVG.");
|
|
7362
7360
|
return He(Q), Ue().serializeToString(Q);
|
|
7363
7361
|
};
|
|
7364
|
-
|
|
7362
|
+
r.forEach((B) => {
|
|
7365
7363
|
const l = g.find((E) => E.panelId === B.panelId);
|
|
7366
7364
|
if (!l)
|
|
7367
|
-
throw new
|
|
7365
|
+
throw new L(B);
|
|
7368
7366
|
const d = {
|
|
7369
7367
|
id: k(),
|
|
7370
7368
|
src: n,
|
|
7371
7369
|
asset_key: n,
|
|
7372
|
-
svg: c(
|
|
7370
|
+
svg: c(o),
|
|
7373
7371
|
colors: {},
|
|
7374
7372
|
type: i,
|
|
7375
7373
|
y: B.top,
|
|
@@ -7389,20 +7387,20 @@ const En = [
|
|
|
7389
7387
|
}
|
|
7390
7388
|
return t;
|
|
7391
7389
|
}, Dn = async (g, A, e, t) => {
|
|
7392
|
-
const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center",
|
|
7390
|
+
const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", r = () => {
|
|
7393
7391
|
var u;
|
|
7394
7392
|
const w = t.option;
|
|
7395
7393
|
if (!w)
|
|
7396
7394
|
return;
|
|
7397
|
-
const Q = ((u = w.variants) == null ? void 0 : u.find((
|
|
7395
|
+
const Q = ((u = w.variants) == null ? void 0 : u.find((f) => f.id === n.fontVariantId)) || UA(w);
|
|
7398
7396
|
if (!Q || !Q.asset)
|
|
7399
7397
|
return;
|
|
7400
7398
|
A[t.stepName] = { selectedVariants: [Q] };
|
|
7401
|
-
const
|
|
7402
|
-
if (
|
|
7403
|
-
return
|
|
7399
|
+
const h = Q.asset.fileLink;
|
|
7400
|
+
if (h)
|
|
7401
|
+
return h;
|
|
7404
7402
|
}, c = await (async () => {
|
|
7405
|
-
const w =
|
|
7403
|
+
const w = r();
|
|
7406
7404
|
if (!w)
|
|
7407
7405
|
return;
|
|
7408
7406
|
const Q = await te(w);
|
|
@@ -7417,14 +7415,14 @@ const En = [
|
|
|
7417
7415
|
const Q = w.colorOption;
|
|
7418
7416
|
if (!Q)
|
|
7419
7417
|
return;
|
|
7420
|
-
const
|
|
7421
|
-
return
|
|
7422
|
-
}, E = n.color || await d(t.data),
|
|
7423
|
-
for (const w of
|
|
7418
|
+
const h = z.getDefaultVariant(Q);
|
|
7419
|
+
return h == null ? void 0 : h.color;
|
|
7420
|
+
}, E = n.color || await d(t.data), C = t.data.regions;
|
|
7421
|
+
for (const w of C) {
|
|
7424
7422
|
const Q = g.find((u) => u.panelId === w.panelId);
|
|
7425
7423
|
if (!Q)
|
|
7426
7424
|
continue;
|
|
7427
|
-
const
|
|
7425
|
+
const h = {
|
|
7428
7426
|
stepName: e.name,
|
|
7429
7427
|
id: k(),
|
|
7430
7428
|
align: i(t.data),
|
|
@@ -7438,7 +7436,7 @@ const En = [
|
|
|
7438
7436
|
paths: t.data.paths,
|
|
7439
7437
|
rotation: w.rotation,
|
|
7440
7438
|
text: l,
|
|
7441
|
-
type:
|
|
7439
|
+
type: H.Textbox,
|
|
7442
7440
|
vertical: t.data.vertical,
|
|
7443
7441
|
verticalAlign: t.data.verticalAlign || "middle",
|
|
7444
7442
|
width: w.width,
|
|
@@ -7446,7 +7444,7 @@ const En = [
|
|
|
7446
7444
|
y: w.top
|
|
7447
7445
|
};
|
|
7448
7446
|
if (c) {
|
|
7449
|
-
const [u,
|
|
7447
|
+
const [u, f] = IA(
|
|
7450
7448
|
t.data.size || s,
|
|
7451
7449
|
c,
|
|
7452
7450
|
w,
|
|
@@ -7465,16 +7463,16 @@ const En = [
|
|
|
7465
7463
|
a.push(
|
|
7466
7464
|
new J(
|
|
7467
7465
|
{
|
|
7468
|
-
...
|
|
7466
|
+
...h,
|
|
7469
7467
|
fontSize: u,
|
|
7470
|
-
text:
|
|
7468
|
+
text: h.curved ? h.text : (f || []).join(`
|
|
7471
7469
|
`)
|
|
7472
7470
|
},
|
|
7473
7471
|
Q
|
|
7474
7472
|
)
|
|
7475
7473
|
);
|
|
7476
7474
|
} else
|
|
7477
|
-
a.push(new J(
|
|
7475
|
+
a.push(new J(h, Q));
|
|
7478
7476
|
}
|
|
7479
7477
|
return a;
|
|
7480
7478
|
}, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
|
|
@@ -7489,7 +7487,7 @@ const En = [
|
|
|
7489
7487
|
}) : !0, Fn = async (g, A, e, t) => {
|
|
7490
7488
|
const a = [], n = {};
|
|
7491
7489
|
for (const s of g) {
|
|
7492
|
-
const i = A.steps.find((
|
|
7490
|
+
const i = A.steps.find((r) => r.stepName === s.name);
|
|
7493
7491
|
if (i)
|
|
7494
7492
|
switch (i.type) {
|
|
7495
7493
|
case I.DigitalContent:
|
|
@@ -7637,8 +7635,8 @@ class yn {
|
|
|
7637
7635
|
}
|
|
7638
7636
|
}
|
|
7639
7637
|
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 =
|
|
7638
|
+
constructor(A, e, t, a, n, s, i, r) {
|
|
7639
|
+
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
7640
|
}
|
|
7643
7641
|
/**
|
|
7644
7642
|
* Returns the resolution expected for generated textures.
|
|
@@ -7678,33 +7676,33 @@ class Yn extends Xe {
|
|
|
7678
7676
|
return;
|
|
7679
7677
|
const e = A.layoutState.elements || [];
|
|
7680
7678
|
if (this.variationRecord) {
|
|
7681
|
-
const l = this.variationRecord.values.map((
|
|
7682
|
-
stepName:
|
|
7683
|
-
stepAspectType:
|
|
7684
|
-
value:
|
|
7679
|
+
const l = this.variationRecord.values.map((C) => ({
|
|
7680
|
+
stepName: C.stepName,
|
|
7681
|
+
stepAspectType: C.aspect,
|
|
7682
|
+
value: C.value
|
|
7685
7683
|
})), d = await xn(
|
|
7686
7684
|
Sn(l, this.workflow),
|
|
7687
7685
|
this.workflow,
|
|
7688
|
-
this.layouts.map((
|
|
7686
|
+
this.layouts.map((C) => C.layoutState.layout),
|
|
7689
7687
|
this.productOverlayImageUrl
|
|
7690
7688
|
), 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 ===
|
|
7689
|
+
((E == null ? void 0 : E.elements) || []).forEach((C) => {
|
|
7690
|
+
const w = e.find((Q) => Q.stepName === C.stepName);
|
|
7691
|
+
w && w.type === H.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
|
|
7694
7692
|
}), Gt(e);
|
|
7695
7693
|
}
|
|
7696
7694
|
const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
|
|
7697
|
-
let i,
|
|
7695
|
+
let i, r;
|
|
7698
7696
|
if (this.nonPOTSupport) {
|
|
7699
7697
|
const l = n / s;
|
|
7700
|
-
t / a < l ? (i = n,
|
|
7701
|
-
const E = this.resizeFit({ width: i, height:
|
|
7702
|
-
i = E.width,
|
|
7698
|
+
t / a < l ? (i = n, r = a * (n / t)) : (i = t * (s / a), r = s);
|
|
7699
|
+
const E = this.resizeFit({ width: i, height: r });
|
|
7700
|
+
i = E.width, r = E.height;
|
|
7703
7701
|
} else
|
|
7704
|
-
i = this.getDynamicTextureResolution().width,
|
|
7705
|
-
const
|
|
7702
|
+
i = this.getDynamicTextureResolution().width, r = this.getDynamicTextureResolution().height;
|
|
7703
|
+
const o = Ye(A.layoutState.layout, e, {
|
|
7706
7704
|
renderingConfiguration: { purpose: Se.ThreeD }
|
|
7707
|
-
}), c = xe(
|
|
7705
|
+
}), c = xe(o), B = await Ge.from(this.ctx, c, {
|
|
7708
7706
|
anonymousCrossOrigin: !0,
|
|
7709
7707
|
ignoreDimensions: !this.nonPOTSupport,
|
|
7710
7708
|
ignoreAnimation: !0,
|
|
@@ -7716,7 +7714,7 @@ class Yn extends Xe {
|
|
|
7716
7714
|
DOMParser: Re(),
|
|
7717
7715
|
fetch: _A
|
|
7718
7716
|
});
|
|
7719
|
-
B.resize(i,
|
|
7717
|
+
B.resize(i, r), await B.render(), this.onRender();
|
|
7720
7718
|
}
|
|
7721
7719
|
}
|
|
7722
7720
|
const Sn = (g, A) => {
|
|
@@ -7735,10 +7733,10 @@ const Sn = (g, A) => {
|
|
|
7735
7733
|
serializableWorkflow: { steps: [] },
|
|
7736
7734
|
layouts: {}
|
|
7737
7735
|
};
|
|
7738
|
-
a = new G(e.map((
|
|
7736
|
+
a = new G(e.map((r) => new Ut(r))).apply(a);
|
|
7739
7737
|
const s = await Fn(g, A, e, t);
|
|
7740
7738
|
return new G(s).apply(a);
|
|
7741
|
-
}, Nn =
|
|
7739
|
+
}, Nn = y`
|
|
7742
7740
|
fragment ProductFields on Product {
|
|
7743
7741
|
id
|
|
7744
7742
|
basePrice
|
|
@@ -7773,7 +7771,7 @@ const Sn = (g, A) => {
|
|
|
7773
7771
|
name
|
|
7774
7772
|
}
|
|
7775
7773
|
}
|
|
7776
|
-
`, Rn =
|
|
7774
|
+
`, Rn = y`
|
|
7777
7775
|
${Nn}
|
|
7778
7776
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
7779
7777
|
id
|
|
@@ -7783,7 +7781,7 @@ const Sn = (g, A) => {
|
|
|
7783
7781
|
...ProductFields
|
|
7784
7782
|
}
|
|
7785
7783
|
}
|
|
7786
|
-
`, dt =
|
|
7784
|
+
`, dt = y`
|
|
7787
7785
|
${Rn}
|
|
7788
7786
|
fragment ProductCollectionFields on ProductCollection {
|
|
7789
7787
|
id
|
|
@@ -7830,7 +7828,7 @@ const Sn = (g, A) => {
|
|
|
7830
7828
|
}
|
|
7831
7829
|
}
|
|
7832
7830
|
}
|
|
7833
|
-
`, Pn =
|
|
7831
|
+
`, Pn = y`
|
|
7834
7832
|
${dt}
|
|
7835
7833
|
query GetBundle($id: String!) {
|
|
7836
7834
|
bundles(ids: [$id]) {
|
|
@@ -7852,7 +7850,7 @@ const Sn = (g, A) => {
|
|
|
7852
7850
|
}
|
|
7853
7851
|
}
|
|
7854
7852
|
}
|
|
7855
|
-
`, Hn =
|
|
7853
|
+
`, Hn = y`
|
|
7856
7854
|
query GetBundleStakeholders($id: String!) {
|
|
7857
7855
|
bundles(ids: [$id]) {
|
|
7858
7856
|
id
|
|
@@ -7872,7 +7870,7 @@ const Sn = (g, A) => {
|
|
|
7872
7870
|
}
|
|
7873
7871
|
}
|
|
7874
7872
|
}
|
|
7875
|
-
`, Un =
|
|
7873
|
+
`, Un = y`
|
|
7876
7874
|
query GetBundlesForCustomer($id: String!) {
|
|
7877
7875
|
customers(ids: [$id]) {
|
|
7878
7876
|
bundleStakeholders {
|
|
@@ -7893,7 +7891,7 @@ const Sn = (g, A) => {
|
|
|
7893
7891
|
}
|
|
7894
7892
|
}
|
|
7895
7893
|
}
|
|
7896
|
-
`, Gn =
|
|
7894
|
+
`, Gn = y`
|
|
7897
7895
|
${dt}
|
|
7898
7896
|
mutation CreateBundle($collectionId: String) {
|
|
7899
7897
|
bundleCreate(collectionId: $collectionId) {
|
|
@@ -7912,25 +7910,25 @@ const Sn = (g, A) => {
|
|
|
7912
7910
|
}
|
|
7913
7911
|
}
|
|
7914
7912
|
}
|
|
7915
|
-
`, vn =
|
|
7913
|
+
`, vn = y`
|
|
7916
7914
|
mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
|
|
7917
7915
|
bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
|
|
7918
7916
|
id
|
|
7919
7917
|
}
|
|
7920
7918
|
}
|
|
7921
|
-
`, kn =
|
|
7919
|
+
`, kn = y`
|
|
7922
7920
|
mutation BundleAddTransaction($id: String!, $transactionId: String!) {
|
|
7923
7921
|
bundleAddTransaction(id: $id, transactionId: $transactionId) {
|
|
7924
7922
|
id
|
|
7925
7923
|
}
|
|
7926
7924
|
}
|
|
7927
|
-
`,
|
|
7925
|
+
`, bn = y`
|
|
7928
7926
|
mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
|
|
7929
7927
|
bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
|
|
7930
7928
|
id
|
|
7931
7929
|
}
|
|
7932
7930
|
}
|
|
7933
|
-
`,
|
|
7931
|
+
`, Jn = y`
|
|
7934
7932
|
mutation BundleRemoveTransaction(
|
|
7935
7933
|
$id: String!
|
|
7936
7934
|
$transactionId: String!
|
|
@@ -7945,7 +7943,7 @@ const Sn = (g, A) => {
|
|
|
7945
7943
|
id
|
|
7946
7944
|
}
|
|
7947
7945
|
}
|
|
7948
|
-
`, Tn =
|
|
7946
|
+
`, Tn = y`
|
|
7949
7947
|
mutation BundleRemoveTransactions(
|
|
7950
7948
|
$id: String!
|
|
7951
7949
|
$transactionIds: [String!]!
|
|
@@ -7960,7 +7958,7 @@ const Sn = (g, A) => {
|
|
|
7960
7958
|
id
|
|
7961
7959
|
}
|
|
7962
7960
|
}
|
|
7963
|
-
`, Ln =
|
|
7961
|
+
`, Ln = y`
|
|
7964
7962
|
mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
|
|
7965
7963
|
bundleAddStakeholder(id: $id, details: $details, type: $type) {
|
|
7966
7964
|
id
|
|
@@ -7980,7 +7978,7 @@ const Sn = (g, A) => {
|
|
|
7980
7978
|
}
|
|
7981
7979
|
}
|
|
7982
7980
|
}
|
|
7983
|
-
`, On =
|
|
7981
|
+
`, On = y`
|
|
7984
7982
|
mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
|
|
7985
7983
|
bundleUpdateStakeholders(id: $id, input: $input) {
|
|
7986
7984
|
id
|
|
@@ -8000,7 +7998,7 @@ const Sn = (g, A) => {
|
|
|
8000
7998
|
}
|
|
8001
7999
|
}
|
|
8002
8000
|
}
|
|
8003
|
-
`, zn =
|
|
8001
|
+
`, zn = y`
|
|
8004
8002
|
mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
|
|
8005
8003
|
bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
|
|
8006
8004
|
id
|
|
@@ -8105,8 +8103,8 @@ class ge {
|
|
|
8105
8103
|
var s;
|
|
8106
8104
|
return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
|
|
8107
8105
|
(i) => {
|
|
8108
|
-
var
|
|
8109
|
-
return i.globalPropertyConfigurationId === ((
|
|
8106
|
+
var r, o;
|
|
8107
|
+
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
8108
|
}
|
|
8111
8109
|
);
|
|
8112
8110
|
})
|
|
@@ -8132,7 +8130,7 @@ class jn extends ge {
|
|
|
8132
8130
|
const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
8133
8131
|
if (!e)
|
|
8134
8132
|
return Promise.resolve();
|
|
8135
|
-
const t = await
|
|
8133
|
+
const t = await T.getLocalOrFromServer(e);
|
|
8136
8134
|
return t ? this.applyImageSelection(t, A) : Promise.resolve();
|
|
8137
8135
|
}
|
|
8138
8136
|
async applyImageSelection(A, e) {
|
|
@@ -8252,7 +8250,7 @@ class Wn extends wt {
|
|
|
8252
8250
|
return this.getSharedSteps()[0].getCustomColor();
|
|
8253
8251
|
}
|
|
8254
8252
|
}
|
|
8255
|
-
const Xn =
|
|
8253
|
+
const Xn = y`
|
|
8256
8254
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
8257
8255
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
8258
8256
|
id
|
|
@@ -8262,7 +8260,7 @@ const Xn = M`
|
|
|
8262
8260
|
}
|
|
8263
8261
|
}
|
|
8264
8262
|
}
|
|
8265
|
-
`, qn =
|
|
8263
|
+
`, qn = y`
|
|
8266
8264
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
8267
8265
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
8268
8266
|
id
|
|
@@ -8272,7 +8270,7 @@ const Xn = M`
|
|
|
8272
8270
|
}
|
|
8273
8271
|
}
|
|
8274
8272
|
}
|
|
8275
|
-
`, Zn =
|
|
8273
|
+
`, Zn = y`
|
|
8276
8274
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
8277
8275
|
globalPropertyState(bundleId: $bundleId) {
|
|
8278
8276
|
id
|
|
@@ -8312,7 +8310,7 @@ class $n {
|
|
|
8312
8310
|
var e;
|
|
8313
8311
|
if (!this.globalPropertyState)
|
|
8314
8312
|
throw new Error("Global property state not initialized");
|
|
8315
|
-
const A = await
|
|
8313
|
+
const A = await N.getShadowGraphqlClient().mutate({
|
|
8316
8314
|
mutation: qn,
|
|
8317
8315
|
variables: {
|
|
8318
8316
|
id: this.globalPropertyState.id,
|
|
@@ -8326,7 +8324,7 @@ class $n {
|
|
|
8326
8324
|
}
|
|
8327
8325
|
async getOrCreateGlobalPropertyState() {
|
|
8328
8326
|
var t;
|
|
8329
|
-
const A = await
|
|
8327
|
+
const A = await N.getShadowGraphqlClient().query({
|
|
8330
8328
|
query: Zn,
|
|
8331
8329
|
errorPolicy: "all",
|
|
8332
8330
|
fetchPolicy: "no-cache",
|
|
@@ -8336,7 +8334,7 @@ class $n {
|
|
|
8336
8334
|
});
|
|
8337
8335
|
if (A.data.globalPropertyState && A.data.globalPropertyState.id)
|
|
8338
8336
|
return A.data.globalPropertyState;
|
|
8339
|
-
const e = await
|
|
8337
|
+
const e = await N.getShadowGraphqlClient().mutate({
|
|
8340
8338
|
mutation: Xn,
|
|
8341
8339
|
variables: {
|
|
8342
8340
|
bundleId: this.bundleId
|
|
@@ -8382,7 +8380,7 @@ class _n {
|
|
|
8382
8380
|
this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
|
|
8383
8381
|
transactions: []
|
|
8384
8382
|
};
|
|
8385
|
-
const s = this.state.transactions.find((
|
|
8383
|
+
const s = this.state.transactions.find((r) => r.transactionId === n);
|
|
8386
8384
|
s ? s.transform = e : this.state.transactions.push({
|
|
8387
8385
|
transactionId: n,
|
|
8388
8386
|
transform: e
|
|
@@ -8476,9 +8474,9 @@ class es {
|
|
|
8476
8474
|
*/
|
|
8477
8475
|
getIntegrationByType(A, e) {
|
|
8478
8476
|
const a = (this.product.integrationProducts || []).find((n) => {
|
|
8479
|
-
var
|
|
8480
|
-
const s = (
|
|
8481
|
-
return s && i &&
|
|
8477
|
+
var o, c, B;
|
|
8478
|
+
const s = (o = n.integration) == null ? void 0 : o.type, i = ((c = n.integration) == null ? void 0 : c.type) === A, r = e ? ((B = n.integration) == null ? void 0 : B.externalIntegrationId) === e : !0;
|
|
8479
|
+
return s && i && r;
|
|
8482
8480
|
});
|
|
8483
8481
|
if (!a)
|
|
8484
8482
|
throw new Error(
|
|
@@ -8492,7 +8490,7 @@ class es {
|
|
|
8492
8490
|
getDefaultWorkflow() {
|
|
8493
8491
|
const A = this.product.workflows || [];
|
|
8494
8492
|
if (A.length === 0)
|
|
8495
|
-
throw new
|
|
8493
|
+
throw new P(
|
|
8496
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."
|
|
8497
8495
|
);
|
|
8498
8496
|
const e = this.productResource.workflowId;
|
|
@@ -8594,11 +8592,11 @@ class as {
|
|
|
8594
8592
|
class fe {
|
|
8595
8593
|
constructor(A, e, t, a) {
|
|
8596
8594
|
var n, s, i;
|
|
8597
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((
|
|
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(
|
|
8598
8596
|
this.id,
|
|
8599
8597
|
this.checkConditionalHandlesChanged.bind(this)
|
|
8600
8598
|
), this.globalPropertyHandleService = new Kn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
|
|
8601
|
-
((i = e.transactions) == null ? void 0 : i.map((
|
|
8599
|
+
((i = e.transactions) == null ? void 0 : i.map((r) => r.id)) || [],
|
|
8602
8600
|
a
|
|
8603
8601
|
);
|
|
8604
8602
|
}
|
|
@@ -8670,9 +8668,9 @@ class fe {
|
|
|
8670
8668
|
throw new Error(
|
|
8671
8669
|
"Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
|
|
8672
8670
|
);
|
|
8673
|
-
const a =
|
|
8674
|
-
await
|
|
8675
|
-
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,
|
|
8676
8674
|
variables: {
|
|
8677
8675
|
id: this.id,
|
|
8678
8676
|
transactionIds: e,
|
|
@@ -8696,8 +8694,8 @@ class fe {
|
|
|
8696
8694
|
(i) => i.getWorkflowManager().getTransaction().id === t
|
|
8697
8695
|
))
|
|
8698
8696
|
throw new Error("Unable to add transaction to bundle - Already Exists!");
|
|
8699
|
-
const s = (
|
|
8700
|
-
await
|
|
8697
|
+
const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
|
|
8698
|
+
await N.getShadowGraphqlClient().mutate({
|
|
8701
8699
|
mutation: kn,
|
|
8702
8700
|
variables: {
|
|
8703
8701
|
id: this.id,
|
|
@@ -8729,8 +8727,8 @@ class fe {
|
|
|
8729
8727
|
const a = this.workflowExperiences.find(
|
|
8730
8728
|
(n) => n.getWorkflowManager().getTransaction().id === e.id
|
|
8731
8729
|
);
|
|
8732
|
-
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await
|
|
8733
|
-
mutation:
|
|
8730
|
+
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
|
|
8731
|
+
mutation: Jn,
|
|
8734
8732
|
variables: {
|
|
8735
8733
|
id: this.id,
|
|
8736
8734
|
transactionId: e.id,
|
|
@@ -8756,7 +8754,7 @@ class fe {
|
|
|
8756
8754
|
1
|
|
8757
8755
|
)[0]
|
|
8758
8756
|
);
|
|
8759
|
-
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({
|
|
8760
8758
|
mutation: Tn,
|
|
8761
8759
|
variables: {
|
|
8762
8760
|
id: this.id,
|
|
@@ -8814,7 +8812,7 @@ class fe {
|
|
|
8814
8812
|
}
|
|
8815
8813
|
async addStakeholder(A, e) {
|
|
8816
8814
|
var n;
|
|
8817
|
-
const t = await
|
|
8815
|
+
const t = await N.getShadowGraphqlClient().mutate({
|
|
8818
8816
|
mutation: Ln,
|
|
8819
8817
|
variables: {
|
|
8820
8818
|
id: this.id,
|
|
@@ -8829,7 +8827,7 @@ class fe {
|
|
|
8829
8827
|
}
|
|
8830
8828
|
async updateStakeholders(A) {
|
|
8831
8829
|
var a;
|
|
8832
|
-
const e = await
|
|
8830
|
+
const e = await N.getShadowGraphqlClient().mutate({
|
|
8833
8831
|
mutation: On,
|
|
8834
8832
|
variables: {
|
|
8835
8833
|
id: this.id,
|
|
@@ -8842,7 +8840,7 @@ class fe {
|
|
|
8842
8840
|
this.storeStakeholderCustomers(t);
|
|
8843
8841
|
}
|
|
8844
8842
|
async getAllStakeholders() {
|
|
8845
|
-
const A = await
|
|
8843
|
+
const A = await N.getShadowGraphqlClient().query({
|
|
8846
8844
|
query: Hn,
|
|
8847
8845
|
errorPolicy: "all",
|
|
8848
8846
|
variables: {
|
|
@@ -8930,7 +8928,7 @@ class fe {
|
|
|
8930
8928
|
}
|
|
8931
8929
|
async updateBundle() {
|
|
8932
8930
|
var e;
|
|
8933
|
-
if (!((e = (await
|
|
8931
|
+
if (!((e = (await N.getShadowGraphqlClient().mutate({
|
|
8934
8932
|
mutation: vn,
|
|
8935
8933
|
variables: {
|
|
8936
8934
|
id: this.id,
|
|
@@ -8942,7 +8940,7 @@ class fe {
|
|
|
8942
8940
|
throw new Error("Bundle not found!");
|
|
8943
8941
|
}
|
|
8944
8942
|
async updateTransactionOrder() {
|
|
8945
|
-
await
|
|
8943
|
+
await N.getShadowGraphqlClient().mutate({
|
|
8946
8944
|
mutation: zn,
|
|
8947
8945
|
variables: {
|
|
8948
8946
|
id: this.id,
|
|
@@ -8973,7 +8971,7 @@ class fe {
|
|
|
8973
8971
|
);
|
|
8974
8972
|
}
|
|
8975
8973
|
}
|
|
8976
|
-
const ns =
|
|
8974
|
+
const ns = y`
|
|
8977
8975
|
mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
|
|
8978
8976
|
processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
|
|
8979
8977
|
id
|
|
@@ -8990,7 +8988,7 @@ class ss {
|
|
|
8990
8988
|
*/
|
|
8991
8989
|
async execute(A, e, t) {
|
|
8992
8990
|
var B, l, d;
|
|
8993
|
-
const n = (l = (B = (await
|
|
8991
|
+
const n = (l = (B = (await N.getShadowGraphqlClient().mutate({
|
|
8994
8992
|
mutation: ns,
|
|
8995
8993
|
variables: {
|
|
8996
8994
|
processFlowId: A,
|
|
@@ -9000,14 +8998,14 @@ class ss {
|
|
|
9000
8998
|
if (!n)
|
|
9001
8999
|
throw new Error("Failed to create process execution.");
|
|
9002
9000
|
function s(E) {
|
|
9003
|
-
return new Promise((
|
|
9004
|
-
setTimeout(
|
|
9001
|
+
return new Promise((C) => {
|
|
9002
|
+
setTimeout(C, E);
|
|
9005
9003
|
});
|
|
9006
9004
|
}
|
|
9007
|
-
let i = !1,
|
|
9005
|
+
let i = !1, r = 0, o, c;
|
|
9008
9006
|
for (; !i; ) {
|
|
9009
|
-
|
|
9010
|
-
query:
|
|
9007
|
+
o = await N.getShadowGraphqlClient().query({
|
|
9008
|
+
query: y`
|
|
9011
9009
|
query getProcessFlowExecution($ids: [String]!) {
|
|
9012
9010
|
processExecutions(ids: $ids) {
|
|
9013
9011
|
id
|
|
@@ -9025,8 +9023,8 @@ class ss {
|
|
|
9025
9023
|
ids: [n]
|
|
9026
9024
|
}
|
|
9027
9025
|
});
|
|
9028
|
-
const E = (d =
|
|
9029
|
-
if (!
|
|
9026
|
+
const E = (d = o.data) == null ? void 0 : d.processExecutions[0];
|
|
9027
|
+
if (!o || !E)
|
|
9030
9028
|
throw new Error("Failed to retrieve server response for execution.");
|
|
9031
9029
|
if (E.failedAt)
|
|
9032
9030
|
throw new Error(
|
|
@@ -9036,9 +9034,9 @@ class ss {
|
|
|
9036
9034
|
i = !0, c = new is(E);
|
|
9037
9035
|
break;
|
|
9038
9036
|
}
|
|
9039
|
-
|
|
9040
|
-
const
|
|
9041
|
-
if (
|
|
9037
|
+
r += 1;
|
|
9038
|
+
const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
|
|
9039
|
+
if (r >= C)
|
|
9042
9040
|
throw new Error("Maximum wait time exceeded for execution result.");
|
|
9043
9041
|
await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
|
|
9044
9042
|
}
|
|
@@ -9143,7 +9141,7 @@ class Et extends os {
|
|
|
9143
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);
|
|
9144
9142
|
}
|
|
9145
9143
|
}
|
|
9146
|
-
const cs =
|
|
9144
|
+
const cs = y`
|
|
9147
9145
|
fragment RegionFields on Region {
|
|
9148
9146
|
width
|
|
9149
9147
|
top
|
|
@@ -9161,7 +9159,7 @@ const cs = M`
|
|
|
9161
9159
|
height
|
|
9162
9160
|
}
|
|
9163
9161
|
}
|
|
9164
|
-
`, gs =
|
|
9162
|
+
`, gs = y`
|
|
9165
9163
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
9166
9164
|
latDeg
|
|
9167
9165
|
lonDeg
|
|
@@ -9172,7 +9170,7 @@ const cs = M`
|
|
|
9172
9170
|
z
|
|
9173
9171
|
}
|
|
9174
9172
|
}
|
|
9175
|
-
`, ls =
|
|
9173
|
+
`, ls = y`
|
|
9176
9174
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
9177
9175
|
antiAliasing {
|
|
9178
9176
|
samples
|
|
@@ -9256,14 +9254,14 @@ const cs = M`
|
|
|
9256
9254
|
weight
|
|
9257
9255
|
}
|
|
9258
9256
|
}
|
|
9259
|
-
`, Bs =
|
|
9257
|
+
`, Bs = y`
|
|
9260
9258
|
fragment ModelAnimationFields on ModelAnimation {
|
|
9261
9259
|
from
|
|
9262
9260
|
to
|
|
9263
9261
|
loop
|
|
9264
9262
|
name
|
|
9265
9263
|
}
|
|
9266
|
-
`, ds = (g) =>
|
|
9264
|
+
`, ds = (g) => y`
|
|
9267
9265
|
${kA(g)}
|
|
9268
9266
|
${se}
|
|
9269
9267
|
${je}
|
|
@@ -9365,6 +9363,7 @@ const cs = M`
|
|
|
9365
9363
|
stepTitle
|
|
9366
9364
|
helpText
|
|
9367
9365
|
mandatory
|
|
9366
|
+
silent
|
|
9368
9367
|
conditions {
|
|
9369
9368
|
requiredVariantSelections
|
|
9370
9369
|
targetStepName
|
|
@@ -9658,7 +9657,7 @@ const cs = M`
|
|
|
9658
9657
|
}
|
|
9659
9658
|
}
|
|
9660
9659
|
}
|
|
9661
|
-
`, ws =
|
|
9660
|
+
`, ws = y`
|
|
9662
9661
|
query GetTransactionForPartner($id: String!) {
|
|
9663
9662
|
transactions(ids: [$id]) {
|
|
9664
9663
|
id
|
|
@@ -9675,7 +9674,7 @@ const cs = M`
|
|
|
9675
9674
|
}
|
|
9676
9675
|
}
|
|
9677
9676
|
}
|
|
9678
|
-
`, Es =
|
|
9677
|
+
`, Es = y`
|
|
9679
9678
|
${kA(!1)}
|
|
9680
9679
|
query GetWorkflowForTheme($id: String!) {
|
|
9681
9680
|
workflow(id: $id) {
|
|
@@ -9697,7 +9696,7 @@ const cs = M`
|
|
|
9697
9696
|
}
|
|
9698
9697
|
}
|
|
9699
9698
|
}
|
|
9700
|
-
`, hs =
|
|
9699
|
+
`, hs = y`
|
|
9701
9700
|
query GetCustomer($emailAddress: String!) {
|
|
9702
9701
|
customer(emailAddress: $emailAddress) {
|
|
9703
9702
|
id
|
|
@@ -9707,7 +9706,7 @@ const cs = M`
|
|
|
9707
9706
|
}
|
|
9708
9707
|
}
|
|
9709
9708
|
}
|
|
9710
|
-
`, Cs =
|
|
9709
|
+
`, Cs = y`
|
|
9711
9710
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
9712
9711
|
customerCreate(details: $details) {
|
|
9713
9712
|
id
|
|
@@ -9717,7 +9716,7 @@ const cs = M`
|
|
|
9717
9716
|
}
|
|
9718
9717
|
}
|
|
9719
9718
|
}
|
|
9720
|
-
`, Qs =
|
|
9719
|
+
`, Qs = y`
|
|
9721
9720
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
9722
9721
|
customerAuthenticate(loginToken: $loginToken) {
|
|
9723
9722
|
id
|
|
@@ -9744,11 +9743,11 @@ const cs = M`
|
|
|
9744
9743
|
}
|
|
9745
9744
|
}
|
|
9746
9745
|
}
|
|
9747
|
-
`, us =
|
|
9746
|
+
`, us = y`
|
|
9748
9747
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
9749
9748
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
9750
9749
|
}
|
|
9751
|
-
`, ms =
|
|
9750
|
+
`, ms = y`
|
|
9752
9751
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
9753
9752
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
9754
9753
|
id
|
|
@@ -9780,13 +9779,13 @@ const cs = M`
|
|
|
9780
9779
|
var A;
|
|
9781
9780
|
for (const e in g.layouts) {
|
|
9782
9781
|
const t = g.layouts[e].elements.filter(
|
|
9783
|
-
(n) => n.type ===
|
|
9782
|
+
(n) => n.type === H.Illustration
|
|
9784
9783
|
);
|
|
9785
9784
|
for (let n = 0; n < t.length; ++n) {
|
|
9786
9785
|
const s = t[n];
|
|
9787
9786
|
s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
|
|
9788
9787
|
}
|
|
9789
|
-
const a = g.layouts[e].elements.filter((n) => n.type ===
|
|
9788
|
+
const a = g.layouts[e].elements.filter((n) => n.type === H.Textbox);
|
|
9790
9789
|
for (let n = 0; n < a.length; ++n) {
|
|
9791
9790
|
const s = a[n];
|
|
9792
9791
|
(A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
|
|
@@ -9794,7 +9793,7 @@ const cs = M`
|
|
|
9794
9793
|
}
|
|
9795
9794
|
}, ps = async (g, A) => {
|
|
9796
9795
|
var a;
|
|
9797
|
-
const e = await
|
|
9796
|
+
const e = await N.getShadowGraphqlClient().query({
|
|
9798
9797
|
query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
|
|
9799
9798
|
errorPolicy: "all",
|
|
9800
9799
|
fetchPolicy: "no-cache",
|
|
@@ -9806,9 +9805,9 @@ const cs = M`
|
|
|
9806
9805
|
throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
|
|
9807
9806
|
return t.forEach((n) => {
|
|
9808
9807
|
n.steps.forEach((s) => {
|
|
9809
|
-
var i,
|
|
9810
|
-
delete s.data.__typename, (i = s.option) != null && i.id && ((
|
|
9811
|
-
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);
|
|
9812
9811
|
}), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
|
|
9813
9812
|
});
|
|
9814
9813
|
}), t;
|
|
@@ -9818,7 +9817,7 @@ const cs = M`
|
|
|
9818
9817
|
throw new Error(`Workflow not found: ${g}`);
|
|
9819
9818
|
return t;
|
|
9820
9819
|
}, ht = async (g, A) => {
|
|
9821
|
-
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);
|
|
9822
9821
|
if (t.length === 0)
|
|
9823
9822
|
return Promise.all(e);
|
|
9824
9823
|
const a = ps(t, A), n = t.map(
|
|
@@ -9846,12 +9845,12 @@ class fs {
|
|
|
9846
9845
|
constructor(A) {
|
|
9847
9846
|
this.updateTransactionState = async (e) => {
|
|
9848
9847
|
try {
|
|
9849
|
-
return
|
|
9848
|
+
return N.getShadowGraphqlClient().mutate({
|
|
9850
9849
|
...e,
|
|
9851
9850
|
mutation: la
|
|
9852
9851
|
});
|
|
9853
9852
|
} catch (t) {
|
|
9854
|
-
throw console.error(t), new
|
|
9853
|
+
throw console.error(t), new P("Critical - Unable to synchronize workflow state with server.");
|
|
9855
9854
|
}
|
|
9856
9855
|
}, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
|
|
9857
9856
|
}
|
|
@@ -9860,7 +9859,7 @@ class fs {
|
|
|
9860
9859
|
* and the Spiff Commerce platform.
|
|
9861
9860
|
*/
|
|
9862
9861
|
getAssetManager() {
|
|
9863
|
-
return
|
|
9862
|
+
return T;
|
|
9864
9863
|
}
|
|
9865
9864
|
getCurrencyCode() {
|
|
9866
9865
|
if (this.currencyCode === void 0)
|
|
@@ -9880,15 +9879,15 @@ class fs {
|
|
|
9880
9879
|
*/
|
|
9881
9880
|
async authenticateBundleFromLocalStorage(A) {
|
|
9882
9881
|
var a, n;
|
|
9883
|
-
const e =
|
|
9882
|
+
const e = x.getMap("bundleOwnerIds");
|
|
9884
9883
|
if (e != null && e.has(A)) {
|
|
9885
9884
|
const s = e.get(A);
|
|
9886
9885
|
return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
|
|
9887
9886
|
}
|
|
9888
|
-
const t =
|
|
9887
|
+
const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9889
9888
|
if (t.has(A)) {
|
|
9890
|
-
const s = t.get(A),
|
|
9891
|
-
if (
|
|
9889
|
+
const s = t.get(A), r = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
|
|
9890
|
+
if (r && await this.authenticateCustomerId(r)) {
|
|
9892
9891
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
9893
9892
|
(B) => {
|
|
9894
9893
|
var l;
|
|
@@ -9915,8 +9914,8 @@ class fs {
|
|
|
9915
9914
|
* @throws An error if the transaction is not found.
|
|
9916
9915
|
*/
|
|
9917
9916
|
async authenticateTransactionFromLocalStorage(A) {
|
|
9918
|
-
var c, B, l, d, E,
|
|
9919
|
-
const e =
|
|
9917
|
+
var c, B, l, d, E, C;
|
|
9918
|
+
const e = N.getShadowGraphqlClient(), t = await e.query({
|
|
9920
9919
|
query: ws,
|
|
9921
9920
|
errorPolicy: "all",
|
|
9922
9921
|
fetchPolicy: "no-cache",
|
|
@@ -9931,45 +9930,45 @@ class fs {
|
|
|
9931
9930
|
throw new Error(`Unable to read transaction: ${A}`);
|
|
9932
9931
|
if (a.isOrdered)
|
|
9933
9932
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
9934
|
-
const s =
|
|
9933
|
+
const s = x.getMap("transactionOwnerIds");
|
|
9935
9934
|
if (s != null && s.has(A)) {
|
|
9936
9935
|
const w = s.get(A);
|
|
9937
9936
|
return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
|
|
9938
9937
|
}
|
|
9939
|
-
const i =
|
|
9938
|
+
const i = x.getMap("transactionCustomerIds");
|
|
9940
9939
|
if (i != null && i.has(A)) {
|
|
9941
9940
|
const w = i.get(A);
|
|
9942
9941
|
if (w && await this.authenticateCustomerId(w)) {
|
|
9943
|
-
const
|
|
9942
|
+
const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
9944
9943
|
(u) => {
|
|
9945
|
-
var
|
|
9946
|
-
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);
|
|
9947
9946
|
}
|
|
9948
|
-
)) || ((
|
|
9947
|
+
)) || ((C = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : C.find(
|
|
9949
9948
|
(u) => {
|
|
9950
|
-
var
|
|
9951
|
-
return ((
|
|
9949
|
+
var f;
|
|
9950
|
+
return ((f = u.transaction) == null ? void 0 : f.id) === A;
|
|
9952
9951
|
}
|
|
9953
9952
|
));
|
|
9954
|
-
if (
|
|
9953
|
+
if (h)
|
|
9955
9954
|
return Promise.resolve({
|
|
9956
9955
|
success: !0,
|
|
9957
|
-
stakeholderType:
|
|
9956
|
+
stakeholderType: h.type
|
|
9958
9957
|
});
|
|
9959
9958
|
}
|
|
9960
9959
|
}
|
|
9961
|
-
const
|
|
9960
|
+
const o = (await e.query({
|
|
9962
9961
|
query: Es,
|
|
9963
9962
|
errorPolicy: "all",
|
|
9964
9963
|
variables: {
|
|
9965
9964
|
id: a.workflowId
|
|
9966
9965
|
}
|
|
9967
9966
|
})).data.workflow;
|
|
9968
|
-
if (!
|
|
9967
|
+
if (!o)
|
|
9969
9968
|
throw new Error(`Unable to read workflow: ${a.workflowId}`);
|
|
9970
9969
|
return Promise.resolve({
|
|
9971
9970
|
success: !1,
|
|
9972
|
-
theme:
|
|
9971
|
+
theme: o.overrideTheme,
|
|
9973
9972
|
customLogoLink: a.customLogoLink
|
|
9974
9973
|
});
|
|
9975
9974
|
}
|
|
@@ -9977,8 +9976,8 @@ class fs {
|
|
|
9977
9976
|
this.customer = void 0;
|
|
9978
9977
|
}
|
|
9979
9978
|
clearCustomerForTransaction(A) {
|
|
9980
|
-
const e =
|
|
9981
|
-
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));
|
|
9982
9981
|
}
|
|
9983
9982
|
getStakeholderTypeForTransaction(A) {
|
|
9984
9983
|
var t, a;
|
|
@@ -9994,7 +9993,7 @@ class fs {
|
|
|
9994
9993
|
async getOrCreateCustomer(A) {
|
|
9995
9994
|
var s;
|
|
9996
9995
|
this.customer = void 0;
|
|
9997
|
-
const e =
|
|
9996
|
+
const e = N.getShadowGraphqlClient(), a = (await e.query({
|
|
9998
9997
|
query: hs,
|
|
9999
9998
|
errorPolicy: "all",
|
|
10000
9999
|
fetchPolicy: "no-cache",
|
|
@@ -10003,7 +10002,7 @@ class fs {
|
|
|
10003
10002
|
}
|
|
10004
10003
|
})).data.customer;
|
|
10005
10004
|
if (!a.id) {
|
|
10006
|
-
const
|
|
10005
|
+
const r = (s = (await e.mutate({
|
|
10007
10006
|
mutation: Cs,
|
|
10008
10007
|
errorPolicy: "all",
|
|
10009
10008
|
fetchPolicy: "no-cache",
|
|
@@ -10013,10 +10012,10 @@ class fs {
|
|
|
10013
10012
|
}
|
|
10014
10013
|
}
|
|
10015
10014
|
})).data) == null ? void 0 : s.customerCreate;
|
|
10016
|
-
if (!
|
|
10015
|
+
if (!r)
|
|
10017
10016
|
throw new Error("Unable to create customer.");
|
|
10018
|
-
return this.storeCustomer(
|
|
10019
|
-
customer:
|
|
10017
|
+
return this.storeCustomer(r), this.customer = r, {
|
|
10018
|
+
customer: r,
|
|
10020
10019
|
isAuthenticated: !1
|
|
10021
10020
|
};
|
|
10022
10021
|
}
|
|
@@ -10029,7 +10028,7 @@ class fs {
|
|
|
10029
10028
|
}
|
|
10030
10029
|
async authenticateCustomerId(A) {
|
|
10031
10030
|
var i;
|
|
10032
|
-
const e =
|
|
10031
|
+
const e = N.getShadowGraphqlClient(), t = x.getMap("customerTokens");
|
|
10033
10032
|
if (!(t != null && t.has(A)))
|
|
10034
10033
|
return !1;
|
|
10035
10034
|
const a = t.get(A);
|
|
@@ -10050,7 +10049,7 @@ class fs {
|
|
|
10050
10049
|
* @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
|
|
10051
10050
|
*/
|
|
10052
10051
|
async generateVerificationCode(A) {
|
|
10053
|
-
await
|
|
10052
|
+
await N.getShadowGraphqlClient().mutate({
|
|
10054
10053
|
mutation: us,
|
|
10055
10054
|
variables: {
|
|
10056
10055
|
emailAddress: A
|
|
@@ -10065,7 +10064,7 @@ class fs {
|
|
|
10065
10064
|
*/
|
|
10066
10065
|
async verifyCode(A, e) {
|
|
10067
10066
|
var n, s;
|
|
10068
|
-
const a = (n = (await
|
|
10067
|
+
const a = (n = (await N.getShadowGraphqlClient().mutate({
|
|
10069
10068
|
mutation: ms,
|
|
10070
10069
|
errorPolicy: "all",
|
|
10071
10070
|
fetchPolicy: "no-cache",
|
|
@@ -10077,8 +10076,8 @@ class fs {
|
|
|
10077
10076
|
if (a != null && a.loginToken) {
|
|
10078
10077
|
if (!((s = a.partner) != null && s.id))
|
|
10079
10078
|
throw new Error(`Unable to find customer: ${A}`);
|
|
10080
|
-
const i =
|
|
10081
|
-
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 = {
|
|
10082
10081
|
...a,
|
|
10083
10082
|
loginToken: void 0
|
|
10084
10083
|
}, !0;
|
|
@@ -10091,7 +10090,7 @@ class fs {
|
|
|
10091
10090
|
*/
|
|
10092
10091
|
async getNewBundle(A) {
|
|
10093
10092
|
var s;
|
|
10094
|
-
const t = (s = (await
|
|
10093
|
+
const t = (s = (await N.getShadowGraphqlClient().mutate({
|
|
10095
10094
|
mutation: Gn,
|
|
10096
10095
|
variables: {
|
|
10097
10096
|
collectionId: A
|
|
@@ -10100,10 +10099,10 @@ class fs {
|
|
|
10100
10099
|
})).data) == null ? void 0 : s.bundleCreate;
|
|
10101
10100
|
if (!(t != null && t.id))
|
|
10102
10101
|
throw new Error("Unable to create bundle");
|
|
10103
|
-
const a =
|
|
10104
|
-
a.set(t.id, t.partner.id),
|
|
10105
|
-
const n =
|
|
10106
|
-
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);
|
|
10107
10106
|
}
|
|
10108
10107
|
/**
|
|
10109
10108
|
* Retrieves an existing bundle from the API, by id.
|
|
@@ -10114,9 +10113,9 @@ class fs {
|
|
|
10114
10113
|
*/
|
|
10115
10114
|
async getExistingBundle(A, e, t) {
|
|
10116
10115
|
var c, B, l, d;
|
|
10117
|
-
const a =
|
|
10116
|
+
const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
|
|
10118
10117
|
n && TA(n);
|
|
10119
|
-
const s = await
|
|
10118
|
+
const s = await N.getShadowGraphqlClient().query({
|
|
10120
10119
|
query: Pn,
|
|
10121
10120
|
variables: {
|
|
10122
10121
|
id: A
|
|
@@ -10125,10 +10124,10 @@ class fs {
|
|
|
10125
10124
|
});
|
|
10126
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]))
|
|
10127
10126
|
throw new Error(`Unable to find bundle: ${A}`);
|
|
10128
|
-
const i = (d = s.data) == null ? void 0 : d.bundles[0],
|
|
10129
|
-
|
|
10130
|
-
const
|
|
10131
|
-
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;
|
|
10132
10131
|
}
|
|
10133
10132
|
/**
|
|
10134
10133
|
* Retrieves all existing bundle stakeholders from the API, for the currently authenticated customer.
|
|
@@ -10138,7 +10137,7 @@ class fs {
|
|
|
10138
10137
|
var n;
|
|
10139
10138
|
if (!this.customer)
|
|
10140
10139
|
throw new Error("Customer not authenticated.");
|
|
10141
|
-
const A = await
|
|
10140
|
+
const A = await N.getShadowGraphqlClient().query({
|
|
10142
10141
|
query: Un,
|
|
10143
10142
|
variables: {
|
|
10144
10143
|
id: this.customer.id
|
|
@@ -10147,11 +10146,11 @@ class fs {
|
|
|
10147
10146
|
});
|
|
10148
10147
|
if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
|
|
10149
10148
|
throw new Error("Unable to find customer.");
|
|
10150
|
-
const t = A.data.customers[0].bundleStakeholders || [], a =
|
|
10149
|
+
const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10151
10150
|
return t.forEach((s) => {
|
|
10152
|
-
var i,
|
|
10153
|
-
(i = s.bundle) != null && i.id && ((
|
|
10154
|
-
}),
|
|
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;
|
|
10155
10154
|
}
|
|
10156
10155
|
/**
|
|
10157
10156
|
* Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
|
|
@@ -10162,40 +10161,40 @@ class fs {
|
|
|
10162
10161
|
* @returns A workflow experience configured as requested.
|
|
10163
10162
|
*/
|
|
10164
10163
|
async getWorkflowExperience(A, e, t, a) {
|
|
10165
|
-
var B, l, d, E;
|
|
10164
|
+
var B, l, d, E, C;
|
|
10166
10165
|
if (!a)
|
|
10167
10166
|
return await this.getWorkflowExperienceDeprecated(A, e, t);
|
|
10168
10167
|
const n = async () => {
|
|
10169
|
-
var
|
|
10170
|
-
const
|
|
10168
|
+
var Q, h;
|
|
10169
|
+
const w = N.getShadowGraphqlClient();
|
|
10171
10170
|
if (a.type === "transaction") {
|
|
10172
|
-
const { transactionId:
|
|
10171
|
+
const { transactionId: u, readOnly: f } = a, p = await w.query({
|
|
10173
10172
|
query: EA,
|
|
10174
10173
|
variables: {
|
|
10175
|
-
ids: [
|
|
10174
|
+
ids: [u]
|
|
10176
10175
|
},
|
|
10177
10176
|
errorPolicy: "all",
|
|
10178
10177
|
fetchPolicy: "no-cache"
|
|
10179
10178
|
});
|
|
10180
|
-
if (!((
|
|
10181
|
-
throw new
|
|
10182
|
-
const
|
|
10183
|
-
if (!
|
|
10184
|
-
throw new
|
|
10185
|
-
const
|
|
10186
|
-
if (!
|
|
10187
|
-
throw new
|
|
10188
|
-
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 };
|
|
10189
10188
|
}
|
|
10190
10189
|
if (a.type === "integration" || a.type === "external") {
|
|
10191
|
-
const
|
|
10192
|
-
const
|
|
10190
|
+
const u = async () => {
|
|
10191
|
+
const m = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10193
10192
|
externalIntegrationId: a.externalIntegrationId,
|
|
10194
10193
|
externalProductId: a.externalProductId
|
|
10195
|
-
},
|
|
10194
|
+
}, M = await w.mutate({
|
|
10196
10195
|
mutation: ue,
|
|
10197
10196
|
variables: {
|
|
10198
|
-
...
|
|
10197
|
+
...m,
|
|
10199
10198
|
bulk: a.bulk,
|
|
10200
10199
|
workflowId: a.workflowId,
|
|
10201
10200
|
claim: !0
|
|
@@ -10205,59 +10204,60 @@ class fs {
|
|
|
10205
10204
|
// TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
|
|
10206
10205
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
10207
10206
|
});
|
|
10208
|
-
if (!
|
|
10209
|
-
throw new
|
|
10210
|
-
const
|
|
10211
|
-
if (!
|
|
10212
|
-
throw new
|
|
10213
|
-
return
|
|
10214
|
-
},
|
|
10215
|
-
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 };
|
|
10216
10215
|
}
|
|
10217
|
-
throw new
|
|
10218
|
-
}, { transaction: s, workflow: i, readOnly:
|
|
10216
|
+
throw new P("No workflow ID provided.");
|
|
10217
|
+
}, { transaction: s, workflow: i, readOnly: r } = await n();
|
|
10219
10218
|
this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
|
|
10220
|
-
const
|
|
10219
|
+
const o = {
|
|
10221
10220
|
product: s.product,
|
|
10222
10221
|
transaction: s,
|
|
10223
10222
|
layouts: [],
|
|
10224
|
-
|
|
10223
|
+
singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
|
|
10224
|
+
stateMutationFunc: r ? async () => {
|
|
10225
10225
|
throw new v("State mutation is forbidden in read only mode!");
|
|
10226
|
-
} : async (
|
|
10227
|
-
const
|
|
10228
|
-
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 } });
|
|
10229
10229
|
},
|
|
10230
|
-
readOnly:
|
|
10230
|
+
readOnly: r,
|
|
10231
10231
|
workflow: i
|
|
10232
10232
|
};
|
|
10233
10233
|
if (a.type === "transaction" && s.workflowState) {
|
|
10234
|
-
const
|
|
10235
|
-
|
|
10236
|
-
} else if (!
|
|
10237
|
-
const
|
|
10238
|
-
|
|
10234
|
+
const 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;
|
|
10239
10239
|
} else
|
|
10240
|
-
|
|
10241
|
-
|
|
10242
|
-
|
|
10240
|
+
o.layouts = KA(
|
|
10241
|
+
o.transaction,
|
|
10242
|
+
o.workflow
|
|
10243
10243
|
);
|
|
10244
|
-
if (
|
|
10245
|
-
|
|
10246
|
-
), a.previewService ? (
|
|
10247
|
-
model:
|
|
10248
|
-
contextService:
|
|
10249
|
-
}))) : (
|
|
10250
|
-
model:
|
|
10251
|
-
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
|
|
10252
10252
|
}))), a.type !== "transaction") {
|
|
10253
|
-
const
|
|
10254
|
-
|
|
10253
|
+
const w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10254
|
+
w.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), x.setMap("transactionOwnerIds", w);
|
|
10255
10255
|
} else {
|
|
10256
|
-
const
|
|
10257
|
-
|
|
10256
|
+
const Q = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
|
|
10257
|
+
Q && eA(Q), o.isReloadedTransaction = !0;
|
|
10258
10258
|
}
|
|
10259
|
-
this.initialized = !0, this.experienceOptions =
|
|
10260
|
-
const c = new CA(this,
|
|
10259
|
+
this.initialized = !0, this.experienceOptions = o;
|
|
10260
|
+
const c = new CA(this, o);
|
|
10261
10261
|
return await c.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await c.attachCustomerDetails({ email: this.customer.emailAddress }), c;
|
|
10262
10262
|
}
|
|
10263
10263
|
/**
|
|
@@ -10269,39 +10269,39 @@ class fs {
|
|
|
10269
10269
|
*/
|
|
10270
10270
|
async getWorkflowExperiences(A, e) {
|
|
10271
10271
|
if (A.length === 0)
|
|
10272
|
-
throw new
|
|
10273
|
-
const t =
|
|
10274
|
-
(
|
|
10272
|
+
throw new 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"
|
|
10275
10275
|
), i = async () => {
|
|
10276
|
-
var p,
|
|
10276
|
+
var p, D;
|
|
10277
10277
|
if (n.length === 0)
|
|
10278
10278
|
return [];
|
|
10279
|
-
const
|
|
10279
|
+
const h = n.map((m) => m.option.transactionId), u = await t.query({
|
|
10280
10280
|
query: EA,
|
|
10281
10281
|
variables: {
|
|
10282
|
-
ids:
|
|
10282
|
+
ids: h
|
|
10283
10283
|
},
|
|
10284
10284
|
errorPolicy: "all",
|
|
10285
10285
|
fetchPolicy: "no-cache"
|
|
10286
|
-
}),
|
|
10287
|
-
if (
|
|
10288
|
-
const m = ((
|
|
10289
|
-
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}`);
|
|
10290
10290
|
}
|
|
10291
|
-
return
|
|
10291
|
+
return f.map((m, M) => {
|
|
10292
10292
|
var Y;
|
|
10293
10293
|
return {
|
|
10294
10294
|
transaction: m,
|
|
10295
10295
|
workflowId: m.workflowId,
|
|
10296
10296
|
readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
|
|
10297
|
-
index: n[
|
|
10297
|
+
index: n[M].index
|
|
10298
10298
|
};
|
|
10299
10299
|
});
|
|
10300
|
-
},
|
|
10301
|
-
var
|
|
10300
|
+
}, r = async () => {
|
|
10301
|
+
var f, p, D;
|
|
10302
10302
|
if (s.length === 0)
|
|
10303
10303
|
return [];
|
|
10304
|
-
const
|
|
10304
|
+
const h = await t.mutate({
|
|
10305
10305
|
mutation: ca,
|
|
10306
10306
|
variables: {
|
|
10307
10307
|
inputs: s.map((m) => ({
|
|
@@ -10315,37 +10315,39 @@ class fs {
|
|
|
10315
10315
|
},
|
|
10316
10316
|
errorPolicy: "all",
|
|
10317
10317
|
fetchPolicy: "no-cache"
|
|
10318
|
-
}), u = (
|
|
10318
|
+
}), u = (f = h.data) == null ? void 0 : f.transactionCreateMany;
|
|
10319
10319
|
if (!u || u.length === 0) {
|
|
10320
|
-
const m = ((
|
|
10321
|
-
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}`);
|
|
10322
10322
|
}
|
|
10323
|
-
return u.map((m,
|
|
10323
|
+
return u.map((m, M) => ({
|
|
10324
10324
|
transaction: m,
|
|
10325
10325
|
workflowId: m.workflowId,
|
|
10326
10326
|
readOnly: !1,
|
|
10327
|
-
index: s[
|
|
10327
|
+
index: s[M].index
|
|
10328
10328
|
}));
|
|
10329
|
-
},
|
|
10330
|
-
|
|
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];
|
|
10331
10332
|
!d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
|
|
10332
10333
|
const Y = d.get(u.id) || void 0, F = {
|
|
10333
10334
|
product: u.product,
|
|
10334
10335
|
transaction: u,
|
|
10335
10336
|
layouts: [],
|
|
10337
|
+
singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
|
|
10336
10338
|
stateMutationFunc: p ? async () => {
|
|
10337
10339
|
throw new v("State mutation is forbidden in read only mode!");
|
|
10338
|
-
} : async (
|
|
10340
|
+
} : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
|
|
10339
10341
|
readOnly: p,
|
|
10340
10342
|
workflow: m,
|
|
10341
|
-
isReloadedTransaction:
|
|
10343
|
+
isReloadedTransaction: M.type === "transaction"
|
|
10342
10344
|
};
|
|
10343
|
-
if (
|
|
10344
|
-
const
|
|
10345
|
-
F.layouts = Object.values(
|
|
10346
|
-
} else if (!p &&
|
|
10347
|
-
const
|
|
10348
|
-
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;
|
|
10349
10351
|
} else
|
|
10350
10352
|
F.layouts = KA(
|
|
10351
10353
|
F.transaction,
|
|
@@ -10353,12 +10355,12 @@ class fs {
|
|
|
10353
10355
|
);
|
|
10354
10356
|
return F.renderableContextService = new QA(
|
|
10355
10357
|
F.layouts
|
|
10356
|
-
), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index:
|
|
10358
|
+
), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: D, options: M };
|
|
10357
10359
|
});
|
|
10358
|
-
|
|
10359
|
-
const Q = (await Promise.all(E)).sort((
|
|
10360
|
-
const { experienceOptions: u, options:
|
|
10361
|
-
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;
|
|
10362
10364
|
});
|
|
10363
10365
|
return await Promise.all(Q);
|
|
10364
10366
|
}
|
|
@@ -10370,8 +10372,8 @@ class fs {
|
|
|
10370
10372
|
async initFromIntegrationProduct(A) {
|
|
10371
10373
|
var s;
|
|
10372
10374
|
if (A === "")
|
|
10373
|
-
throw new
|
|
10374
|
-
const t = await
|
|
10375
|
+
throw new P("No integration product ID provided.");
|
|
10376
|
+
const t = await N.getShadowGraphqlClient().mutate({
|
|
10375
10377
|
mutation: ue,
|
|
10376
10378
|
variables: {
|
|
10377
10379
|
integrationProductId: A,
|
|
@@ -10384,13 +10386,13 @@ class fs {
|
|
|
10384
10386
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
10385
10387
|
});
|
|
10386
10388
|
if (!t.data || !t.data.transactionCreate)
|
|
10387
|
-
throw new
|
|
10389
|
+
throw new P("Failed to create transaction!");
|
|
10388
10390
|
const a = t.data.transactionCreate;
|
|
10389
10391
|
if (!a.product)
|
|
10390
|
-
throw new
|
|
10392
|
+
throw new P("Failed to create transaction, product not available.");
|
|
10391
10393
|
this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
|
|
10392
|
-
const n =
|
|
10393
|
-
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 = {
|
|
10394
10396
|
product: a.product,
|
|
10395
10397
|
transaction: a,
|
|
10396
10398
|
layouts: [],
|
|
@@ -10404,10 +10406,10 @@ class fs {
|
|
|
10404
10406
|
* @deprecated Use getWorkflowExperience to initialize the experience.
|
|
10405
10407
|
*/
|
|
10406
10408
|
async initFromTransaction(A, e = !1) {
|
|
10407
|
-
var i,
|
|
10409
|
+
var i, r, o, c;
|
|
10408
10410
|
if (A === "")
|
|
10409
|
-
throw new
|
|
10410
|
-
const t =
|
|
10411
|
+
throw new P("No transaction ID provided.");
|
|
10412
|
+
const t = N.getShadowGraphqlClient(), a = async () => {
|
|
10411
10413
|
var d, E;
|
|
10412
10414
|
const l = (d = (await t.query({
|
|
10413
10415
|
query: EA,
|
|
@@ -10416,9 +10418,9 @@ class fs {
|
|
|
10416
10418
|
errorPolicy: "all"
|
|
10417
10419
|
})).data) == null ? void 0 : d.transactions[0];
|
|
10418
10420
|
if (!l)
|
|
10419
|
-
throw new
|
|
10421
|
+
throw new P("Failed to read transaction.");
|
|
10420
10422
|
if (!l.product)
|
|
10421
|
-
throw new
|
|
10423
|
+
throw new P("Failed to load transaction, product not available.");
|
|
10422
10424
|
this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
|
|
10423
10425
|
product: l.product,
|
|
10424
10426
|
transaction: l,
|
|
@@ -10431,7 +10433,7 @@ class fs {
|
|
|
10431
10433
|
};
|
|
10432
10434
|
if (e)
|
|
10433
10435
|
return await a();
|
|
10434
|
-
const n =
|
|
10436
|
+
const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
|
|
10435
10437
|
if (s) {
|
|
10436
10438
|
eA(s);
|
|
10437
10439
|
const l = (i = (await t.query({
|
|
@@ -10442,10 +10444,10 @@ class fs {
|
|
|
10442
10444
|
errorPolicy: "all"
|
|
10443
10445
|
})).data) == null ? void 0 : i.transactions[0];
|
|
10444
10446
|
if (!l)
|
|
10445
|
-
throw new
|
|
10447
|
+
throw new P("Failed to read transaction.");
|
|
10446
10448
|
if (!l.product)
|
|
10447
|
-
throw new
|
|
10448
|
-
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 = {
|
|
10449
10451
|
product: l.product,
|
|
10450
10452
|
transaction: l,
|
|
10451
10453
|
layouts: [],
|
|
@@ -10455,16 +10457,16 @@ class fs {
|
|
|
10455
10457
|
return;
|
|
10456
10458
|
}
|
|
10457
10459
|
try {
|
|
10458
|
-
const l = (
|
|
10460
|
+
const l = (o = (await t.mutate({
|
|
10459
10461
|
mutation: ga,
|
|
10460
10462
|
variables: { id: A },
|
|
10461
10463
|
errorPolicy: "all"
|
|
10462
|
-
})).data) == null ? void 0 :
|
|
10464
|
+
})).data) == null ? void 0 : o.transactionClaim;
|
|
10463
10465
|
if (!l)
|
|
10464
|
-
throw new
|
|
10466
|
+
throw new P("Failed to read transaction.");
|
|
10465
10467
|
if (!l.product)
|
|
10466
|
-
throw new
|
|
10467
|
-
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 = {
|
|
10468
10470
|
product: l.product,
|
|
10469
10471
|
transaction: l,
|
|
10470
10472
|
layouts: [],
|
|
@@ -10472,7 +10474,7 @@ class fs {
|
|
|
10472
10474
|
readOnly: e
|
|
10473
10475
|
}, this.initialized = !0;
|
|
10474
10476
|
} catch {
|
|
10475
|
-
throw new
|
|
10477
|
+
throw new P("Attempted to access a transaction that isn't available.");
|
|
10476
10478
|
}
|
|
10477
10479
|
}
|
|
10478
10480
|
/**
|
|
@@ -10481,29 +10483,29 @@ class fs {
|
|
|
10481
10483
|
async getWorkflowExperienceDeprecated(A, e, t) {
|
|
10482
10484
|
var a, n, s, i;
|
|
10483
10485
|
if (!this.initialized || !this.experienceOptions)
|
|
10484
|
-
throw new
|
|
10486
|
+
throw new P("Cannot launch experience: Not initialized.");
|
|
10485
10487
|
if (this.experienceOptions.transaction.workflowId) {
|
|
10486
|
-
const
|
|
10487
|
-
if (this.experienceOptions.workflow =
|
|
10488
|
+
const r = await pA(this.experienceOptions.transaction.workflowId);
|
|
10489
|
+
if (this.experienceOptions.workflow = r, this.experienceOptions.transaction.workflowState) {
|
|
10488
10490
|
const c = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10489
10491
|
this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await AA(c), await tA(c), this.experienceOptions.reloadedState = c;
|
|
10490
10492
|
}
|
|
10491
|
-
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({
|
|
10492
10494
|
model: this.experienceOptions.product.modelUrl,
|
|
10493
10495
|
contextService: this.experienceOptions.renderableContextService
|
|
10494
10496
|
}));
|
|
10495
|
-
const
|
|
10496
|
-
return await
|
|
10497
|
+
const o = new CA(this, this.experienceOptions);
|
|
10498
|
+
return await o.getWorkflowManager().getInitializationPromise(), o;
|
|
10497
10499
|
}
|
|
10498
10500
|
if (A) {
|
|
10499
|
-
const
|
|
10501
|
+
const r = N.getShadowGraphqlClient().mutate({
|
|
10500
10502
|
mutation: Ba,
|
|
10501
10503
|
variables: {
|
|
10502
10504
|
workflowId: A,
|
|
10503
10505
|
id: this.experienceOptions.transaction.id
|
|
10504
10506
|
}
|
|
10505
|
-
}),
|
|
10506
|
-
if (await Promise.all([
|
|
10507
|
+
}), o = pA(A);
|
|
10508
|
+
if (await Promise.all([r, o]), this.experienceOptions.workflow = await o, e) {
|
|
10507
10509
|
const B = JSON.parse(e);
|
|
10508
10510
|
this.experienceOptions.layouts = Object.values(B.layouts).map((l) => l.layout), await AA(B), await tA(B), this.experienceOptions.reloadedState = B;
|
|
10509
10511
|
} else
|
|
@@ -10511,14 +10513,14 @@ class fs {
|
|
|
10511
10513
|
this.experienceOptions.transaction,
|
|
10512
10514
|
this.experienceOptions.workflow
|
|
10513
10515
|
);
|
|
10514
|
-
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({
|
|
10515
10517
|
model: this.experienceOptions.product.modelUrl,
|
|
10516
10518
|
contextService: this.experienceOptions.renderableContextService
|
|
10517
10519
|
}));
|
|
10518
10520
|
const c = new CA(this, this.experienceOptions);
|
|
10519
10521
|
return await c.getWorkflowManager().getInitializationPromise(), c;
|
|
10520
10522
|
}
|
|
10521
|
-
throw new
|
|
10523
|
+
throw new P("No workflow ID provided.");
|
|
10522
10524
|
}
|
|
10523
10525
|
/**
|
|
10524
10526
|
* @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
|
|
@@ -10534,7 +10536,7 @@ class fs {
|
|
|
10534
10536
|
*/
|
|
10535
10537
|
getProduct() {
|
|
10536
10538
|
if (!this.initialized || !this.experienceOptions)
|
|
10537
|
-
throw new
|
|
10539
|
+
throw new P("Cannot get product: Not initialized.");
|
|
10538
10540
|
return this.experienceOptions.product;
|
|
10539
10541
|
}
|
|
10540
10542
|
/**
|
|
@@ -10543,12 +10545,12 @@ class fs {
|
|
|
10543
10545
|
*/
|
|
10544
10546
|
getTransaction() {
|
|
10545
10547
|
if (!this.initialized || !this.experienceOptions)
|
|
10546
|
-
throw new
|
|
10548
|
+
throw new P("Cannot get transaction: Not initialized.");
|
|
10547
10549
|
return this.experienceOptions.transaction;
|
|
10548
10550
|
}
|
|
10549
10551
|
storeCustomer(A) {
|
|
10550
|
-
const e =
|
|
10551
|
-
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);
|
|
10552
10554
|
}
|
|
10553
10555
|
}
|
|
10554
10556
|
class ks {
|
|
@@ -10777,7 +10779,7 @@ export {
|
|
|
10777
10779
|
nn as InformationStepHandle,
|
|
10778
10780
|
ei as LayoutElementFactory,
|
|
10779
10781
|
ti as LayoutElementType,
|
|
10780
|
-
|
|
10782
|
+
L as LayoutNotFoundError,
|
|
10781
10783
|
$a as MaterialStepHandle,
|
|
10782
10784
|
SA as MisconfigurationError,
|
|
10783
10785
|
ks as MockWorkflowManager,
|
|
@@ -10812,7 +10814,7 @@ export {
|
|
|
10812
10814
|
gi as UnitOfMeasurement,
|
|
10813
10815
|
X as Variant,
|
|
10814
10816
|
CA as WorkflowExperienceImpl,
|
|
10815
|
-
|
|
10817
|
+
T as assetService,
|
|
10816
10818
|
Bn as createDesign,
|
|
10817
10819
|
li as dataUrlFromExternalUrl,
|
|
10818
10820
|
zA as designService,
|
|
@@ -10833,7 +10835,7 @@ export {
|
|
|
10833
10835
|
mi as getSvgElement,
|
|
10834
10836
|
pA as getWorkflow,
|
|
10835
10837
|
ht as getWorkflows,
|
|
10836
|
-
|
|
10838
|
+
N as graphQlManager,
|
|
10837
10839
|
fA as illustrationStepService,
|
|
10838
10840
|
pi as loadFont,
|
|
10839
10841
|
$e as materialStepService,
|
|
@@ -10841,7 +10843,7 @@ export {
|
|
|
10841
10843
|
Ya as moduleStepService,
|
|
10842
10844
|
z as optionService,
|
|
10843
10845
|
Ii as patternImageDataCache,
|
|
10844
|
-
|
|
10846
|
+
x as persistenceService,
|
|
10845
10847
|
At as pictureStepService,
|
|
10846
10848
|
et as questionStepService,
|
|
10847
10849
|
Di as registerFetchImplementation,
|