@spiffcommerce/core 21.9.0-alpha.8 → 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 +320 -328
- 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();
|
|
@@ -5491,38 +5478,38 @@ class $a {
|
|
|
5491
5478
|
r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
|
|
5492
5479
|
frameService: r
|
|
5493
5480
|
}, A.push(
|
|
5494
|
-
|
|
5481
|
+
Fe.init(o, this, this.reloadedState)
|
|
5495
5482
|
);
|
|
5496
5483
|
}
|
|
5497
5484
|
break;
|
|
5498
5485
|
case y.Illustration:
|
|
5499
5486
|
A.push(
|
|
5500
|
-
|
|
5487
|
+
ye.init(o, this, this.reloadedState)
|
|
5501
5488
|
);
|
|
5502
5489
|
break;
|
|
5503
5490
|
case y.Material:
|
|
5504
5491
|
A.push(
|
|
5505
|
-
|
|
5492
|
+
Zt.init(o, this, this.reloadedState)
|
|
5506
5493
|
);
|
|
5507
5494
|
break;
|
|
5508
5495
|
case y.Model:
|
|
5509
|
-
A.push(
|
|
5496
|
+
A.push($t.init(o, this, this.reloadedState));
|
|
5510
5497
|
break;
|
|
5511
5498
|
case y.Module:
|
|
5512
5499
|
this.stepSpecificServices[o.stepName] = {
|
|
5513
|
-
module: await
|
|
5500
|
+
module: await iA(o.data.module)
|
|
5514
5501
|
}, A.push(
|
|
5515
5502
|
Na.init(o, this, this.reloadedState)
|
|
5516
5503
|
);
|
|
5517
5504
|
break;
|
|
5518
5505
|
case y.Picture:
|
|
5519
5506
|
A.push(
|
|
5520
|
-
|
|
5507
|
+
_t.init(o, this, this.reloadedState)
|
|
5521
5508
|
);
|
|
5522
5509
|
break;
|
|
5523
5510
|
case y.Question:
|
|
5524
5511
|
A.push(
|
|
5525
|
-
|
|
5512
|
+
eA.init(o, this, this.reloadedState)
|
|
5526
5513
|
);
|
|
5527
5514
|
break;
|
|
5528
5515
|
case y.Shape:
|
|
@@ -5680,7 +5667,7 @@ class X {
|
|
|
5680
5667
|
return this.variantData.enabled;
|
|
5681
5668
|
}
|
|
5682
5669
|
}
|
|
5683
|
-
const
|
|
5670
|
+
const sA = class qe {
|
|
5684
5671
|
constructor(e, t) {
|
|
5685
5672
|
this.manager = e, this.step = t;
|
|
5686
5673
|
}
|
|
@@ -5690,13 +5677,13 @@ const oA = class Ze {
|
|
|
5690
5677
|
* @param value The new value
|
|
5691
5678
|
*/
|
|
5692
5679
|
setUpdateState(e) {
|
|
5693
|
-
|
|
5680
|
+
qe.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
|
|
5694
5681
|
}
|
|
5695
5682
|
/**
|
|
5696
5683
|
* @returns Gets the current update state of this step. All step handles for this step will see this value.
|
|
5697
5684
|
*/
|
|
5698
5685
|
getUpdateState() {
|
|
5699
|
-
return !!
|
|
5686
|
+
return !!qe.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
|
|
5700
5687
|
}
|
|
5701
5688
|
/**
|
|
5702
5689
|
* Gets the currently selected variant, or undefined if no variant is selected.
|
|
@@ -5776,7 +5763,9 @@ const oA = class Ze {
|
|
|
5776
5763
|
setOverrideGlobalPropertyConfiguration(e, t) {
|
|
5777
5764
|
var a;
|
|
5778
5765
|
const A = ((a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.overrideGlobalConfigurations) ?? {};
|
|
5779
|
-
|
|
5766
|
+
this.manager.updateStorage(this.step.stepName, {
|
|
5767
|
+
overrideGlobalConfigurations: { ...A, [e.toString()]: t }
|
|
5768
|
+
});
|
|
5780
5769
|
}
|
|
5781
5770
|
/**
|
|
5782
5771
|
* Retrieves the identifiers of all of the configured aspects for the specified Global Property Configuration.
|
|
@@ -5797,8 +5786,8 @@ const oA = class Ze {
|
|
|
5797
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.");
|
|
5798
5787
|
}
|
|
5799
5788
|
};
|
|
5800
|
-
|
|
5801
|
-
let W =
|
|
5789
|
+
sA.updateState = /* @__PURE__ */ new Map();
|
|
5790
|
+
let W = sA;
|
|
5802
5791
|
class _a extends W {
|
|
5803
5792
|
constructor(e, t) {
|
|
5804
5793
|
super(e, t);
|
|
@@ -5810,7 +5799,7 @@ class _a extends W {
|
|
|
5810
5799
|
*/
|
|
5811
5800
|
async selectVariant(e) {
|
|
5812
5801
|
if (!this.getUpdateState() && this.getCurrentVariant() !== e)
|
|
5813
|
-
return
|
|
5802
|
+
return ye.selectVariant(
|
|
5814
5803
|
this.step,
|
|
5815
5804
|
e.getResource(),
|
|
5816
5805
|
this.manager.getRegionElements(this.step.stepName) || [],
|
|
@@ -5826,7 +5815,7 @@ class _a extends W {
|
|
|
5826
5815
|
const e = this.manager.getRegionElements(this.step.stepName) || [];
|
|
5827
5816
|
if (e.length !== 0)
|
|
5828
5817
|
try {
|
|
5829
|
-
return
|
|
5818
|
+
return Se(e[0].id, this.manager.getAllLayoutData()).colors;
|
|
5830
5819
|
} catch (t) {
|
|
5831
5820
|
console.error(t);
|
|
5832
5821
|
}
|
|
@@ -5836,7 +5825,7 @@ class _a extends W {
|
|
|
5836
5825
|
*/
|
|
5837
5826
|
setColor(e, t) {
|
|
5838
5827
|
const A = /* @__PURE__ */ new Map();
|
|
5839
|
-
return A.set(e, t),
|
|
5828
|
+
return A.set(e, t), ye.changeColors(
|
|
5840
5829
|
this.step,
|
|
5841
5830
|
this.manager.getRegionElements(this.step.stepName),
|
|
5842
5831
|
this.manager,
|
|
@@ -5848,7 +5837,7 @@ class _a extends W {
|
|
|
5848
5837
|
return this.step.data.colorOption;
|
|
5849
5838
|
}
|
|
5850
5839
|
getAvailableColors() {
|
|
5851
|
-
return this.step.data.colorPickerEnabled ?
|
|
5840
|
+
return this.step.data.colorPickerEnabled ? ye.availableColors(this.step, this.manager) : Promise.resolve([]);
|
|
5852
5841
|
}
|
|
5853
5842
|
isColorPickerEnabled() {
|
|
5854
5843
|
return this.step.data.colorPickerEnabled;
|
|
@@ -5859,7 +5848,7 @@ class en extends W {
|
|
|
5859
5848
|
super(e, t);
|
|
5860
5849
|
}
|
|
5861
5850
|
selectVariant(e) {
|
|
5862
|
-
return
|
|
5851
|
+
return Zt.selectVariant(
|
|
5863
5852
|
this.step,
|
|
5864
5853
|
e.getResource(),
|
|
5865
5854
|
this.manager,
|
|
@@ -5872,7 +5861,7 @@ class tn extends W {
|
|
|
5872
5861
|
super(e, t);
|
|
5873
5862
|
}
|
|
5874
5863
|
selectVariant(e) {
|
|
5875
|
-
return
|
|
5864
|
+
return $t.selectVariant(
|
|
5876
5865
|
this.step,
|
|
5877
5866
|
e.getResource(),
|
|
5878
5867
|
this.manager,
|
|
@@ -5890,7 +5879,7 @@ class An extends W {
|
|
|
5890
5879
|
* @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
|
|
5891
5880
|
*/
|
|
5892
5881
|
selectVariant(e) {
|
|
5893
|
-
return
|
|
5882
|
+
return _t.selectVariant(
|
|
5894
5883
|
this.step,
|
|
5895
5884
|
e.getResource(),
|
|
5896
5885
|
this.manager,
|
|
@@ -5905,7 +5894,7 @@ class an extends W {
|
|
|
5905
5894
|
async selectVariant(e) {
|
|
5906
5895
|
if (!e.getId())
|
|
5907
5896
|
throw new Error("Unable to select variant with a null ID");
|
|
5908
|
-
await
|
|
5897
|
+
await eA.selectVariant(this.step, e.getId(), this.manager);
|
|
5909
5898
|
}
|
|
5910
5899
|
/**
|
|
5911
5900
|
* The way that this step expects to be rendered.
|
|
@@ -5996,7 +5985,7 @@ class sn extends W {
|
|
|
5996
5985
|
...this.manager.getInformationResults(),
|
|
5997
5986
|
{
|
|
5998
5987
|
message: "An issue has occured with test",
|
|
5999
|
-
messageType:
|
|
5988
|
+
messageType: Ue.Error,
|
|
6000
5989
|
stepID: this.step.stepName
|
|
6001
5990
|
}
|
|
6002
5991
|
]);
|
|
@@ -6091,7 +6080,7 @@ class sn extends W {
|
|
|
6091
6080
|
...B,
|
|
6092
6081
|
{
|
|
6093
6082
|
message: `${l} - ${this.step.stepTitle}`,
|
|
6094
|
-
messageType:
|
|
6083
|
+
messageType: Ue.Error,
|
|
6095
6084
|
stepID: this.step.stepName
|
|
6096
6085
|
}
|
|
6097
6086
|
]);
|
|
@@ -6162,7 +6151,7 @@ class on extends W {
|
|
|
6162
6151
|
return this.step.data.content;
|
|
6163
6152
|
}
|
|
6164
6153
|
}
|
|
6165
|
-
class
|
|
6154
|
+
class Qe {
|
|
6166
6155
|
static get(e, t) {
|
|
6167
6156
|
switch (t.type) {
|
|
6168
6157
|
case y.Information:
|
|
@@ -6188,7 +6177,7 @@ class Ce {
|
|
|
6188
6177
|
}
|
|
6189
6178
|
}
|
|
6190
6179
|
}
|
|
6191
|
-
const
|
|
6180
|
+
const oA = D`
|
|
6192
6181
|
fragment CreateDesignTransaction on Transaction {
|
|
6193
6182
|
id
|
|
6194
6183
|
designName
|
|
@@ -6209,7 +6198,7 @@ const rA = D`
|
|
|
6209
6198
|
}
|
|
6210
6199
|
}
|
|
6211
6200
|
`, rn = D`
|
|
6212
|
-
${
|
|
6201
|
+
${oA}
|
|
6213
6202
|
mutation CreateDesign(
|
|
6214
6203
|
$name: String!
|
|
6215
6204
|
$layouts: [LayoutInput]!
|
|
@@ -6241,7 +6230,7 @@ const rA = D`
|
|
|
6241
6230
|
}
|
|
6242
6231
|
}
|
|
6243
6232
|
`, cn = D`
|
|
6244
|
-
${
|
|
6233
|
+
${oA}
|
|
6245
6234
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6246
6235
|
designCreateMany(inputs: $inputs) {
|
|
6247
6236
|
id
|
|
@@ -6290,7 +6279,7 @@ const rA = D`
|
|
|
6290
6279
|
}))
|
|
6291
6280
|
}
|
|
6292
6281
|
})).data) == null ? void 0 : t.designCreateMany;
|
|
6293
|
-
},
|
|
6282
|
+
}, Ze = (c, e, t) => {
|
|
6294
6283
|
const A = (n) => {
|
|
6295
6284
|
const i = {};
|
|
6296
6285
|
if (n.type === "Frame") {
|
|
@@ -6330,7 +6319,7 @@ const rA = D`
|
|
|
6330
6319
|
const a = {};
|
|
6331
6320
|
let n;
|
|
6332
6321
|
if (t) {
|
|
6333
|
-
n =
|
|
6322
|
+
n = Ze(t, e, !1);
|
|
6334
6323
|
for (const i of Object.keys(n))
|
|
6335
6324
|
a[i] = {
|
|
6336
6325
|
value: n[i],
|
|
@@ -6359,7 +6348,7 @@ const rA = D`
|
|
|
6359
6348
|
};
|
|
6360
6349
|
}
|
|
6361
6350
|
return a;
|
|
6362
|
-
},
|
|
6351
|
+
}, rA = (c, e, t, A, a, n, i, s) => {
|
|
6363
6352
|
var w, E;
|
|
6364
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 = {
|
|
6365
6354
|
additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
|
|
@@ -6382,7 +6371,7 @@ const rA = D`
|
|
|
6382
6371
|
workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
|
|
6383
6372
|
};
|
|
6384
6373
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
6385
|
-
},
|
|
6374
|
+
}, cA = async (c, e, t, A, a, n, i, s, o, r) => {
|
|
6386
6375
|
var F;
|
|
6387
6376
|
await (async () => {
|
|
6388
6377
|
var T;
|
|
@@ -6390,7 +6379,7 @@ const rA = D`
|
|
|
6390
6379
|
return r;
|
|
6391
6380
|
await c.outstandingRequestsPromise();
|
|
6392
6381
|
const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), N = await x.getShadowGraphqlClient().query({
|
|
6393
|
-
query:
|
|
6382
|
+
query: jt,
|
|
6394
6383
|
variables: { ids: [a.id] },
|
|
6395
6384
|
fetchPolicy: "no-cache",
|
|
6396
6385
|
errorPolicy: "all",
|
|
@@ -6402,7 +6391,7 @@ const rA = D`
|
|
|
6402
6391
|
N.errors && console.log("Server Error:", L.message);
|
|
6403
6392
|
}), null) : H ?? null;
|
|
6404
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"));
|
|
6405
|
-
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) => {
|
|
6406
6395
|
const Y = {};
|
|
6407
6396
|
let S = 0;
|
|
6408
6397
|
if (Object.keys(n).length > 0)
|
|
@@ -6411,12 +6400,12 @@ const rA = D`
|
|
|
6411
6400
|
for (let L = 0; L < H.selections.length; ++L) {
|
|
6412
6401
|
const V = H.selections[L];
|
|
6413
6402
|
if (T && (!M || T.option && (T.option.variants || []).length > 1 && !T.data.hideSelectionInCart && !T.data.hideSelectionsInCart)) {
|
|
6414
|
-
const
|
|
6415
|
-
Y[
|
|
6403
|
+
const be = T.stepTitle;
|
|
6404
|
+
Y[be] ? Y[be].push({
|
|
6416
6405
|
id: V.id || "",
|
|
6417
6406
|
name: V.name,
|
|
6418
6407
|
priceModifier: V.priceModifier
|
|
6419
|
-
}) : Y[
|
|
6408
|
+
}) : Y[be] = [
|
|
6420
6409
|
{
|
|
6421
6410
|
id: V.id || "",
|
|
6422
6411
|
name: V.name,
|
|
@@ -6469,7 +6458,7 @@ const rA = D`
|
|
|
6469
6458
|
}, dn = async (c, e, t, A, a, n, i, s, o, r, g) => {
|
|
6470
6459
|
var C, u;
|
|
6471
6460
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6472
|
-
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await
|
|
6461
|
+
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await cA(
|
|
6473
6462
|
c,
|
|
6474
6463
|
e,
|
|
6475
6464
|
t,
|
|
@@ -6486,7 +6475,7 @@ const rA = D`
|
|
|
6486
6475
|
throw new Error("Failed to create design");
|
|
6487
6476
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
6488
6477
|
const h = w.transaction;
|
|
6489
|
-
return
|
|
6478
|
+
return rA(
|
|
6490
6479
|
h,
|
|
6491
6480
|
a,
|
|
6492
6481
|
e,
|
|
@@ -6505,7 +6494,7 @@ const rA = D`
|
|
|
6505
6494
|
const a = await (async () => {
|
|
6506
6495
|
var r;
|
|
6507
6496
|
const o = await x.getShadowGraphqlClient().query({
|
|
6508
|
-
query:
|
|
6497
|
+
query: jt,
|
|
6509
6498
|
variables: { ids: c.map((g) => g.transaction.id) },
|
|
6510
6499
|
fetchPolicy: "no-cache",
|
|
6511
6500
|
errorPolicy: "all"
|
|
@@ -6514,7 +6503,7 @@ const rA = D`
|
|
|
6514
6503
|
o.errors && console.log("Server Error:", g.message);
|
|
6515
6504
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
|
|
6516
6505
|
})(), n = await Promise.all(
|
|
6517
|
-
c.map(async (s, o) => await
|
|
6506
|
+
c.map(async (s, o) => await cA(
|
|
6518
6507
|
s.workflowManager,
|
|
6519
6508
|
s.workflow,
|
|
6520
6509
|
s.layouts,
|
|
@@ -6534,7 +6523,7 @@ const rA = D`
|
|
|
6534
6523
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
6535
6524
|
var l;
|
|
6536
6525
|
const r = c[o], g = n[o], B = s.transaction;
|
|
6537
|
-
return
|
|
6526
|
+
return rA(
|
|
6538
6527
|
B,
|
|
6539
6528
|
r.product,
|
|
6540
6529
|
r.workflow,
|
|
@@ -6614,7 +6603,7 @@ class hn {
|
|
|
6614
6603
|
throw new b("Unexpected storage method requested");
|
|
6615
6604
|
}
|
|
6616
6605
|
}
|
|
6617
|
-
const
|
|
6606
|
+
const Te = new hn(), En = D`
|
|
6618
6607
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
6619
6608
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
6620
6609
|
id
|
|
@@ -6630,11 +6619,11 @@ const ze = new hn(), En = D`
|
|
|
6630
6619
|
}
|
|
6631
6620
|
`;
|
|
6632
6621
|
var un = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(un || {});
|
|
6633
|
-
class
|
|
6622
|
+
class me {
|
|
6634
6623
|
constructor(e, t) {
|
|
6635
6624
|
var a;
|
|
6636
|
-
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate =
|
|
6637
|
-
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(
|
|
6638
6627
|
this.getWorkflowManager().getTransaction().id
|
|
6639
6628
|
) && this.save();
|
|
6640
6629
|
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, s) => {
|
|
@@ -6716,7 +6705,7 @@ class Qe {
|
|
|
6716
6705
|
}
|
|
6717
6706
|
let n = 2048;
|
|
6718
6707
|
t && t <= 2048 && (n = t);
|
|
6719
|
-
const i =
|
|
6708
|
+
const i = Ye(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
|
|
6720
6709
|
var m;
|
|
6721
6710
|
return ((m = Q.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6722
6711
|
}) || s[0], B = g.layoutState.layout.previewRegion ? {
|
|
@@ -6732,19 +6721,19 @@ class Qe {
|
|
|
6732
6721
|
}, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
|
|
6733
6722
|
if (!d)
|
|
6734
6723
|
throw new ke("Failed to obtain 2D context for preview image creation");
|
|
6735
|
-
const w =
|
|
6724
|
+
const w = Pt(l.layoutState.layout, l.layoutState.elements, {
|
|
6736
6725
|
renderingConfiguration: {
|
|
6737
|
-
purpose:
|
|
6726
|
+
purpose: xt.Print,
|
|
6738
6727
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
6739
6728
|
}
|
|
6740
|
-
}), E =
|
|
6741
|
-
await (await
|
|
6729
|
+
}), E = Nt(w);
|
|
6730
|
+
await (await kt.from(d, E, {
|
|
6742
6731
|
anonymousCrossOrigin: !0,
|
|
6743
6732
|
ignoreDimensions: !1,
|
|
6744
|
-
createCanvas:
|
|
6745
|
-
createImage:
|
|
6746
|
-
DOMParser:
|
|
6747
|
-
fetch:
|
|
6733
|
+
createCanvas: Ye,
|
|
6734
|
+
createImage: Ht,
|
|
6735
|
+
DOMParser: Rt(),
|
|
6736
|
+
fetch: $e
|
|
6748
6737
|
})).render();
|
|
6749
6738
|
const C = await this.getCanvasObjectURLAsync(i);
|
|
6750
6739
|
return i.toDataURL(C);
|
|
@@ -6756,7 +6745,7 @@ class Qe {
|
|
|
6756
6745
|
const A = this.cachedStepHandles.get(t.stepName);
|
|
6757
6746
|
if (A)
|
|
6758
6747
|
return A;
|
|
6759
|
-
const a =
|
|
6748
|
+
const a = Qe.get(this.getWorkflowManager(), t);
|
|
6760
6749
|
return this.cachedStepHandles.set(t.stepName, a), a;
|
|
6761
6750
|
}
|
|
6762
6751
|
getSteps() {
|
|
@@ -6853,10 +6842,10 @@ class Qe {
|
|
|
6853
6842
|
getStepByName(e) {
|
|
6854
6843
|
const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
|
|
6855
6844
|
if (!(!t || !this.stepHasHandle(t)))
|
|
6856
|
-
return
|
|
6845
|
+
return Qe.get(this.getWorkflowManager(), t);
|
|
6857
6846
|
}
|
|
6858
6847
|
getStepsByType(e) {
|
|
6859
|
-
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));
|
|
6860
6849
|
}
|
|
6861
6850
|
getStepsByScene(e) {
|
|
6862
6851
|
if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
|
|
@@ -6865,7 +6854,7 @@ class Qe {
|
|
|
6865
6854
|
);
|
|
6866
6855
|
return e.stepIds.map(
|
|
6867
6856
|
(A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
|
|
6868
|
-
).filter((A) => this.stepHasHandle(A)).map((A) =>
|
|
6857
|
+
).filter((A) => this.stepHasHandle(A)).map((A) => Qe.get(this.getWorkflowManager(), A));
|
|
6869
6858
|
}
|
|
6870
6859
|
async attachCustomerDetails(e) {
|
|
6871
6860
|
return this.assignCustomerDetails({ emailAddress: e.email });
|
|
@@ -6908,7 +6897,7 @@ class Qe {
|
|
|
6908
6897
|
var o;
|
|
6909
6898
|
if (e)
|
|
6910
6899
|
return e;
|
|
6911
|
-
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;
|
|
6912
6901
|
return s || "My design";
|
|
6913
6902
|
})(),
|
|
6914
6903
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
@@ -6919,7 +6908,7 @@ class Qe {
|
|
|
6919
6908
|
workflowId: this.getWorkflowManager().getWorkflow().id,
|
|
6920
6909
|
lastEdited: /* @__PURE__ */ new Date()
|
|
6921
6910
|
};
|
|
6922
|
-
return await
|
|
6911
|
+
return await Te.addDesign(a), a;
|
|
6923
6912
|
}
|
|
6924
6913
|
async copy() {
|
|
6925
6914
|
var s;
|
|
@@ -7026,7 +7015,7 @@ const Cn = [
|
|
|
7026
7015
|
], Qn = async (c, e, t) => {
|
|
7027
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);
|
|
7028
7017
|
s.searchParams.append("video", Ct(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
7029
|
-
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) => {
|
|
7030
7019
|
const w = c.find((h) => h.panelId === d.panelId);
|
|
7031
7020
|
if (!w)
|
|
7032
7021
|
throw new z(d);
|
|
@@ -7051,7 +7040,7 @@ const Cn = [
|
|
|
7051
7040
|
return console.error(d), [];
|
|
7052
7041
|
}
|
|
7053
7042
|
}, mn = async (c, e, t, A) => {
|
|
7054
|
-
const a = t.data, n = a.assetUrl, i = await
|
|
7043
|
+
const a = t.data, n = a.assetUrl, i = await Ve(n);
|
|
7055
7044
|
try {
|
|
7056
7045
|
const s = HA(a, A.option);
|
|
7057
7046
|
s && (e[A.stepName] = { selectedVariants: [s] });
|
|
@@ -7096,7 +7085,7 @@ const Cn = [
|
|
|
7096
7085
|
},
|
|
7097
7086
|
d
|
|
7098
7087
|
),
|
|
7099
|
-
new
|
|
7088
|
+
new St(l, i, w)
|
|
7100
7089
|
];
|
|
7101
7090
|
};
|
|
7102
7091
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
@@ -7117,10 +7106,10 @@ const Cn = [
|
|
|
7117
7106
|
const s = (p = i.asset) == null ? void 0 : p.fileLink;
|
|
7118
7107
|
if (!s)
|
|
7119
7108
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7120
|
-
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;
|
|
7121
7110
|
if (!w)
|
|
7122
7111
|
return console.error("Failed to read SVG."), [];
|
|
7123
|
-
|
|
7112
|
+
Gt(w);
|
|
7124
7113
|
const E = {};
|
|
7125
7114
|
UA(w, (I) => {
|
|
7126
7115
|
Cn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
@@ -7135,7 +7124,7 @@ const Cn = [
|
|
|
7135
7124
|
I.classList.add(N), E[N] = { browserValue: Y };
|
|
7136
7125
|
}
|
|
7137
7126
|
});
|
|
7138
|
-
const C =
|
|
7127
|
+
const C = vt().serializeToString(w), u = a.colors;
|
|
7139
7128
|
if (u) {
|
|
7140
7129
|
for (const [I, F] of Object.entries(E))
|
|
7141
7130
|
for (const M of Object.keys(u))
|
|
@@ -7173,7 +7162,7 @@ const Cn = [
|
|
|
7173
7162
|
return console.error(I), [];
|
|
7174
7163
|
}
|
|
7175
7164
|
}, In = async (c, e, t) => {
|
|
7176
|
-
const A = await
|
|
7165
|
+
const A = await iA(t.data.module), a = e.data, n = (s, o) => {
|
|
7177
7166
|
const r = c.find((B) => B.panelId === o.panelId);
|
|
7178
7167
|
if (!r)
|
|
7179
7168
|
throw new z(o);
|
|
@@ -7336,10 +7325,10 @@ const Cn = [
|
|
|
7336
7325
|
}
|
|
7337
7326
|
else {
|
|
7338
7327
|
const r = await Z(n, !0), g = (B) => {
|
|
7339
|
-
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;
|
|
7340
7329
|
if (!C)
|
|
7341
7330
|
throw new oe("Failed to read SVG.");
|
|
7342
|
-
return
|
|
7331
|
+
return Gt(C), vt().serializeToString(C);
|
|
7343
7332
|
};
|
|
7344
7333
|
o.forEach((B) => {
|
|
7345
7334
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
@@ -7390,7 +7379,7 @@ const Cn = [
|
|
|
7390
7379
|
assetUrl: h,
|
|
7391
7380
|
name: C.names.fullName.en
|
|
7392
7381
|
};
|
|
7393
|
-
})(), 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, {
|
|
7394
7383
|
vertical: A.data.vertical,
|
|
7395
7384
|
uppercase: A.data.uppercase
|
|
7396
7385
|
}), d = async (h) => {
|
|
@@ -7426,12 +7415,12 @@ const Cn = [
|
|
|
7426
7415
|
y: h.top
|
|
7427
7416
|
};
|
|
7428
7417
|
if (g) {
|
|
7429
|
-
const [f, Q] =
|
|
7418
|
+
const [f, Q] = De(
|
|
7430
7419
|
A.data.size || i,
|
|
7431
7420
|
g,
|
|
7432
7421
|
h,
|
|
7433
7422
|
[
|
|
7434
|
-
|
|
7423
|
+
We(l, {
|
|
7435
7424
|
vertical: A.data.vertical,
|
|
7436
7425
|
uppercase: A.data.uppercase
|
|
7437
7426
|
})
|
|
@@ -7519,7 +7508,7 @@ const Cn = [
|
|
|
7519
7508
|
);
|
|
7520
7509
|
return a;
|
|
7521
7510
|
};
|
|
7522
|
-
class
|
|
7511
|
+
class pe {
|
|
7523
7512
|
constructor(e) {
|
|
7524
7513
|
this.handleCompleteRender = null;
|
|
7525
7514
|
const t = /* @__PURE__ */ new Map();
|
|
@@ -7536,12 +7525,12 @@ class me {
|
|
|
7536
7525
|
}
|
|
7537
7526
|
}
|
|
7538
7527
|
const Yn = () => new Promise((c, e) => {
|
|
7539
|
-
const A =
|
|
7528
|
+
const A = Ye().getContext("webgl2");
|
|
7540
7529
|
c(!!A);
|
|
7541
7530
|
}), Pn = Yn();
|
|
7542
7531
|
class xn {
|
|
7543
7532
|
constructor(e, t, A) {
|
|
7544
|
-
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;
|
|
7545
7534
|
}
|
|
7546
7535
|
getID() {
|
|
7547
7536
|
return this.id;
|
|
@@ -7616,7 +7605,7 @@ class xn {
|
|
|
7616
7605
|
);
|
|
7617
7606
|
}
|
|
7618
7607
|
}
|
|
7619
|
-
class Nn extends
|
|
7608
|
+
class Nn extends Wt {
|
|
7620
7609
|
constructor(e, t, A, a, n, i, s) {
|
|
7621
7610
|
super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl = s;
|
|
7622
7611
|
}
|
|
@@ -7665,19 +7654,19 @@ class Nn extends Xt {
|
|
|
7665
7654
|
s = w.width, o = w.height;
|
|
7666
7655
|
} else
|
|
7667
7656
|
s = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
|
|
7668
|
-
const r =
|
|
7669
|
-
renderingConfiguration: { purpose:
|
|
7670
|
-
}), 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, {
|
|
7671
7660
|
anonymousCrossOrigin: !0,
|
|
7672
7661
|
ignoreDimensions: !this.nonPOTSupport,
|
|
7673
7662
|
ignoreAnimation: !0,
|
|
7674
7663
|
ignoreClear: !0,
|
|
7675
7664
|
ignoreMouse: !0,
|
|
7676
7665
|
enableRedraw: !1,
|
|
7677
|
-
createCanvas:
|
|
7678
|
-
createImage:
|
|
7679
|
-
DOMParser:
|
|
7680
|
-
fetch:
|
|
7666
|
+
createCanvas: Ye,
|
|
7667
|
+
createImage: Ht,
|
|
7668
|
+
DOMParser: Rt(),
|
|
7669
|
+
fetch: $e
|
|
7681
7670
|
});
|
|
7682
7671
|
B.resize(s, o), await B.render(), this.onRender();
|
|
7683
7672
|
}
|
|
@@ -7744,7 +7733,7 @@ const Li = (c, e) => {
|
|
|
7744
7733
|
name
|
|
7745
7734
|
}
|
|
7746
7735
|
}
|
|
7747
|
-
`,
|
|
7736
|
+
`, gA = D`
|
|
7748
7737
|
${Hn}
|
|
7749
7738
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
7750
7739
|
id
|
|
@@ -7754,8 +7743,8 @@ const Li = (c, e) => {
|
|
|
7754
7743
|
...ProductFields
|
|
7755
7744
|
}
|
|
7756
7745
|
}
|
|
7757
|
-
`,
|
|
7758
|
-
${c ?
|
|
7746
|
+
`, lA = (c) => D`
|
|
7747
|
+
${c ? gA : ""}
|
|
7759
7748
|
fragment ProductCollectionFields on ProductCollection {
|
|
7760
7749
|
id
|
|
7761
7750
|
name
|
|
@@ -7800,7 +7789,7 @@ const Li = (c, e) => {
|
|
|
7800
7789
|
}
|
|
7801
7790
|
}
|
|
7802
7791
|
`, Rn = (c) => D`
|
|
7803
|
-
${
|
|
7792
|
+
${lA(c)}
|
|
7804
7793
|
query GetBundle($id: String!) {
|
|
7805
7794
|
bundles(ids: [$id]) {
|
|
7806
7795
|
id
|
|
@@ -7863,7 +7852,7 @@ const Li = (c, e) => {
|
|
|
7863
7852
|
}
|
|
7864
7853
|
}
|
|
7865
7854
|
`, vn = D`
|
|
7866
|
-
${
|
|
7855
|
+
${gA}
|
|
7867
7856
|
query GetProductCollectionProducts($id: String!) {
|
|
7868
7857
|
productCollections(ids: [$id]) {
|
|
7869
7858
|
id
|
|
@@ -7873,7 +7862,7 @@ const Li = (c, e) => {
|
|
|
7873
7862
|
}
|
|
7874
7863
|
}
|
|
7875
7864
|
`, kn = (c) => D`
|
|
7876
|
-
${
|
|
7865
|
+
${lA(c)}
|
|
7877
7866
|
mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
|
|
7878
7867
|
bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
|
|
7879
7868
|
id
|
|
@@ -8039,7 +8028,7 @@ class Wn {
|
|
|
8039
8028
|
return new Xn(this.bundle, e);
|
|
8040
8029
|
case ce.Option: {
|
|
8041
8030
|
const t = e.entityId ? await j.getOption(e.entityId) : void 0;
|
|
8042
|
-
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);
|
|
8043
8032
|
}
|
|
8044
8033
|
case ce.Text:
|
|
8045
8034
|
return new qn(this.bundle, e);
|
|
@@ -8185,32 +8174,32 @@ class Xn extends gt {
|
|
|
8185
8174
|
const n = {
|
|
8186
8175
|
...a,
|
|
8187
8176
|
useOriginalAsset: e
|
|
8188
|
-
}, 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)];
|
|
8189
8178
|
if (e)
|
|
8190
|
-
|
|
8179
|
+
s.push(this.applyImageSelection(t, void 0, !1));
|
|
8191
8180
|
else {
|
|
8192
|
-
const
|
|
8193
|
-
const
|
|
8194
|
-
if (!
|
|
8181
|
+
const o = async () => {
|
|
8182
|
+
const r = await this.getBackgroundRemovedImage();
|
|
8183
|
+
if (!r)
|
|
8195
8184
|
throw new Error(
|
|
8196
8185
|
"You must call removeBackgroundFromImage before attempting to use that version of the image."
|
|
8197
8186
|
);
|
|
8198
|
-
this.applyImageSelection(
|
|
8187
|
+
this.applyImageSelection(r, void 0, !1);
|
|
8199
8188
|
};
|
|
8200
|
-
|
|
8189
|
+
s.push(o());
|
|
8201
8190
|
}
|
|
8202
8191
|
this.updateSharedStepStorage(n);
|
|
8203
8192
|
}
|
|
8204
8193
|
async applyGlobalState(e) {
|
|
8205
8194
|
const t = this.getStateValue();
|
|
8206
8195
|
if (!t)
|
|
8207
|
-
return
|
|
8196
|
+
return;
|
|
8208
8197
|
const A = await v.getLocalOrFromServer(t);
|
|
8209
8198
|
if (!A)
|
|
8210
|
-
return
|
|
8211
|
-
await this.applyImageSelection(A, e);
|
|
8199
|
+
return;
|
|
8200
|
+
await this.applyImageSelection(A, e, !1);
|
|
8212
8201
|
const a = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
8213
|
-
a
|
|
8202
|
+
a ? this.updateSharedStepStorage({ ...a }) : (this.updateSharedStepStorage({ originalAssetKey: t }), await this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name, { originalAssetKey: t }));
|
|
8214
8203
|
}
|
|
8215
8204
|
async applyImageSelection(e, t, A = !0) {
|
|
8216
8205
|
const n = this.getSharedSteps(t).map((i) => i.selectImage(e, A));
|
|
@@ -8265,7 +8254,7 @@ class qn extends gt {
|
|
|
8265
8254
|
await Promise.all(a);
|
|
8266
8255
|
}
|
|
8267
8256
|
}
|
|
8268
|
-
class
|
|
8257
|
+
class BA extends gt {
|
|
8269
8258
|
constructor(e, t, A) {
|
|
8270
8259
|
super(e, t), this.optionResource = A;
|
|
8271
8260
|
}
|
|
@@ -8327,7 +8316,7 @@ class dA extends gt {
|
|
|
8327
8316
|
await Promise.all(a);
|
|
8328
8317
|
}
|
|
8329
8318
|
}
|
|
8330
|
-
class Zn extends
|
|
8319
|
+
class Zn extends BA {
|
|
8331
8320
|
constructor(e, t, A) {
|
|
8332
8321
|
super(e, t, A);
|
|
8333
8322
|
}
|
|
@@ -8624,14 +8613,14 @@ class ai {
|
|
|
8624
8613
|
getProducts() {
|
|
8625
8614
|
if (!this.collection.productCollectionProducts)
|
|
8626
8615
|
throw new Error("Failed to find products on collection. Ensure you fetch them first!");
|
|
8627
|
-
return this.collection.productCollectionProducts.map((e) => new
|
|
8616
|
+
return this.collection.productCollectionProducts.map((e) => new ze(e));
|
|
8628
8617
|
}
|
|
8629
8618
|
/**
|
|
8630
8619
|
* A list of products in this collections with useful helpers for interacting with them.
|
|
8631
8620
|
*/
|
|
8632
8621
|
async fetchProducts() {
|
|
8633
8622
|
if (this.collection.productCollectionProducts)
|
|
8634
|
-
return this.collection.productCollectionProducts.map((t) => new
|
|
8623
|
+
return this.collection.productCollectionProducts.map((t) => new ze(t));
|
|
8635
8624
|
const e = await x.getShadowGraphqlClient().query({
|
|
8636
8625
|
query: vn,
|
|
8637
8626
|
variables: {
|
|
@@ -8640,7 +8629,7 @@ class ai {
|
|
|
8640
8629
|
errorPolicy: "all",
|
|
8641
8630
|
fetchPolicy: "no-cache"
|
|
8642
8631
|
});
|
|
8643
|
-
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));
|
|
8644
8633
|
}
|
|
8645
8634
|
getTransformCollection() {
|
|
8646
8635
|
if (this.collection.transformCollection)
|
|
@@ -8653,7 +8642,7 @@ class ai {
|
|
|
8653
8642
|
return this.collection;
|
|
8654
8643
|
}
|
|
8655
8644
|
}
|
|
8656
|
-
class
|
|
8645
|
+
class ze {
|
|
8657
8646
|
constructor(e) {
|
|
8658
8647
|
this.product = e.product, this.productResource = e;
|
|
8659
8648
|
}
|
|
@@ -9097,7 +9086,7 @@ class yt {
|
|
|
9097
9086
|
variables: {
|
|
9098
9087
|
id: this.id,
|
|
9099
9088
|
details: e,
|
|
9100
|
-
type: t ||
|
|
9089
|
+
type: t || Ne.Owner
|
|
9101
9090
|
},
|
|
9102
9091
|
context: {
|
|
9103
9092
|
bundleOwnerId: this.ownerId
|
|
@@ -9382,14 +9371,14 @@ class ri {
|
|
|
9382
9371
|
* @returns The nodes contained within the execution.
|
|
9383
9372
|
*/
|
|
9384
9373
|
getNodes() {
|
|
9385
|
-
return this.execution.nodes.map((e) => new
|
|
9374
|
+
return this.execution.nodes.map((e) => new Ie(e));
|
|
9386
9375
|
}
|
|
9387
9376
|
/**
|
|
9388
9377
|
* @param type The type of node to return.
|
|
9389
9378
|
* @returns A list of nodes matching the requested type.
|
|
9390
9379
|
*/
|
|
9391
9380
|
getNodesByType(e) {
|
|
9392
|
-
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));
|
|
9393
9382
|
}
|
|
9394
9383
|
/**
|
|
9395
9384
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -9398,7 +9387,7 @@ class ri {
|
|
|
9398
9387
|
return this.execution.nodes.filter(
|
|
9399
9388
|
(e) => e.type === "StartTerminal"
|
|
9400
9389
|
/* StartTerminal */
|
|
9401
|
-
).map((e) => new
|
|
9390
|
+
).map((e) => new Ie(e));
|
|
9402
9391
|
}
|
|
9403
9392
|
/**
|
|
9404
9393
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -9407,7 +9396,7 @@ class ri {
|
|
|
9407
9396
|
return this.execution.nodes.filter(
|
|
9408
9397
|
(e) => e.type === "EndTerminal"
|
|
9409
9398
|
/* EndTerminal */
|
|
9410
|
-
).map((e) => new
|
|
9399
|
+
).map((e) => new Ie(e));
|
|
9411
9400
|
}
|
|
9412
9401
|
/**
|
|
9413
9402
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -9424,7 +9413,7 @@ class ri {
|
|
|
9424
9413
|
return new Date(this.execution.failedAt);
|
|
9425
9414
|
}
|
|
9426
9415
|
}
|
|
9427
|
-
class
|
|
9416
|
+
class Ie {
|
|
9428
9417
|
constructor(e) {
|
|
9429
9418
|
this.node = e;
|
|
9430
9419
|
}
|
|
@@ -9459,9 +9448,9 @@ class Ti extends Bt {
|
|
|
9459
9448
|
super(`"${e}"`);
|
|
9460
9449
|
}
|
|
9461
9450
|
}
|
|
9462
|
-
class
|
|
9451
|
+
class dA extends Bt {
|
|
9463
9452
|
constructor(e, t) {
|
|
9464
|
-
if (t !== "Asset" && !
|
|
9453
|
+
if (t !== "Asset" && !dA.validUUID(e))
|
|
9465
9454
|
throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
|
|
9466
9455
|
super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
|
|
9467
9456
|
}
|
|
@@ -9637,9 +9626,9 @@ const gi = D`
|
|
|
9637
9626
|
name
|
|
9638
9627
|
}
|
|
9639
9628
|
`, wi = (c) => D`
|
|
9640
|
-
${
|
|
9629
|
+
${he(c)}
|
|
9641
9630
|
${it}
|
|
9642
|
-
${
|
|
9631
|
+
${Kt}
|
|
9643
9632
|
${gi}
|
|
9644
9633
|
${li}
|
|
9645
9634
|
${Bi}
|
|
@@ -10057,7 +10046,7 @@ const gi = D`
|
|
|
10057
10046
|
}
|
|
10058
10047
|
}
|
|
10059
10048
|
`, ui = D`
|
|
10060
|
-
${
|
|
10049
|
+
${he(!1)}
|
|
10061
10050
|
query GetWorkflowForTheme($id: String!) {
|
|
10062
10051
|
workflow(id: $id) {
|
|
10063
10052
|
id
|
|
@@ -10165,7 +10154,7 @@ const gi = D`
|
|
|
10165
10154
|
);
|
|
10166
10155
|
for (let n = 0; n < A.length; ++n) {
|
|
10167
10156
|
const i = A[n];
|
|
10168
|
-
i.src && i.svg && (i.cachedObjectURL = await
|
|
10157
|
+
i.src && i.svg && (i.cachedObjectURL = await Me(i.svg));
|
|
10169
10158
|
}
|
|
10170
10159
|
const a = c.layouts[t].elements.filter((n) => n.type === k.Textbox);
|
|
10171
10160
|
for (let n = 0; n < a.length; ++n) {
|
|
@@ -10198,7 +10187,7 @@ const gi = D`
|
|
|
10198
10187
|
if (!A)
|
|
10199
10188
|
throw new Error(`Workflow not found: ${c}`);
|
|
10200
10189
|
return A;
|
|
10201
|
-
},
|
|
10190
|
+
}, wA = async (c, e) => {
|
|
10202
10191
|
const t = c.map((s) => de.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
|
|
10203
10192
|
if (A.length === 0)
|
|
10204
10193
|
return Promise.all(t);
|
|
@@ -10206,7 +10195,7 @@ const gi = D`
|
|
|
10206
10195
|
(s) => de.set({ id: s, options: e }, Di(s, a))
|
|
10207
10196
|
), i = t.filter((s) => s !== void 0);
|
|
10208
10197
|
return await Promise.all(i.concat(n));
|
|
10209
|
-
},
|
|
10198
|
+
}, fe = async (c, e) => (await wA([c], e))[0], Fi = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
|
|
10210
10199
|
id: J(),
|
|
10211
10200
|
panelId: e.name,
|
|
10212
10201
|
name: e.name,
|
|
@@ -10219,7 +10208,7 @@ const gi = D`
|
|
|
10219
10208
|
previewRegion: e.previewRegion,
|
|
10220
10209
|
useEditableArea: e.useEditableArea,
|
|
10221
10210
|
editableArea: e.editableArea
|
|
10222
|
-
})),
|
|
10211
|
+
})), Ke = (c, e) => {
|
|
10223
10212
|
const t = c.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
10224
10213
|
return A ? Object.values(A.layouts).map((a) => a.layout) : Fi(e.panels);
|
|
10225
10214
|
};
|
|
@@ -10269,7 +10258,7 @@ class yi {
|
|
|
10269
10258
|
var a, n;
|
|
10270
10259
|
const t = P.getMap("bundleOwnerIds");
|
|
10271
10260
|
if (t != null && t.has(e))
|
|
10272
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
10261
|
+
return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
|
|
10273
10262
|
const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10274
10263
|
if (A.has(e)) {
|
|
10275
10264
|
const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
@@ -10318,7 +10307,7 @@ class yi {
|
|
|
10318
10307
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
10319
10308
|
const i = P.getMap("transactionOwnerIds");
|
|
10320
10309
|
if (i != null && i.has(e))
|
|
10321
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
10310
|
+
return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
|
|
10322
10311
|
const s = P.getMap("transactionCustomerIds");
|
|
10323
10312
|
if (s != null && s.has(e)) {
|
|
10324
10313
|
const h = s.get(e);
|
|
@@ -10561,7 +10550,7 @@ class yi {
|
|
|
10561
10550
|
const h = x.getShadowGraphqlClient();
|
|
10562
10551
|
if (a.type === "transaction") {
|
|
10563
10552
|
const { transactionId: f, readOnly: Q } = a, m = await h.query({
|
|
10564
|
-
query:
|
|
10553
|
+
query: ue,
|
|
10565
10554
|
variables: {
|
|
10566
10555
|
ids: [f]
|
|
10567
10556
|
},
|
|
@@ -10573,7 +10562,7 @@ class yi {
|
|
|
10573
10562
|
const p = (u = m.data) == null ? void 0 : u.transactions[0];
|
|
10574
10563
|
if (!p.workflowId)
|
|
10575
10564
|
throw new U("Existing transaction has no workflow ID.");
|
|
10576
|
-
const I = await
|
|
10565
|
+
const I = await fe(p.workflowId);
|
|
10577
10566
|
if (!p.product)
|
|
10578
10567
|
throw new U("Failed to load transaction, product not available.");
|
|
10579
10568
|
return { transaction: p, workflow: I, readOnly: Q };
|
|
@@ -10601,7 +10590,7 @@ class yi {
|
|
|
10601
10590
|
if (!M.product)
|
|
10602
10591
|
throw new U("Failed to create transaction, product not available.");
|
|
10603
10592
|
return M;
|
|
10604
|
-
}, Q =
|
|
10593
|
+
}, Q = fe(a.workflowId, a == null ? void 0 : a.graphql), [m, p] = await Promise.all([f(), Q]);
|
|
10605
10594
|
return { transaction: m, workflow: p };
|
|
10606
10595
|
}
|
|
10607
10596
|
throw new U("No workflow ID provided.");
|
|
@@ -10628,11 +10617,11 @@ class yi {
|
|
|
10628
10617
|
const h = JSON.parse(a.workflowState);
|
|
10629
10618
|
r.layouts = Object.values(h.layouts).map((C) => C.layout), await ee(h), await te(h), r.reloadedState = h;
|
|
10630
10619
|
} else
|
|
10631
|
-
r.layouts =
|
|
10620
|
+
r.layouts = Ke(
|
|
10632
10621
|
r.transaction,
|
|
10633
10622
|
r.workflow
|
|
10634
10623
|
);
|
|
10635
|
-
if (r.renderableContextService = new
|
|
10624
|
+
if (r.renderableContextService = new pe(
|
|
10636
10625
|
r.layouts
|
|
10637
10626
|
), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
10638
10627
|
model: r.product.modelUrl,
|
|
@@ -10646,7 +10635,7 @@ class yi {
|
|
|
10646
10635
|
} else
|
|
10647
10636
|
r.isReloadedTransaction = !0;
|
|
10648
10637
|
this.initialized = !0, this.experienceOptions = r;
|
|
10649
|
-
const g = new
|
|
10638
|
+
const g = new me(this, r);
|
|
10650
10639
|
return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
|
|
10651
10640
|
}
|
|
10652
10641
|
/**
|
|
@@ -10664,7 +10653,7 @@ class yi {
|
|
|
10664
10653
|
if (m.length === 0)
|
|
10665
10654
|
return [];
|
|
10666
10655
|
const p = m.map((S) => S.option.transactionId), I = await A.query({
|
|
10667
|
-
query:
|
|
10656
|
+
query: ue,
|
|
10668
10657
|
variables: {
|
|
10669
10658
|
ids: p
|
|
10670
10659
|
},
|
|
@@ -10717,7 +10706,7 @@ class yi {
|
|
|
10717
10706
|
), r = Qt(s, 10), g = Qt(o, 10), B = (await Promise.all([
|
|
10718
10707
|
...r.map(a),
|
|
10719
10708
|
...g.map(n)
|
|
10720
|
-
])).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) => {
|
|
10721
10710
|
var T;
|
|
10722
10711
|
const { transaction: p, workflowId: I, readOnly: F, index: M } = m, Y = w.get(I), S = e[M];
|
|
10723
10712
|
!E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
|
|
@@ -10740,17 +10729,17 @@ class yi {
|
|
|
10740
10729
|
const L = JSON.parse(S.workflowState);
|
|
10741
10730
|
H.layouts = Object.values(L.layouts || {}).map((V) => V.layout), await ee(L), await te(L), H.reloadedState = L;
|
|
10742
10731
|
} else
|
|
10743
|
-
H.layouts =
|
|
10732
|
+
H.layouts = Ke(
|
|
10744
10733
|
H.transaction,
|
|
10745
10734
|
H.workflow
|
|
10746
10735
|
);
|
|
10747
|
-
return H.renderableContextService = new
|
|
10736
|
+
return H.renderableContextService = new pe(
|
|
10748
10737
|
H.layouts
|
|
10749
10738
|
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: M, options: S };
|
|
10750
10739
|
});
|
|
10751
10740
|
P.setMap("transactionOwnerIds", E);
|
|
10752
10741
|
const f = (await Promise.all(h)).sort((m, p) => m.index - p.index).map(async (m) => {
|
|
10753
|
-
const { experienceOptions: p, options: I } = m, F = new
|
|
10742
|
+
const { experienceOptions: p, options: I } = m, F = new me(this, p);
|
|
10754
10743
|
return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
10755
10744
|
}), Q = await Promise.all(f);
|
|
10756
10745
|
return Q.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
|
|
@@ -10805,7 +10794,7 @@ class yi {
|
|
|
10805
10794
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
10806
10795
|
var d, w;
|
|
10807
10796
|
const l = (d = (await A.query({
|
|
10808
|
-
query:
|
|
10797
|
+
query: ue,
|
|
10809
10798
|
variables: { ids: [e] },
|
|
10810
10799
|
fetchPolicy: "no-cache",
|
|
10811
10800
|
errorPolicy: "all"
|
|
@@ -10829,7 +10818,7 @@ class yi {
|
|
|
10829
10818
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
10830
10819
|
if (i) {
|
|
10831
10820
|
const l = (s = (await A.query({
|
|
10832
|
-
query:
|
|
10821
|
+
query: ue,
|
|
10833
10822
|
variables: {
|
|
10834
10823
|
ids: [e]
|
|
10835
10824
|
},
|
|
@@ -10880,16 +10869,16 @@ class yi {
|
|
|
10880
10869
|
if (!this.initialized || !this.experienceOptions)
|
|
10881
10870
|
throw new U("Cannot launch experience: Not initialized.");
|
|
10882
10871
|
if (this.experienceOptions.transaction.workflowId) {
|
|
10883
|
-
const o = await
|
|
10872
|
+
const o = await fe(this.experienceOptions.transaction.workflowId);
|
|
10884
10873
|
if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
|
|
10885
10874
|
const g = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10886
10875
|
this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
|
|
10887
10876
|
}
|
|
10888
|
-
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({
|
|
10889
10878
|
model: this.experienceOptions.product.modelUrl,
|
|
10890
10879
|
contextService: this.experienceOptions.renderableContextService
|
|
10891
10880
|
}));
|
|
10892
|
-
const r = new
|
|
10881
|
+
const r = new me(this, this.experienceOptions);
|
|
10893
10882
|
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
10894
10883
|
}
|
|
10895
10884
|
if (e) {
|
|
@@ -10902,20 +10891,20 @@ class yi {
|
|
|
10902
10891
|
context: {
|
|
10903
10892
|
transactionOwnerId: r
|
|
10904
10893
|
}
|
|
10905
|
-
}), B =
|
|
10894
|
+
}), B = fe(e);
|
|
10906
10895
|
if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
|
|
10907
10896
|
const d = JSON.parse(t);
|
|
10908
10897
|
this.experienceOptions.layouts = Object.values(d.layouts).map((w) => w.layout), await ee(d), await te(d), this.experienceOptions.reloadedState = d;
|
|
10909
10898
|
} else
|
|
10910
|
-
this.experienceOptions.layouts =
|
|
10899
|
+
this.experienceOptions.layouts = Ke(
|
|
10911
10900
|
this.experienceOptions.transaction,
|
|
10912
10901
|
this.experienceOptions.workflow
|
|
10913
10902
|
);
|
|
10914
|
-
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({
|
|
10915
10904
|
model: this.experienceOptions.product.modelUrl,
|
|
10916
10905
|
contextService: this.experienceOptions.renderableContextService
|
|
10917
10906
|
}));
|
|
10918
|
-
const l = new
|
|
10907
|
+
const l = new me(this, this.experienceOptions);
|
|
10919
10908
|
return await l.getWorkflowManager().getInitializationPromise(), l;
|
|
10920
10909
|
}
|
|
10921
10910
|
throw new U("No workflow ID provided.");
|
|
@@ -11119,7 +11108,7 @@ class Si extends W {
|
|
|
11119
11108
|
}
|
|
11120
11109
|
selectVariant(e) {
|
|
11121
11110
|
const t = this.manager.getRegionElements(this.step.stepName);
|
|
11122
|
-
return
|
|
11111
|
+
return Fe.selectVariant(
|
|
11123
11112
|
this.step,
|
|
11124
11113
|
e.getResource(),
|
|
11125
11114
|
t,
|
|
@@ -11139,7 +11128,7 @@ class Si extends W {
|
|
|
11139
11128
|
*/
|
|
11140
11129
|
async selectImage(e, t = !0) {
|
|
11141
11130
|
var A;
|
|
11142
|
-
if (await
|
|
11131
|
+
if (await Fe.selectImage(this.step, e, this.manager), t) {
|
|
11143
11132
|
const a = ((A = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : A.framePatternData) || {};
|
|
11144
11133
|
this.manager.updateStorage(this.step.stepName, {
|
|
11145
11134
|
framePatternData: {
|
|
@@ -11162,7 +11151,7 @@ class Si extends W {
|
|
|
11162
11151
|
if (!t)
|
|
11163
11152
|
throw new Error("You must supply an image selection before attempting to remove the background.");
|
|
11164
11153
|
const A = await v.removeBackgroundFromAsset(t);
|
|
11165
|
-
e && await
|
|
11154
|
+
e && await Fe.selectImage(this.step, A, this.manager);
|
|
11166
11155
|
const a = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.framePatternData) || {};
|
|
11167
11156
|
return this.manager.updateStorage(this.step.stepName, {
|
|
11168
11157
|
framePatternData: {
|
|
@@ -11202,15 +11191,15 @@ class Si extends W {
|
|
|
11202
11191
|
}
|
|
11203
11192
|
hasBackgroundRemovedImageSelection() {
|
|
11204
11193
|
var e, t;
|
|
11205
|
-
return !!((t = (e = this.
|
|
11194
|
+
return !!((t = (e = this.getFrameStepStorage()) == null ? void 0 : e.framePatternData) != null && t.backgroundRemovedAssetKey);
|
|
11206
11195
|
}
|
|
11207
11196
|
getUseOriginalImageSelection() {
|
|
11208
11197
|
var e, t;
|
|
11209
|
-
return ((t = (e = this.
|
|
11198
|
+
return ((t = (e = this.getFrameStepStorage()) == null ? void 0 : e.framePatternData) == null ? void 0 : t.useOriginalAsset) ?? !1;
|
|
11210
11199
|
}
|
|
11211
11200
|
async setUseOriginalImageSelection(e) {
|
|
11212
11201
|
var a;
|
|
11213
|
-
const t = ((a = this.
|
|
11202
|
+
const t = ((a = this.getFrameStepStorage()) == null ? void 0 : a.framePatternData) || {};
|
|
11214
11203
|
if (t.useOriginalAsset === e)
|
|
11215
11204
|
return;
|
|
11216
11205
|
const A = await this.getOriginalImageSelection();
|
|
@@ -11230,6 +11219,9 @@ class Si extends W {
|
|
|
11230
11219
|
framePatternData: { ...t, useOriginalAsset: e }
|
|
11231
11220
|
});
|
|
11232
11221
|
}
|
|
11222
|
+
getFrameStepStorage() {
|
|
11223
|
+
return this.manager.getStepStorage(this.step.stepName);
|
|
11224
|
+
}
|
|
11233
11225
|
}
|
|
11234
11226
|
export {
|
|
11235
11227
|
zi as ArrayInput,
|
|
@@ -11240,7 +11232,7 @@ export {
|
|
|
11240
11232
|
Zi as BringToBackCommand,
|
|
11241
11233
|
$i as BringToFrontCommand,
|
|
11242
11234
|
_i as CanvasCommand,
|
|
11243
|
-
|
|
11235
|
+
ze as CollectionProduct,
|
|
11244
11236
|
Zn as ColorOptionGlobalPropertyHandle,
|
|
11245
11237
|
es as CommandContext,
|
|
11246
11238
|
ga as ConversionDataType,
|
|
@@ -11249,7 +11241,7 @@ export {
|
|
|
11249
11241
|
As as CreateLayoutCommand,
|
|
11250
11242
|
as as DeleteElementCommand,
|
|
11251
11243
|
Xn as FileUploadGlobalPropertyHandle,
|
|
11252
|
-
|
|
11244
|
+
Ie as FlowExecutionNodeResult,
|
|
11253
11245
|
ri as FlowExecutionResult,
|
|
11254
11246
|
oi as FlowService,
|
|
11255
11247
|
ns as FontAlignmentCommand,
|
|
@@ -11262,7 +11254,7 @@ export {
|
|
|
11262
11254
|
gt as GlobalPropertyHandle,
|
|
11263
11255
|
rs as GroupCommand,
|
|
11264
11256
|
_a as IllustrationStepHandle,
|
|
11265
|
-
|
|
11257
|
+
Ue as InformationMessageType,
|
|
11266
11258
|
on as InformationStepHandle,
|
|
11267
11259
|
Mt as IntegrationProduct,
|
|
11268
11260
|
oa as IntegrationType,
|
|
@@ -11270,30 +11262,30 @@ export {
|
|
|
11270
11262
|
gs as LayoutElementType,
|
|
11271
11263
|
z as LayoutNotFoundError,
|
|
11272
11264
|
en as MaterialStepHandle,
|
|
11273
|
-
|
|
11265
|
+
xe as MisconfigurationError,
|
|
11274
11266
|
Ki as MockWorkflowManager,
|
|
11275
11267
|
tn as ModelStepHandle,
|
|
11276
11268
|
ls as MoveCommand,
|
|
11277
|
-
|
|
11269
|
+
dA as ObjectInput,
|
|
11278
11270
|
ci as ObjectInputType,
|
|
11279
|
-
|
|
11280
|
-
|
|
11271
|
+
BA as OptionGlobalPropertyHandle,
|
|
11272
|
+
Pe as OptionNotFoundError,
|
|
11281
11273
|
oe as ParseError,
|
|
11282
11274
|
An as PictureStepHandle,
|
|
11283
11275
|
ra as ProductCameraRig,
|
|
11284
11276
|
ai as ProductCollection,
|
|
11285
11277
|
ge as ProductWorkflow,
|
|
11286
11278
|
de as PromiseCache,
|
|
11287
|
-
|
|
11279
|
+
Xt as PromiseQueue,
|
|
11288
11280
|
an as QuestionStepHandle,
|
|
11289
|
-
|
|
11281
|
+
Wt as QueueablePromise,
|
|
11290
11282
|
Bs as ResizeCommand,
|
|
11291
11283
|
Be as ResourceNotFoundError,
|
|
11292
11284
|
ds as RotateCommand,
|
|
11293
11285
|
ws as SendBackwardsCommand,
|
|
11294
11286
|
nn as ShapeStepHandle,
|
|
11295
11287
|
yi as SpiffCommerceClient,
|
|
11296
|
-
|
|
11288
|
+
Ne as StakeholderType,
|
|
11297
11289
|
hs as StepAspectType,
|
|
11298
11290
|
W as StepHandle,
|
|
11299
11291
|
Es as StepType,
|
|
@@ -11307,16 +11299,16 @@ export {
|
|
|
11307
11299
|
Cs as UnitOfMeasurement,
|
|
11308
11300
|
X as Variant,
|
|
11309
11301
|
un as WorkflowExperienceEventType,
|
|
11310
|
-
|
|
11302
|
+
me as WorkflowExperienceImpl,
|
|
11311
11303
|
v as assetService,
|
|
11312
11304
|
dn as createDesign,
|
|
11313
11305
|
Qs as dataUrlFromExternalUrl,
|
|
11314
|
-
|
|
11306
|
+
Te as designService,
|
|
11315
11307
|
ms as determineCorrectFontSizeAndLines,
|
|
11316
11308
|
ya as digitalContentStepService,
|
|
11317
11309
|
ps as findElement,
|
|
11318
11310
|
Is as frameDataCache,
|
|
11319
|
-
|
|
11311
|
+
Fe as frameStepService,
|
|
11320
11312
|
fs as generate,
|
|
11321
11313
|
Sn as generateCommands,
|
|
11322
11314
|
Ds as generateSVGWithUnknownColors,
|
|
@@ -11326,19 +11318,19 @@ export {
|
|
|
11326
11318
|
Ia as getBoundedOffsets,
|
|
11327
11319
|
Ms as getFrameData,
|
|
11328
11320
|
Ss as getSvgElement,
|
|
11329
|
-
|
|
11330
|
-
|
|
11321
|
+
fe as getWorkflow,
|
|
11322
|
+
wA as getWorkflows,
|
|
11331
11323
|
x as graphQlManager,
|
|
11332
|
-
|
|
11324
|
+
ye as illustrationStepService,
|
|
11333
11325
|
Ys as loadFont,
|
|
11334
|
-
|
|
11335
|
-
|
|
11326
|
+
Zt as materialStepService,
|
|
11327
|
+
$t as modelStepService,
|
|
11336
11328
|
Na as moduleStepService,
|
|
11337
11329
|
j as optionService,
|
|
11338
11330
|
Ps as patternImageDataCache,
|
|
11339
11331
|
P as persistenceService,
|
|
11340
|
-
|
|
11341
|
-
|
|
11332
|
+
_t as pictureStepService,
|
|
11333
|
+
eA as questionStepService,
|
|
11342
11334
|
xs as registerFetchImplementation,
|
|
11343
11335
|
Ns as registerWindowImplementation,
|
|
11344
11336
|
Hs as rehydrateSerializedLayout,
|