@spiffcommerce/core 21.9.0-alpha.9 → 21.9.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 +1 -1
- package/dist/index.js +321 -330
- package/dist/index.umd.cjs +23 -16
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { createHttpLink as
|
|
2
|
-
import { fetch as
|
|
1
|
+
import { createHttpLink as hA, InMemoryCache as EA, ApolloClient as uA, from as CA, gql as D } from "@apollo/client/core";
|
|
2
|
+
import { fetch as $e, AssetType as dt, StepType as y, getFrameData as _e, frameDataCache as QA, GroupCommand as G, UpdateFramePattern as St, UpdateFrameThresholdSettingsCommand as mA, calculateOffsets as et, LayoutElementType as k, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Yt, svgObjectURL as Me, fetchAsString as Z, DeleteElementCommand as $, generateDefaultRectangleFrameSvg as wt, GetSVGDimensions as pA, patternImageDataCache as ht, fetchAsArrayBuffer as IA, getAttributesFromArrayBuffer as fA, findElement as Se, modifySVGWithElementProperties as DA, IllustrationColorCommand as je, IllustrationCacheCommand as FA, getFontMetrics as yA, getPatternImageData as Ve, FontAlignmentCommand as MA, FontColorCommand as SA, FontImageFillCommand as Je, applyTextTransformations as We, determineCorrectFontSizeAndLines as De, FontSourceCommand as Et, loadFont as tt, TextChangeCommand as YA, FontSizeCommand as PA, createElementNS as xA, createElement as Ee, _loadFontExternalDataURL as At, UpdateWorkflowStateCommand as ut, CommandContext as NA, createCanvas as Ye, getSvgElement as Pt, LayoutRenderingPurpose as xt, renderPapyrusComponentAsString as Nt, loadImage as Ht, getDomParser as Rt, toBase64 as Ct, getVariant as HA, generateFrameSVG as RA, getDefaultVariant as Ge, domParser as Ut, sanitizeSvgTree as Gt, traverse as UA, xmlSerializer as vt, CreateLayoutCommand as GA, AspectType as ce, rehydrateSerializedLayout as ee } from "@spiffcommerce/papyrus";
|
|
3
3
|
import { AspectType as Wi, AssetType as Xi, BringForwardCommand as qi, BringToBackCommand as Zi, BringToFrontCommand as $i, CanvasCommand as _i, CommandContext as es, CreateElementCommand as ts, CreateLayoutCommand as As, DeleteElementCommand as as, FontAlignmentCommand as ns, FontColorCommand as is, FontSizeCommand as ss, FontSourceCommand as os, GroupCommand as rs, LayoutElementFactory as cs, LayoutElementType as gs, MoveCommand as ls, ResizeCommand as Bs, RotateCommand as ds, SendBackwardsCommand as ws, StepAspectType as hs, StepType as Es, TextChangeCommand as us, UnitOfMeasurement as Cs, dataUrlFromExternalUrl as Qs, determineCorrectFontSizeAndLines as ms, findElement as ps, frameDataCache as Is, generate as fs, generateSVGWithUnknownColors as Ds, getAttributesFromArrayBuffer as Fs, getAxisAlignedBoundingBox as ys, getFrameData as Ms, getSvgElement as Ss, loadFont as Ys, patternImageDataCache as Ps, registerFetchImplementation as xs, registerWindowImplementation as Ns, rehydrateSerializedLayout as Hs, setCanvasModule as Rs } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as vA } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as kA } from "@apollo/client/link/error";
|
|
6
|
-
import { Pith as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
6
|
+
import { Pith as kt } from "pith";
|
|
7
|
+
import bt from "lodash.debounce";
|
|
8
|
+
import Jt from "lodash.isequal";
|
|
9
9
|
import le from "lodash.clonedeep";
|
|
10
|
-
import { toString as
|
|
11
|
-
import { split as
|
|
10
|
+
import { toString as Lt } from "qrcode";
|
|
11
|
+
import { split as Xe } from "unicode-default-word-boundary";
|
|
12
12
|
import at from "svg-path-bbox";
|
|
13
13
|
import Qt from "lodash.chunk";
|
|
14
|
-
class
|
|
14
|
+
class Ot extends Error {
|
|
15
15
|
constructor(e) {
|
|
16
16
|
super(e), this.name = this.constructor.name;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
class we extends
|
|
19
|
+
class we extends Ot {
|
|
20
20
|
constructor(e) {
|
|
21
21
|
super(`ConfigurationError - ${e}`);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
class
|
|
24
|
+
class Pe extends we {
|
|
25
25
|
constructor(e) {
|
|
26
26
|
super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
|
|
27
27
|
}
|
|
@@ -41,12 +41,12 @@ class Be extends we {
|
|
|
41
41
|
super(`Resource not found for asset: ${e.name}`), this.asset = e;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
class
|
|
44
|
+
class xe extends we {
|
|
45
45
|
constructor(e, t) {
|
|
46
46
|
super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
class ve extends
|
|
49
|
+
class ve extends Ot {
|
|
50
50
|
constructor(e) {
|
|
51
51
|
super(`ImplementationError - ${e}`);
|
|
52
52
|
}
|
|
@@ -148,9 +148,9 @@ class LA {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
const q = new LA();
|
|
151
|
-
let
|
|
151
|
+
let Tt;
|
|
152
152
|
const pt = (c) => {
|
|
153
|
-
|
|
153
|
+
Tt = c;
|
|
154
154
|
};
|
|
155
155
|
let nt;
|
|
156
156
|
const OA = (c) => {
|
|
@@ -163,7 +163,7 @@ const OA = (c) => {
|
|
|
163
163
|
}), KA = async () => {
|
|
164
164
|
const c = {
|
|
165
165
|
applicationKey: nt,
|
|
166
|
-
customerToken:
|
|
166
|
+
customerToken: Tt
|
|
167
167
|
};
|
|
168
168
|
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await zA(), ...c } : c;
|
|
169
169
|
};
|
|
@@ -177,9 +177,9 @@ class jA {
|
|
|
177
177
|
return this.shadowGraphqlClient;
|
|
178
178
|
}
|
|
179
179
|
constructShadowGraphqlClient() {
|
|
180
|
-
const e =
|
|
180
|
+
const e = hA({
|
|
181
181
|
uri: `${q.getServerUrl()}/graphql`,
|
|
182
|
-
fetch:
|
|
182
|
+
fetch: $e
|
|
183
183
|
}), t = vA(async (i, s) => {
|
|
184
184
|
const { headers: o } = s, r = o || {}, g = await KA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, h = s.applicationKey ?? g.applicationKey, C = s.bundleOwnerId;
|
|
185
185
|
try {
|
|
@@ -211,7 +211,7 @@ class jA {
|
|
|
211
211
|
}
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
|
-
const n = new
|
|
214
|
+
const n = new EA({
|
|
215
215
|
addTypename: !1,
|
|
216
216
|
typePolicies: {
|
|
217
217
|
Transaction: {
|
|
@@ -245,8 +245,8 @@ class jA {
|
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
});
|
|
248
|
-
return new
|
|
249
|
-
link:
|
|
248
|
+
return new uA({
|
|
249
|
+
link: CA([A, t, e]),
|
|
250
250
|
cache: n,
|
|
251
251
|
name: "Core"
|
|
252
252
|
});
|
|
@@ -259,7 +259,7 @@ const x = new jA(), VA = D`
|
|
|
259
259
|
value
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
|
-
`,
|
|
262
|
+
`, he = (c) => D`
|
|
263
263
|
${c && VA || ""}
|
|
264
264
|
fragment AssetFields on Asset {
|
|
265
265
|
name
|
|
@@ -275,7 +275,7 @@ const x = new jA(), VA = D`
|
|
|
275
275
|
${c && "...AssetMetadataFields" || ""}
|
|
276
276
|
}
|
|
277
277
|
`, WA = D`
|
|
278
|
-
${
|
|
278
|
+
${he(!1)}
|
|
279
279
|
query GetAssets($keys: [String]!) {
|
|
280
280
|
assets(keys: $keys) {
|
|
281
281
|
...AssetFields
|
|
@@ -349,21 +349,28 @@ const x = new jA(), VA = D`
|
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
|
-
`,
|
|
352
|
+
`, ZA = D`
|
|
353
|
+
${he(!1)}
|
|
354
|
+
mutation RemoveBackgroundFromAsset($key: String!) {
|
|
355
|
+
assetRemoveBackground(key: $key) {
|
|
356
|
+
...AssetFields
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
`, zt = async (c) => (await x.getShadowGraphqlClient().query({
|
|
353
360
|
query: WA,
|
|
354
361
|
errorPolicy: "all",
|
|
355
362
|
fetchPolicy: "no-cache",
|
|
356
363
|
variables: {
|
|
357
364
|
keys: c
|
|
358
365
|
}
|
|
359
|
-
})).data.assets,
|
|
366
|
+
})).data.assets, $A = async (c) => (await x.getShadowGraphqlClient().query({
|
|
360
367
|
query: XA,
|
|
361
368
|
errorPolicy: "all",
|
|
362
369
|
fetchPolicy: "no-cache",
|
|
363
370
|
variables: {
|
|
364
371
|
ids: c
|
|
365
372
|
}
|
|
366
|
-
})).data.materials,
|
|
373
|
+
})).data.materials, _A = async (c, e, t, A, a) => {
|
|
367
374
|
var i;
|
|
368
375
|
return (i = (await x.getShadowGraphqlClient().mutate({
|
|
369
376
|
mutation: qA,
|
|
@@ -377,11 +384,6 @@ const x = new jA(), VA = D`
|
|
|
377
384
|
temporary: a
|
|
378
385
|
}
|
|
379
386
|
})).data) == null ? void 0 : i.assetCreate;
|
|
380
|
-
}, _A = (c, e) => {
|
|
381
|
-
const t = atob(c), A = [];
|
|
382
|
-
for (let a = 0; a < t.length; a++)
|
|
383
|
-
A.push(t.charCodeAt(a));
|
|
384
|
-
return new Blob([new Uint8Array(A)], { type: e });
|
|
385
387
|
};
|
|
386
388
|
class ea {
|
|
387
389
|
constructor() {
|
|
@@ -403,7 +405,7 @@ class ea {
|
|
|
403
405
|
throw new b("Failed to get asset from cache!");
|
|
404
406
|
return a;
|
|
405
407
|
}
|
|
406
|
-
const A = (async () => (await
|
|
408
|
+
const A = (async () => (await zt([e]))[0])();
|
|
407
409
|
return this.cache.set(e, A), A;
|
|
408
410
|
}
|
|
409
411
|
/**
|
|
@@ -429,7 +431,7 @@ class ea {
|
|
|
429
431
|
async getMaterialLocalOrFromServer(e) {
|
|
430
432
|
if (this.materialCache.has(e))
|
|
431
433
|
return this.materialCache.get(e);
|
|
432
|
-
const A = (async () => (await
|
|
434
|
+
const A = (async () => (await $A([e]))[0])();
|
|
433
435
|
return this.materialCache.set(e, A), A;
|
|
434
436
|
}
|
|
435
437
|
/**
|
|
@@ -446,7 +448,7 @@ class ea {
|
|
|
446
448
|
g.lengthComputable && A(g.loaded * 100 / g.total);
|
|
447
449
|
}, r.onload = () => {
|
|
448
450
|
const g = i.assetResponse.asset;
|
|
449
|
-
|
|
451
|
+
Le.add(i.assetResponse.asset), s(g);
|
|
450
452
|
}, r.onerror = o, r.send(e.blob);
|
|
451
453
|
}), this.cacheAsset(i.assetResponse.asset), i.assetResponse.asset;
|
|
452
454
|
}
|
|
@@ -471,19 +473,26 @@ class ea {
|
|
|
471
473
|
if (this.bgrmCache.has(e.key))
|
|
472
474
|
return this.bgrmCache.get(e.key);
|
|
473
475
|
const A = (async () => {
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
476
|
+
var n, i;
|
|
477
|
+
const a = await x.getShadowGraphqlClient().mutate({
|
|
478
|
+
mutation: ZA,
|
|
479
|
+
fetchPolicy: "no-cache",
|
|
480
|
+
errorPolicy: "all",
|
|
481
|
+
variables: {
|
|
482
|
+
key: e.key
|
|
483
|
+
}
|
|
484
|
+
});
|
|
485
|
+
if (!((i = (n = a.data) == null ? void 0 : n.assetRemoveBackground) != null && i.key))
|
|
486
|
+
throw new Error("Failed to remove background from image");
|
|
487
|
+
return a.data.assetRemoveBackground;
|
|
479
488
|
})();
|
|
480
489
|
return this.bgrmCache.set(e.key, A), A;
|
|
481
490
|
}
|
|
482
491
|
removePersistedAsset(e) {
|
|
483
|
-
|
|
492
|
+
Le.remove(e);
|
|
484
493
|
}
|
|
485
494
|
getPersistedAssets() {
|
|
486
|
-
return
|
|
495
|
+
return Le.list();
|
|
487
496
|
}
|
|
488
497
|
/**
|
|
489
498
|
* Handles mimeType resolution & asset creation request
|
|
@@ -491,35 +500,13 @@ class ea {
|
|
|
491
500
|
* @param assetType The type of asset we're expecting to upload
|
|
492
501
|
*/
|
|
493
502
|
async dispatchCreateAssetRequest(e, t, A, a) {
|
|
494
|
-
const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await
|
|
503
|
+
const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await _A(e.name, t, n, A, a);
|
|
495
504
|
if (i)
|
|
496
505
|
return {
|
|
497
506
|
assetResponse: i,
|
|
498
507
|
mimeType: n
|
|
499
508
|
};
|
|
500
509
|
}
|
|
501
|
-
async removeBackground(e) {
|
|
502
|
-
const t = "https://sdk.photoroom.com/v1/segment", A = new FormData();
|
|
503
|
-
A.append("image_file", e);
|
|
504
|
-
try {
|
|
505
|
-
const a = await Ue(t, {
|
|
506
|
-
method: "POST",
|
|
507
|
-
headers: {
|
|
508
|
-
Accept: "image/png, application/json",
|
|
509
|
-
"x-api-key": "2a9a611f0a606b8ef163c7836c3ce7e083bb504b"
|
|
510
|
-
},
|
|
511
|
-
body: A
|
|
512
|
-
});
|
|
513
|
-
if (a.headers.get("Content-Type") === "image/png")
|
|
514
|
-
return await a.blob();
|
|
515
|
-
const i = await a.json();
|
|
516
|
-
if (i.result_b64)
|
|
517
|
-
return _A(i.result_b64, "image/png");
|
|
518
|
-
throw new Error("Failed to remove background from file.");
|
|
519
|
-
} catch (a) {
|
|
520
|
-
throw console.error("Failed to remove background from file"), a;
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
510
|
guessMIME(e) {
|
|
524
511
|
const t = e.split(".").pop();
|
|
525
512
|
switch (t) {
|
|
@@ -535,7 +522,7 @@ class ea {
|
|
|
535
522
|
}
|
|
536
523
|
}
|
|
537
524
|
const ie = "persistentAssets";
|
|
538
|
-
class
|
|
525
|
+
class Le {
|
|
539
526
|
/**
|
|
540
527
|
* Add a new asset to persistence
|
|
541
528
|
* @param asset The asset to add.
|
|
@@ -603,7 +590,7 @@ class ta {
|
|
|
603
590
|
this.disabled = e;
|
|
604
591
|
}
|
|
605
592
|
}
|
|
606
|
-
const de = new ta(),
|
|
593
|
+
const de = new ta(), Kt = D`
|
|
607
594
|
fragment OptionFields on Option {
|
|
608
595
|
id
|
|
609
596
|
name
|
|
@@ -644,9 +631,9 @@ const de = new ta(), jt = D`
|
|
|
644
631
|
}
|
|
645
632
|
}
|
|
646
633
|
`, Aa = D`
|
|
647
|
-
${
|
|
634
|
+
${he(!1)}
|
|
648
635
|
${it}
|
|
649
|
-
${
|
|
636
|
+
${Kt}
|
|
650
637
|
query GetOptions($ids: [String]!) {
|
|
651
638
|
options(ids: $ids) {
|
|
652
639
|
...OptionFields
|
|
@@ -730,7 +717,7 @@ class sa {
|
|
|
730
717
|
}
|
|
731
718
|
}
|
|
732
719
|
const j = new sa();
|
|
733
|
-
var oa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(oa || {}), ra = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(ra || {}), ca = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(ca || {}), ga = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(ga || {}),
|
|
720
|
+
var oa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(oa || {}), ra = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(ra || {}), ca = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(ca || {}), ga = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(ga || {}), Ne = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ne || {});
|
|
734
721
|
const ne = D`
|
|
735
722
|
fragment AdditionalIntegrationProductFields on IntegrationProduct {
|
|
736
723
|
id
|
|
@@ -991,7 +978,7 @@ const ne = D`
|
|
|
991
978
|
}
|
|
992
979
|
}
|
|
993
980
|
}
|
|
994
|
-
`,
|
|
981
|
+
`, ue = D`
|
|
995
982
|
${ne}
|
|
996
983
|
query ReadTransactions($ids: [String]!) {
|
|
997
984
|
transactions(ids: $ids) {
|
|
@@ -1160,14 +1147,14 @@ D`
|
|
|
1160
1147
|
}
|
|
1161
1148
|
}
|
|
1162
1149
|
`;
|
|
1163
|
-
const
|
|
1150
|
+
const jt = D`
|
|
1164
1151
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1165
1152
|
transactions(ids: $ids) {
|
|
1166
1153
|
id
|
|
1167
1154
|
workflowState
|
|
1168
1155
|
}
|
|
1169
1156
|
}
|
|
1170
|
-
`,
|
|
1157
|
+
`, Vt = D`
|
|
1171
1158
|
${ne}
|
|
1172
1159
|
fragment IntegrationProductFields on IntegrationProduct {
|
|
1173
1160
|
id
|
|
@@ -1215,14 +1202,14 @@ const Vt = D`
|
|
|
1215
1202
|
}
|
|
1216
1203
|
}
|
|
1217
1204
|
`, Ea = D`
|
|
1218
|
-
${
|
|
1205
|
+
${Vt}
|
|
1219
1206
|
query GetIntegrationProducts($ids: [String!]!) {
|
|
1220
1207
|
integrationProducts(ids: $ids) {
|
|
1221
1208
|
...IntegrationProductFields
|
|
1222
1209
|
}
|
|
1223
1210
|
}
|
|
1224
1211
|
`, ua = D`
|
|
1225
|
-
${
|
|
1212
|
+
${Vt}
|
|
1226
1213
|
query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
|
|
1227
1214
|
integrationProductFromExternalIds(
|
|
1228
1215
|
externalIntegrationId: $externalIntegrationId
|
|
@@ -1320,12 +1307,12 @@ const Vt = D`
|
|
|
1320
1307
|
);
|
|
1321
1308
|
return n;
|
|
1322
1309
|
};
|
|
1323
|
-
class
|
|
1310
|
+
class Wt {
|
|
1324
1311
|
constructor() {
|
|
1325
1312
|
this.timestamp = Date.now();
|
|
1326
1313
|
}
|
|
1327
1314
|
}
|
|
1328
|
-
class
|
|
1315
|
+
class Xt {
|
|
1329
1316
|
/**
|
|
1330
1317
|
* Constructs a new promise queue.
|
|
1331
1318
|
* @param queueMaxSize An optional maximum size, when the max size is hit.
|
|
@@ -1401,17 +1388,17 @@ function Ia(c, e, t, A) {
|
|
|
1401
1388
|
const s = c, o = Math.max(e.width / t.width, e.height / t.height);
|
|
1402
1389
|
s.zoom = Math.max(o, c.zoom);
|
|
1403
1390
|
const r = t.width * s.zoom, g = t.height * s.zoom;
|
|
1404
|
-
return s.x =
|
|
1391
|
+
return s.x = Ce(c.x, e.width - r, 0), s.y = Ce(c.y, e.height - g, 0), s;
|
|
1405
1392
|
}
|
|
1406
1393
|
const i = c;
|
|
1407
|
-
return i.x =
|
|
1394
|
+
return i.x = Ce(i.x, -a, e.width), i.y = Ce(i.y, -n, e.height), i;
|
|
1408
1395
|
}
|
|
1409
|
-
function
|
|
1396
|
+
function Ce(c, e, t) {
|
|
1410
1397
|
return Math.min(Math.max(c, e), t);
|
|
1411
1398
|
}
|
|
1412
1399
|
class fa {
|
|
1413
1400
|
constructor(e) {
|
|
1414
|
-
this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets =
|
|
1401
|
+
this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = bt(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = { useThreshold: !1, invertThreshold: !1, threshold: 128, thresholdSaturation: 0.5 };
|
|
1415
1402
|
}
|
|
1416
1403
|
/**
|
|
1417
1404
|
* When we want to connect a workflow manager to the state of the image cropper we
|
|
@@ -1427,7 +1414,7 @@ class fa {
|
|
|
1427
1414
|
let n = !1;
|
|
1428
1415
|
for (let i = 0; i < a.currentFrameSources.length; i++) {
|
|
1429
1416
|
const s = a.currentFrameSources[i], o = await _e(s);
|
|
1430
|
-
|
|
1417
|
+
Jt(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
|
|
1431
1418
|
}
|
|
1432
1419
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
1433
1420
|
(i) => i(this.frameData)
|
|
@@ -1461,7 +1448,7 @@ class fa {
|
|
|
1461
1448
|
return;
|
|
1462
1449
|
}
|
|
1463
1450
|
e.forEach((t, A) => {
|
|
1464
|
-
const a =
|
|
1451
|
+
const a = QA.get(t);
|
|
1465
1452
|
a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
|
|
1466
1453
|
});
|
|
1467
1454
|
}
|
|
@@ -1569,8 +1556,8 @@ class fa {
|
|
|
1569
1556
|
n.forEach((o, r) => {
|
|
1570
1557
|
s(
|
|
1571
1558
|
new G([
|
|
1572
|
-
new
|
|
1573
|
-
new
|
|
1559
|
+
new St(o, t, e[r]),
|
|
1560
|
+
new mA(o, a.useThreshold, a.invertThreshold, a.threshold, a.thresholdSaturation)
|
|
1574
1561
|
])
|
|
1575
1562
|
);
|
|
1576
1563
|
}), this.stepName && this.workflowManager.updateStorage(this.stepName, {
|
|
@@ -1605,7 +1592,7 @@ class ft {
|
|
|
1605
1592
|
if (this.configuration.type === y.ProductOverlay) {
|
|
1606
1593
|
let l = "";
|
|
1607
1594
|
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1608
|
-
throw new
|
|
1595
|
+
throw new xe(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1609
1596
|
}
|
|
1610
1597
|
const s = this.evaluateAssetType();
|
|
1611
1598
|
if (s === k.Image) {
|
|
@@ -1637,7 +1624,7 @@ class ft {
|
|
|
1637
1624
|
command: new O(d, n)
|
|
1638
1625
|
};
|
|
1639
1626
|
} else {
|
|
1640
|
-
const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await
|
|
1627
|
+
const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Yt(await (async () => new Promise((h, C) => {
|
|
1641
1628
|
if (!l) {
|
|
1642
1629
|
C("Undefined vector silent step source");
|
|
1643
1630
|
return;
|
|
@@ -1648,7 +1635,7 @@ class ft {
|
|
|
1648
1635
|
}))()), E = {
|
|
1649
1636
|
stepName: this.configuration.stepName,
|
|
1650
1637
|
id: J(),
|
|
1651
|
-
cachedObjectURL: await
|
|
1638
|
+
cachedObjectURL: await Me(w.svg),
|
|
1652
1639
|
src: l,
|
|
1653
1640
|
svg: w.svg,
|
|
1654
1641
|
colors: w.colors,
|
|
@@ -1676,7 +1663,7 @@ class ft {
|
|
|
1676
1663
|
}
|
|
1677
1664
|
async trigger() {
|
|
1678
1665
|
if (!this.configuration.data.regions)
|
|
1679
|
-
throw new
|
|
1666
|
+
throw new xe(this.configuration, "Missing regions.");
|
|
1680
1667
|
if (this.configuration.type === y.SilentIllustration) {
|
|
1681
1668
|
const e = this.configuration.data.regions.map(this.processRegion);
|
|
1682
1669
|
return Promise.all(e);
|
|
@@ -1709,7 +1696,7 @@ const Da = async (c) => {
|
|
|
1709
1696
|
throw console.error(t), new ke("Failed to shorten URL, see console.");
|
|
1710
1697
|
}
|
|
1711
1698
|
};
|
|
1712
|
-
class
|
|
1699
|
+
class qt {
|
|
1713
1700
|
async poll() {
|
|
1714
1701
|
try {
|
|
1715
1702
|
if (await this.predicate()) {
|
|
@@ -1754,10 +1741,10 @@ class Fa {
|
|
|
1754
1741
|
if (!t && A !== "" && a === "") {
|
|
1755
1742
|
const g = async () => {
|
|
1756
1743
|
var Q, m;
|
|
1757
|
-
const u = (await
|
|
1744
|
+
const u = (await zt([A]))[0], f = (m = (Q = u == null ? void 0 : u.versions) == null ? void 0 : Q.find((p) => p.name === "mpeg4")) == null ? void 0 : m.link;
|
|
1758
1745
|
return { asset: u, link: f };
|
|
1759
1746
|
}, B = await new Promise((u, f) => {
|
|
1760
|
-
new
|
|
1747
|
+
new qt(
|
|
1761
1748
|
async () => !!(await g()).link,
|
|
1762
1749
|
async () => {
|
|
1763
1750
|
const Q = await g();
|
|
@@ -1783,7 +1770,7 @@ class Fa {
|
|
|
1783
1770
|
throw new ke("Cannot create QR code, URL too long.");
|
|
1784
1771
|
const E = await Da(w);
|
|
1785
1772
|
if (s(E), !i.data || !i.data.regions)
|
|
1786
|
-
throw new
|
|
1773
|
+
throw new xe(i, "Missing regions.");
|
|
1787
1774
|
const h = await this.regionElements(i), C = await this.command(E, h, n, i.stepName);
|
|
1788
1775
|
C && (C.command && n.getCommandDispatcher()(C.command), C.followup && await C.followup()), await n.setSelectionsAndElements(i.stepName, [], h, async () => {
|
|
1789
1776
|
n.updateStorage(i.stepName, {
|
|
@@ -1799,7 +1786,7 @@ class Fa {
|
|
|
1799
1786
|
return e.data.regions.map(t);
|
|
1800
1787
|
}
|
|
1801
1788
|
async command(e, t, A, a) {
|
|
1802
|
-
const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await
|
|
1789
|
+
const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await Lt(e, { type: "svg" }))}`, o = t.map((r) => {
|
|
1803
1790
|
const g = r.region, B = n.find((l) => l.panelId === (g == null ? void 0 : g.panelId));
|
|
1804
1791
|
if (!B && g)
|
|
1805
1792
|
throw new z(g);
|
|
@@ -1923,7 +1910,7 @@ class Ma {
|
|
|
1923
1910
|
selectImage(e, t, A) {
|
|
1924
1911
|
return A.setEditedStatus(e.stepName, !0), (t.fileLink || "").endsWith("pdf") ? new Promise((n) => {
|
|
1925
1912
|
A.addPoller(
|
|
1926
|
-
new
|
|
1913
|
+
new qt(
|
|
1927
1914
|
async () => {
|
|
1928
1915
|
var r;
|
|
1929
1916
|
const s = (r = (await v.getLocalOrFromServer(t.key || "")).versions) == null ? void 0 : r.find((g) => g.name === "svg");
|
|
@@ -1982,7 +1969,7 @@ class Ma {
|
|
|
1982
1969
|
}
|
|
1983
1970
|
async loadPatternFromString(e, t) {
|
|
1984
1971
|
if (e.endsWith("svg")) {
|
|
1985
|
-
const A = await
|
|
1972
|
+
const A = await pA(e), a = A.width, n = A.height, i = {
|
|
1986
1973
|
src: e,
|
|
1987
1974
|
width: a,
|
|
1988
1975
|
height: n,
|
|
@@ -1990,7 +1977,7 @@ class Ma {
|
|
|
1990
1977
|
};
|
|
1991
1978
|
ht.set(e, i), t.setPatternData(i);
|
|
1992
1979
|
} else {
|
|
1993
|
-
const A = await
|
|
1980
|
+
const A = await IA(e, !0), a = await fA(A), n = {
|
|
1994
1981
|
src: e,
|
|
1995
1982
|
width: a.width,
|
|
1996
1983
|
height: a.height,
|
|
@@ -2086,7 +2073,7 @@ class Ma {
|
|
|
2086
2073
|
}), A.markUpdateCompleted(n);
|
|
2087
2074
|
}
|
|
2088
2075
|
}
|
|
2089
|
-
const
|
|
2076
|
+
const Fe = new Ma();
|
|
2090
2077
|
class Sa {
|
|
2091
2078
|
async getIllustrationBody(e) {
|
|
2092
2079
|
return new Promise((t) => {
|
|
@@ -2123,7 +2110,7 @@ class Sa {
|
|
|
2123
2110
|
if (A.length === 0)
|
|
2124
2111
|
return [];
|
|
2125
2112
|
try {
|
|
2126
|
-
return
|
|
2113
|
+
return Se(
|
|
2127
2114
|
A[0].id,
|
|
2128
2115
|
t.getAllLayoutData()
|
|
2129
2116
|
).colors;
|
|
@@ -2188,10 +2175,10 @@ class Sa {
|
|
|
2188
2175
|
const i = {};
|
|
2189
2176
|
for (const [B, l] of n.entries())
|
|
2190
2177
|
i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
|
|
2191
|
-
const s = DA(e, t, A, i), o = await
|
|
2178
|
+
const s = DA(e, t, A, i), o = await Me(s), r = [];
|
|
2192
2179
|
for (const B of a) {
|
|
2193
2180
|
for (const [l, d] of n.entries())
|
|
2194
|
-
r.push(new
|
|
2181
|
+
r.push(new je(B, l, d));
|
|
2195
2182
|
r.push(new FA(B, s, o));
|
|
2196
2183
|
}
|
|
2197
2184
|
return new G(r);
|
|
@@ -2200,7 +2187,7 @@ class Sa {
|
|
|
2200
2187
|
var d, w;
|
|
2201
2188
|
if (t.length === 0)
|
|
2202
2189
|
return;
|
|
2203
|
-
const i =
|
|
2190
|
+
const i = Se(
|
|
2204
2191
|
t[0].id,
|
|
2205
2192
|
a().map((E) => E.layoutState)
|
|
2206
2193
|
), s = { ...i.colors }, o = {};
|
|
@@ -2241,7 +2228,7 @@ class Sa {
|
|
|
2241
2228
|
async selectVariantCommand(e, t, A, a, n) {
|
|
2242
2229
|
var C;
|
|
2243
2230
|
if (!e.data || !e.data.regions)
|
|
2244
|
-
throw new
|
|
2231
|
+
throw new xe(e, "Missing regions.");
|
|
2245
2232
|
a(!0);
|
|
2246
2233
|
const i = A.map((u) => new $(u.id));
|
|
2247
2234
|
n.setMandatoryFulfilled(e.stepName, !1);
|
|
@@ -2251,7 +2238,7 @@ class Sa {
|
|
|
2251
2238
|
const o = s.fileLink;
|
|
2252
2239
|
if (!o)
|
|
2253
2240
|
throw new Be(s);
|
|
2254
|
-
const r = await
|
|
2241
|
+
const r = await Yt(await this.getIllustrationBody(o)), g = await Me(r.svg), B = (u) => {
|
|
2255
2242
|
const f = n.getLayouts().find((m) => m.panelId === u.panelId);
|
|
2256
2243
|
if (!f)
|
|
2257
2244
|
throw new z(u);
|
|
@@ -2299,12 +2286,12 @@ class Sa {
|
|
|
2299
2286
|
};
|
|
2300
2287
|
}
|
|
2301
2288
|
}
|
|
2302
|
-
const
|
|
2289
|
+
const ye = new Sa();
|
|
2303
2290
|
class Ya {
|
|
2304
2291
|
async init(e, t, A) {
|
|
2305
2292
|
const a = e.option;
|
|
2306
2293
|
if (!a)
|
|
2307
|
-
throw new
|
|
2294
|
+
throw new Pe(e);
|
|
2308
2295
|
if (A)
|
|
2309
2296
|
await this.reload(e, t, A);
|
|
2310
2297
|
else {
|
|
@@ -2322,7 +2309,7 @@ class Ya {
|
|
|
2322
2309
|
A.serializableWorkflow.steps
|
|
2323
2310
|
), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
|
|
2324
2311
|
if (!o)
|
|
2325
|
-
throw new
|
|
2312
|
+
throw new Pe(e);
|
|
2326
2313
|
if (a != null && a.selectedVariants) {
|
|
2327
2314
|
const g = a.selectedVariants[0].id;
|
|
2328
2315
|
if (g) {
|
|
@@ -2373,12 +2360,12 @@ class Ya {
|
|
|
2373
2360
|
};
|
|
2374
2361
|
}
|
|
2375
2362
|
}
|
|
2376
|
-
const
|
|
2363
|
+
const Zt = new Ya();
|
|
2377
2364
|
class Pa {
|
|
2378
2365
|
async init(e, t, A) {
|
|
2379
2366
|
const a = e.option;
|
|
2380
2367
|
if (!a)
|
|
2381
|
-
throw new
|
|
2368
|
+
throw new Pe(e);
|
|
2382
2369
|
if (A)
|
|
2383
2370
|
await this.reload(e, t, A);
|
|
2384
2371
|
else {
|
|
@@ -2459,7 +2446,7 @@ class Pa {
|
|
|
2459
2446
|
};
|
|
2460
2447
|
}
|
|
2461
2448
|
}
|
|
2462
|
-
const
|
|
2449
|
+
const $t = new Pa();
|
|
2463
2450
|
class xa {
|
|
2464
2451
|
async init(e, t, A) {
|
|
2465
2452
|
if (A)
|
|
@@ -2562,7 +2549,7 @@ class xa {
|
|
|
2562
2549
|
}
|
|
2563
2550
|
if (!/^$|^[a-zA-Z0-9 ]+$/.test(t))
|
|
2564
2551
|
return a("Unsupported characters."), !1;
|
|
2565
|
-
const n =
|
|
2552
|
+
const n = Xe(t.toLowerCase());
|
|
2566
2553
|
for (const i of n)
|
|
2567
2554
|
for (const s in A) {
|
|
2568
2555
|
const o = A[s].toLowerCase().replace(/\s/g, "");
|
|
@@ -2664,7 +2651,7 @@ class Ha {
|
|
|
2664
2651
|
};
|
|
2665
2652
|
}
|
|
2666
2653
|
}
|
|
2667
|
-
const
|
|
2654
|
+
const _t = new Ha();
|
|
2668
2655
|
class Ra {
|
|
2669
2656
|
async init(e, t, A) {
|
|
2670
2657
|
const a = e.option;
|
|
@@ -2723,7 +2710,7 @@ class Ra {
|
|
|
2723
2710
|
};
|
|
2724
2711
|
}
|
|
2725
2712
|
}
|
|
2726
|
-
const
|
|
2713
|
+
const eA = new Ra();
|
|
2727
2714
|
class Ua {
|
|
2728
2715
|
constructor() {
|
|
2729
2716
|
this.shapeFillId = "spiff-fill-shape";
|
|
@@ -2743,14 +2730,14 @@ class Ua {
|
|
|
2743
2730
|
const o = s.region;
|
|
2744
2731
|
if (!a.find((g) => g.panelId === (o == null ? void 0 : o.panelId)))
|
|
2745
2732
|
throw new z(o);
|
|
2746
|
-
return new
|
|
2733
|
+
return new je(s.id, this.shapeFillId, e);
|
|
2747
2734
|
}).filter((s) => !!s);
|
|
2748
2735
|
A.getCommandDispatcher()(new G(i)), A.updateStorage(t.stepName, { colour: e });
|
|
2749
2736
|
}
|
|
2750
2737
|
async init(e, t, A) {
|
|
2751
2738
|
const a = e.option;
|
|
2752
2739
|
if (!a)
|
|
2753
|
-
throw new
|
|
2740
|
+
throw new Pe(e);
|
|
2754
2741
|
if (A)
|
|
2755
2742
|
await this.reload(e, t, A);
|
|
2756
2743
|
else {
|
|
@@ -2815,7 +2802,7 @@ class Ua {
|
|
|
2815
2802
|
if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
|
|
2816
2803
|
throw new z(l);
|
|
2817
2804
|
const w = s();
|
|
2818
|
-
return new
|
|
2805
|
+
return new je(B.id, this.shapeFillId, w);
|
|
2819
2806
|
}, g = A.map(r).filter((B) => !!B);
|
|
2820
2807
|
return {
|
|
2821
2808
|
command: new G(g),
|
|
@@ -2919,17 +2906,17 @@ class Ga {
|
|
|
2919
2906
|
);
|
|
2920
2907
|
}
|
|
2921
2908
|
}
|
|
2922
|
-
const va = new Ga(),
|
|
2923
|
-
class
|
|
2909
|
+
const va = new Ga(), Oe = 30;
|
|
2910
|
+
class He extends Error {
|
|
2924
2911
|
constructor(e) {
|
|
2925
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
2912
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = He.name;
|
|
2926
2913
|
}
|
|
2927
2914
|
}
|
|
2928
2915
|
const ka = ["‘", "’", "“", "”", `
|
|
2929
2916
|
`];
|
|
2930
|
-
class
|
|
2917
|
+
class Re extends Error {
|
|
2931
2918
|
constructor(e) {
|
|
2932
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
2919
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Re.name;
|
|
2933
2920
|
}
|
|
2934
2921
|
}
|
|
2935
2922
|
class ba {
|
|
@@ -2951,7 +2938,7 @@ class ba {
|
|
|
2951
2938
|
}, this.textAlign = (e) => e.vertical ? "center" : e.textAlign || "center", this.getErrorsForText = (e, t, A) => {
|
|
2952
2939
|
const a = [];
|
|
2953
2940
|
t.data && t.data.maxLength && e.length > t.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
2954
|
-
const n = A.getProfanities(), i =
|
|
2941
|
+
const n = A.getProfanities(), i = Xe(e.toLowerCase());
|
|
2955
2942
|
for (const o of i)
|
|
2956
2943
|
for (const r in n) {
|
|
2957
2944
|
const g = n[r].toLowerCase().replace(/\s/g, "");
|
|
@@ -2972,7 +2959,7 @@ class ba {
|
|
|
2972
2959
|
if (A)
|
|
2973
2960
|
await this.reload(e, t, A);
|
|
2974
2961
|
else {
|
|
2975
|
-
const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, g = r ? await
|
|
2962
|
+
const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, g = r ? await Ve(r) : void 0, B = g ? {
|
|
2976
2963
|
src: g.src,
|
|
2977
2964
|
height: g.height,
|
|
2978
2965
|
width: g.width,
|
|
@@ -3005,7 +2992,7 @@ class ba {
|
|
|
3005
2992
|
return null;
|
|
3006
2993
|
}
|
|
3007
2994
|
findLayoutElements(e, t) {
|
|
3008
|
-
return e.getRegionElements(t.stepName).map((n) =>
|
|
2995
|
+
return e.getRegionElements(t.stepName).map((n) => Se(n.id, e.getAllLayoutData()));
|
|
3009
2996
|
}
|
|
3010
2997
|
/**
|
|
3011
2998
|
* Get the colors that can be used for a given text step.
|
|
@@ -3067,7 +3054,7 @@ class ba {
|
|
|
3067
3054
|
})) == null ? void 0 : a.filter((i) => !!i)) || [];
|
|
3068
3055
|
return Promise.all(
|
|
3069
3056
|
n.map(async (i) => {
|
|
3070
|
-
const s = await
|
|
3057
|
+
const s = await Ve(i);
|
|
3071
3058
|
return {
|
|
3072
3059
|
src: i,
|
|
3073
3060
|
width: s.width,
|
|
@@ -3091,13 +3078,13 @@ class ba {
|
|
|
3091
3078
|
fillImage: t
|
|
3092
3079
|
});
|
|
3093
3080
|
for (const r of A) {
|
|
3094
|
-
const g = new
|
|
3081
|
+
const g = new Je(r.id, t);
|
|
3095
3082
|
n(g);
|
|
3096
3083
|
}
|
|
3097
3084
|
}
|
|
3098
3085
|
getProcessedInput(e, t, A) {
|
|
3099
3086
|
const a = A ? e : this.injectReplaceableText(e, t);
|
|
3100
|
-
return
|
|
3087
|
+
return We(a, {
|
|
3101
3088
|
vertical: t.vertical,
|
|
3102
3089
|
uppercase: t.uppercase
|
|
3103
3090
|
});
|
|
@@ -3116,7 +3103,7 @@ class ba {
|
|
|
3116
3103
|
for (const l of t) {
|
|
3117
3104
|
if (!l.fontData)
|
|
3118
3105
|
throw new b("Failed to resolve font data for text.");
|
|
3119
|
-
const [d, w] =
|
|
3106
|
+
const [d, w] = De(
|
|
3120
3107
|
l.fontSize,
|
|
3121
3108
|
l.fontData,
|
|
3122
3109
|
{ left: l.x, top: l.y, width: l.width, height: l.height, rotation: l.rotation, panelId: "" },
|
|
@@ -3225,12 +3212,12 @@ class ba {
|
|
|
3225
3212
|
if (a.length > 0) {
|
|
3226
3213
|
const l = a.map((E) => new Et(E.id, g));
|
|
3227
3214
|
if (o) {
|
|
3228
|
-
const E = a.map((h) => new
|
|
3215
|
+
const E = a.map((h) => new Je(h.id, o));
|
|
3229
3216
|
l.push(...E);
|
|
3230
3217
|
}
|
|
3231
3218
|
const d = await this.changeInputTextWithRegion(
|
|
3232
3219
|
e,
|
|
3233
|
-
e.data.size ||
|
|
3220
|
+
e.data.size || Oe,
|
|
3234
3221
|
g,
|
|
3235
3222
|
A.text || "",
|
|
3236
3223
|
A,
|
|
@@ -3255,7 +3242,7 @@ class ba {
|
|
|
3255
3242
|
n
|
|
3256
3243
|
), d = await this.changeInputTextWithRegion(
|
|
3257
3244
|
e,
|
|
3258
|
-
e.data.size ||
|
|
3245
|
+
e.data.size || Oe,
|
|
3259
3246
|
g,
|
|
3260
3247
|
((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
|
|
3261
3248
|
A,
|
|
@@ -3266,7 +3253,7 @@ class ba {
|
|
|
3266
3253
|
), w = l.flatMap((h) => h.commands);
|
|
3267
3254
|
if (o) {
|
|
3268
3255
|
const h = l.map(
|
|
3269
|
-
(C) => new
|
|
3256
|
+
(C) => new Je(C.regionElement.id, o)
|
|
3270
3257
|
);
|
|
3271
3258
|
w.push(...h);
|
|
3272
3259
|
}
|
|
@@ -3294,7 +3281,7 @@ class ba {
|
|
|
3294
3281
|
const d = i.getLayouts().find((h) => h.panelId === B.panelId), w = J();
|
|
3295
3282
|
try {
|
|
3296
3283
|
if (!d)
|
|
3297
|
-
throw new
|
|
3284
|
+
throw new Re("Failed to find layout for region: " + B.panelId);
|
|
3298
3285
|
const h = A.colorOption;
|
|
3299
3286
|
let C;
|
|
3300
3287
|
if (h && h.variants) {
|
|
@@ -3311,7 +3298,7 @@ class ba {
|
|
|
3311
3298
|
stepName: e,
|
|
3312
3299
|
align: this.textAlign(A),
|
|
3313
3300
|
fill: n.color ? n.color : f,
|
|
3314
|
-
fontSize: A.size ||
|
|
3301
|
+
fontSize: A.size || Oe,
|
|
3315
3302
|
fontData: a,
|
|
3316
3303
|
id: w,
|
|
3317
3304
|
layer: B.layer,
|
|
@@ -3333,7 +3320,7 @@ class ba {
|
|
|
3333
3320
|
}, m = [], p = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
|
|
3334
3321
|
if (!Q.fontData)
|
|
3335
3322
|
throw new b("Failed to resolve font data for text.");
|
|
3336
|
-
const [F, M] =
|
|
3323
|
+
const [F, M] = De(
|
|
3337
3324
|
Q.fontSize,
|
|
3338
3325
|
Q.fontData,
|
|
3339
3326
|
{
|
|
@@ -3361,10 +3348,10 @@ class ba {
|
|
|
3361
3348
|
fontData: a
|
|
3362
3349
|
};
|
|
3363
3350
|
} catch (h) {
|
|
3364
|
-
throw console.log(h), new
|
|
3351
|
+
throw console.log(h), new He("Error adding font to region");
|
|
3365
3352
|
}
|
|
3366
3353
|
}, g = await Promise.all(A.regions.map(r)).catch((B) => {
|
|
3367
|
-
throw B instanceof
|
|
3354
|
+
throw B instanceof He ? (va.setLatestToast("Failed to load font.", Ue.Error), B) : B instanceof Re ? B : new Error(B);
|
|
3368
3355
|
});
|
|
3369
3356
|
return await i.setSelectionsAndElements(
|
|
3370
3357
|
e,
|
|
@@ -3394,7 +3381,7 @@ class ba {
|
|
|
3394
3381
|
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), w = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
|
|
3395
3382
|
for (const Q of d)
|
|
3396
3383
|
if (Q.region) {
|
|
3397
|
-
const [m, p] =
|
|
3384
|
+
const [m, p] = De(
|
|
3398
3385
|
t,
|
|
3399
3386
|
A,
|
|
3400
3387
|
Q.region,
|
|
@@ -3406,7 +3393,7 @@ class ba {
|
|
|
3406
3393
|
const C = (() => {
|
|
3407
3394
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
3408
3395
|
return g && g(!0), { info: "0" };
|
|
3409
|
-
const Q = i.getProfanities(), m =
|
|
3396
|
+
const Q = i.getProfanities(), m = Xe(l.toLowerCase());
|
|
3410
3397
|
for (const p of m)
|
|
3411
3398
|
for (const I in Q) {
|
|
3412
3399
|
const F = Q[I].toLowerCase().replace(/\s/g, "");
|
|
@@ -4715,7 +4702,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
4715
4702
|
const e = R("use");
|
|
4716
4703
|
return e.setAttribute("xlink:href", c), e.setAttribute("href", c), e;
|
|
4717
4704
|
};
|
|
4718
|
-
function
|
|
4705
|
+
function tA(c) {
|
|
4719
4706
|
const e = Oa(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(c) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
|
|
4720
4707
|
return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
|
|
4721
4708
|
}
|
|
@@ -4723,20 +4710,20 @@ const za = (c, e, t) => {
|
|
|
4723
4710
|
const A = R("g");
|
|
4724
4711
|
c.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
|
|
4725
4712
|
};
|
|
4726
|
-
function
|
|
4713
|
+
function AA(c, e, t) {
|
|
4727
4714
|
const A = J();
|
|
4728
4715
|
za(e, t, `bgdef-${A}`), c.appendChild(Ta(`#bgdef-${A}`));
|
|
4729
4716
|
}
|
|
4730
|
-
const
|
|
4731
|
-
const a =
|
|
4717
|
+
const aA = (c, e, t, A) => {
|
|
4718
|
+
const a = Ee("filter");
|
|
4732
4719
|
a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
4733
|
-
const n =
|
|
4720
|
+
const n = Ee("feOffset");
|
|
4734
4721
|
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${e}`);
|
|
4735
|
-
const i =
|
|
4722
|
+
const i = Ee("feGaussianBlur");
|
|
4736
4723
|
a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
|
|
4737
|
-
const s =
|
|
4724
|
+
const s = Ee("feBlend");
|
|
4738
4725
|
return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
|
|
4739
|
-
},
|
|
4726
|
+
}, nA = (c) => {
|
|
4740
4727
|
let e = c;
|
|
4741
4728
|
return e = e.replace(/feoffset/gi, "feOffset"), e = e.replace(/fegaussianblur/gi, "feGaussianBlur"), e = e.replace(/feblend/gi, "feBlend"), e = e.replace(/lineargradient/gi, "linearGradient"), e = e.replace(/stddeviation/gi, "stdDeviation"), e;
|
|
4742
4729
|
};
|
|
@@ -4883,7 +4870,7 @@ class ja extends st {
|
|
|
4883
4870
|
brandSvg(e, t) {
|
|
4884
4871
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
4885
4872
|
const m = R("g"), p = R("defs");
|
|
4886
|
-
m.appendChild(p), p.appendChild(
|
|
4873
|
+
m.appendChild(p), p.appendChild(aA(3, 7, 4, "shadow"));
|
|
4887
4874
|
const I = R("g");
|
|
4888
4875
|
m.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
4889
4876
|
const F = R("g");
|
|
@@ -4892,11 +4879,11 @@ class ja extends st {
|
|
|
4892
4879
|
m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
|
|
4893
4880
|
const Y = R("g");
|
|
4894
4881
|
return m.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new ct(m).transform(([N, H]) => [N, H + (n / 2 - N) ** 2 / (n * 2.9)]), m;
|
|
4895
|
-
}, [o, r, g] =
|
|
4882
|
+
}, [o, r, g] = tA(t);
|
|
4896
4883
|
if (!o)
|
|
4897
4884
|
return "";
|
|
4898
4885
|
const B = R("defs");
|
|
4899
|
-
o.appendChild(B),
|
|
4886
|
+
o.appendChild(B), AA(o, B, t);
|
|
4900
4887
|
const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = R("g");
|
|
4901
4888
|
o.appendChild(h), h.setAttribute("transform", `translate(${w} ${E}) rotate(-21)`);
|
|
4902
4889
|
const C = ot(l, d);
|
|
@@ -4906,7 +4893,7 @@ class ja extends st {
|
|
|
4906
4893
|
const f = s();
|
|
4907
4894
|
u.appendChild(f);
|
|
4908
4895
|
const Q = at(i);
|
|
4909
|
-
return rt(u, Q, l, d),
|
|
4896
|
+
return rt(u, Q, l, d), nA(o.outerHTML);
|
|
4910
4897
|
}
|
|
4911
4898
|
}
|
|
4912
4899
|
const Va = "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==";
|
|
@@ -4937,11 +4924,11 @@ class Wa extends st {
|
|
|
4937
4924
|
N,
|
|
4938
4925
|
H + (s / 3 - N) ** 2 / s * this.indicator(N < s / 3)
|
|
4939
4926
|
]), S.transform(([N, H]) => [N - (i - H) * (s - N) / 800, H]), I;
|
|
4940
|
-
}, [g, B, l] =
|
|
4927
|
+
}, [g, B, l] = tA(t);
|
|
4941
4928
|
if (!g)
|
|
4942
4929
|
return "";
|
|
4943
4930
|
const d = R("defs");
|
|
4944
|
-
g.appendChild(d),
|
|
4931
|
+
g.appendChild(d), AA(g, d, t);
|
|
4945
4932
|
let w, E, h, C;
|
|
4946
4933
|
A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22, C = B * 0.32) : (w = B * 0.22 * (1 + 0.1), E = l * 0.8, h = l * 0.067, C = B * 0.33);
|
|
4947
4934
|
const u = R("g");
|
|
@@ -4973,7 +4960,7 @@ class qa extends st {
|
|
|
4973
4960
|
const f = R("g");
|
|
4974
4961
|
f.classList.add("module-text-group");
|
|
4975
4962
|
const Q = R("defs");
|
|
4976
|
-
f.appendChild(Q), Q.appendChild(
|
|
4963
|
+
f.appendChild(Q), Q.appendChild(aA(0, 2, 2, "shadow"));
|
|
4977
4964
|
const m = R("path");
|
|
4978
4965
|
m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), Q.appendChild(m);
|
|
4979
4966
|
const p = R("g");
|
|
@@ -4997,10 +4984,10 @@ class qa extends st {
|
|
|
4997
4984
|
const C = B();
|
|
4998
4985
|
h.appendChild(C);
|
|
4999
4986
|
const u = at(g);
|
|
5000
|
-
return rt(h, u, t.height, t.width, 0.35, 0.65),
|
|
4987
|
+
return rt(h, u, t.height, t.width, 0.35, 0.65), nA(l.outerHTML);
|
|
5001
4988
|
}
|
|
5002
4989
|
}
|
|
5003
|
-
async function
|
|
4990
|
+
async function iA(c) {
|
|
5004
4991
|
if (c === "Favourites")
|
|
5005
4992
|
return new ja();
|
|
5006
4993
|
if (c === "Maltesers") {
|
|
@@ -5011,9 +4998,9 @@ async function sA(c) {
|
|
|
5011
4998
|
return new qa();
|
|
5012
4999
|
throw new b(`Failed to resolve Module, Module ${c} not found`);
|
|
5013
5000
|
}
|
|
5014
|
-
var
|
|
5001
|
+
var Ue = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(Ue || {});
|
|
5015
5002
|
const Za = 1e3;
|
|
5016
|
-
class Ft extends
|
|
5003
|
+
class Ft extends Wt {
|
|
5017
5004
|
constructor(e) {
|
|
5018
5005
|
super(), this.createdAt = /* @__PURE__ */ new Date(), this.update = e;
|
|
5019
5006
|
}
|
|
@@ -5027,7 +5014,7 @@ class Ft extends Xt {
|
|
|
5027
5014
|
}
|
|
5028
5015
|
class $a {
|
|
5029
5016
|
constructor(e, t, A, a, n, i, s, o, r, g, B = !1, l, d = !1, w = !1, E = !1) {
|
|
5030
|
-
this.workflowStatePromiseQueue = new
|
|
5017
|
+
this.workflowStatePromiseQueue = new Xt(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
|
|
5031
5018
|
var u;
|
|
5032
5019
|
if (!this.previewService)
|
|
5033
5020
|
return;
|
|
@@ -5287,7 +5274,7 @@ class $a {
|
|
|
5287
5274
|
...this.storage,
|
|
5288
5275
|
[e]: { ...this.storage[e], ...t }
|
|
5289
5276
|
};
|
|
5290
|
-
if (!
|
|
5277
|
+
if (!Jt(A, this.storage)) {
|
|
5291
5278
|
this.storage = A;
|
|
5292
5279
|
const a = new ut(this.constructSerializableWorkflow());
|
|
5293
5280
|
this.commandContext.apply(a, !0), this.onStepSpecificStorageChange(e), this.onStorageChange();
|
|
@@ -5341,8 +5328,7 @@ class $a {
|
|
|
5341
5328
|
const e = this.getCommandContext().getState();
|
|
5342
5329
|
if (!e)
|
|
5343
5330
|
throw new b("Attempted to serialize state before it was initialized.");
|
|
5344
|
-
|
|
5345
|
-
return console.log(t), { transaction: JSON.stringify(t) };
|
|
5331
|
+
return { transaction: JSON.stringify(this.dehydrateState(le(e.transaction))) };
|
|
5346
5332
|
}
|
|
5347
5333
|
dehydrateState(e) {
|
|
5348
5334
|
for (const t of Object.values(e.layouts).map((A) => A.elements).flat())
|
|
@@ -5492,38 +5478,38 @@ class $a {
|
|
|
5492
5478
|
r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
|
|
5493
5479
|
frameService: r
|
|
5494
5480
|
}, A.push(
|
|
5495
|
-
|
|
5481
|
+
Fe.init(o, this, this.reloadedState)
|
|
5496
5482
|
);
|
|
5497
5483
|
}
|
|
5498
5484
|
break;
|
|
5499
5485
|
case y.Illustration:
|
|
5500
5486
|
A.push(
|
|
5501
|
-
|
|
5487
|
+
ye.init(o, this, this.reloadedState)
|
|
5502
5488
|
);
|
|
5503
5489
|
break;
|
|
5504
5490
|
case y.Material:
|
|
5505
5491
|
A.push(
|
|
5506
|
-
|
|
5492
|
+
Zt.init(o, this, this.reloadedState)
|
|
5507
5493
|
);
|
|
5508
5494
|
break;
|
|
5509
5495
|
case y.Model:
|
|
5510
|
-
A.push(
|
|
5496
|
+
A.push($t.init(o, this, this.reloadedState));
|
|
5511
5497
|
break;
|
|
5512
5498
|
case y.Module:
|
|
5513
5499
|
this.stepSpecificServices[o.stepName] = {
|
|
5514
|
-
module: await
|
|
5500
|
+
module: await iA(o.data.module)
|
|
5515
5501
|
}, A.push(
|
|
5516
5502
|
Na.init(o, this, this.reloadedState)
|
|
5517
5503
|
);
|
|
5518
5504
|
break;
|
|
5519
5505
|
case y.Picture:
|
|
5520
5506
|
A.push(
|
|
5521
|
-
|
|
5507
|
+
_t.init(o, this, this.reloadedState)
|
|
5522
5508
|
);
|
|
5523
5509
|
break;
|
|
5524
5510
|
case y.Question:
|
|
5525
5511
|
A.push(
|
|
5526
|
-
|
|
5512
|
+
eA.init(o, this, this.reloadedState)
|
|
5527
5513
|
);
|
|
5528
5514
|
break;
|
|
5529
5515
|
case y.Shape:
|
|
@@ -5681,7 +5667,7 @@ class X {
|
|
|
5681
5667
|
return this.variantData.enabled;
|
|
5682
5668
|
}
|
|
5683
5669
|
}
|
|
5684
|
-
const
|
|
5670
|
+
const sA = class qe {
|
|
5685
5671
|
constructor(e, t) {
|
|
5686
5672
|
this.manager = e, this.step = t;
|
|
5687
5673
|
}
|
|
@@ -5691,13 +5677,13 @@ const oA = class Ze {
|
|
|
5691
5677
|
* @param value The new value
|
|
5692
5678
|
*/
|
|
5693
5679
|
setUpdateState(e) {
|
|
5694
|
-
|
|
5680
|
+
qe.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
|
|
5695
5681
|
}
|
|
5696
5682
|
/**
|
|
5697
5683
|
* @returns Gets the current update state of this step. All step handles for this step will see this value.
|
|
5698
5684
|
*/
|
|
5699
5685
|
getUpdateState() {
|
|
5700
|
-
return !!
|
|
5686
|
+
return !!qe.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
|
|
5701
5687
|
}
|
|
5702
5688
|
/**
|
|
5703
5689
|
* Gets the currently selected variant, or undefined if no variant is selected.
|
|
@@ -5777,7 +5763,9 @@ const oA = class Ze {
|
|
|
5777
5763
|
setOverrideGlobalPropertyConfiguration(e, t) {
|
|
5778
5764
|
var a;
|
|
5779
5765
|
const A = ((a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.overrideGlobalConfigurations) ?? {};
|
|
5780
|
-
|
|
5766
|
+
this.manager.updateStorage(this.step.stepName, {
|
|
5767
|
+
overrideGlobalConfigurations: { ...A, [e.toString()]: t }
|
|
5768
|
+
});
|
|
5781
5769
|
}
|
|
5782
5770
|
/**
|
|
5783
5771
|
* Retrieves the identifiers of all of the configured aspects for the specified Global Property Configuration.
|
|
@@ -5798,8 +5786,8 @@ const oA = class Ze {
|
|
|
5798
5786
|
e ? a && e.executeCameraAnimation(a) : console.warn("No preview service available, cannot execute camera animations."), t ? A && t.executeAnimation(A) : console.warn("No model container available, cannot execute model animations.");
|
|
5799
5787
|
}
|
|
5800
5788
|
};
|
|
5801
|
-
|
|
5802
|
-
let W =
|
|
5789
|
+
sA.updateState = /* @__PURE__ */ new Map();
|
|
5790
|
+
let W = sA;
|
|
5803
5791
|
class _a extends W {
|
|
5804
5792
|
constructor(e, t) {
|
|
5805
5793
|
super(e, t);
|
|
@@ -5811,7 +5799,7 @@ class _a extends W {
|
|
|
5811
5799
|
*/
|
|
5812
5800
|
async selectVariant(e) {
|
|
5813
5801
|
if (!this.getUpdateState() && this.getCurrentVariant() !== e)
|
|
5814
|
-
return
|
|
5802
|
+
return ye.selectVariant(
|
|
5815
5803
|
this.step,
|
|
5816
5804
|
e.getResource(),
|
|
5817
5805
|
this.manager.getRegionElements(this.step.stepName) || [],
|
|
@@ -5827,7 +5815,7 @@ class _a extends W {
|
|
|
5827
5815
|
const e = this.manager.getRegionElements(this.step.stepName) || [];
|
|
5828
5816
|
if (e.length !== 0)
|
|
5829
5817
|
try {
|
|
5830
|
-
return
|
|
5818
|
+
return Se(e[0].id, this.manager.getAllLayoutData()).colors;
|
|
5831
5819
|
} catch (t) {
|
|
5832
5820
|
console.error(t);
|
|
5833
5821
|
}
|
|
@@ -5837,7 +5825,7 @@ class _a extends W {
|
|
|
5837
5825
|
*/
|
|
5838
5826
|
setColor(e, t) {
|
|
5839
5827
|
const A = /* @__PURE__ */ new Map();
|
|
5840
|
-
return A.set(e, t),
|
|
5828
|
+
return A.set(e, t), ye.changeColors(
|
|
5841
5829
|
this.step,
|
|
5842
5830
|
this.manager.getRegionElements(this.step.stepName),
|
|
5843
5831
|
this.manager,
|
|
@@ -5849,7 +5837,7 @@ class _a extends W {
|
|
|
5849
5837
|
return this.step.data.colorOption;
|
|
5850
5838
|
}
|
|
5851
5839
|
getAvailableColors() {
|
|
5852
|
-
return this.step.data.colorPickerEnabled ?
|
|
5840
|
+
return this.step.data.colorPickerEnabled ? ye.availableColors(this.step, this.manager) : Promise.resolve([]);
|
|
5853
5841
|
}
|
|
5854
5842
|
isColorPickerEnabled() {
|
|
5855
5843
|
return this.step.data.colorPickerEnabled;
|
|
@@ -5860,7 +5848,7 @@ class en extends W {
|
|
|
5860
5848
|
super(e, t);
|
|
5861
5849
|
}
|
|
5862
5850
|
selectVariant(e) {
|
|
5863
|
-
return
|
|
5851
|
+
return Zt.selectVariant(
|
|
5864
5852
|
this.step,
|
|
5865
5853
|
e.getResource(),
|
|
5866
5854
|
this.manager,
|
|
@@ -5873,7 +5861,7 @@ class tn extends W {
|
|
|
5873
5861
|
super(e, t);
|
|
5874
5862
|
}
|
|
5875
5863
|
selectVariant(e) {
|
|
5876
|
-
return
|
|
5864
|
+
return $t.selectVariant(
|
|
5877
5865
|
this.step,
|
|
5878
5866
|
e.getResource(),
|
|
5879
5867
|
this.manager,
|
|
@@ -5891,7 +5879,7 @@ class An extends W {
|
|
|
5891
5879
|
* @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
|
|
5892
5880
|
*/
|
|
5893
5881
|
selectVariant(e) {
|
|
5894
|
-
return
|
|
5882
|
+
return _t.selectVariant(
|
|
5895
5883
|
this.step,
|
|
5896
5884
|
e.getResource(),
|
|
5897
5885
|
this.manager,
|
|
@@ -5906,7 +5894,7 @@ class an extends W {
|
|
|
5906
5894
|
async selectVariant(e) {
|
|
5907
5895
|
if (!e.getId())
|
|
5908
5896
|
throw new Error("Unable to select variant with a null ID");
|
|
5909
|
-
await
|
|
5897
|
+
await eA.selectVariant(this.step, e.getId(), this.manager);
|
|
5910
5898
|
}
|
|
5911
5899
|
/**
|
|
5912
5900
|
* The way that this step expects to be rendered.
|
|
@@ -5997,7 +5985,7 @@ class sn extends W {
|
|
|
5997
5985
|
...this.manager.getInformationResults(),
|
|
5998
5986
|
{
|
|
5999
5987
|
message: "An issue has occured with test",
|
|
6000
|
-
messageType:
|
|
5988
|
+
messageType: Ue.Error,
|
|
6001
5989
|
stepID: this.step.stepName
|
|
6002
5990
|
}
|
|
6003
5991
|
]);
|
|
@@ -6092,7 +6080,7 @@ class sn extends W {
|
|
|
6092
6080
|
...B,
|
|
6093
6081
|
{
|
|
6094
6082
|
message: `${l} - ${this.step.stepTitle}`,
|
|
6095
|
-
messageType:
|
|
6083
|
+
messageType: Ue.Error,
|
|
6096
6084
|
stepID: this.step.stepName
|
|
6097
6085
|
}
|
|
6098
6086
|
]);
|
|
@@ -6163,7 +6151,7 @@ class on extends W {
|
|
|
6163
6151
|
return this.step.data.content;
|
|
6164
6152
|
}
|
|
6165
6153
|
}
|
|
6166
|
-
class
|
|
6154
|
+
class Qe {
|
|
6167
6155
|
static get(e, t) {
|
|
6168
6156
|
switch (t.type) {
|
|
6169
6157
|
case y.Information:
|
|
@@ -6189,7 +6177,7 @@ class Ce {
|
|
|
6189
6177
|
}
|
|
6190
6178
|
}
|
|
6191
6179
|
}
|
|
6192
|
-
const
|
|
6180
|
+
const oA = D`
|
|
6193
6181
|
fragment CreateDesignTransaction on Transaction {
|
|
6194
6182
|
id
|
|
6195
6183
|
designName
|
|
@@ -6210,7 +6198,7 @@ const rA = D`
|
|
|
6210
6198
|
}
|
|
6211
6199
|
}
|
|
6212
6200
|
`, rn = D`
|
|
6213
|
-
${
|
|
6201
|
+
${oA}
|
|
6214
6202
|
mutation CreateDesign(
|
|
6215
6203
|
$name: String!
|
|
6216
6204
|
$layouts: [LayoutInput]!
|
|
@@ -6242,7 +6230,7 @@ const rA = D`
|
|
|
6242
6230
|
}
|
|
6243
6231
|
}
|
|
6244
6232
|
`, cn = D`
|
|
6245
|
-
${
|
|
6233
|
+
${oA}
|
|
6246
6234
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6247
6235
|
designCreateMany(inputs: $inputs) {
|
|
6248
6236
|
id
|
|
@@ -6291,7 +6279,7 @@ const rA = D`
|
|
|
6291
6279
|
}))
|
|
6292
6280
|
}
|
|
6293
6281
|
})).data) == null ? void 0 : t.designCreateMany;
|
|
6294
|
-
},
|
|
6282
|
+
}, Ze = (c, e, t) => {
|
|
6295
6283
|
const A = (n) => {
|
|
6296
6284
|
const i = {};
|
|
6297
6285
|
if (n.type === "Frame") {
|
|
@@ -6331,7 +6319,7 @@ const rA = D`
|
|
|
6331
6319
|
const a = {};
|
|
6332
6320
|
let n;
|
|
6333
6321
|
if (t) {
|
|
6334
|
-
n =
|
|
6322
|
+
n = Ze(t, e, !1);
|
|
6335
6323
|
for (const i of Object.keys(n))
|
|
6336
6324
|
a[i] = {
|
|
6337
6325
|
value: n[i],
|
|
@@ -6360,7 +6348,7 @@ const rA = D`
|
|
|
6360
6348
|
};
|
|
6361
6349
|
}
|
|
6362
6350
|
return a;
|
|
6363
|
-
},
|
|
6351
|
+
}, rA = (c, e, t, A, a, n, i, s) => {
|
|
6364
6352
|
var w, E;
|
|
6365
6353
|
const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = Bn(A, t, void 0, n), l = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
|
|
6366
6354
|
additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
|
|
@@ -6383,7 +6371,7 @@ const rA = D`
|
|
|
6383
6371
|
workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
|
|
6384
6372
|
};
|
|
6385
6373
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
6386
|
-
},
|
|
6374
|
+
}, cA = async (c, e, t, A, a, n, i, s, o, r) => {
|
|
6387
6375
|
var F;
|
|
6388
6376
|
await (async () => {
|
|
6389
6377
|
var T;
|
|
@@ -6391,7 +6379,7 @@ const rA = D`
|
|
|
6391
6379
|
return r;
|
|
6392
6380
|
await c.outstandingRequestsPromise();
|
|
6393
6381
|
const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), N = await x.getShadowGraphqlClient().query({
|
|
6394
|
-
query:
|
|
6382
|
+
query: jt,
|
|
6395
6383
|
variables: { ids: [a.id] },
|
|
6396
6384
|
fetchPolicy: "no-cache",
|
|
6397
6385
|
errorPolicy: "all",
|
|
@@ -6403,7 +6391,7 @@ const rA = D`
|
|
|
6403
6391
|
N.errors && console.log("Server Error:", L.message);
|
|
6404
6392
|
}), null) : H ?? null;
|
|
6405
6393
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
6406
|
-
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o &&
|
|
6394
|
+
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && Ze(o, e, !0), h = o && Ze(o, e, !1), C = async (M) => {
|
|
6407
6395
|
const Y = {};
|
|
6408
6396
|
let S = 0;
|
|
6409
6397
|
if (Object.keys(n).length > 0)
|
|
@@ -6412,12 +6400,12 @@ const rA = D`
|
|
|
6412
6400
|
for (let L = 0; L < H.selections.length; ++L) {
|
|
6413
6401
|
const V = H.selections[L];
|
|
6414
6402
|
if (T && (!M || T.option && (T.option.variants || []).length > 1 && !T.data.hideSelectionInCart && !T.data.hideSelectionsInCart)) {
|
|
6415
|
-
const
|
|
6416
|
-
Y[
|
|
6403
|
+
const be = T.stepTitle;
|
|
6404
|
+
Y[be] ? Y[be].push({
|
|
6417
6405
|
id: V.id || "",
|
|
6418
6406
|
name: V.name,
|
|
6419
6407
|
priceModifier: V.priceModifier
|
|
6420
|
-
}) : Y[
|
|
6408
|
+
}) : Y[be] = [
|
|
6421
6409
|
{
|
|
6422
6410
|
id: V.id || "",
|
|
6423
6411
|
name: V.name,
|
|
@@ -6470,7 +6458,7 @@ const rA = D`
|
|
|
6470
6458
|
}, dn = async (c, e, t, A, a, n, i, s, o, r, g) => {
|
|
6471
6459
|
var C, u;
|
|
6472
6460
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6473
|
-
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await
|
|
6461
|
+
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await cA(
|
|
6474
6462
|
c,
|
|
6475
6463
|
e,
|
|
6476
6464
|
t,
|
|
@@ -6487,7 +6475,7 @@ const rA = D`
|
|
|
6487
6475
|
throw new Error("Failed to create design");
|
|
6488
6476
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
6489
6477
|
const h = w.transaction;
|
|
6490
|
-
return
|
|
6478
|
+
return rA(
|
|
6491
6479
|
h,
|
|
6492
6480
|
a,
|
|
6493
6481
|
e,
|
|
@@ -6506,7 +6494,7 @@ const rA = D`
|
|
|
6506
6494
|
const a = await (async () => {
|
|
6507
6495
|
var r;
|
|
6508
6496
|
const o = await x.getShadowGraphqlClient().query({
|
|
6509
|
-
query:
|
|
6497
|
+
query: jt,
|
|
6510
6498
|
variables: { ids: c.map((g) => g.transaction.id) },
|
|
6511
6499
|
fetchPolicy: "no-cache",
|
|
6512
6500
|
errorPolicy: "all"
|
|
@@ -6515,7 +6503,7 @@ const rA = D`
|
|
|
6515
6503
|
o.errors && console.log("Server Error:", g.message);
|
|
6516
6504
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
|
|
6517
6505
|
})(), n = await Promise.all(
|
|
6518
|
-
c.map(async (s, o) => await
|
|
6506
|
+
c.map(async (s, o) => await cA(
|
|
6519
6507
|
s.workflowManager,
|
|
6520
6508
|
s.workflow,
|
|
6521
6509
|
s.layouts,
|
|
@@ -6535,7 +6523,7 @@ const rA = D`
|
|
|
6535
6523
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
6536
6524
|
var l;
|
|
6537
6525
|
const r = c[o], g = n[o], B = s.transaction;
|
|
6538
|
-
return
|
|
6526
|
+
return rA(
|
|
6539
6527
|
B,
|
|
6540
6528
|
r.product,
|
|
6541
6529
|
r.workflow,
|
|
@@ -6615,7 +6603,7 @@ class hn {
|
|
|
6615
6603
|
throw new b("Unexpected storage method requested");
|
|
6616
6604
|
}
|
|
6617
6605
|
}
|
|
6618
|
-
const
|
|
6606
|
+
const Te = new hn(), En = D`
|
|
6619
6607
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
6620
6608
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
6621
6609
|
id
|
|
@@ -6631,11 +6619,11 @@ const ze = new hn(), En = D`
|
|
|
6631
6619
|
}
|
|
6632
6620
|
`;
|
|
6633
6621
|
var un = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(un || {});
|
|
6634
|
-
class
|
|
6622
|
+
class me {
|
|
6635
6623
|
constructor(e, t) {
|
|
6636
6624
|
var a;
|
|
6637
|
-
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate =
|
|
6638
|
-
await
|
|
6625
|
+
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = bt(async () => {
|
|
6626
|
+
await Te.getSavedDesignByTransaction(
|
|
6639
6627
|
this.getWorkflowManager().getTransaction().id
|
|
6640
6628
|
) && this.save();
|
|
6641
6629
|
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, s) => {
|
|
@@ -6717,7 +6705,7 @@ class Qe {
|
|
|
6717
6705
|
}
|
|
6718
6706
|
let n = 2048;
|
|
6719
6707
|
t && t <= 2048 && (n = t);
|
|
6720
|
-
const i =
|
|
6708
|
+
const i = Ye(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
|
|
6721
6709
|
var m;
|
|
6722
6710
|
return ((m = Q.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6723
6711
|
}) || s[0], B = g.layoutState.layout.previewRegion ? {
|
|
@@ -6733,19 +6721,19 @@ class Qe {
|
|
|
6733
6721
|
}, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
|
|
6734
6722
|
if (!d)
|
|
6735
6723
|
throw new ke("Failed to obtain 2D context for preview image creation");
|
|
6736
|
-
const w =
|
|
6724
|
+
const w = Pt(l.layoutState.layout, l.layoutState.elements, {
|
|
6737
6725
|
renderingConfiguration: {
|
|
6738
|
-
purpose:
|
|
6726
|
+
purpose: xt.Print,
|
|
6739
6727
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
6740
6728
|
}
|
|
6741
|
-
}), E =
|
|
6742
|
-
await (await
|
|
6729
|
+
}), E = Nt(w);
|
|
6730
|
+
await (await kt.from(d, E, {
|
|
6743
6731
|
anonymousCrossOrigin: !0,
|
|
6744
6732
|
ignoreDimensions: !1,
|
|
6745
|
-
createCanvas:
|
|
6746
|
-
createImage:
|
|
6747
|
-
DOMParser:
|
|
6748
|
-
fetch:
|
|
6733
|
+
createCanvas: Ye,
|
|
6734
|
+
createImage: Ht,
|
|
6735
|
+
DOMParser: Rt(),
|
|
6736
|
+
fetch: $e
|
|
6749
6737
|
})).render();
|
|
6750
6738
|
const C = await this.getCanvasObjectURLAsync(i);
|
|
6751
6739
|
return i.toDataURL(C);
|
|
@@ -6757,7 +6745,7 @@ class Qe {
|
|
|
6757
6745
|
const A = this.cachedStepHandles.get(t.stepName);
|
|
6758
6746
|
if (A)
|
|
6759
6747
|
return A;
|
|
6760
|
-
const a =
|
|
6748
|
+
const a = Qe.get(this.getWorkflowManager(), t);
|
|
6761
6749
|
return this.cachedStepHandles.set(t.stepName, a), a;
|
|
6762
6750
|
}
|
|
6763
6751
|
getSteps() {
|
|
@@ -6854,10 +6842,10 @@ class Qe {
|
|
|
6854
6842
|
getStepByName(e) {
|
|
6855
6843
|
const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
|
|
6856
6844
|
if (!(!t || !this.stepHasHandle(t)))
|
|
6857
|
-
return
|
|
6845
|
+
return Qe.get(this.getWorkflowManager(), t);
|
|
6858
6846
|
}
|
|
6859
6847
|
getStepsByType(e) {
|
|
6860
|
-
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) =>
|
|
6848
|
+
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Qe.get(this.getWorkflowManager(), t));
|
|
6861
6849
|
}
|
|
6862
6850
|
getStepsByScene(e) {
|
|
6863
6851
|
if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
|
|
@@ -6866,7 +6854,7 @@ class Qe {
|
|
|
6866
6854
|
);
|
|
6867
6855
|
return e.stepIds.map(
|
|
6868
6856
|
(A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
|
|
6869
|
-
).filter((A) => this.stepHasHandle(A)).map((A) =>
|
|
6857
|
+
).filter((A) => this.stepHasHandle(A)).map((A) => Qe.get(this.getWorkflowManager(), A));
|
|
6870
6858
|
}
|
|
6871
6859
|
async attachCustomerDetails(e) {
|
|
6872
6860
|
return this.assignCustomerDetails({ emailAddress: e.email });
|
|
@@ -6909,7 +6897,7 @@ class Qe {
|
|
|
6909
6897
|
var o;
|
|
6910
6898
|
if (e)
|
|
6911
6899
|
return e;
|
|
6912
|
-
const n = this.getWorkflowManager().getTransaction().id, s = (o = (await
|
|
6900
|
+
const n = this.getWorkflowManager().getTransaction().id, s = (o = (await Te.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
|
|
6913
6901
|
return s || "My design";
|
|
6914
6902
|
})(),
|
|
6915
6903
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
@@ -6920,7 +6908,7 @@ class Qe {
|
|
|
6920
6908
|
workflowId: this.getWorkflowManager().getWorkflow().id,
|
|
6921
6909
|
lastEdited: /* @__PURE__ */ new Date()
|
|
6922
6910
|
};
|
|
6923
|
-
return await
|
|
6911
|
+
return await Te.addDesign(a), a;
|
|
6924
6912
|
}
|
|
6925
6913
|
async copy() {
|
|
6926
6914
|
var s;
|
|
@@ -7027,7 +7015,7 @@ const Cn = [
|
|
|
7027
7015
|
], Qn = async (c, e, t) => {
|
|
7028
7016
|
const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", s = new URL(i + a);
|
|
7029
7017
|
s.searchParams.append("video", Ct(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
7030
|
-
const o = s.toString(), g = `data:image/svg+xml;base64,${Ct(await
|
|
7018
|
+
const o = s.toString(), g = `data:image/svg+xml;base64,${Ct(await Lt(o, { type: "svg" }))}`, B = (d) => {
|
|
7031
7019
|
const w = c.find((h) => h.panelId === d.panelId);
|
|
7032
7020
|
if (!w)
|
|
7033
7021
|
throw new z(d);
|
|
@@ -7052,7 +7040,7 @@ const Cn = [
|
|
|
7052
7040
|
return console.error(d), [];
|
|
7053
7041
|
}
|
|
7054
7042
|
}, mn = async (c, e, t, A) => {
|
|
7055
|
-
const a = t.data, n = a.assetUrl, i = await
|
|
7043
|
+
const a = t.data, n = a.assetUrl, i = await Ve(n);
|
|
7056
7044
|
try {
|
|
7057
7045
|
const s = HA(a, A.option);
|
|
7058
7046
|
s && (e[A.stepName] = { selectedVariants: [s] });
|
|
@@ -7097,7 +7085,7 @@ const Cn = [
|
|
|
7097
7085
|
},
|
|
7098
7086
|
d
|
|
7099
7087
|
),
|
|
7100
|
-
new
|
|
7088
|
+
new St(l, i, w)
|
|
7101
7089
|
];
|
|
7102
7090
|
};
|
|
7103
7091
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
@@ -7118,10 +7106,10 @@ const Cn = [
|
|
|
7118
7106
|
const s = (p = i.asset) == null ? void 0 : p.fileLink;
|
|
7119
7107
|
if (!s)
|
|
7120
7108
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7121
|
-
const o = await Z(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w =
|
|
7109
|
+
const o = await Z(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = Ut().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
7122
7110
|
if (!w)
|
|
7123
7111
|
return console.error("Failed to read SVG."), [];
|
|
7124
|
-
|
|
7112
|
+
Gt(w);
|
|
7125
7113
|
const E = {};
|
|
7126
7114
|
UA(w, (I) => {
|
|
7127
7115
|
Cn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
@@ -7136,7 +7124,7 @@ const Cn = [
|
|
|
7136
7124
|
I.classList.add(N), E[N] = { browserValue: Y };
|
|
7137
7125
|
}
|
|
7138
7126
|
});
|
|
7139
|
-
const C =
|
|
7127
|
+
const C = vt().serializeToString(w), u = a.colors;
|
|
7140
7128
|
if (u) {
|
|
7141
7129
|
for (const [I, F] of Object.entries(E))
|
|
7142
7130
|
for (const M of Object.keys(u))
|
|
@@ -7174,7 +7162,7 @@ const Cn = [
|
|
|
7174
7162
|
return console.error(I), [];
|
|
7175
7163
|
}
|
|
7176
7164
|
}, In = async (c, e, t) => {
|
|
7177
|
-
const A = await
|
|
7165
|
+
const A = await iA(t.data.module), a = e.data, n = (s, o) => {
|
|
7178
7166
|
const r = c.find((B) => B.panelId === o.panelId);
|
|
7179
7167
|
if (!r)
|
|
7180
7168
|
throw new z(o);
|
|
@@ -7337,10 +7325,10 @@ const Cn = [
|
|
|
7337
7325
|
}
|
|
7338
7326
|
else {
|
|
7339
7327
|
const r = await Z(n, !0), g = (B) => {
|
|
7340
|
-
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", C =
|
|
7328
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", C = Ut().parseFromString(w, "image/svg+xml").firstElementChild;
|
|
7341
7329
|
if (!C)
|
|
7342
7330
|
throw new oe("Failed to read SVG.");
|
|
7343
|
-
return
|
|
7331
|
+
return Gt(C), vt().serializeToString(C);
|
|
7344
7332
|
};
|
|
7345
7333
|
o.forEach((B) => {
|
|
7346
7334
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
@@ -7391,7 +7379,7 @@ const Cn = [
|
|
|
7391
7379
|
assetUrl: h,
|
|
7392
7380
|
name: C.names.fullName.en
|
|
7393
7381
|
};
|
|
7394
|
-
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l =
|
|
7382
|
+
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = We(B, {
|
|
7395
7383
|
vertical: A.data.vertical,
|
|
7396
7384
|
uppercase: A.data.uppercase
|
|
7397
7385
|
}), d = async (h) => {
|
|
@@ -7427,12 +7415,12 @@ const Cn = [
|
|
|
7427
7415
|
y: h.top
|
|
7428
7416
|
};
|
|
7429
7417
|
if (g) {
|
|
7430
|
-
const [f, Q] =
|
|
7418
|
+
const [f, Q] = De(
|
|
7431
7419
|
A.data.size || i,
|
|
7432
7420
|
g,
|
|
7433
7421
|
h,
|
|
7434
7422
|
[
|
|
7435
|
-
|
|
7423
|
+
We(l, {
|
|
7436
7424
|
vertical: A.data.vertical,
|
|
7437
7425
|
uppercase: A.data.uppercase
|
|
7438
7426
|
})
|
|
@@ -7520,7 +7508,7 @@ const Cn = [
|
|
|
7520
7508
|
);
|
|
7521
7509
|
return a;
|
|
7522
7510
|
};
|
|
7523
|
-
class
|
|
7511
|
+
class pe {
|
|
7524
7512
|
constructor(e) {
|
|
7525
7513
|
this.handleCompleteRender = null;
|
|
7526
7514
|
const t = /* @__PURE__ */ new Map();
|
|
@@ -7537,12 +7525,12 @@ class me {
|
|
|
7537
7525
|
}
|
|
7538
7526
|
}
|
|
7539
7527
|
const Yn = () => new Promise((c, e) => {
|
|
7540
|
-
const A =
|
|
7528
|
+
const A = Ye().getContext("webgl2");
|
|
7541
7529
|
c(!!A);
|
|
7542
7530
|
}), Pn = Yn();
|
|
7543
7531
|
class xn {
|
|
7544
7532
|
constructor(e, t, A) {
|
|
7545
|
-
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new
|
|
7533
|
+
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new Xt(2), this.id = e, this.name = t, this.service = A;
|
|
7546
7534
|
}
|
|
7547
7535
|
getID() {
|
|
7548
7536
|
return this.id;
|
|
@@ -7617,7 +7605,7 @@ class xn {
|
|
|
7617
7605
|
);
|
|
7618
7606
|
}
|
|
7619
7607
|
}
|
|
7620
|
-
class Nn extends
|
|
7608
|
+
class Nn extends Wt {
|
|
7621
7609
|
constructor(e, t, A, a, n, i, s) {
|
|
7622
7610
|
super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl = s;
|
|
7623
7611
|
}
|
|
@@ -7666,19 +7654,19 @@ class Nn extends Xt {
|
|
|
7666
7654
|
s = w.width, o = w.height;
|
|
7667
7655
|
} else
|
|
7668
7656
|
s = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
|
|
7669
|
-
const r =
|
|
7670
|
-
renderingConfiguration: { purpose:
|
|
7671
|
-
}), g =
|
|
7657
|
+
const r = Pt(e.layoutState.layout, t, {
|
|
7658
|
+
renderingConfiguration: { purpose: xt.ThreeD }
|
|
7659
|
+
}), g = Nt(r), B = await kt.from(this.ctx, g, {
|
|
7672
7660
|
anonymousCrossOrigin: !0,
|
|
7673
7661
|
ignoreDimensions: !this.nonPOTSupport,
|
|
7674
7662
|
ignoreAnimation: !0,
|
|
7675
7663
|
ignoreClear: !0,
|
|
7676
7664
|
ignoreMouse: !0,
|
|
7677
7665
|
enableRedraw: !1,
|
|
7678
|
-
createCanvas:
|
|
7679
|
-
createImage:
|
|
7680
|
-
DOMParser:
|
|
7681
|
-
fetch:
|
|
7666
|
+
createCanvas: Ye,
|
|
7667
|
+
createImage: Ht,
|
|
7668
|
+
DOMParser: Rt(),
|
|
7669
|
+
fetch: $e
|
|
7682
7670
|
});
|
|
7683
7671
|
B.resize(s, o), await B.render(), this.onRender();
|
|
7684
7672
|
}
|
|
@@ -7745,7 +7733,7 @@ const Li = (c, e) => {
|
|
|
7745
7733
|
name
|
|
7746
7734
|
}
|
|
7747
7735
|
}
|
|
7748
|
-
`,
|
|
7736
|
+
`, gA = D`
|
|
7749
7737
|
${Hn}
|
|
7750
7738
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
7751
7739
|
id
|
|
@@ -7755,8 +7743,8 @@ const Li = (c, e) => {
|
|
|
7755
7743
|
...ProductFields
|
|
7756
7744
|
}
|
|
7757
7745
|
}
|
|
7758
|
-
`,
|
|
7759
|
-
${c ?
|
|
7746
|
+
`, lA = (c) => D`
|
|
7747
|
+
${c ? gA : ""}
|
|
7760
7748
|
fragment ProductCollectionFields on ProductCollection {
|
|
7761
7749
|
id
|
|
7762
7750
|
name
|
|
@@ -7801,7 +7789,7 @@ const Li = (c, e) => {
|
|
|
7801
7789
|
}
|
|
7802
7790
|
}
|
|
7803
7791
|
`, Rn = (c) => D`
|
|
7804
|
-
${
|
|
7792
|
+
${lA(c)}
|
|
7805
7793
|
query GetBundle($id: String!) {
|
|
7806
7794
|
bundles(ids: [$id]) {
|
|
7807
7795
|
id
|
|
@@ -7864,7 +7852,7 @@ const Li = (c, e) => {
|
|
|
7864
7852
|
}
|
|
7865
7853
|
}
|
|
7866
7854
|
`, vn = D`
|
|
7867
|
-
${
|
|
7855
|
+
${gA}
|
|
7868
7856
|
query GetProductCollectionProducts($id: String!) {
|
|
7869
7857
|
productCollections(ids: [$id]) {
|
|
7870
7858
|
id
|
|
@@ -7874,7 +7862,7 @@ const Li = (c, e) => {
|
|
|
7874
7862
|
}
|
|
7875
7863
|
}
|
|
7876
7864
|
`, kn = (c) => D`
|
|
7877
|
-
${
|
|
7865
|
+
${lA(c)}
|
|
7878
7866
|
mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
|
|
7879
7867
|
bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
|
|
7880
7868
|
id
|
|
@@ -8040,7 +8028,7 @@ class Wn {
|
|
|
8040
8028
|
return new Xn(this.bundle, e);
|
|
8041
8029
|
case ce.Option: {
|
|
8042
8030
|
const t = e.entityId ? await j.getOption(e.entityId) : void 0;
|
|
8043
|
-
return (t == null ? void 0 : t.type) === "Color" ? new Zn(this.bundle, e, t) : new
|
|
8031
|
+
return (t == null ? void 0 : t.type) === "Color" ? new Zn(this.bundle, e, t) : new BA(this.bundle, e, t);
|
|
8044
8032
|
}
|
|
8045
8033
|
case ce.Text:
|
|
8046
8034
|
return new qn(this.bundle, e);
|
|
@@ -8186,32 +8174,32 @@ class Xn extends gt {
|
|
|
8186
8174
|
const n = {
|
|
8187
8175
|
...a,
|
|
8188
8176
|
useOriginalAsset: e
|
|
8189
|
-
}, i = [A.
|
|
8177
|
+
}, i = e ? a == null ? void 0 : a.originalAssetKey : a == null ? void 0 : a.backgroundRemovedAssetKey, s = [A.setAspect(this.property.name, i || "", n)];
|
|
8190
8178
|
if (e)
|
|
8191
|
-
|
|
8179
|
+
s.push(this.applyImageSelection(t, void 0, !1));
|
|
8192
8180
|
else {
|
|
8193
|
-
const
|
|
8194
|
-
const
|
|
8195
|
-
if (!
|
|
8181
|
+
const o = async () => {
|
|
8182
|
+
const r = await this.getBackgroundRemovedImage();
|
|
8183
|
+
if (!r)
|
|
8196
8184
|
throw new Error(
|
|
8197
8185
|
"You must call removeBackgroundFromImage before attempting to use that version of the image."
|
|
8198
8186
|
);
|
|
8199
|
-
this.applyImageSelection(
|
|
8187
|
+
this.applyImageSelection(r, void 0, !1);
|
|
8200
8188
|
};
|
|
8201
|
-
|
|
8189
|
+
s.push(o());
|
|
8202
8190
|
}
|
|
8203
8191
|
this.updateSharedStepStorage(n);
|
|
8204
8192
|
}
|
|
8205
8193
|
async applyGlobalState(e) {
|
|
8206
8194
|
const t = this.getStateValue();
|
|
8207
8195
|
if (!t)
|
|
8208
|
-
return
|
|
8196
|
+
return;
|
|
8209
8197
|
const A = await v.getLocalOrFromServer(t);
|
|
8210
8198
|
if (!A)
|
|
8211
|
-
return
|
|
8212
|
-
await this.applyImageSelection(A, e);
|
|
8199
|
+
return;
|
|
8200
|
+
await this.applyImageSelection(A, e, !1);
|
|
8213
8201
|
const a = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
8214
|
-
a
|
|
8202
|
+
a ? this.updateSharedStepStorage({ ...a }) : (this.updateSharedStepStorage({ originalAssetKey: t }), await this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name, { originalAssetKey: t }));
|
|
8215
8203
|
}
|
|
8216
8204
|
async applyImageSelection(e, t, A = !0) {
|
|
8217
8205
|
const n = this.getSharedSteps(t).map((i) => i.selectImage(e, A));
|
|
@@ -8266,7 +8254,7 @@ class qn extends gt {
|
|
|
8266
8254
|
await Promise.all(a);
|
|
8267
8255
|
}
|
|
8268
8256
|
}
|
|
8269
|
-
class
|
|
8257
|
+
class BA extends gt {
|
|
8270
8258
|
constructor(e, t, A) {
|
|
8271
8259
|
super(e, t), this.optionResource = A;
|
|
8272
8260
|
}
|
|
@@ -8328,7 +8316,7 @@ class dA extends gt {
|
|
|
8328
8316
|
await Promise.all(a);
|
|
8329
8317
|
}
|
|
8330
8318
|
}
|
|
8331
|
-
class Zn extends
|
|
8319
|
+
class Zn extends BA {
|
|
8332
8320
|
constructor(e, t, A) {
|
|
8333
8321
|
super(e, t, A);
|
|
8334
8322
|
}
|
|
@@ -8625,14 +8613,14 @@ class ai {
|
|
|
8625
8613
|
getProducts() {
|
|
8626
8614
|
if (!this.collection.productCollectionProducts)
|
|
8627
8615
|
throw new Error("Failed to find products on collection. Ensure you fetch them first!");
|
|
8628
|
-
return this.collection.productCollectionProducts.map((e) => new
|
|
8616
|
+
return this.collection.productCollectionProducts.map((e) => new ze(e));
|
|
8629
8617
|
}
|
|
8630
8618
|
/**
|
|
8631
8619
|
* A list of products in this collections with useful helpers for interacting with them.
|
|
8632
8620
|
*/
|
|
8633
8621
|
async fetchProducts() {
|
|
8634
8622
|
if (this.collection.productCollectionProducts)
|
|
8635
|
-
return this.collection.productCollectionProducts.map((t) => new
|
|
8623
|
+
return this.collection.productCollectionProducts.map((t) => new ze(t));
|
|
8636
8624
|
const e = await x.getShadowGraphqlClient().query({
|
|
8637
8625
|
query: vn,
|
|
8638
8626
|
variables: {
|
|
@@ -8641,7 +8629,7 @@ class ai {
|
|
|
8641
8629
|
errorPolicy: "all",
|
|
8642
8630
|
fetchPolicy: "no-cache"
|
|
8643
8631
|
});
|
|
8644
|
-
return this.collection.productCollectionProducts = e.data.productCollections[0].productCollectionProducts || [], this.collection.productCollectionProducts.map((t) => new
|
|
8632
|
+
return this.collection.productCollectionProducts = e.data.productCollections[0].productCollectionProducts || [], this.collection.productCollectionProducts.map((t) => new ze(t));
|
|
8645
8633
|
}
|
|
8646
8634
|
getTransformCollection() {
|
|
8647
8635
|
if (this.collection.transformCollection)
|
|
@@ -8654,7 +8642,7 @@ class ai {
|
|
|
8654
8642
|
return this.collection;
|
|
8655
8643
|
}
|
|
8656
8644
|
}
|
|
8657
|
-
class
|
|
8645
|
+
class ze {
|
|
8658
8646
|
constructor(e) {
|
|
8659
8647
|
this.product = e.product, this.productResource = e;
|
|
8660
8648
|
}
|
|
@@ -9098,7 +9086,7 @@ class yt {
|
|
|
9098
9086
|
variables: {
|
|
9099
9087
|
id: this.id,
|
|
9100
9088
|
details: e,
|
|
9101
|
-
type: t ||
|
|
9089
|
+
type: t || Ne.Owner
|
|
9102
9090
|
},
|
|
9103
9091
|
context: {
|
|
9104
9092
|
bundleOwnerId: this.ownerId
|
|
@@ -9383,14 +9371,14 @@ class ri {
|
|
|
9383
9371
|
* @returns The nodes contained within the execution.
|
|
9384
9372
|
*/
|
|
9385
9373
|
getNodes() {
|
|
9386
|
-
return this.execution.nodes.map((e) => new
|
|
9374
|
+
return this.execution.nodes.map((e) => new Ie(e));
|
|
9387
9375
|
}
|
|
9388
9376
|
/**
|
|
9389
9377
|
* @param type The type of node to return.
|
|
9390
9378
|
* @returns A list of nodes matching the requested type.
|
|
9391
9379
|
*/
|
|
9392
9380
|
getNodesByType(e) {
|
|
9393
|
-
return this.execution.nodes.filter((t) => t.type === e).map((t) => new
|
|
9381
|
+
return this.execution.nodes.filter((t) => t.type === e).map((t) => new Ie(t));
|
|
9394
9382
|
}
|
|
9395
9383
|
/**
|
|
9396
9384
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -9399,7 +9387,7 @@ class ri {
|
|
|
9399
9387
|
return this.execution.nodes.filter(
|
|
9400
9388
|
(e) => e.type === "StartTerminal"
|
|
9401
9389
|
/* StartTerminal */
|
|
9402
|
-
).map((e) => new
|
|
9390
|
+
).map((e) => new Ie(e));
|
|
9403
9391
|
}
|
|
9404
9392
|
/**
|
|
9405
9393
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -9408,7 +9396,7 @@ class ri {
|
|
|
9408
9396
|
return this.execution.nodes.filter(
|
|
9409
9397
|
(e) => e.type === "EndTerminal"
|
|
9410
9398
|
/* EndTerminal */
|
|
9411
|
-
).map((e) => new
|
|
9399
|
+
).map((e) => new Ie(e));
|
|
9412
9400
|
}
|
|
9413
9401
|
/**
|
|
9414
9402
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -9425,7 +9413,7 @@ class ri {
|
|
|
9425
9413
|
return new Date(this.execution.failedAt);
|
|
9426
9414
|
}
|
|
9427
9415
|
}
|
|
9428
|
-
class
|
|
9416
|
+
class Ie {
|
|
9429
9417
|
constructor(e) {
|
|
9430
9418
|
this.node = e;
|
|
9431
9419
|
}
|
|
@@ -9460,9 +9448,9 @@ class Ti extends Bt {
|
|
|
9460
9448
|
super(`"${e}"`);
|
|
9461
9449
|
}
|
|
9462
9450
|
}
|
|
9463
|
-
class
|
|
9451
|
+
class dA extends Bt {
|
|
9464
9452
|
constructor(e, t) {
|
|
9465
|
-
if (t !== "Asset" && !
|
|
9453
|
+
if (t !== "Asset" && !dA.validUUID(e))
|
|
9466
9454
|
throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
|
|
9467
9455
|
super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
|
|
9468
9456
|
}
|
|
@@ -9638,9 +9626,9 @@ const gi = D`
|
|
|
9638
9626
|
name
|
|
9639
9627
|
}
|
|
9640
9628
|
`, wi = (c) => D`
|
|
9641
|
-
${
|
|
9629
|
+
${he(c)}
|
|
9642
9630
|
${it}
|
|
9643
|
-
${
|
|
9631
|
+
${Kt}
|
|
9644
9632
|
${gi}
|
|
9645
9633
|
${li}
|
|
9646
9634
|
${Bi}
|
|
@@ -10058,7 +10046,7 @@ const gi = D`
|
|
|
10058
10046
|
}
|
|
10059
10047
|
}
|
|
10060
10048
|
`, ui = D`
|
|
10061
|
-
${
|
|
10049
|
+
${he(!1)}
|
|
10062
10050
|
query GetWorkflowForTheme($id: String!) {
|
|
10063
10051
|
workflow(id: $id) {
|
|
10064
10052
|
id
|
|
@@ -10166,7 +10154,7 @@ const gi = D`
|
|
|
10166
10154
|
);
|
|
10167
10155
|
for (let n = 0; n < A.length; ++n) {
|
|
10168
10156
|
const i = A[n];
|
|
10169
|
-
i.src && i.svg && (i.cachedObjectURL = await
|
|
10157
|
+
i.src && i.svg && (i.cachedObjectURL = await Me(i.svg));
|
|
10170
10158
|
}
|
|
10171
10159
|
const a = c.layouts[t].elements.filter((n) => n.type === k.Textbox);
|
|
10172
10160
|
for (let n = 0; n < a.length; ++n) {
|
|
@@ -10199,7 +10187,7 @@ const gi = D`
|
|
|
10199
10187
|
if (!A)
|
|
10200
10188
|
throw new Error(`Workflow not found: ${c}`);
|
|
10201
10189
|
return A;
|
|
10202
|
-
},
|
|
10190
|
+
}, wA = async (c, e) => {
|
|
10203
10191
|
const t = c.map((s) => de.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
|
|
10204
10192
|
if (A.length === 0)
|
|
10205
10193
|
return Promise.all(t);
|
|
@@ -10207,7 +10195,7 @@ const gi = D`
|
|
|
10207
10195
|
(s) => de.set({ id: s, options: e }, Di(s, a))
|
|
10208
10196
|
), i = t.filter((s) => s !== void 0);
|
|
10209
10197
|
return await Promise.all(i.concat(n));
|
|
10210
|
-
},
|
|
10198
|
+
}, fe = async (c, e) => (await wA([c], e))[0], Fi = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
|
|
10211
10199
|
id: J(),
|
|
10212
10200
|
panelId: e.name,
|
|
10213
10201
|
name: e.name,
|
|
@@ -10220,7 +10208,7 @@ const gi = D`
|
|
|
10220
10208
|
previewRegion: e.previewRegion,
|
|
10221
10209
|
useEditableArea: e.useEditableArea,
|
|
10222
10210
|
editableArea: e.editableArea
|
|
10223
|
-
})),
|
|
10211
|
+
})), Ke = (c, e) => {
|
|
10224
10212
|
const t = c.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
10225
10213
|
return A ? Object.values(A.layouts).map((a) => a.layout) : Fi(e.panels);
|
|
10226
10214
|
};
|
|
@@ -10270,7 +10258,7 @@ class yi {
|
|
|
10270
10258
|
var a, n;
|
|
10271
10259
|
const t = P.getMap("bundleOwnerIds");
|
|
10272
10260
|
if (t != null && t.has(e))
|
|
10273
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
10261
|
+
return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
|
|
10274
10262
|
const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10275
10263
|
if (A.has(e)) {
|
|
10276
10264
|
const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
@@ -10319,7 +10307,7 @@ class yi {
|
|
|
10319
10307
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
10320
10308
|
const i = P.getMap("transactionOwnerIds");
|
|
10321
10309
|
if (i != null && i.has(e))
|
|
10322
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
10310
|
+
return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
|
|
10323
10311
|
const s = P.getMap("transactionCustomerIds");
|
|
10324
10312
|
if (s != null && s.has(e)) {
|
|
10325
10313
|
const h = s.get(e);
|
|
@@ -10562,7 +10550,7 @@ class yi {
|
|
|
10562
10550
|
const h = x.getShadowGraphqlClient();
|
|
10563
10551
|
if (a.type === "transaction") {
|
|
10564
10552
|
const { transactionId: f, readOnly: Q } = a, m = await h.query({
|
|
10565
|
-
query:
|
|
10553
|
+
query: ue,
|
|
10566
10554
|
variables: {
|
|
10567
10555
|
ids: [f]
|
|
10568
10556
|
},
|
|
@@ -10574,7 +10562,7 @@ class yi {
|
|
|
10574
10562
|
const p = (u = m.data) == null ? void 0 : u.transactions[0];
|
|
10575
10563
|
if (!p.workflowId)
|
|
10576
10564
|
throw new U("Existing transaction has no workflow ID.");
|
|
10577
|
-
const I = await
|
|
10565
|
+
const I = await fe(p.workflowId);
|
|
10578
10566
|
if (!p.product)
|
|
10579
10567
|
throw new U("Failed to load transaction, product not available.");
|
|
10580
10568
|
return { transaction: p, workflow: I, readOnly: Q };
|
|
@@ -10602,7 +10590,7 @@ class yi {
|
|
|
10602
10590
|
if (!M.product)
|
|
10603
10591
|
throw new U("Failed to create transaction, product not available.");
|
|
10604
10592
|
return M;
|
|
10605
|
-
}, Q =
|
|
10593
|
+
}, Q = fe(a.workflowId, a == null ? void 0 : a.graphql), [m, p] = await Promise.all([f(), Q]);
|
|
10606
10594
|
return { transaction: m, workflow: p };
|
|
10607
10595
|
}
|
|
10608
10596
|
throw new U("No workflow ID provided.");
|
|
@@ -10629,11 +10617,11 @@ class yi {
|
|
|
10629
10617
|
const h = JSON.parse(a.workflowState);
|
|
10630
10618
|
r.layouts = Object.values(h.layouts).map((C) => C.layout), await ee(h), await te(h), r.reloadedState = h;
|
|
10631
10619
|
} else
|
|
10632
|
-
r.layouts =
|
|
10620
|
+
r.layouts = Ke(
|
|
10633
10621
|
r.transaction,
|
|
10634
10622
|
r.workflow
|
|
10635
10623
|
);
|
|
10636
|
-
if (r.renderableContextService = new
|
|
10624
|
+
if (r.renderableContextService = new pe(
|
|
10637
10625
|
r.layouts
|
|
10638
10626
|
), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
10639
10627
|
model: r.product.modelUrl,
|
|
@@ -10647,7 +10635,7 @@ class yi {
|
|
|
10647
10635
|
} else
|
|
10648
10636
|
r.isReloadedTransaction = !0;
|
|
10649
10637
|
this.initialized = !0, this.experienceOptions = r;
|
|
10650
|
-
const g = new
|
|
10638
|
+
const g = new me(this, r);
|
|
10651
10639
|
return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
|
|
10652
10640
|
}
|
|
10653
10641
|
/**
|
|
@@ -10665,7 +10653,7 @@ class yi {
|
|
|
10665
10653
|
if (m.length === 0)
|
|
10666
10654
|
return [];
|
|
10667
10655
|
const p = m.map((S) => S.option.transactionId), I = await A.query({
|
|
10668
|
-
query:
|
|
10656
|
+
query: ue,
|
|
10669
10657
|
variables: {
|
|
10670
10658
|
ids: p
|
|
10671
10659
|
},
|
|
@@ -10718,7 +10706,7 @@ class yi {
|
|
|
10718
10706
|
), r = Qt(s, 10), g = Qt(o, 10), B = (await Promise.all([
|
|
10719
10707
|
...r.map(a),
|
|
10720
10708
|
...g.map(n)
|
|
10721
|
-
])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await
|
|
10709
|
+
])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await wA(l, t), w = new Map(d.map((m) => [m.id, m])), E = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (m) => {
|
|
10722
10710
|
var T;
|
|
10723
10711
|
const { transaction: p, workflowId: I, readOnly: F, index: M } = m, Y = w.get(I), S = e[M];
|
|
10724
10712
|
!E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
|
|
@@ -10741,17 +10729,17 @@ class yi {
|
|
|
10741
10729
|
const L = JSON.parse(S.workflowState);
|
|
10742
10730
|
H.layouts = Object.values(L.layouts || {}).map((V) => V.layout), await ee(L), await te(L), H.reloadedState = L;
|
|
10743
10731
|
} else
|
|
10744
|
-
H.layouts =
|
|
10732
|
+
H.layouts = Ke(
|
|
10745
10733
|
H.transaction,
|
|
10746
10734
|
H.workflow
|
|
10747
10735
|
);
|
|
10748
|
-
return H.renderableContextService = new
|
|
10736
|
+
return H.renderableContextService = new pe(
|
|
10749
10737
|
H.layouts
|
|
10750
10738
|
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: M, options: S };
|
|
10751
10739
|
});
|
|
10752
10740
|
P.setMap("transactionOwnerIds", E);
|
|
10753
10741
|
const f = (await Promise.all(h)).sort((m, p) => m.index - p.index).map(async (m) => {
|
|
10754
|
-
const { experienceOptions: p, options: I } = m, F = new
|
|
10742
|
+
const { experienceOptions: p, options: I } = m, F = new me(this, p);
|
|
10755
10743
|
return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
10756
10744
|
}), Q = await Promise.all(f);
|
|
10757
10745
|
return Q.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
|
|
@@ -10806,7 +10794,7 @@ class yi {
|
|
|
10806
10794
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
10807
10795
|
var d, w;
|
|
10808
10796
|
const l = (d = (await A.query({
|
|
10809
|
-
query:
|
|
10797
|
+
query: ue,
|
|
10810
10798
|
variables: { ids: [e] },
|
|
10811
10799
|
fetchPolicy: "no-cache",
|
|
10812
10800
|
errorPolicy: "all"
|
|
@@ -10830,7 +10818,7 @@ class yi {
|
|
|
10830
10818
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
10831
10819
|
if (i) {
|
|
10832
10820
|
const l = (s = (await A.query({
|
|
10833
|
-
query:
|
|
10821
|
+
query: ue,
|
|
10834
10822
|
variables: {
|
|
10835
10823
|
ids: [e]
|
|
10836
10824
|
},
|
|
@@ -10881,16 +10869,16 @@ class yi {
|
|
|
10881
10869
|
if (!this.initialized || !this.experienceOptions)
|
|
10882
10870
|
throw new U("Cannot launch experience: Not initialized.");
|
|
10883
10871
|
if (this.experienceOptions.transaction.workflowId) {
|
|
10884
|
-
const o = await
|
|
10872
|
+
const o = await fe(this.experienceOptions.transaction.workflowId);
|
|
10885
10873
|
if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
|
|
10886
10874
|
const g = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10887
10875
|
this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
|
|
10888
10876
|
}
|
|
10889
|
-
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new
|
|
10877
|
+
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
|
|
10890
10878
|
model: this.experienceOptions.product.modelUrl,
|
|
10891
10879
|
contextService: this.experienceOptions.renderableContextService
|
|
10892
10880
|
}));
|
|
10893
|
-
const r = new
|
|
10881
|
+
const r = new me(this, this.experienceOptions);
|
|
10894
10882
|
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
10895
10883
|
}
|
|
10896
10884
|
if (e) {
|
|
@@ -10903,20 +10891,20 @@ class yi {
|
|
|
10903
10891
|
context: {
|
|
10904
10892
|
transactionOwnerId: r
|
|
10905
10893
|
}
|
|
10906
|
-
}), B =
|
|
10894
|
+
}), B = fe(e);
|
|
10907
10895
|
if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
|
|
10908
10896
|
const d = JSON.parse(t);
|
|
10909
10897
|
this.experienceOptions.layouts = Object.values(d.layouts).map((w) => w.layout), await ee(d), await te(d), this.experienceOptions.reloadedState = d;
|
|
10910
10898
|
} else
|
|
10911
|
-
this.experienceOptions.layouts =
|
|
10899
|
+
this.experienceOptions.layouts = Ke(
|
|
10912
10900
|
this.experienceOptions.transaction,
|
|
10913
10901
|
this.experienceOptions.workflow
|
|
10914
10902
|
);
|
|
10915
|
-
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new
|
|
10903
|
+
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
|
|
10916
10904
|
model: this.experienceOptions.product.modelUrl,
|
|
10917
10905
|
contextService: this.experienceOptions.renderableContextService
|
|
10918
10906
|
}));
|
|
10919
|
-
const l = new
|
|
10907
|
+
const l = new me(this, this.experienceOptions);
|
|
10920
10908
|
return await l.getWorkflowManager().getInitializationPromise(), l;
|
|
10921
10909
|
}
|
|
10922
10910
|
throw new U("No workflow ID provided.");
|
|
@@ -11120,7 +11108,7 @@ class Si extends W {
|
|
|
11120
11108
|
}
|
|
11121
11109
|
selectVariant(e) {
|
|
11122
11110
|
const t = this.manager.getRegionElements(this.step.stepName);
|
|
11123
|
-
return
|
|
11111
|
+
return Fe.selectVariant(
|
|
11124
11112
|
this.step,
|
|
11125
11113
|
e.getResource(),
|
|
11126
11114
|
t,
|
|
@@ -11140,7 +11128,7 @@ class Si extends W {
|
|
|
11140
11128
|
*/
|
|
11141
11129
|
async selectImage(e, t = !0) {
|
|
11142
11130
|
var A;
|
|
11143
|
-
if (await
|
|
11131
|
+
if (await Fe.selectImage(this.step, e, this.manager), t) {
|
|
11144
11132
|
const a = ((A = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : A.framePatternData) || {};
|
|
11145
11133
|
this.manager.updateStorage(this.step.stepName, {
|
|
11146
11134
|
framePatternData: {
|
|
@@ -11163,7 +11151,7 @@ class Si extends W {
|
|
|
11163
11151
|
if (!t)
|
|
11164
11152
|
throw new Error("You must supply an image selection before attempting to remove the background.");
|
|
11165
11153
|
const A = await v.removeBackgroundFromAsset(t);
|
|
11166
|
-
e && await
|
|
11154
|
+
e && await Fe.selectImage(this.step, A, this.manager);
|
|
11167
11155
|
const a = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.framePatternData) || {};
|
|
11168
11156
|
return this.manager.updateStorage(this.step.stepName, {
|
|
11169
11157
|
framePatternData: {
|
|
@@ -11203,15 +11191,15 @@ class Si extends W {
|
|
|
11203
11191
|
}
|
|
11204
11192
|
hasBackgroundRemovedImageSelection() {
|
|
11205
11193
|
var e, t;
|
|
11206
|
-
return !!((t = (e = this.
|
|
11194
|
+
return !!((t = (e = this.getFrameStepStorage()) == null ? void 0 : e.framePatternData) != null && t.backgroundRemovedAssetKey);
|
|
11207
11195
|
}
|
|
11208
11196
|
getUseOriginalImageSelection() {
|
|
11209
11197
|
var e, t;
|
|
11210
|
-
return ((t = (e = this.
|
|
11198
|
+
return ((t = (e = this.getFrameStepStorage()) == null ? void 0 : e.framePatternData) == null ? void 0 : t.useOriginalAsset) ?? !1;
|
|
11211
11199
|
}
|
|
11212
11200
|
async setUseOriginalImageSelection(e) {
|
|
11213
11201
|
var a;
|
|
11214
|
-
const t = ((a = this.
|
|
11202
|
+
const t = ((a = this.getFrameStepStorage()) == null ? void 0 : a.framePatternData) || {};
|
|
11215
11203
|
if (t.useOriginalAsset === e)
|
|
11216
11204
|
return;
|
|
11217
11205
|
const A = await this.getOriginalImageSelection();
|
|
@@ -11231,6 +11219,9 @@ class Si extends W {
|
|
|
11231
11219
|
framePatternData: { ...t, useOriginalAsset: e }
|
|
11232
11220
|
});
|
|
11233
11221
|
}
|
|
11222
|
+
getFrameStepStorage() {
|
|
11223
|
+
return this.manager.getStepStorage(this.step.stepName);
|
|
11224
|
+
}
|
|
11234
11225
|
}
|
|
11235
11226
|
export {
|
|
11236
11227
|
zi as ArrayInput,
|
|
@@ -11241,7 +11232,7 @@ export {
|
|
|
11241
11232
|
Zi as BringToBackCommand,
|
|
11242
11233
|
$i as BringToFrontCommand,
|
|
11243
11234
|
_i as CanvasCommand,
|
|
11244
|
-
|
|
11235
|
+
ze as CollectionProduct,
|
|
11245
11236
|
Zn as ColorOptionGlobalPropertyHandle,
|
|
11246
11237
|
es as CommandContext,
|
|
11247
11238
|
ga as ConversionDataType,
|
|
@@ -11250,7 +11241,7 @@ export {
|
|
|
11250
11241
|
As as CreateLayoutCommand,
|
|
11251
11242
|
as as DeleteElementCommand,
|
|
11252
11243
|
Xn as FileUploadGlobalPropertyHandle,
|
|
11253
|
-
|
|
11244
|
+
Ie as FlowExecutionNodeResult,
|
|
11254
11245
|
ri as FlowExecutionResult,
|
|
11255
11246
|
oi as FlowService,
|
|
11256
11247
|
ns as FontAlignmentCommand,
|
|
@@ -11263,7 +11254,7 @@ export {
|
|
|
11263
11254
|
gt as GlobalPropertyHandle,
|
|
11264
11255
|
rs as GroupCommand,
|
|
11265
11256
|
_a as IllustrationStepHandle,
|
|
11266
|
-
|
|
11257
|
+
Ue as InformationMessageType,
|
|
11267
11258
|
on as InformationStepHandle,
|
|
11268
11259
|
Mt as IntegrationProduct,
|
|
11269
11260
|
oa as IntegrationType,
|
|
@@ -11271,30 +11262,30 @@ export {
|
|
|
11271
11262
|
gs as LayoutElementType,
|
|
11272
11263
|
z as LayoutNotFoundError,
|
|
11273
11264
|
en as MaterialStepHandle,
|
|
11274
|
-
|
|
11265
|
+
xe as MisconfigurationError,
|
|
11275
11266
|
Ki as MockWorkflowManager,
|
|
11276
11267
|
tn as ModelStepHandle,
|
|
11277
11268
|
ls as MoveCommand,
|
|
11278
|
-
|
|
11269
|
+
dA as ObjectInput,
|
|
11279
11270
|
ci as ObjectInputType,
|
|
11280
|
-
|
|
11281
|
-
|
|
11271
|
+
BA as OptionGlobalPropertyHandle,
|
|
11272
|
+
Pe as OptionNotFoundError,
|
|
11282
11273
|
oe as ParseError,
|
|
11283
11274
|
An as PictureStepHandle,
|
|
11284
11275
|
ra as ProductCameraRig,
|
|
11285
11276
|
ai as ProductCollection,
|
|
11286
11277
|
ge as ProductWorkflow,
|
|
11287
11278
|
de as PromiseCache,
|
|
11288
|
-
|
|
11279
|
+
Xt as PromiseQueue,
|
|
11289
11280
|
an as QuestionStepHandle,
|
|
11290
|
-
|
|
11281
|
+
Wt as QueueablePromise,
|
|
11291
11282
|
Bs as ResizeCommand,
|
|
11292
11283
|
Be as ResourceNotFoundError,
|
|
11293
11284
|
ds as RotateCommand,
|
|
11294
11285
|
ws as SendBackwardsCommand,
|
|
11295
11286
|
nn as ShapeStepHandle,
|
|
11296
11287
|
yi as SpiffCommerceClient,
|
|
11297
|
-
|
|
11288
|
+
Ne as StakeholderType,
|
|
11298
11289
|
hs as StepAspectType,
|
|
11299
11290
|
W as StepHandle,
|
|
11300
11291
|
Es as StepType,
|
|
@@ -11308,16 +11299,16 @@ export {
|
|
|
11308
11299
|
Cs as UnitOfMeasurement,
|
|
11309
11300
|
X as Variant,
|
|
11310
11301
|
un as WorkflowExperienceEventType,
|
|
11311
|
-
|
|
11302
|
+
me as WorkflowExperienceImpl,
|
|
11312
11303
|
v as assetService,
|
|
11313
11304
|
dn as createDesign,
|
|
11314
11305
|
Qs as dataUrlFromExternalUrl,
|
|
11315
|
-
|
|
11306
|
+
Te as designService,
|
|
11316
11307
|
ms as determineCorrectFontSizeAndLines,
|
|
11317
11308
|
ya as digitalContentStepService,
|
|
11318
11309
|
ps as findElement,
|
|
11319
11310
|
Is as frameDataCache,
|
|
11320
|
-
|
|
11311
|
+
Fe as frameStepService,
|
|
11321
11312
|
fs as generate,
|
|
11322
11313
|
Sn as generateCommands,
|
|
11323
11314
|
Ds as generateSVGWithUnknownColors,
|
|
@@ -11327,19 +11318,19 @@ export {
|
|
|
11327
11318
|
Ia as getBoundedOffsets,
|
|
11328
11319
|
Ms as getFrameData,
|
|
11329
11320
|
Ss as getSvgElement,
|
|
11330
|
-
|
|
11331
|
-
|
|
11321
|
+
fe as getWorkflow,
|
|
11322
|
+
wA as getWorkflows,
|
|
11332
11323
|
x as graphQlManager,
|
|
11333
|
-
|
|
11324
|
+
ye as illustrationStepService,
|
|
11334
11325
|
Ys as loadFont,
|
|
11335
|
-
|
|
11336
|
-
|
|
11326
|
+
Zt as materialStepService,
|
|
11327
|
+
$t as modelStepService,
|
|
11337
11328
|
Na as moduleStepService,
|
|
11338
11329
|
j as optionService,
|
|
11339
11330
|
Ps as patternImageDataCache,
|
|
11340
11331
|
P as persistenceService,
|
|
11341
|
-
|
|
11342
|
-
|
|
11332
|
+
_t as pictureStepService,
|
|
11333
|
+
eA as questionStepService,
|
|
11343
11334
|
xs as registerFetchImplementation,
|
|
11344
11335
|
Ns as registerWindowImplementation,
|
|
11345
11336
|
Hs as rehydrateSerializedLayout,
|