@spiffcommerce/core 22.7.5 → 22.8.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 +8 -0
- package/dist/index.js +763 -688
- package/dist/index.umd.cjs +132 -101
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { createHttpLink as RA, InMemoryCache as HA, ApolloClient as
|
|
2
|
-
import { fetch as
|
|
3
|
-
import { AspectType as
|
|
1
|
+
import { createHttpLink as RA, InMemoryCache as HA, ApolloClient as kA, from as UA, gql as f } from "@apollo/client/core";
|
|
2
|
+
import { fetch as gt, getAttributesFromArrayBuffer as Ot, AssetType as At, StepType as M, getFrameData as lt, frameDataCache as GA, modifySVGColors as bA, svgToDataUrl as JA, GroupCommand as k, UpdateFramePattern as Lt, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as Bt, LayoutElementType as G, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as ze, svgObjectURL as Re, fetchAsString as _, DeleteElementCommand as ne, generateDefaultRectangleFrameSvg as yt, GetSVGDimensions as OA, patternImageDataCache as Mt, fetchAsArrayBuffer as LA, findElement as He, modifySVGWithElementProperties as zA, IllustrationColorCommand as at, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as nt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Xe, applyTextTransformations as it, determineCorrectFontSizeAndLines as Ne, FontSourceCommand as St, loadFont as dt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as fe, _loadFontExternalDataURL as Ct, UpdateWorkflowStateCommand as Yt, CommandContext as $A, createCanvas as ke, getSvgElement as zt, LayoutRenderingPurpose as Kt, renderPapyrusComponentAsString as jt, loadImage as Vt, getDomParser as Wt, toBase64 as Pt, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as Ke, domParser as Xt, sanitizeSvgTree as qt, traverse as ta, xmlSerializer as Zt, CreateLayoutCommand as Aa, AspectType as $, rehydrateSerializedLayout as se } from "@spiffcommerce/papyrus";
|
|
3
|
+
import { AspectType as Ps, AssetType as xs, BringForwardCommand as Ns, BringToBackCommand as vs, BringToFrontCommand as Rs, CanvasCommand as Hs, CommandContext as ks, CreateElementCommand as Us, CreateLayoutCommand as Gs, DeleteElementCommand as bs, FontAlignmentCommand as Js, FontColorCommand as Ts, FontSizeCommand as Os, FontSourceCommand as Ls, GroupCommand as zs, LayoutElementFactory as Ks, LayoutElementType as js, MoveCommand as Vs, ResizeCommand as Ws, RotateCommand as Xs, SendBackwardsCommand as qs, StepAspectType as Zs, StepType as $s, TextChangeCommand as _s, UnitOfMeasurement as eo, UpdateImageSourceCommand as to, dataUrlFromExternalUrl as Ao, determineCorrectFontSizeAndLines as ao, findElement as no, frameDataCache as io, generate as so, generateSVGWithUnknownColors as oo, getAttributesFromArrayBuffer as ro, getAxisAlignedBoundingBox as co, getFrameData as go, getSvgElement as lo, loadFont as Bo, patternImageDataCache as Co, registerFetchImplementation as wo, registerWindowImplementation as ho, rehydrateSerializedLayout as Eo, setCanvasModule as uo, svgToDataUrl as Qo } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as aa } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as na } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as $t } from "pith";
|
|
7
7
|
import _t from "lodash.debounce";
|
|
8
8
|
import eA from "lodash.isequal";
|
|
9
|
-
import
|
|
9
|
+
import ge from "lodash.clonedeep";
|
|
10
10
|
import { toString as tA } from "qrcode";
|
|
11
11
|
import ia from "fuse.js";
|
|
12
|
-
import { split as
|
|
13
|
-
import
|
|
14
|
-
import
|
|
12
|
+
import { split as st } from "unicode-default-word-boundary";
|
|
13
|
+
import wt from "svg-path-bbox";
|
|
14
|
+
import xt from "lodash.chunk";
|
|
15
15
|
class AA extends Error {
|
|
16
16
|
constructor(e) {
|
|
17
17
|
super(e), this.name = this.constructor.name;
|
|
@@ -22,7 +22,7 @@ class De extends AA {
|
|
|
22
22
|
super(`ConfigurationError - ${e}`);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
class
|
|
25
|
+
class Ue extends De {
|
|
26
26
|
constructor(e) {
|
|
27
27
|
super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
|
|
28
28
|
}
|
|
@@ -47,27 +47,27 @@ class Ge extends De {
|
|
|
47
47
|
super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
class
|
|
50
|
+
class je extends AA {
|
|
51
51
|
constructor(e) {
|
|
52
52
|
super(`ImplementationError - ${e}`);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
class b extends
|
|
55
|
+
class b extends je {
|
|
56
56
|
constructor(e) {
|
|
57
57
|
super(`Unhandled Behavior Encountered: ${e}`);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
class
|
|
60
|
+
class he extends je {
|
|
61
61
|
constructor(e) {
|
|
62
62
|
super(`Parsing Error: ${e}`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
class H extends
|
|
65
|
+
class H extends je {
|
|
66
66
|
constructor(e) {
|
|
67
67
|
super(`Client Error: ${e}`);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
class
|
|
70
|
+
class Ve extends je {
|
|
71
71
|
constructor(e) {
|
|
72
72
|
super(`Resource Generation Failed: ${e}`);
|
|
73
73
|
}
|
|
@@ -92,7 +92,7 @@ class sa {
|
|
|
92
92
|
this.set(e, A);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
class
|
|
95
|
+
class Nt {
|
|
96
96
|
constructor() {
|
|
97
97
|
this.storage = /* @__PURE__ */ new Map();
|
|
98
98
|
}
|
|
@@ -117,9 +117,9 @@ class xt {
|
|
|
117
117
|
}
|
|
118
118
|
const oa = () => {
|
|
119
119
|
try {
|
|
120
|
-
return localStorage ? new sa() : new
|
|
120
|
+
return localStorage ? new sa() : new Nt();
|
|
121
121
|
} catch {
|
|
122
|
-
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new
|
|
122
|
+
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Nt();
|
|
123
123
|
}
|
|
124
124
|
}, P = oa();
|
|
125
125
|
class ra {
|
|
@@ -150,13 +150,13 @@ class ra {
|
|
|
150
150
|
}
|
|
151
151
|
const q = new ra();
|
|
152
152
|
let aA;
|
|
153
|
-
const
|
|
153
|
+
const vt = (g) => {
|
|
154
154
|
aA = g;
|
|
155
155
|
};
|
|
156
|
-
let
|
|
156
|
+
let ht;
|
|
157
157
|
const ca = (g) => {
|
|
158
|
-
|
|
159
|
-
}, ga = () =>
|
|
158
|
+
ht = g;
|
|
159
|
+
}, ga = () => ht;
|
|
160
160
|
let nA;
|
|
161
161
|
const la = (g) => {
|
|
162
162
|
nA = g;
|
|
@@ -167,7 +167,7 @@ const la = (g) => {
|
|
|
167
167
|
window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
|
|
168
168
|
}), da = async () => {
|
|
169
169
|
const g = {
|
|
170
|
-
applicationKey:
|
|
170
|
+
applicationKey: ht,
|
|
171
171
|
customerToken: aA,
|
|
172
172
|
bearer: nA
|
|
173
173
|
};
|
|
@@ -185,14 +185,14 @@ class Ca {
|
|
|
185
185
|
constructShadowGraphqlClient() {
|
|
186
186
|
const e = RA({
|
|
187
187
|
uri: `${q.getServerUrl()}/graphql`,
|
|
188
|
-
fetch:
|
|
188
|
+
fetch: gt
|
|
189
189
|
}), t = aa(async (i, s) => {
|
|
190
|
-
const { headers: o } = s, r = o || {}, c = await da(), B = s.bearer ?? c.bearer, l = s.partnerId ?? c.partnerId, d = s.activeIntegration ?? c.activeIntegration, C = s.transactionOwnerId, w = s.customerToken ?? c.customerToken,
|
|
190
|
+
const { headers: o } = s, r = o || {}, c = await da(), B = s.bearer ?? c.bearer, l = s.partnerId ?? c.partnerId, d = s.activeIntegration ?? c.activeIntegration, C = s.transactionOwnerId, w = s.customerToken ?? c.customerToken, h = s.applicationKey ?? c.applicationKey, u = s.bundleOwnerId;
|
|
191
191
|
try {
|
|
192
192
|
if (window && window.__SENTRY__) {
|
|
193
|
-
const
|
|
194
|
-
if (
|
|
195
|
-
const D =
|
|
193
|
+
const E = window.__SENTRY__.hub;
|
|
194
|
+
if (E) {
|
|
195
|
+
const D = E.traceHeaders();
|
|
196
196
|
Object.entries(D).forEach(([m, p]) => {
|
|
197
197
|
r[m] = p;
|
|
198
198
|
});
|
|
@@ -200,7 +200,7 @@ class Ca {
|
|
|
200
200
|
}
|
|
201
201
|
} catch {
|
|
202
202
|
}
|
|
203
|
-
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), w && (r.customerToken = w),
|
|
203
|
+
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), w && (r.customerToken = w), h && (r["X-Application-Key"] = h), u && (r.bundleOwnerId = u), {
|
|
204
204
|
headers: r
|
|
205
205
|
};
|
|
206
206
|
}), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
|
|
@@ -251,8 +251,8 @@ class Ca {
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
});
|
|
254
|
-
return new
|
|
255
|
-
link:
|
|
254
|
+
return new kA({
|
|
255
|
+
link: UA([A, t, e]),
|
|
256
256
|
cache: n,
|
|
257
257
|
name: "Core"
|
|
258
258
|
});
|
|
@@ -280,14 +280,14 @@ const x = new Ca(), wa = f`
|
|
|
280
280
|
}
|
|
281
281
|
${g && "...AssetMetadataFields" || ""}
|
|
282
282
|
}
|
|
283
|
-
`,
|
|
283
|
+
`, ha = f`
|
|
284
284
|
${Ie(!1)}
|
|
285
285
|
query GetAssets($keys: [String]!) {
|
|
286
286
|
assets(keys: $keys) {
|
|
287
287
|
...AssetFields
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
|
-
`,
|
|
290
|
+
`, Et = f`
|
|
291
291
|
fragment MaterialFields on Material {
|
|
292
292
|
id
|
|
293
293
|
name
|
|
@@ -334,8 +334,8 @@ const x = new Ca(), wa = f`
|
|
|
334
334
|
fileLink
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
|
-
`,
|
|
338
|
-
${
|
|
337
|
+
`, Ea = f`
|
|
338
|
+
${Et}
|
|
339
339
|
query GetMaterials($ids: [String]) {
|
|
340
340
|
materials(id: $ids) {
|
|
341
341
|
...MaterialFields
|
|
@@ -362,15 +362,15 @@ const x = new Ca(), wa = f`
|
|
|
362
362
|
...AssetFields
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
|
-
`,
|
|
366
|
-
query:
|
|
365
|
+
`, ot = async (g) => (await x.getShadowGraphqlClient().query({
|
|
366
|
+
query: ha,
|
|
367
367
|
errorPolicy: "all",
|
|
368
368
|
fetchPolicy: "no-cache",
|
|
369
369
|
variables: {
|
|
370
370
|
keys: g
|
|
371
371
|
}
|
|
372
372
|
})).data.assets, ma = async (g) => (await x.getShadowGraphqlClient().query({
|
|
373
|
-
query:
|
|
373
|
+
query: Ea,
|
|
374
374
|
errorPolicy: "all",
|
|
375
375
|
fetchPolicy: "no-cache",
|
|
376
376
|
variables: {
|
|
@@ -416,14 +416,14 @@ class Da {
|
|
|
416
416
|
throw new b("Failed to get asset from cache!");
|
|
417
417
|
return a;
|
|
418
418
|
}
|
|
419
|
-
const A = (async () => (await
|
|
419
|
+
const A = (async () => (await ot([e]))[0])();
|
|
420
420
|
return this.cache.set(e, A), A;
|
|
421
421
|
}
|
|
422
422
|
/**
|
|
423
423
|
* Retrieves the asset from the server, bypassing cache (but still writing the result to cache)
|
|
424
424
|
*/
|
|
425
425
|
async getFromServer(e) {
|
|
426
|
-
const A = (async () => (await
|
|
426
|
+
const A = (async () => (await ot([e]))[0])();
|
|
427
427
|
return this.cache.set(e, A), A;
|
|
428
428
|
}
|
|
429
429
|
keyFromURL(e) {
|
|
@@ -484,7 +484,7 @@ class Da {
|
|
|
484
484
|
}, A, a);
|
|
485
485
|
}
|
|
486
486
|
async uploadFile(e, t) {
|
|
487
|
-
const A = !(e.type === "image/svg+xml" || e.type === "application/pdf" || e.type === "application/postscript"), a = A ?
|
|
487
|
+
const A = !(e.type === "image/svg+xml" || e.type === "application/pdf" || e.type === "application/postscript"), a = A ? At.Image : At.Illustration;
|
|
488
488
|
if (A) {
|
|
489
489
|
const n = await this.loadImageAsFileInfo(e);
|
|
490
490
|
return await this.uploadAssetWithProgress(n, a, t, !0);
|
|
@@ -562,7 +562,7 @@ class Da {
|
|
|
562
562
|
}
|
|
563
563
|
}
|
|
564
564
|
}
|
|
565
|
-
const
|
|
565
|
+
const de = "persistentAssets", iA = class te {
|
|
566
566
|
/**
|
|
567
567
|
* Add a new asset to persistence
|
|
568
568
|
* @param asset The asset to add.
|
|
@@ -574,27 +574,27 @@ const Be = "persistentAssets", iA = class te {
|
|
|
574
574
|
}
|
|
575
575
|
const t = /* @__PURE__ */ new Map();
|
|
576
576
|
t.set(e.key || "", e.fileLink);
|
|
577
|
-
const A = P.getMap(
|
|
577
|
+
const A = P.getMap(de);
|
|
578
578
|
A && A.forEach((a, n) => {
|
|
579
579
|
t.set(n, a);
|
|
580
|
-
}), P.setMap(
|
|
580
|
+
}), P.setMap(de, t), te.executeCallbacks();
|
|
581
581
|
}
|
|
582
582
|
/**
|
|
583
583
|
* Remove an existing asset from persistence. Noop if the asset doesn't exist.
|
|
584
584
|
* @param assetKey The key to remove.
|
|
585
585
|
*/
|
|
586
586
|
static remove(e) {
|
|
587
|
-
const t = P.getMap(
|
|
587
|
+
const t = P.getMap(de);
|
|
588
588
|
if (!t)
|
|
589
589
|
return;
|
|
590
590
|
const A = Array.from(t.entries()).find((a) => a[0] === e);
|
|
591
|
-
A && (t.delete(A[0]), P.setMap(
|
|
591
|
+
A && (t.delete(A[0]), P.setMap(de, t), te.executeCallbacks());
|
|
592
592
|
}
|
|
593
593
|
/**
|
|
594
594
|
* Get a list of all persisted assets.
|
|
595
595
|
*/
|
|
596
596
|
static list() {
|
|
597
|
-
const e = P.getMap(
|
|
597
|
+
const e = P.getMap(de);
|
|
598
598
|
return e ? Array.from(e.entries()).map((t) => ({ assetKey: t[0], src: t[1] })) : [];
|
|
599
599
|
}
|
|
600
600
|
/**
|
|
@@ -615,7 +615,7 @@ const Be = "persistentAssets", iA = class te {
|
|
|
615
615
|
};
|
|
616
616
|
iA.callbacks = [];
|
|
617
617
|
let oe = iA;
|
|
618
|
-
const
|
|
618
|
+
const Rt = "bgrmPersistentAssets";
|
|
619
619
|
class K {
|
|
620
620
|
static has(e) {
|
|
621
621
|
return K.getMap().has(e);
|
|
@@ -642,13 +642,13 @@ class K {
|
|
|
642
642
|
A && (t.delete(A), K.setMap(t));
|
|
643
643
|
}
|
|
644
644
|
static getMap() {
|
|
645
|
-
return P.getMap(
|
|
645
|
+
return P.getMap(Rt) || /* @__PURE__ */ new Map();
|
|
646
646
|
}
|
|
647
647
|
static setMap(e) {
|
|
648
|
-
P.setMap(
|
|
648
|
+
P.setMap(Rt, e);
|
|
649
649
|
}
|
|
650
650
|
}
|
|
651
|
-
const
|
|
651
|
+
const U = new Da();
|
|
652
652
|
class Ia {
|
|
653
653
|
constructor() {
|
|
654
654
|
this.cache = {}, this.disabled = !1;
|
|
@@ -719,7 +719,7 @@ const Qe = new Ia(), sA = f`
|
|
|
719
719
|
}
|
|
720
720
|
`, fa = f`
|
|
721
721
|
${Ie(!1)}
|
|
722
|
-
${
|
|
722
|
+
${Et}
|
|
723
723
|
${sA}
|
|
724
724
|
query GetOptions($ids: [String]!) {
|
|
725
725
|
options(ids: $ids) {
|
|
@@ -737,8 +737,8 @@ const Qe = new Ia(), sA = f`
|
|
|
737
737
|
});
|
|
738
738
|
return e.data.options.forEach((t) => {
|
|
739
739
|
var A, a;
|
|
740
|
-
(A = t.defaultVariant) != null && A.asset &&
|
|
741
|
-
n.asset &&
|
|
740
|
+
(A = t.defaultVariant) != null && A.asset && U.cacheAsset(t.defaultVariant.asset), t.colorProfile && U.cacheAsset(t.colorProfile), (a = t.variants) == null || a.forEach((n) => {
|
|
741
|
+
n.asset && U.cacheAsset(n.asset), n.thumbnail && U.cacheAsset(n.thumbnail), n.material && U.cacheMaterial(n.material);
|
|
742
742
|
});
|
|
743
743
|
}), e.data.options;
|
|
744
744
|
}, ya = async (g, e) => (await e).find((A) => A.id === g), Ma = async (g) => {
|
|
@@ -797,7 +797,7 @@ class Sa {
|
|
|
797
797
|
}
|
|
798
798
|
}
|
|
799
799
|
const V = new Sa();
|
|
800
|
-
var Ya = /* @__PURE__ */ ((g) => (g.Hyperlink = "Hyperlink", g.Edit = "Edit", g.Approve = "Approve", g))(Ya || {}), Pa = /* @__PURE__ */ ((g) => (g.Hub = "Hub", g.Shopify = "Shopify", g))(Pa || {}),
|
|
800
|
+
var Ya = /* @__PURE__ */ ((g) => (g.Hyperlink = "Hyperlink", g.Edit = "Edit", g.Approve = "Approve", g))(Ya || {}), Pa = /* @__PURE__ */ ((g) => (g.Hub = "Hub", g.Shopify = "Shopify", g))(Pa || {}), ut = /* @__PURE__ */ ((g) => (g.BackgroundRemover = "BackgroundRemover", g.ConversionAccelerator = "Conversion Accelerator", g.ProcessBuilder = "ProcessBuilder", g))(ut || {}), xa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(xa || {}), Na = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(Na || {}), va = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(va || {}), be = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(be || {});
|
|
801
801
|
const oA = f`
|
|
802
802
|
fragment ActiveIntegrationFields on Integration {
|
|
803
803
|
id
|
|
@@ -822,7 +822,7 @@ const oA = f`
|
|
|
822
822
|
...ActiveIntegrationFields
|
|
823
823
|
}
|
|
824
824
|
}
|
|
825
|
-
`,
|
|
825
|
+
`, Be = f`
|
|
826
826
|
fragment AdditionalIntegrationProductFields on IntegrationProduct {
|
|
827
827
|
id
|
|
828
828
|
product {
|
|
@@ -840,8 +840,8 @@ const oA = f`
|
|
|
840
840
|
preloadImageUrl
|
|
841
841
|
}
|
|
842
842
|
}
|
|
843
|
-
`,
|
|
844
|
-
${
|
|
843
|
+
`, Ht = f`
|
|
844
|
+
${Be}
|
|
845
845
|
mutation CreateTransaction(
|
|
846
846
|
$integrationProductId: String
|
|
847
847
|
$externalIntegrationId: String
|
|
@@ -937,7 +937,7 @@ const oA = f`
|
|
|
937
937
|
}
|
|
938
938
|
}
|
|
939
939
|
`, Ha = f`
|
|
940
|
-
${
|
|
940
|
+
${Be}
|
|
941
941
|
mutation CreateTransactions(
|
|
942
942
|
$inputs: [TransactionCreateInput]!
|
|
943
943
|
$marketplaceThemeInstallId: String
|
|
@@ -1022,8 +1022,8 @@ const oA = f`
|
|
|
1022
1022
|
}
|
|
1023
1023
|
}
|
|
1024
1024
|
}
|
|
1025
|
-
`,
|
|
1026
|
-
${
|
|
1025
|
+
`, ka = f`
|
|
1026
|
+
${Be}
|
|
1027
1027
|
mutation ClaimTransaction($id: String!) {
|
|
1028
1028
|
transactionClaim(id: $id) {
|
|
1029
1029
|
id
|
|
@@ -1118,7 +1118,7 @@ const oA = f`
|
|
|
1118
1118
|
url
|
|
1119
1119
|
}
|
|
1120
1120
|
`, Fe = f`
|
|
1121
|
-
${
|
|
1121
|
+
${Be}
|
|
1122
1122
|
${rA}
|
|
1123
1123
|
${cA}
|
|
1124
1124
|
${oA}
|
|
@@ -1257,7 +1257,7 @@ const oA = f`
|
|
|
1257
1257
|
}
|
|
1258
1258
|
}
|
|
1259
1259
|
}
|
|
1260
|
-
`,
|
|
1260
|
+
`, Ua = f`
|
|
1261
1261
|
mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
|
|
1262
1262
|
transactionUpdate(id: $id, workflowState: $workflowState) {
|
|
1263
1263
|
id
|
|
@@ -1341,7 +1341,7 @@ const Ja = f`
|
|
|
1341
1341
|
}
|
|
1342
1342
|
}
|
|
1343
1343
|
`, lA = f`
|
|
1344
|
-
${
|
|
1344
|
+
${Be}
|
|
1345
1345
|
fragment IntegrationProductFields on IntegrationProduct {
|
|
1346
1346
|
id
|
|
1347
1347
|
externalProductId
|
|
@@ -1431,14 +1431,14 @@ const Ja = f`
|
|
|
1431
1431
|
}
|
|
1432
1432
|
}
|
|
1433
1433
|
}
|
|
1434
|
-
`,
|
|
1434
|
+
`, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (g) => {
|
|
1435
1435
|
const e = [];
|
|
1436
1436
|
g.introduction && e.push({
|
|
1437
1437
|
name: "Introduction",
|
|
1438
1438
|
title: g.name,
|
|
1439
1439
|
renderableSteps: [
|
|
1440
1440
|
{
|
|
1441
|
-
type:
|
|
1441
|
+
type: M.Introduction,
|
|
1442
1442
|
stepName: "Introduction",
|
|
1443
1443
|
stepTitle: g.name,
|
|
1444
1444
|
helpText: g.introduction,
|
|
@@ -1454,16 +1454,16 @@ const Ja = f`
|
|
|
1454
1454
|
e.push({
|
|
1455
1455
|
name: A.stepName,
|
|
1456
1456
|
title: A.stepTitle,
|
|
1457
|
-
renderableSteps:
|
|
1458
|
-
silentSteps:
|
|
1457
|
+
renderableSteps: Ce.includes(A.type) ? [] : [A],
|
|
1458
|
+
silentSteps: Ce.includes(A.type) ? [A] : []
|
|
1459
1459
|
});
|
|
1460
1460
|
else {
|
|
1461
1461
|
const n = e.find((i) => i.name === a.name);
|
|
1462
|
-
n ?
|
|
1462
|
+
n ? Ce.includes(A.type) ? n.silentSteps.push(A) : n.renderableSteps.push(A) : e.push({
|
|
1463
1463
|
name: a.name,
|
|
1464
1464
|
title: a.name,
|
|
1465
|
-
renderableSteps:
|
|
1466
|
-
silentSteps:
|
|
1465
|
+
renderableSteps: Ce.includes(A.type) ? [] : [A],
|
|
1466
|
+
silentSteps: Ce.includes(A.type) ? [A] : []
|
|
1467
1467
|
});
|
|
1468
1468
|
}
|
|
1469
1469
|
}
|
|
@@ -1473,7 +1473,7 @@ const Ja = f`
|
|
|
1473
1473
|
title: t,
|
|
1474
1474
|
renderableSteps: [
|
|
1475
1475
|
{
|
|
1476
|
-
type:
|
|
1476
|
+
type: M.Finish,
|
|
1477
1477
|
stepName: "Finish",
|
|
1478
1478
|
stepTitle: t,
|
|
1479
1479
|
helpText: "",
|
|
@@ -1509,7 +1509,7 @@ const Ja = f`
|
|
|
1509
1509
|
for (const s of A)
|
|
1510
1510
|
for (const o of s.renderableSteps) {
|
|
1511
1511
|
const r = (((i = o.option) == null ? void 0 : i.variants) || []).length;
|
|
1512
|
-
o.silent || (o.type ===
|
|
1512
|
+
o.silent || (o.type === M.Model || o.type === M.Material || o.type === M.Picture || o.type === M.Shape ? (r > 1 || t) && a.push(o.stepName) : a.push(o.stepName));
|
|
1513
1513
|
}
|
|
1514
1514
|
const n = A.filter((s) => s.renderableSteps.filter(
|
|
1515
1515
|
(r) => a.includes(r.stepName)
|
|
@@ -1631,7 +1631,7 @@ class Xa {
|
|
|
1631
1631
|
if (a.currentFrameSources) {
|
|
1632
1632
|
let n = !1;
|
|
1633
1633
|
for (let i = 0; i < a.currentFrameSources.length; i++) {
|
|
1634
|
-
const s = a.currentFrameSources[i], o = await
|
|
1634
|
+
const s = a.currentFrameSources[i], o = await lt(s), r = this.frameData ? this.frameData[i] : void 0;
|
|
1635
1635
|
eA(o, r) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
|
|
1636
1636
|
}
|
|
1637
1637
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
@@ -1794,7 +1794,7 @@ class Xa {
|
|
|
1794
1794
|
const i = this.workflowManager.getCommandDispatcher();
|
|
1795
1795
|
this.targetElements.forEach((s, o) => {
|
|
1796
1796
|
i(
|
|
1797
|
-
new
|
|
1797
|
+
new k([
|
|
1798
1798
|
new Lt(s, t, e[o]),
|
|
1799
1799
|
new TA(
|
|
1800
1800
|
s,
|
|
@@ -1822,11 +1822,11 @@ class Xa {
|
|
|
1822
1822
|
}
|
|
1823
1823
|
recalculateOffsets(e) {
|
|
1824
1824
|
this.frameData && ((!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((t, A) => {
|
|
1825
|
-
this.offsets[A] =
|
|
1825
|
+
this.offsets[A] = Bt(e, t);
|
|
1826
1826
|
}), this._debouncedUpdateFrameOffsets(this.offsets, e, this.frameData, this.thresholdSettings));
|
|
1827
1827
|
}
|
|
1828
1828
|
}
|
|
1829
|
-
class
|
|
1829
|
+
class kt {
|
|
1830
1830
|
constructor(e, t, A) {
|
|
1831
1831
|
this.processRegion = async (a) => {
|
|
1832
1832
|
var o, r, c, B;
|
|
@@ -1834,14 +1834,14 @@ class Ht {
|
|
|
1834
1834
|
if (!n)
|
|
1835
1835
|
throw new z(a);
|
|
1836
1836
|
let i = "";
|
|
1837
|
-
if (this.configuration.type ===
|
|
1837
|
+
if (this.configuration.type === M.ProductOverlay) {
|
|
1838
1838
|
let l = "";
|
|
1839
1839
|
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1840
1840
|
throw new Ge(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1841
1841
|
}
|
|
1842
1842
|
const s = this.evaluateAssetType();
|
|
1843
1843
|
if (s === G.Image) {
|
|
1844
|
-
const l = this.configuration.type ===
|
|
1844
|
+
const l = this.configuration.type === M.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
|
|
1845
1845
|
if (!l)
|
|
1846
1846
|
throw new Error("Undefined raster silent step source");
|
|
1847
1847
|
const d = {
|
|
@@ -1856,7 +1856,7 @@ class Ht {
|
|
|
1856
1856
|
layer: a.layer,
|
|
1857
1857
|
layerIndex: a.layerIndex,
|
|
1858
1858
|
immutable: a.immutable,
|
|
1859
|
-
productOverlay: this.configuration.type ===
|
|
1859
|
+
productOverlay: this.configuration.type === M.ProductOverlay ? !0 : void 0,
|
|
1860
1860
|
rotation: a.rotation,
|
|
1861
1861
|
excludeFromExport: this.configuration.data.excludeFromPrint,
|
|
1862
1862
|
preserveAspectRatio: "none"
|
|
@@ -1869,14 +1869,14 @@ class Ht {
|
|
|
1869
1869
|
command: new L(d, n)
|
|
1870
1870
|
};
|
|
1871
1871
|
} else {
|
|
1872
|
-
const l = this.configuration.type ===
|
|
1872
|
+
const l = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await ze(await (async () => new Promise((h, u) => {
|
|
1873
1873
|
if (!l) {
|
|
1874
1874
|
u("Undefined vector silent step source");
|
|
1875
1875
|
return;
|
|
1876
1876
|
}
|
|
1877
|
-
_(l, !0).then((
|
|
1878
|
-
E
|
|
1879
|
-
}).catch((
|
|
1877
|
+
_(l, !0).then((E) => {
|
|
1878
|
+
h(E);
|
|
1879
|
+
}).catch((E) => console.error(E));
|
|
1880
1880
|
}))()), w = {
|
|
1881
1881
|
stepName: this.configuration.stepName,
|
|
1882
1882
|
id: J(),
|
|
@@ -1893,7 +1893,7 @@ class Ht {
|
|
|
1893
1893
|
layerIndex: a.layerIndex,
|
|
1894
1894
|
rotation: a.rotation,
|
|
1895
1895
|
immutable: a.immutable,
|
|
1896
|
-
productOverlay: this.configuration.type ===
|
|
1896
|
+
productOverlay: this.configuration.type === M.ProductOverlay ? !0 : void 0,
|
|
1897
1897
|
excludeFromExport: this.configuration.data.excludeFromPrint
|
|
1898
1898
|
};
|
|
1899
1899
|
return {
|
|
@@ -1909,11 +1909,11 @@ class Ht {
|
|
|
1909
1909
|
async trigger() {
|
|
1910
1910
|
if (!this.configuration.data.regions)
|
|
1911
1911
|
throw new Ge(this.configuration, "Missing regions.");
|
|
1912
|
-
if (this.configuration.type ===
|
|
1912
|
+
if (this.configuration.type === M.SilentIllustration) {
|
|
1913
1913
|
const e = this.configuration.data.regions.map(this.processRegion);
|
|
1914
1914
|
return Promise.all(e);
|
|
1915
1915
|
} else
|
|
1916
|
-
return this.configuration.type ===
|
|
1916
|
+
return this.configuration.type === M.ProductOverlay ? Promise.all(
|
|
1917
1917
|
this.configuration.data.regions.map((e) => {
|
|
1918
1918
|
if (!this.layouts.find((A) => e.panelId === A.panelId))
|
|
1919
1919
|
throw new z(e);
|
|
@@ -1923,7 +1923,7 @@ class Ht {
|
|
|
1923
1923
|
}
|
|
1924
1924
|
evaluateAssetType() {
|
|
1925
1925
|
var t, A, a;
|
|
1926
|
-
const e = this.configuration.type ===
|
|
1926
|
+
const e = this.configuration.type === M.ProductOverlay && ((t = this.product) != null && t.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (a = (A = this.configuration.data.asset) == null ? void 0 : A.fileLink) == null ? void 0 : a.toLowerCase().split("?")[0];
|
|
1927
1927
|
return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? G.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? G.Illustration : G.Illustration;
|
|
1928
1928
|
}
|
|
1929
1929
|
}
|
|
@@ -1938,7 +1938,7 @@ const qa = async (g) => {
|
|
|
1938
1938
|
}
|
|
1939
1939
|
})).json()).shortUrl;
|
|
1940
1940
|
} catch (t) {
|
|
1941
|
-
throw console.error(t), new
|
|
1941
|
+
throw console.error(t), new Ve("Failed to shorten URL, see console.");
|
|
1942
1942
|
}
|
|
1943
1943
|
};
|
|
1944
1944
|
class CA {
|
|
@@ -1984,8 +1984,8 @@ class Za {
|
|
|
1984
1984
|
}
|
|
1985
1985
|
async regenerateQRCode(e, t, A, a) {
|
|
1986
1986
|
const n = async () => {
|
|
1987
|
-
var w,
|
|
1988
|
-
const d = (await
|
|
1987
|
+
var w, h;
|
|
1988
|
+
const d = (await ot([t]))[0], C = (h = (w = d == null ? void 0 : d.versions) == null ? void 0 : w.find((u) => u.name === "mpeg4")) == null ? void 0 : h.link;
|
|
1989
1989
|
return { asset: d, link: C };
|
|
1990
1990
|
}, i = await new Promise((d, C) => {
|
|
1991
1991
|
new CA(
|
|
@@ -2011,7 +2011,7 @@ class Za {
|
|
|
2011
2011
|
o.searchParams.append("video", btoa(JSON.stringify([i]))), o.pathname = o.pathname + (o.pathname.slice(-1) === "/" ? "" : "/");
|
|
2012
2012
|
const r = o.toString();
|
|
2013
2013
|
if (r.length >= 2e3)
|
|
2014
|
-
throw new
|
|
2014
|
+
throw new Ve("Cannot create QR code, URL too long.");
|
|
2015
2015
|
const c = await qa(r);
|
|
2016
2016
|
if (!a.data || !a.data.regions)
|
|
2017
2017
|
throw new Ge(a, "Missing regions.");
|
|
@@ -2052,7 +2052,7 @@ class Za {
|
|
|
2052
2052
|
B
|
|
2053
2053
|
);
|
|
2054
2054
|
});
|
|
2055
|
-
return { command: new
|
|
2055
|
+
return { command: new k(o), followup: async () => {
|
|
2056
2056
|
} };
|
|
2057
2057
|
}
|
|
2058
2058
|
}
|
|
@@ -3398,7 +3398,7 @@ const wA = new Za(), me = [
|
|
|
3398
3398
|
"Black 5 C",
|
|
3399
3399
|
"Black 6 C",
|
|
3400
3400
|
"Black 7 C"
|
|
3401
|
-
],
|
|
3401
|
+
], le = [
|
|
3402
3402
|
"FEDD00",
|
|
3403
3403
|
"FFD700",
|
|
3404
3404
|
"FE5000",
|
|
@@ -4740,20 +4740,20 @@ const wA = new Za(), me = [
|
|
|
4740
4740
|
"3E2B2E",
|
|
4741
4741
|
"101820",
|
|
4742
4742
|
"3D3935"
|
|
4743
|
-
],
|
|
4743
|
+
], qe = le.map((g) => [
|
|
4744
4744
|
parseInt(g.substring(0, 2), 16),
|
|
4745
4745
|
parseInt(g.substring(2, 4), 16),
|
|
4746
4746
|
parseInt(g.substring(4, 6), 16)
|
|
4747
4747
|
]);
|
|
4748
|
-
function
|
|
4748
|
+
function ms(g) {
|
|
4749
4749
|
const e = me.indexOf(g);
|
|
4750
|
-
return e >= 0 ?
|
|
4750
|
+
return e >= 0 ? le[e] : "";
|
|
4751
4751
|
}
|
|
4752
4752
|
function $a(g) {
|
|
4753
|
-
const e =
|
|
4753
|
+
const e = le.indexOf(g);
|
|
4754
4754
|
return e >= 0 ? me[e] : "";
|
|
4755
4755
|
}
|
|
4756
|
-
function
|
|
4756
|
+
function ps(g, e = 64) {
|
|
4757
4757
|
const t = [], A = [], a = $a(g);
|
|
4758
4758
|
a && t.push({
|
|
4759
4759
|
pms: a,
|
|
@@ -4762,29 +4762,29 @@ function ms(g, e = 64) {
|
|
|
4762
4762
|
});
|
|
4763
4763
|
const n = parseInt(g.substring(0, 2), 16), i = parseInt(g.substring(2, 4), 16), s = parseInt(g.substring(4, 6), 16);
|
|
4764
4764
|
let o, r, c;
|
|
4765
|
-
for (let B = 0; B <
|
|
4766
|
-
o =
|
|
4765
|
+
for (let B = 0; B < le.length; B++) {
|
|
4766
|
+
o = qe[B][0], r = qe[B][1], c = qe[B][2];
|
|
4767
4767
|
const l = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
|
|
4768
4768
|
A.push(l);
|
|
4769
4769
|
}
|
|
4770
4770
|
for (let B = 0; B < A.length; B++)
|
|
4771
|
-
A[B] <= e && !t.some((l) => l.pms === me[B]) && t.push({ pms: me[B], hex:
|
|
4771
|
+
A[B] <= e && !t.some((l) => l.pms === me[B]) && t.push({ pms: me[B], hex: le[B], distance: A[B] });
|
|
4772
4772
|
return t.sort((B, l) => B.distance - l.distance);
|
|
4773
4773
|
}
|
|
4774
|
-
const _a = me.map((g, e) => ({ pms: g, hex:
|
|
4775
|
-
function
|
|
4774
|
+
const _a = me.map((g, e) => ({ pms: g, hex: le[e] })), en = new ia(_a, { keys: ["pms"] });
|
|
4775
|
+
function Ds(g, e) {
|
|
4776
4776
|
return en.search(g, e ? { limit: e } : void 0);
|
|
4777
4777
|
}
|
|
4778
|
-
let
|
|
4778
|
+
let we = null;
|
|
4779
4779
|
function tn(g) {
|
|
4780
4780
|
if (g.startsWith("#"))
|
|
4781
4781
|
return Ut(g);
|
|
4782
4782
|
if (!document)
|
|
4783
4783
|
throw new Error("browserColorToHex is only supported on browsers");
|
|
4784
|
-
if (
|
|
4784
|
+
if (we || (we = document.createElement("canvas").getContext("2d")), !we)
|
|
4785
4785
|
throw new Error("Failed to create canvas context required to convert colors");
|
|
4786
|
-
|
|
4787
|
-
const e = Ut(
|
|
4786
|
+
we.fillStyle = g;
|
|
4787
|
+
const e = Ut(we.fillStyle);
|
|
4788
4788
|
return e || console.error(`Unknown browser color ${g}`), e;
|
|
4789
4789
|
}
|
|
4790
4790
|
function Ut(g) {
|
|
@@ -4795,7 +4795,7 @@ class An {
|
|
|
4795
4795
|
constructor() {
|
|
4796
4796
|
this.frameSourceSvg = async (e, t) => {
|
|
4797
4797
|
if (!e)
|
|
4798
|
-
return
|
|
4798
|
+
return yt(t);
|
|
4799
4799
|
const A = e.asset;
|
|
4800
4800
|
if (!A)
|
|
4801
4801
|
throw new ie(e);
|
|
@@ -4813,7 +4813,7 @@ class An {
|
|
|
4813
4813
|
const n = t.getWorkflowExperience().getBundle();
|
|
4814
4814
|
if (n && e.globalPropertyAspectConfigurations) {
|
|
4815
4815
|
const i = n.getGlobalPropertyStateManager(), s = e.globalPropertyAspectConfigurations[0], o = i.getAspectStorage(s.aspectName);
|
|
4816
|
-
o && o.originalAssetKey && (a = (await
|
|
4816
|
+
o && o.originalAssetKey && (a = (await U.getLocalOrFromServer(o.originalAssetKey)).fileLink);
|
|
4817
4817
|
}
|
|
4818
4818
|
if (e.option && e.option.variants && e.option.variants.length > 0) {
|
|
4819
4819
|
const i = e.option, s = V.getDefaultVariant(i);
|
|
@@ -4842,15 +4842,15 @@ class An {
|
|
|
4842
4842
|
A.serializableWorkflow.steps
|
|
4843
4843
|
), o = Object.values(A.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === e.stepName).map((c) => ({ id: c.id, region: c.stepRegion }));
|
|
4844
4844
|
if (!e.option || (e.option.variants || []).length === 0) {
|
|
4845
|
-
const c = e.data.regions.map((B) =>
|
|
4845
|
+
const c = e.data.regions.map((B) => yt(B));
|
|
4846
4846
|
t.updateStorage(e.stepName, {
|
|
4847
4847
|
currentFrameSources: c
|
|
4848
4848
|
});
|
|
4849
4849
|
}
|
|
4850
4850
|
if (a) {
|
|
4851
4851
|
const c = async () => {
|
|
4852
|
-
var C, w,
|
|
4853
|
-
const B = (C = a.storage) == null ? void 0 : C.colors, l = (w = a.storage) == null ? void 0 : w.framePatternSrc, d = (
|
|
4852
|
+
var C, w, h, u, E;
|
|
4853
|
+
const B = (C = a.storage) == null ? void 0 : C.colors, l = (w = a.storage) == null ? void 0 : w.framePatternSrc, d = (h = a.storage) == null ? void 0 : h.frameOffsetsList;
|
|
4854
4854
|
if (t.updateMetadata(e.stepName, {
|
|
4855
4855
|
frameOffsetsList: d,
|
|
4856
4856
|
framePatternSrc: l
|
|
@@ -4863,7 +4863,7 @@ class An {
|
|
|
4863
4863
|
}), this.validateColorCount(e, t);
|
|
4864
4864
|
}
|
|
4865
4865
|
if (d != null && d.some((D) => D.zoom)) {
|
|
4866
|
-
const D = (
|
|
4866
|
+
const D = (E = t.getStepSpecificServices(e.stepName)) == null ? void 0 : E.frameService;
|
|
4867
4867
|
if (!D)
|
|
4868
4868
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
4869
4869
|
D.updateOffsets(d);
|
|
@@ -4912,18 +4912,18 @@ class An {
|
|
|
4912
4912
|
new CA(
|
|
4913
4913
|
async () => {
|
|
4914
4914
|
var d;
|
|
4915
|
-
const B = (d = (await
|
|
4915
|
+
const B = (d = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : d.find((C) => C.name === "svg");
|
|
4916
4916
|
return B ? (await fetch(B.link)).status === 200 : !1;
|
|
4917
4917
|
},
|
|
4918
4918
|
() => {
|
|
4919
|
-
|
|
4919
|
+
U.getLocalOrFromServer(t.key || "").then((c) => {
|
|
4920
4920
|
this.loadPatternFromAsset(c, e, A, a).then(
|
|
4921
4921
|
r
|
|
4922
4922
|
);
|
|
4923
4923
|
});
|
|
4924
4924
|
},
|
|
4925
4925
|
() => {
|
|
4926
|
-
throw new
|
|
4926
|
+
throw new Ve("Failed to resolve transcoded PDF");
|
|
4927
4927
|
}
|
|
4928
4928
|
)
|
|
4929
4929
|
);
|
|
@@ -4978,7 +4978,7 @@ class An {
|
|
|
4978
4978
|
"Vector files may not include images or gradients when a color limit is specified."
|
|
4979
4979
|
);
|
|
4980
4980
|
}
|
|
4981
|
-
const c = await
|
|
4981
|
+
const c = await ze(r), B = {
|
|
4982
4982
|
src: e,
|
|
4983
4983
|
width: s,
|
|
4984
4984
|
height: o,
|
|
@@ -4986,7 +4986,7 @@ class An {
|
|
|
4986
4986
|
svg: c.svg,
|
|
4987
4987
|
colors: a ?? c.colors
|
|
4988
4988
|
};
|
|
4989
|
-
|
|
4989
|
+
Mt.set(e, B), t.setPatternData(B, A);
|
|
4990
4990
|
} else {
|
|
4991
4991
|
const i = await LA(e, !0), s = await Ot(i), o = {
|
|
4992
4992
|
src: e,
|
|
@@ -4996,7 +4996,7 @@ class An {
|
|
|
4996
4996
|
svg: void 0,
|
|
4997
4997
|
colors: void 0
|
|
4998
4998
|
};
|
|
4999
|
-
|
|
4999
|
+
Mt.set(e, o), t.setPatternData(o, A);
|
|
5000
5000
|
}
|
|
5001
5001
|
}
|
|
5002
5002
|
changeColors(e, t, A) {
|
|
@@ -5082,15 +5082,15 @@ class An {
|
|
|
5082
5082
|
n && n(!0);
|
|
5083
5083
|
const r = await Promise.all(
|
|
5084
5084
|
e.data.regions.map(async (d, C) => {
|
|
5085
|
-
const w = await
|
|
5085
|
+
const w = await lt(o[C]), h = s.getImageData(), u = A.map((I) => new ne(I.id)), E = h ? Bt(h, w) : void 0, D = h ? {
|
|
5086
5086
|
id: J(),
|
|
5087
|
-
src:
|
|
5088
|
-
x: (
|
|
5089
|
-
y: (
|
|
5090
|
-
width:
|
|
5091
|
-
height:
|
|
5092
|
-
scaleX: (
|
|
5093
|
-
scaleY: (
|
|
5087
|
+
src: h.src,
|
|
5088
|
+
x: (E == null ? void 0 : E.x) || 0,
|
|
5089
|
+
y: (E == null ? void 0 : E.y) || 0,
|
|
5090
|
+
width: h.width,
|
|
5091
|
+
height: h.height,
|
|
5092
|
+
scaleX: (E == null ? void 0 : E.zoom) || 1,
|
|
5093
|
+
scaleY: (E == null ? void 0 : E.zoom) || 1,
|
|
5094
5094
|
rotation: 0
|
|
5095
5095
|
} : void 0, m = J(), Q = a.getLayouts().find((I) => I.panelId === d.panelId);
|
|
5096
5096
|
if (!Q)
|
|
@@ -5114,7 +5114,7 @@ class An {
|
|
|
5114
5114
|
})
|
|
5115
5115
|
), c = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
5116
5116
|
return {
|
|
5117
|
-
command: new
|
|
5117
|
+
command: new k([...c, ...B]),
|
|
5118
5118
|
followup: async () => {
|
|
5119
5119
|
n && n(!1), await a.setSelectionsAndElements(
|
|
5120
5120
|
e.stepName,
|
|
@@ -5282,10 +5282,10 @@ class an {
|
|
|
5282
5282
|
const s = zA(e, t, A, i), o = await Re(s), r = [];
|
|
5283
5283
|
for (const B of a) {
|
|
5284
5284
|
for (const [l, d] of n.entries())
|
|
5285
|
-
r.push(new
|
|
5285
|
+
r.push(new at(B, l, d));
|
|
5286
5286
|
r.push(new KA(B, s, o));
|
|
5287
5287
|
}
|
|
5288
|
-
return new
|
|
5288
|
+
return new k(r);
|
|
5289
5289
|
}
|
|
5290
5290
|
async changeColors(e, t, A, a, n) {
|
|
5291
5291
|
var d, C;
|
|
@@ -5295,23 +5295,23 @@ class an {
|
|
|
5295
5295
|
t[0].id,
|
|
5296
5296
|
a().map((w) => w.layoutState)
|
|
5297
5297
|
), s = { ...i.colors }, o = {};
|
|
5298
|
-
Object.entries(s).forEach(([w,
|
|
5299
|
-
const u = { browserValue:
|
|
5300
|
-
|
|
5298
|
+
Object.entries(s).forEach(([w, h]) => {
|
|
5299
|
+
const u = { browserValue: h.browserValue }, E = h.spotColor;
|
|
5300
|
+
E && (u.spotColor = { profileName: E.profileName, namedColor: E.namedColor }), o[w] = u;
|
|
5301
5301
|
});
|
|
5302
|
-
for (const [w,
|
|
5303
|
-
s[w] = { browserValue:
|
|
5302
|
+
for (const [w, h] of n.entries())
|
|
5303
|
+
s[w] = { browserValue: h, spotColor: (d = s[w]) == null ? void 0 : d.spotColor }, o[w] = { browserValue: h };
|
|
5304
5304
|
let r = Array.from(Object.values(s)).map((w) => w.browserValue);
|
|
5305
5305
|
const c = e.data.colorOption;
|
|
5306
5306
|
c && ((C = c.variants) == null || C.forEach((w) => {
|
|
5307
|
-
r = r.map((
|
|
5307
|
+
r = r.map((h) => {
|
|
5308
5308
|
var u;
|
|
5309
|
-
return
|
|
5309
|
+
return h.toLowerCase() === ((u = w.color) == null ? void 0 : u.toLowerCase()) ? w.name : h;
|
|
5310
5310
|
});
|
|
5311
5311
|
})), A.updateMetadata(e.stepName, { colors: r });
|
|
5312
5312
|
const B = /* @__PURE__ */ new Map();
|
|
5313
|
-
if (Object.entries(s).forEach(([w,
|
|
5314
|
-
B.set(w,
|
|
5313
|
+
if (Object.entries(s).forEach(([w, h]) => {
|
|
5314
|
+
B.set(w, h.browserValue);
|
|
5315
5315
|
}), !i.svg)
|
|
5316
5316
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
5317
5317
|
const l = await this.changeColorsCommand(
|
|
@@ -5334,7 +5334,7 @@ class an {
|
|
|
5334
5334
|
if (!e.data || !e.data.regions)
|
|
5335
5335
|
throw new Ge(e, "Missing regions.");
|
|
5336
5336
|
a(!0);
|
|
5337
|
-
const i = A.map((
|
|
5337
|
+
const i = A.map((E) => new ne(E.id));
|
|
5338
5338
|
e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
|
|
5339
5339
|
const s = t.asset;
|
|
5340
5340
|
if (!s)
|
|
@@ -5342,30 +5342,30 @@ class an {
|
|
|
5342
5342
|
const o = s.fileLink;
|
|
5343
5343
|
if (!o)
|
|
5344
5344
|
throw new ue(s);
|
|
5345
|
-
const r = await
|
|
5346
|
-
const D = n.getLayouts().find((p) => p.panelId ===
|
|
5345
|
+
const r = await ze(await this.getIllustrationBody(o)), c = await Re(r.svg), B = (E) => {
|
|
5346
|
+
const D = n.getLayouts().find((p) => p.panelId === E.panelId);
|
|
5347
5347
|
if (!D)
|
|
5348
|
-
throw new z(
|
|
5348
|
+
throw new z(E);
|
|
5349
5349
|
const m = J();
|
|
5350
5350
|
return {
|
|
5351
|
-
regionElement: { id: m, region:
|
|
5352
|
-
command: this.getCreateElementCommand(m,
|
|
5351
|
+
regionElement: { id: m, region: E },
|
|
5352
|
+
command: this.getCreateElementCommand(m, E, D, {
|
|
5353
5353
|
stepName: e.stepName,
|
|
5354
5354
|
src: o,
|
|
5355
5355
|
objectURL: c,
|
|
5356
5356
|
svg: r
|
|
5357
5357
|
})
|
|
5358
5358
|
};
|
|
5359
|
-
}, l = e.data.regions.map(B), C = [...l.map((
|
|
5360
|
-
let w = Array.from(Object.values(r.colors)).map((
|
|
5361
|
-
const
|
|
5362
|
-
return
|
|
5359
|
+
}, l = e.data.regions.map(B), C = [...l.map((E) => E.command), ...i];
|
|
5360
|
+
let w = Array.from(Object.values(r.colors)).map((E) => E.browserValue);
|
|
5361
|
+
const h = e.data.colorOption;
|
|
5362
|
+
return h && ((u = h.variants) == null || u.forEach((E) => {
|
|
5363
5363
|
w = w.map((D) => {
|
|
5364
5364
|
var m;
|
|
5365
|
-
return D.toLowerCase() === ((m =
|
|
5365
|
+
return D.toLowerCase() === ((m = E.color) == null ? void 0 : m.toLowerCase()) ? E.name : D;
|
|
5366
5366
|
});
|
|
5367
5367
|
})), n.updateMetadata(e.stepName, { colors: w }), {
|
|
5368
|
-
command: new
|
|
5368
|
+
command: new k(C),
|
|
5369
5369
|
followup: async () => {
|
|
5370
5370
|
await n.setSelectionsAndElements(
|
|
5371
5371
|
e.stepName,
|
|
@@ -5375,9 +5375,9 @@ class an {
|
|
|
5375
5375
|
n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
5376
5376
|
}
|
|
5377
5377
|
);
|
|
5378
|
-
const
|
|
5379
|
-
if (e.data.colorPickerEnabled &&
|
|
5380
|
-
const m =
|
|
5378
|
+
const E = await this.availableColors(e, n) || [], D = Object.keys(r.colors);
|
|
5379
|
+
if (e.data.colorPickerEnabled && E.length === 1 && D.length === 1) {
|
|
5380
|
+
const m = E[0], p = D[0];
|
|
5381
5381
|
await this.changeColors(
|
|
5382
5382
|
e,
|
|
5383
5383
|
l.map((Q) => Q.regionElement),
|
|
@@ -5402,7 +5402,7 @@ class nn {
|
|
|
5402
5402
|
async init(e, t, A) {
|
|
5403
5403
|
const a = e.option;
|
|
5404
5404
|
if (!a)
|
|
5405
|
-
throw new
|
|
5405
|
+
throw new Ue(e);
|
|
5406
5406
|
if (A)
|
|
5407
5407
|
await this.reload(e, t, A);
|
|
5408
5408
|
else {
|
|
@@ -5420,7 +5420,7 @@ class nn {
|
|
|
5420
5420
|
A.serializableWorkflow.steps
|
|
5421
5421
|
), s = Object.values(A.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === e.stepName), o = e.option;
|
|
5422
5422
|
if (!o)
|
|
5423
|
-
throw new
|
|
5423
|
+
throw new Ue(e);
|
|
5424
5424
|
if (a != null && a.selectedVariants) {
|
|
5425
5425
|
const c = a.selectedVariants[0].id;
|
|
5426
5426
|
if (c) {
|
|
@@ -5434,8 +5434,8 @@ class nn {
|
|
|
5434
5434
|
async () => {
|
|
5435
5435
|
const C = t.getModelContainer();
|
|
5436
5436
|
if (C) {
|
|
5437
|
-
const w = e.data.targetMaterials.map((
|
|
5438
|
-
|
|
5437
|
+
const w = e.data.targetMaterials.map((h) => C.applyMaterialVariant(
|
|
5438
|
+
h,
|
|
5439
5439
|
o.id || "",
|
|
5440
5440
|
l || {}
|
|
5441
5441
|
));
|
|
@@ -5475,12 +5475,12 @@ class nn {
|
|
|
5475
5475
|
};
|
|
5476
5476
|
}
|
|
5477
5477
|
}
|
|
5478
|
-
const
|
|
5478
|
+
const hA = new nn();
|
|
5479
5479
|
class sn {
|
|
5480
5480
|
async init(e, t, A) {
|
|
5481
5481
|
const a = e.option;
|
|
5482
5482
|
if (!a)
|
|
5483
|
-
throw new
|
|
5483
|
+
throw new Ue(e);
|
|
5484
5484
|
if (A)
|
|
5485
5485
|
await this.reload(e, t, A);
|
|
5486
5486
|
else {
|
|
@@ -5561,7 +5561,7 @@ class sn {
|
|
|
5561
5561
|
};
|
|
5562
5562
|
}
|
|
5563
5563
|
}
|
|
5564
|
-
const
|
|
5564
|
+
const EA = new sn();
|
|
5565
5565
|
class on {
|
|
5566
5566
|
async init(e, t, A) {
|
|
5567
5567
|
if (A)
|
|
@@ -5597,8 +5597,8 @@ class on {
|
|
|
5597
5597
|
return console.error("Missing configuration."), null;
|
|
5598
5598
|
A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
|
|
5599
5599
|
const r = (B, l, d) => {
|
|
5600
|
-
const C = d || J(),
|
|
5601
|
-
if (!
|
|
5600
|
+
const C = d || J(), h = A.getLayouts().find((E) => E.panelId === l.panelId);
|
|
5601
|
+
if (!h)
|
|
5602
5602
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
5603
5603
|
const u = [];
|
|
5604
5604
|
return d && u.push(new ne(C)), u.push(
|
|
@@ -5619,12 +5619,12 @@ class on {
|
|
|
5619
5619
|
layerIndex: l.layerIndex,
|
|
5620
5620
|
immutable: l.immutable
|
|
5621
5621
|
},
|
|
5622
|
-
|
|
5622
|
+
h
|
|
5623
5623
|
)
|
|
5624
5624
|
), {
|
|
5625
5625
|
id: C,
|
|
5626
5626
|
region: l,
|
|
5627
|
-
command: new
|
|
5627
|
+
command: new k(u)
|
|
5628
5628
|
};
|
|
5629
5629
|
};
|
|
5630
5630
|
if (i.length > 0) {
|
|
@@ -5635,7 +5635,7 @@ class on {
|
|
|
5635
5635
|
return r(C, d.region, d.id);
|
|
5636
5636
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
5637
5637
|
return {
|
|
5638
|
-
command: new
|
|
5638
|
+
command: new k(l),
|
|
5639
5639
|
followup: async () => {
|
|
5640
5640
|
}
|
|
5641
5641
|
};
|
|
@@ -5644,7 +5644,7 @@ class on {
|
|
|
5644
5644
|
(d) => r(s.svgPrint(t, d), d)
|
|
5645
5645
|
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
5646
5646
|
return {
|
|
5647
|
-
command: new
|
|
5647
|
+
command: new k(l),
|
|
5648
5648
|
followup: async () => {
|
|
5649
5649
|
const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
|
|
5650
5650
|
await A.setSelectionsAndElements(
|
|
@@ -5664,7 +5664,7 @@ class on {
|
|
|
5664
5664
|
}
|
|
5665
5665
|
if (!/^$|^[a-zA-Z0-9 ]+$/.test(t))
|
|
5666
5666
|
return a("Unsupported characters."), !1;
|
|
5667
|
-
const n =
|
|
5667
|
+
const n = st(t.toLowerCase());
|
|
5668
5668
|
for (const i of n)
|
|
5669
5669
|
for (const s in A) {
|
|
5670
5670
|
const o = A[s].toLowerCase().replace(/\s/g, "");
|
|
@@ -5752,7 +5752,7 @@ class rn {
|
|
|
5752
5752
|
};
|
|
5753
5753
|
}, c = e.data.regions.map(r);
|
|
5754
5754
|
return {
|
|
5755
|
-
command: new
|
|
5755
|
+
command: new k([...o, ...c.map((B) => B.command)]),
|
|
5756
5756
|
followup: async () => {
|
|
5757
5757
|
await A.setSelectionsAndElements(
|
|
5758
5758
|
e.stepName,
|
|
@@ -5845,14 +5845,14 @@ class gn {
|
|
|
5845
5845
|
const o = s.region;
|
|
5846
5846
|
if (!a.find((c) => c.panelId === (o == null ? void 0 : o.panelId)))
|
|
5847
5847
|
throw new z(o);
|
|
5848
|
-
return new
|
|
5848
|
+
return new at(s.id, this.shapeFillId, e);
|
|
5849
5849
|
}).filter((s) => !!s);
|
|
5850
|
-
A.getCommandDispatcher()(new
|
|
5850
|
+
A.getCommandDispatcher()(new k(i)), A.updateStorage(t.stepName, { colour: e });
|
|
5851
5851
|
}
|
|
5852
5852
|
async init(e, t, A) {
|
|
5853
5853
|
const a = e.option;
|
|
5854
5854
|
if (!a)
|
|
5855
|
-
throw new
|
|
5855
|
+
throw new Ue(e);
|
|
5856
5856
|
if (A)
|
|
5857
5857
|
await this.reload(e, t, A);
|
|
5858
5858
|
else {
|
|
@@ -5917,10 +5917,10 @@ class gn {
|
|
|
5917
5917
|
if (!n.find((w) => w.panelId === (l == null ? void 0 : l.panelId)))
|
|
5918
5918
|
throw new z(l);
|
|
5919
5919
|
const C = s();
|
|
5920
|
-
return new
|
|
5920
|
+
return new at(B.id, this.shapeFillId, C);
|
|
5921
5921
|
}, c = A.map(r).filter((B) => !!B);
|
|
5922
5922
|
return {
|
|
5923
|
-
command: new
|
|
5923
|
+
command: new k(c),
|
|
5924
5924
|
followup: async () => {
|
|
5925
5925
|
await a.setSelectionsAndElements(
|
|
5926
5926
|
e.stepName,
|
|
@@ -5934,7 +5934,7 @@ class gn {
|
|
|
5934
5934
|
const C = n.find((D) => D.panelId === d.panelId);
|
|
5935
5935
|
if (!C)
|
|
5936
5936
|
throw new z(d);
|
|
5937
|
-
const w = s(),
|
|
5937
|
+
const w = s(), h = `
|
|
5938
5938
|
<svg
|
|
5939
5939
|
xmlns="http://www.w3.org/2000/svg"
|
|
5940
5940
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -5956,17 +5956,17 @@ class gn {
|
|
|
5956
5956
|
</svg>
|
|
5957
5957
|
`, u = {};
|
|
5958
5958
|
u[this.shapeFillId] = { browserValue: w };
|
|
5959
|
-
const
|
|
5959
|
+
const E = J();
|
|
5960
5960
|
return {
|
|
5961
|
-
id:
|
|
5961
|
+
id: E,
|
|
5962
5962
|
region: d,
|
|
5963
5963
|
command: new L(
|
|
5964
5964
|
{
|
|
5965
5965
|
stepRegion: d,
|
|
5966
5966
|
stepName: e.stepName,
|
|
5967
5967
|
colors: u,
|
|
5968
|
-
id:
|
|
5969
|
-
svg:
|
|
5968
|
+
id: E,
|
|
5969
|
+
svg: h,
|
|
5970
5970
|
type: G.Illustration,
|
|
5971
5971
|
y: d.top,
|
|
5972
5972
|
x: d.left,
|
|
@@ -5983,7 +5983,7 @@ class gn {
|
|
|
5983
5983
|
};
|
|
5984
5984
|
}, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
|
|
5985
5985
|
return {
|
|
5986
|
-
command: new
|
|
5986
|
+
command: new k(B),
|
|
5987
5987
|
followup: async () => {
|
|
5988
5988
|
await a.setSelectionsAndElements(
|
|
5989
5989
|
e.stepName,
|
|
@@ -6024,7 +6024,7 @@ class ln {
|
|
|
6024
6024
|
);
|
|
6025
6025
|
}
|
|
6026
6026
|
}
|
|
6027
|
-
const Bn = new ln(),
|
|
6027
|
+
const Bn = new ln(), Ze = 30;
|
|
6028
6028
|
class Je extends Error {
|
|
6029
6029
|
constructor(e) {
|
|
6030
6030
|
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
|
|
@@ -6056,7 +6056,7 @@ class Cn {
|
|
|
6056
6056
|
}, this.textAlign = (e) => e.vertical ? "center" : e.textAlign || "center", this.getErrorsForText = (e, t, A) => {
|
|
6057
6057
|
const a = [];
|
|
6058
6058
|
t.data && t.data.maxLength && e.length > t.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
6059
|
-
const n = A.getProfanities(), i =
|
|
6059
|
+
const n = A.getProfanities(), i = st(e.toLowerCase());
|
|
6060
6060
|
for (const o of i)
|
|
6061
6061
|
for (const r in n) {
|
|
6062
6062
|
const c = n[r].toLowerCase().replace(/\s/g, "");
|
|
@@ -6077,7 +6077,7 @@ class Cn {
|
|
|
6077
6077
|
if (A)
|
|
6078
6078
|
await this.reload(e, t, A);
|
|
6079
6079
|
else {
|
|
6080
|
-
const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, c = r ? await
|
|
6080
|
+
const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, c = r ? await nt(r) : void 0, B = c ? {
|
|
6081
6081
|
src: c.src,
|
|
6082
6082
|
height: c.height,
|
|
6083
6083
|
width: c.width,
|
|
@@ -6173,7 +6173,7 @@ class Cn {
|
|
|
6173
6173
|
})) == null ? void 0 : a.filter((i) => !!i)) || [];
|
|
6174
6174
|
return Promise.all(
|
|
6175
6175
|
n.map(async (i) => {
|
|
6176
|
-
const s = await
|
|
6176
|
+
const s = await nt(i);
|
|
6177
6177
|
return {
|
|
6178
6178
|
src: i,
|
|
6179
6179
|
width: s.width,
|
|
@@ -6197,13 +6197,13 @@ class Cn {
|
|
|
6197
6197
|
fillImage: t
|
|
6198
6198
|
});
|
|
6199
6199
|
for (const r of A) {
|
|
6200
|
-
const c = new
|
|
6200
|
+
const c = new Xe(r.id, t);
|
|
6201
6201
|
n(c);
|
|
6202
6202
|
}
|
|
6203
6203
|
}
|
|
6204
6204
|
getProcessedInput(e, t, A) {
|
|
6205
6205
|
const a = A ? e : this.injectReplaceableText(e, t);
|
|
6206
|
-
return
|
|
6206
|
+
return it(a, {
|
|
6207
6207
|
vertical: t.vertical,
|
|
6208
6208
|
uppercase: t.uppercase
|
|
6209
6209
|
});
|
|
@@ -6236,7 +6236,7 @@ class Cn {
|
|
|
6236
6236
|
}
|
|
6237
6237
|
return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((d) => d) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
|
|
6238
6238
|
text: i
|
|
6239
|
-
}), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new
|
|
6239
|
+
}), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(r), s);
|
|
6240
6240
|
}
|
|
6241
6241
|
async selectVariant(e, t, A, a, n) {
|
|
6242
6242
|
const i = await this.selectVariantCommand(
|
|
@@ -6273,24 +6273,24 @@ class Cn {
|
|
|
6273
6273
|
if (o && l) {
|
|
6274
6274
|
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
|
|
6275
6275
|
if (d) {
|
|
6276
|
-
const C = await this.fontDataFromVariant(d), w = s.map((D) => ({ id: D.id, region: D.stepRegion })),
|
|
6276
|
+
const C = await this.fontDataFromVariant(d), w = s.map((D) => ({ id: D.id, region: D.stepRegion })), h = (c = a.storage) == null ? void 0 : c.color, u = (B = a.storage) == null ? void 0 : B.text;
|
|
6277
6277
|
await t.setSelectionsAndElements(
|
|
6278
6278
|
e.stepName,
|
|
6279
6279
|
[d],
|
|
6280
6280
|
w,
|
|
6281
6281
|
async () => {
|
|
6282
|
-
t.updateMetadata(e.stepName, { color:
|
|
6283
|
-
const D = s.map((p) => new
|
|
6282
|
+
t.updateMetadata(e.stepName, { color: h, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
|
|
6283
|
+
const D = s.map((p) => new St(p.id, C)), m = new k(D);
|
|
6284
6284
|
t.getCommandDispatcher()(m);
|
|
6285
6285
|
}
|
|
6286
6286
|
);
|
|
6287
|
-
const { command:
|
|
6287
|
+
const { command: E } = j.updateInputText(
|
|
6288
6288
|
u || "",
|
|
6289
6289
|
s,
|
|
6290
6290
|
e,
|
|
6291
6291
|
t
|
|
6292
6292
|
);
|
|
6293
|
-
|
|
6293
|
+
E && t.getCommandDispatcher()(E);
|
|
6294
6294
|
}
|
|
6295
6295
|
}
|
|
6296
6296
|
}
|
|
@@ -6319,7 +6319,7 @@ class Cn {
|
|
|
6319
6319
|
const A = t.fileLink;
|
|
6320
6320
|
if (!A)
|
|
6321
6321
|
throw new ue(t);
|
|
6322
|
-
const a = await
|
|
6322
|
+
const a = await dt(A);
|
|
6323
6323
|
return {
|
|
6324
6324
|
assetUrl: A,
|
|
6325
6325
|
name: a.names.fullName.en
|
|
@@ -6329,14 +6329,14 @@ class Cn {
|
|
|
6329
6329
|
var B;
|
|
6330
6330
|
const r = n.markUpdatePending(), c = await this.fontDataFromVariant(t);
|
|
6331
6331
|
if (a.length > 0) {
|
|
6332
|
-
const l = a.map((w) => new
|
|
6332
|
+
const l = a.map((w) => new St(w.id, c));
|
|
6333
6333
|
if (o) {
|
|
6334
|
-
const w = a.map((
|
|
6334
|
+
const w = a.map((h) => new Xe(h.id, o));
|
|
6335
6335
|
l.push(...w);
|
|
6336
6336
|
}
|
|
6337
6337
|
const d = await this.changeInputTextWithRegion(
|
|
6338
6338
|
e,
|
|
6339
|
-
e.data.size ||
|
|
6339
|
+
e.data.size || Ze,
|
|
6340
6340
|
c,
|
|
6341
6341
|
A.text || "",
|
|
6342
6342
|
A,
|
|
@@ -6346,7 +6346,7 @@ class Cn {
|
|
|
6346
6346
|
s
|
|
6347
6347
|
);
|
|
6348
6348
|
return d && l.push(d), {
|
|
6349
|
-
command: new
|
|
6349
|
+
command: new k(l),
|
|
6350
6350
|
followup: async () => {
|
|
6351
6351
|
n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
|
|
6352
6352
|
}
|
|
@@ -6361,7 +6361,7 @@ class Cn {
|
|
|
6361
6361
|
n
|
|
6362
6362
|
), d = await this.changeInputTextWithRegion(
|
|
6363
6363
|
e,
|
|
6364
|
-
e.data.size ||
|
|
6364
|
+
e.data.size || Ze,
|
|
6365
6365
|
c,
|
|
6366
6366
|
((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
|
|
6367
6367
|
A,
|
|
@@ -6369,15 +6369,15 @@ class Cn {
|
|
|
6369
6369
|
!!A.customiseAllText,
|
|
6370
6370
|
i,
|
|
6371
6371
|
s
|
|
6372
|
-
), C = l.flatMap((
|
|
6372
|
+
), C = l.flatMap((h) => h.commands);
|
|
6373
6373
|
if (o) {
|
|
6374
|
-
const
|
|
6375
|
-
(u) => new
|
|
6374
|
+
const h = l.map(
|
|
6375
|
+
(u) => new Xe(u.regionElement.id, o)
|
|
6376
6376
|
);
|
|
6377
|
-
C.push(...
|
|
6377
|
+
C.push(...h);
|
|
6378
6378
|
}
|
|
6379
6379
|
return d && C.push(d), {
|
|
6380
|
-
command: new
|
|
6380
|
+
command: new k(C),
|
|
6381
6381
|
followup: async () => {
|
|
6382
6382
|
n.markUpdateCompleted(r);
|
|
6383
6383
|
}
|
|
@@ -6397,27 +6397,27 @@ class Cn {
|
|
|
6397
6397
|
throw new Error("Step data not supplied");
|
|
6398
6398
|
const s = n.text || A.defaultText || "", o = this.getProcessedInput(s, A, !1), r = async (B) => {
|
|
6399
6399
|
var w;
|
|
6400
|
-
const d = i.getLayouts().find((
|
|
6400
|
+
const d = i.getLayouts().find((h) => h.panelId === B.panelId), C = J();
|
|
6401
6401
|
try {
|
|
6402
6402
|
if (!d)
|
|
6403
6403
|
throw new Te("Failed to find layout for region: " + B.panelId);
|
|
6404
|
-
const
|
|
6404
|
+
const h = A.colorOption;
|
|
6405
6405
|
let u;
|
|
6406
|
-
if (
|
|
6407
|
-
const S =
|
|
6406
|
+
if (h && h.variants) {
|
|
6407
|
+
const S = h.variants.find((T) => {
|
|
6408
6408
|
var R;
|
|
6409
|
-
return T.id === ((R =
|
|
6410
|
-
}) ||
|
|
6411
|
-
u = this.createTextFillSpotColor(
|
|
6412
|
-
colorProfileAssetKey: (w =
|
|
6409
|
+
return T.id === ((R = h.defaultVariant) == null ? void 0 : R.id);
|
|
6410
|
+
}) || h.variants[0];
|
|
6411
|
+
u = this.createTextFillSpotColor(h, S), i.updateStorage(e, {
|
|
6412
|
+
colorProfileAssetKey: (w = h.colorProfile) == null ? void 0 : w.key
|
|
6413
6413
|
});
|
|
6414
6414
|
}
|
|
6415
|
-
const
|
|
6415
|
+
const E = await this.getDefaultColor(A), D = E || "#000000", m = {
|
|
6416
6416
|
stepRegion: B,
|
|
6417
6417
|
stepName: e,
|
|
6418
6418
|
align: this.textAlign(A),
|
|
6419
6419
|
fill: n.color ? n.color : D,
|
|
6420
|
-
fontSize: A.size ||
|
|
6420
|
+
fontSize: A.size || Ze,
|
|
6421
6421
|
fontData: a,
|
|
6422
6422
|
id: C,
|
|
6423
6423
|
layer: B.layer,
|
|
@@ -6439,7 +6439,7 @@ class Cn {
|
|
|
6439
6439
|
}, p = [], Q = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
|
|
6440
6440
|
if (!m.fontData)
|
|
6441
6441
|
throw new b("Failed to resolve font data for text.");
|
|
6442
|
-
const [F,
|
|
6442
|
+
const [F, y] = Ne(
|
|
6443
6443
|
m.fontSize,
|
|
6444
6444
|
m.fontData,
|
|
6445
6445
|
{
|
|
@@ -6453,8 +6453,8 @@ class Cn {
|
|
|
6453
6453
|
[o],
|
|
6454
6454
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
6455
6455
|
);
|
|
6456
|
-
Q.set(m.id, F), I.set(m.id,
|
|
6457
|
-
const Y = A.curved || A.vertical ? o : (
|
|
6456
|
+
Q.set(m.id, F), I.set(m.id, y);
|
|
6457
|
+
const Y = A.curved || A.vertical ? o : (y || []).join(`
|
|
6458
6458
|
`);
|
|
6459
6459
|
p.push(
|
|
6460
6460
|
this.generateTextChangeCommandsForRegion(F, A, m.id, Y)
|
|
@@ -6466,8 +6466,8 @@ class Cn {
|
|
|
6466
6466
|
newElement: m,
|
|
6467
6467
|
fontData: a
|
|
6468
6468
|
};
|
|
6469
|
-
} catch (
|
|
6470
|
-
throw console.log(
|
|
6469
|
+
} catch (h) {
|
|
6470
|
+
throw console.log(h), new Je("Error adding font to region");
|
|
6471
6471
|
}
|
|
6472
6472
|
}, c = await Promise.all(A.regions.map(r)).catch((B) => {
|
|
6473
6473
|
throw B instanceof Je ? (Bn.setLatestToast("Failed to load font.", pe.Error), B) : B instanceof Te ? B : new Error(B);
|
|
@@ -6491,7 +6491,7 @@ class Cn {
|
|
|
6491
6491
|
const o = new qA(A, e);
|
|
6492
6492
|
n.push(o);
|
|
6493
6493
|
}
|
|
6494
|
-
return new
|
|
6494
|
+
return new k(n);
|
|
6495
6495
|
}
|
|
6496
6496
|
/**
|
|
6497
6497
|
* @deprecated
|
|
@@ -6512,7 +6512,7 @@ class Cn {
|
|
|
6512
6512
|
const u = (() => {
|
|
6513
6513
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
6514
6514
|
return c && c(!0), { info: "0" };
|
|
6515
|
-
const m = i.getProfanities(), p =
|
|
6515
|
+
const m = i.getProfanities(), p = st(l.toLowerCase());
|
|
6516
6516
|
for (const Q of p)
|
|
6517
6517
|
for (const I in m) {
|
|
6518
6518
|
const F = m[I].toLowerCase().replace(/\s/g, "");
|
|
@@ -6531,11 +6531,11 @@ class Cn {
|
|
|
6531
6531
|
i.updateStorage(e.stepName, { text: B }), i.updateMetadata(e.stepName, {
|
|
6532
6532
|
text: this.injectReplaceableText(B, e.data)
|
|
6533
6533
|
}), (n.defaultCleared || !e.data.deleteDefaultOnFocus) && i.setMandatoryFulfilled(e.stepName, !0);
|
|
6534
|
-
const
|
|
6534
|
+
const E = [];
|
|
6535
6535
|
for (const m of d) {
|
|
6536
6536
|
const p = e.data.curved ? l : (w.get(m.id) || []).join(`
|
|
6537
6537
|
`);
|
|
6538
|
-
|
|
6538
|
+
E.push(
|
|
6539
6539
|
this.generateTextChangeCommandsForRegion(
|
|
6540
6540
|
C.get(m.id) || 1,
|
|
6541
6541
|
e.data,
|
|
@@ -6544,13 +6544,13 @@ class Cn {
|
|
|
6544
6544
|
)
|
|
6545
6545
|
);
|
|
6546
6546
|
}
|
|
6547
|
-
return new
|
|
6547
|
+
return new k(E);
|
|
6548
6548
|
}
|
|
6549
6549
|
}
|
|
6550
6550
|
const j = new Cn();
|
|
6551
|
-
class
|
|
6551
|
+
class Qt {
|
|
6552
6552
|
}
|
|
6553
|
-
const wn = "data:application/font-woff;base64,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", En = `<?xml version="1.0" encoding="iso-8859-1"?>
|
|
6553
|
+
const wn = "data:application/font-woff;base64,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", hn = `<?xml version="1.0" encoding="iso-8859-1"?>
|
|
6554
6554
|
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
6555
6555
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
6556
6556
|
width="289.691px" height="204.059px" viewBox="0 0 289.691 204.059" enable-background="new 0 0 289.691 204.059"
|
|
@@ -7811,10 +7811,10 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
7811
7811
|
</g>
|
|
7812
7812
|
</svg>
|
|
7813
7813
|
|
|
7814
|
-
`, v = (g) => ZA("http://www.w3.org/2000/svg", g),
|
|
7814
|
+
`, v = (g) => ZA("http://www.w3.org/2000/svg", g), mt = (g, e) => {
|
|
7815
7815
|
const t = v("rect");
|
|
7816
7816
|
return t.setAttribute("height", `${g}`), t.setAttribute("width", `${e}`), t;
|
|
7817
|
-
},
|
|
7817
|
+
}, En = () => {
|
|
7818
7818
|
const g = v("svg");
|
|
7819
7819
|
return g.setAttribute("xmlns", "http://www.w3.org/2000/svg"), g.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), g.setAttribute("version", "1.1"), g;
|
|
7820
7820
|
}, un = (g) => {
|
|
@@ -7822,7 +7822,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
7822
7822
|
return e.setAttribute("xlink:href", g), e.setAttribute("href", g), e;
|
|
7823
7823
|
};
|
|
7824
7824
|
function pA(g) {
|
|
7825
|
-
const e =
|
|
7825
|
+
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
|
|
7826
7826
|
return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
|
|
7827
7827
|
}
|
|
7828
7828
|
const Qn = (g, e, t) => {
|
|
@@ -7846,7 +7846,7 @@ const IA = (g, e, t, A) => {
|
|
|
7846
7846
|
let e = g;
|
|
7847
7847
|
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;
|
|
7848
7848
|
};
|
|
7849
|
-
function
|
|
7849
|
+
function pt(g, e, t, A, a, n) {
|
|
7850
7850
|
const i = a || 1, s = n || 1, o = {
|
|
7851
7851
|
x: e[0],
|
|
7852
7852
|
y: e[1],
|
|
@@ -7862,7 +7862,7 @@ function mn(g, e, t, A) {
|
|
|
7862
7862
|
const a = t / g, n = A / e;
|
|
7863
7863
|
return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
|
|
7864
7864
|
}
|
|
7865
|
-
const
|
|
7865
|
+
const Gt = {
|
|
7866
7866
|
m: ["x", "y"],
|
|
7867
7867
|
z: [],
|
|
7868
7868
|
l: ["x", "y"],
|
|
@@ -7874,7 +7874,7 @@ const kt = {
|
|
|
7874
7874
|
t: ["x", "y"],
|
|
7875
7875
|
a: ["rx", "ry", "xRotation", "largeArc", "sweep", "x", "y"]
|
|
7876
7876
|
};
|
|
7877
|
-
class
|
|
7877
|
+
class Dt {
|
|
7878
7878
|
constructor(e) {
|
|
7879
7879
|
const t = Array.from(e.querySelectorAll("path"));
|
|
7880
7880
|
this.paths = t.map((A) => {
|
|
@@ -7892,7 +7892,7 @@ class Qt {
|
|
|
7892
7892
|
const a = (n) => {
|
|
7893
7893
|
const i = [], s = n.relative ? n.type : n.type.toUpperCase();
|
|
7894
7894
|
let o = t !== s;
|
|
7895
|
-
const r =
|
|
7895
|
+
const r = Gt[n.type];
|
|
7896
7896
|
o && (i.push(s), t = s);
|
|
7897
7897
|
for (const c of r) {
|
|
7898
7898
|
const B = n[c];
|
|
@@ -7905,7 +7905,7 @@ class Qt {
|
|
|
7905
7905
|
l = (B * 100 | 0) / 100;
|
|
7906
7906
|
break;
|
|
7907
7907
|
default:
|
|
7908
|
-
throw new
|
|
7908
|
+
throw new he("Failed to encode path.");
|
|
7909
7909
|
}
|
|
7910
7910
|
o || i.push(" "), i.push(l), o = !1;
|
|
7911
7911
|
}
|
|
@@ -7917,14 +7917,14 @@ class Qt {
|
|
|
7917
7917
|
const t = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, A = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
|
|
7918
7918
|
let n;
|
|
7919
7919
|
for (t.lastIndex = 0; n = t.exec(e); ) {
|
|
7920
|
-
const i = n[1].toLowerCase(), s = (n[2].match(A) || []).map(parseFloat), o = i === n[1], r =
|
|
7920
|
+
const i = n[1].toLowerCase(), s = (n[2].match(A) || []).map(parseFloat), o = i === n[1], r = Gt[i];
|
|
7921
7921
|
if (s.length < r.length)
|
|
7922
|
-
throw new
|
|
7922
|
+
throw new he(
|
|
7923
7923
|
`Path type "${i}" given ${s.length} arguments, expected ${r.length}.`
|
|
7924
7924
|
);
|
|
7925
7925
|
if (r.length > 0) {
|
|
7926
7926
|
if (s.length % r.length !== 0)
|
|
7927
|
-
throw new
|
|
7927
|
+
throw new he(
|
|
7928
7928
|
`Path type "${i}" given ${s.length} arguments, not divisible by ${r.length}`
|
|
7929
7929
|
);
|
|
7930
7930
|
for (let c = 0; c < s.length / r.length; c++) {
|
|
@@ -7949,7 +7949,7 @@ class Qt {
|
|
|
7949
7949
|
if (s in n && o in n) {
|
|
7950
7950
|
const r = [n[s], n[o]], c = t(r);
|
|
7951
7951
|
if (c.length < 2)
|
|
7952
|
-
throw new
|
|
7952
|
+
throw new he("Transformer must return at least 2 points.");
|
|
7953
7953
|
n[s] = c[0], n[o] = c[1];
|
|
7954
7954
|
}
|
|
7955
7955
|
}
|
|
@@ -7972,7 +7972,7 @@ class Qt {
|
|
|
7972
7972
|
}
|
|
7973
7973
|
}
|
|
7974
7974
|
}
|
|
7975
|
-
class pn extends
|
|
7975
|
+
class pn extends Qt {
|
|
7976
7976
|
constructor() {
|
|
7977
7977
|
super(...arguments), this.moduleName = "Favourites";
|
|
7978
7978
|
}
|
|
@@ -7983,8 +7983,8 @@ class pn extends Et {
|
|
|
7983
7983
|
return this.svg(e);
|
|
7984
7984
|
}
|
|
7985
7985
|
svg(e) {
|
|
7986
|
-
const t =
|
|
7987
|
-
return this.brandSvg(n,
|
|
7986
|
+
const t = Ct(wn), a = e !== "" ? ((i) => i.charAt(0).toUpperCase() + i.substr(1).toLowerCase())(e) : "", n = t.getPath(a, 0, 72, 72);
|
|
7987
|
+
return this.brandSvg(n, hn);
|
|
7988
7988
|
}
|
|
7989
7989
|
brandSvg(e, t) {
|
|
7990
7990
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
@@ -7994,29 +7994,29 @@ class pn extends Et {
|
|
|
7994
7994
|
p.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
7995
7995
|
const F = v("g");
|
|
7996
7996
|
p.appendChild(F), F.setAttribute("fill", "red"), F.setAttribute("stroke", "red"), F.setAttribute("stroke-width", "9"), F.innerHTML = A;
|
|
7997
|
-
const
|
|
7998
|
-
p.appendChild(
|
|
7997
|
+
const y = v("g");
|
|
7998
|
+
p.appendChild(y), y.setAttribute("fill", "#9d2621"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = A;
|
|
7999
7999
|
const Y = v("g");
|
|
8000
|
-
return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new
|
|
8000
|
+
return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new Dt(p).transform(([S, T]) => [S, T + (n / 2 - S) ** 2 / (n * 2.9)]), p;
|
|
8001
8001
|
}, [o, r, c] = pA(t);
|
|
8002
8002
|
if (!o)
|
|
8003
8003
|
return "";
|
|
8004
8004
|
const B = v("defs");
|
|
8005
8005
|
o.appendChild(B), DA(o, B, t);
|
|
8006
|
-
const l = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53,
|
|
8007
|
-
o.appendChild(
|
|
8008
|
-
const u =
|
|
8009
|
-
u.setAttribute("opacity", "0"),
|
|
8010
|
-
const
|
|
8011
|
-
|
|
8006
|
+
const l = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
|
|
8007
|
+
o.appendChild(h), h.setAttribute("transform", `translate(${C} ${w}) rotate(-21)`);
|
|
8008
|
+
const u = mt(l, d);
|
|
8009
|
+
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
8010
|
+
const E = v("g");
|
|
8011
|
+
h.appendChild(E);
|
|
8012
8012
|
const D = s();
|
|
8013
|
-
|
|
8014
|
-
const m =
|
|
8015
|
-
return
|
|
8013
|
+
E.appendChild(D);
|
|
8014
|
+
const m = wt(i);
|
|
8015
|
+
return pt(E, m, l, d), fA(o.outerHTML);
|
|
8016
8016
|
}
|
|
8017
8017
|
}
|
|
8018
8018
|
const Dn = "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==";
|
|
8019
|
-
class In extends
|
|
8019
|
+
class In extends Qt {
|
|
8020
8020
|
constructor(e, t) {
|
|
8021
8021
|
super(), this.moduleName = "Maltesers", this.shortLength = 5, this.indicator = (A) => A ? 1 : 0, this.backgroundSvg = e, this.backgroundShortSvg = t;
|
|
8022
8022
|
}
|
|
@@ -8027,18 +8027,18 @@ class In extends Et {
|
|
|
8027
8027
|
return this.svg(e);
|
|
8028
8028
|
}
|
|
8029
8029
|
svg(e) {
|
|
8030
|
-
const t =
|
|
8030
|
+
const t = Ct(Dn), a = e !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(e) : "", n = t.getPath(a, 0, 72, 72), i = e.length < this.shortLength, s = i ? this.backgroundShortSvg : this.backgroundSvg;
|
|
8031
8031
|
return this.brandSvg(n, s, i);
|
|
8032
8032
|
}
|
|
8033
8033
|
brandSvg(e, t, A) {
|
|
8034
8034
|
const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
|
|
8035
8035
|
const I = v("g"), F = v("g");
|
|
8036
8036
|
I.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
|
|
8037
|
-
const
|
|
8038
|
-
I.appendChild(
|
|
8037
|
+
const y = v("g");
|
|
8038
|
+
I.appendChild(y), y.setAttribute("fill", "#FFE386"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
|
|
8039
8039
|
const Y = v("g");
|
|
8040
8040
|
I.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = a;
|
|
8041
|
-
const N = new
|
|
8041
|
+
const N = new Dt(I);
|
|
8042
8042
|
return N.transform(([S, T]) => [S, T + ((s - S) * T) ** 2 / (s * 5e4)]), N.transform(([S, T]) => [
|
|
8043
8043
|
S,
|
|
8044
8044
|
T + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
|
|
@@ -8048,23 +8048,23 @@ class In extends Et {
|
|
|
8048
8048
|
return "";
|
|
8049
8049
|
const d = v("defs");
|
|
8050
8050
|
c.appendChild(d), DA(c, d, t);
|
|
8051
|
-
let C, w,
|
|
8052
|
-
A ? (C = B * 0.25 * (1 + 0.1), w = l / 2 * (1 + 0.1),
|
|
8053
|
-
const
|
|
8054
|
-
c.appendChild(
|
|
8055
|
-
const D =
|
|
8056
|
-
D.setAttribute("opacity", "0"),
|
|
8051
|
+
let C, w, h, u;
|
|
8052
|
+
A ? (C = B * 0.25 * (1 + 0.1), w = l / 2 * (1 + 0.1), h = l * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), w = l * 0.8, h = l * 0.067, u = B * 0.33);
|
|
8053
|
+
const E = v("g");
|
|
8054
|
+
c.appendChild(E), E.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
|
|
8055
|
+
const D = mt(C, w);
|
|
8056
|
+
D.setAttribute("opacity", "0"), E.appendChild(D);
|
|
8057
8057
|
const m = v("g");
|
|
8058
|
-
|
|
8058
|
+
E.appendChild(m);
|
|
8059
8059
|
const p = r();
|
|
8060
8060
|
m.appendChild(p);
|
|
8061
|
-
const Q =
|
|
8062
|
-
return
|
|
8061
|
+
const Q = wt(o);
|
|
8062
|
+
return pt(m, Q, C, w), c.outerHTML;
|
|
8063
8063
|
}
|
|
8064
8064
|
// 1 if true, 0 if false.
|
|
8065
8065
|
}
|
|
8066
8066
|
const fn = "data:application/octet-stream;base64,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DOYNZA3mDlQOyg88D54QEBCGEQARchHsEmIS1BOWFAwUghTwFWIV1BaiFxQXkhgEGMYZdBomGtQbfhwYHL4dYB3+HpgfPh/oIJYhPCHmIpQjRiPsJJolSCXuJpQnQifoKJIpRAAmAAn/8QAK//sADP/7AA3/+wAO//sAD//7ABD/+wAR//sAEv/7ABP/+wAU//sAFf/xABb/8QAZ//sAHf/2AB7/+wAf//sAIP/xACH/+wAi//sAI//7ACT/+wAl//EAJv/2ACf/8QAo//sAKf/2ACr/+wAr//sALP/sAC3/7AAu/+IAL//dADD/9gAx/+wAMv/7ADP/+wA0//YAKwAG//EACP/nAAn/4gAK/9MAC//iAAz/9gAN/+IADv/sAA//4gAQ/9gAEf/iABL/1QAT//EAFP/nABX/8QAW/9gAMf/TADL/pgAz//MANP/nADX/8QA2//EAN//7ADj/7gA5//YAOv/7ADv/2AA8//EAPf/2AD7/9gA///EAQP/sAEH/+wBC/+wAQ//xAET/7ABF/+wARv/2AEf/3QBI/90ASf/EAEr/zgBL//YAKwAG//YAB//2AAn/3QAL/+wADP/sAA3/8QAO//YAD//sABD/8QAR/+wAEv/iABP/5wAU/+wAFf/dABb/7AAX/78AMf/YADL/sAAz/+IANP/iADX/8QA2/+cAN//xADj/3QA5/+wAOv/2ADv/4gA8//EAPf/xAD7/8QA///YAQP/YAEH/9gBC/+cAQ//sAET/7ABF/+wARv/xAEf/zgBI/9MASf/OAEr/zgBL/+wAKgAG//YAB//iAAj/4gAK/+IADP/dAA3/ugAO/+IAD//iABD/5wAR/+IAEv/dABP/yQAU/90AFf+mABb/0wAx/5gAMv/YADP/4gA0/9MANf/xADb/7AA3/+wAOP/iADn/7AA6//EAO//dADz/5wA9/+wAPv/sAD//5wBA/9gAQf/sAEL/zgBD/+wARP/YAEX/tQBG/90AR/+hAEj/oQBJ/8QASv+DAEv/7AAqAAb/8QAH/90ACP/YAAn/oQAL/8kADP/iAA3/sAAO/+cAD//YABD/4gAR/90AEv/bABP/4gAU/+IAFf/TABb/5wAg/+QAMf/nADL/3AAz//QANP/rADX/9AA2//IAN//4ADj/8AA5//QAOv/1ADv/7AA8/+oAPf/7AD7/9wA///IAQP/tAEH/+wBC/+IAQ//2AET/4wBF/7YARv/vAEf/pgBK/6MAS//yACYAB//TAAj/8QAK/84ADP/dAA3/9gAO//EAD//dABD/pgAR/8kAEv+6ABP/7AAU/90AFf/OADH/xAAy/5IAM//sADT/3QA1/+cANv/xADf/9gA4/90AO/9WADz/5wA9//EAPv/sAD//5wBA/84AQf/dAEL/0wBD/+cARP/nAEX/5wBG/+cAR//dAEj/2ABJ/7oASv/JAEv/4gAsAAb/+wAH//sACP/xAAn/zgAK/+cAC//dAAz/9gAN/9gADv/tAA//7AAQ/+kAEf/rABL/3QAT/90AFP/hABX/3QAW/90AMf/nADL/vwAz/+cANP/nADX/8QA2//EAN//sADj/5wA5//YAOv/2ADv/4gA8//EAPf/2AD7/+wA///sAQP/2AEH/+wBC/+wAQ//7AET/7ABF/9MARv/7AEf/yQBI/84ASf+wAEr/xABL/+cADgAG//sACf/xAAv/7AAN//sADv/7AA8AAAAR//EAEv/0ABP/9gAU//EAFf/xABb/7AAx//YAQP/2ACkABv/7AAf/9gAI//sACf/iAAr/5wAL/+wADP/vAA3/3QAO//sAD//qABD/8QAR/+wAEv/nABP/8QAU/+cAFf/iABb/7AAx/+cAMv/vADP//AA0/+cANf/7ADb//gA4//EAOf/8ADr//AA7/+kAPP/6AD3//QA+//4AP//7AEL/6gBD//0ARP/2AEX/7ABG//EAR//YAEj/4gBJ/+wASv/LAEv//AAsAAb/+wAH//EACP/2AAn/0wAK/+IAC//JAAz/5wAN/90ADv/iAA//7AAQ/+cAEf/sABL/3QAT/9MAFP/iABX/zgAW/+cAMf/YADL/xAAz/+wANP/dADX/6AA2//EAN//xADj/4wA5//EAOv/2ADv/7AA8/+wAPf/sAD7/9gA//+wAQP/iAEH/8QBC/90AQ//nAET/5wBF/8QARv/mAEf/xABI/8kASf+1AEr/rQBL/+IALAAG//sAB//7AAj/9gAJ/9MACv/2AAv/ugAM/+kADf/dAA7/9gAP/+wAEP/2ABH/8AAS//EAE//2ABT/5wAV/9gAFv/sADH/vwAy/9UAM//eADT/3wA1//EANv/xADf/9gA4/+IAOf/xADr/9gA7/+wAPP/xAD3/9gA+//EAP//2AED/2ABB//EAQv/nAEP/9gBE/+cARf/TAEb/8QBH/9gASP/YAEn/xgBK/78AS//xACsABv/7AAf/9gAI/+wACf/TAAr/5wAL/90ADP/lAA3/zgAO/90AD//dABD/7AAR/+IAEv/iABP/2AAU/+IAFf/JABb/5wAx/90AMv/EADP/6wA0/+EANf/wADb/8AA4/9wAOf/dADr/7AA7/9gAPP/sAD3/5wA+/+wAP//iAED/0wBB/+IAQv/YAEP/4gBE/84ARf/JAEb/4gBH/8kASP/OAEn/vwBK/8kAS//TACwABv/7AAf/3wAI/+cACf+wAAr/4wAL/8kADP/dAA3/xwAO/+cAD//dABD/7AAR/+cAEv/iABP/yQAU/9cAFf+/ABb/4gAa/+kAMf/YADL/uwAz/+EANP/dADb/6wA3//MAOP/lADn/8QA6//IAO//eADz/5wA9/+4APv/zAD//8ABA/+IAQf/2AEL/6gBD//YARP/kAEX/zABG/+8AR/+0AEj/uwBJ/64ASv+vAEv/5QAsAAb/+wAH/90ACP/nAAn/4gAK/9MAC//nAAz/3QAN//YADv/eAA//3QAQ/7AAEf/OABL/sAAT//sAFP/dABX/0wAW/9MAMf/iADL/iAAz//YANP/OADX/9gA2//EAN//xADj/0wA5//YAOv/zADv/gAA8//EAPf/7AD7/+wA///YAQP/OAEH/7gBC/84AQ//2AET/2ABF//sARv/2AEf/5wBI/+cASf/TAEr/4gBL/+wALAAG//sAB//2AAj/8QAJ/9gACv/nAAv/3QAM/+IADf/dAA7/4gAP/+IAEP/nABH/5wAS/9gAE//YABT/3QAV/84AFv/sADH/5wAy/78AM//nADT/2AA1/+cANv/nADf/7AA4/90AOf/sADr/7AA7/+cAPP/sAD3/8QA+/+wAP//xAED/4gBB//EAQv/dAEP/5wBE/+IARf/YAEb/5wBH/78ASP/HAEn/sABK/7UAS//dACsABv/xAAf/8QAI/+IACf/dAAr/0wAL/+IADP/iAA3/3QAO/+cAD//dABD/zgAR/9MAEv/EABP/0wAU/84AFv/dADH/4gAy/6EAM//jADT/3QA1/+wANv/sADf/5wA4/90AOf/nADr/8QA7/78APP/xAD3/9gA+/+wAP//nAED/3QBB/+cAQv/nAEP/5wBE/+IARf/OAEb/3QBH/8QASP/JAEn/lwBK/7oAS//YACkABv/sAAf/0wAI/90ACf/OAAr/3QAM/90ADf/EAA7/5wAP/9gAEP/YABH/3QAS/9MAE//YABT/4gAV/90AMf/sADL/wAAz/+8ANP/kADX/6wA2//AAN//2ADj/5AA5//EAOv/uADv/1gA8//QAPf/2AD7/8QA///AAQP/dAEH/7ABD/+gARP/YAEX/1QBG/+wAR/+3AEj/wwBJ/7UASv+wAEv/5gAeAAf/zgAi/+4AI//5ACT/7wAy/9AAM//pADT/sQA1/+sANv/nADf/5gA4/7oAOf/vADr/9wA7/9AAPP/sAD3/6wA+/+YAP//sAED/uwBB/+kAQv+7AEP/5ABE/9QARf+6AEb/0ABH/34ASP+SAEn/zQBK/5sAS//nABwAF//RACT//wAy/9EAM//uADT/5wA1/+8ANv/3ADf/7gA4/+gAOf/3ADr/+wA7/9oAPP/vAD3/9wA+/+4AP//vAED/4QBB//cAQv/nAEP/7wBE/+4ARf/QAEb/9wBH/8EASP/MAEn/wwBK/7sAS//nABwAF//QABv/+QAy/8EAM//zADT/6wA1//sANv/zADf/+wA4/+8AOf/zADr//gA7/+EAPP/vAD3/9wA+//kAP//3AED/4gBB//kAQv/jAEP/8wBE/+YARf/VAEb/+QBH/84ASP/JAEn/twBK/8EAS//rAB8ABv/7ABL/3wAX/8kAJf/5ACv/7wAy/7oAM//zADT/6wA1/+8ANv/uADf/8wA4/+oAOf/vADr/7wA7/9QAPP/5AD3//gA+//EAP//vAED/4wBB//MAQv/mAEP/7gBE/+cARf/XAEb/6wBH/8kASP/JAEn/twBK/7cAS//nACAABv/7ACQAAgAl/+8AJ//5AC3//gAv//4AMv/oADP//QA0/+sANf/7ADb/+gA3//sAOP/jADn/9wA6//oAO//kADz//wA9//0APv/+AD8AAABA/+gAQf/7AEL/6ABD//sARP/sAEX/8QBG//sAR//qAEj/6wBJ/+cASv/qAEv/+QAbAAb/+wAl/+8AMv+5ADP/+wA0/+8ANf/7ADb/+wA3//0AOP/vADn/+wA6AAAAO/+7ADz//gA9//4APv/7AED/7ABB//4AQv/nAEP/+QBE//kARf/7AEb/+QBH//MASP/rAEn/4gBK/+8AS//7AB0ABv/2ABf/zgAl/+8AMv+3ADP/9wA0/+sANf/3ADb/8QA3//kAOP/uADn/8wA6//sAO//YADz/8wA9/+4APv/3AD//8wBA/+MAQf/3AEL/6QBD/+8ARP/nAEX/1ABG/+8AR//JAEj/zABJ/6YASv/JAEv/3AAcAAb/+wAX//MAJf/7ADL/6wAz//4ANP/uADX/+wA2//4AN//+ADj/8wA5//0AOv/+ADv/7gA8//4APf/+AD7/+wA///4AQP/uAEL/9wBD//4ARP/+AEX/+QBG//4AR//uAEj/9wBJ/+4ASv/zAEv//gAYAAb/+wAx//YAMv/rADP//wA0//MANf//ADYAAQA3//8AOP/zADv/6AA8//4APf/+AD4AAQBA/+4AQf//AEL/8wBD//4ARP/4AEX//QBH/+wASP/3AEn/7ABK//EASwABABwABv/2ABf/4QAy/8oAM//9ADT/+QA1//4ANv/7ADf//gA4//MAOf/+ADr//wA7/+EAPP/7AD3//gA+//4AP//+AED/7wBB//4AQv/zAEP//gBE//sARf/7AEb//gBH/+8ASP/5AEn/2gBK//oAS//+AB0ABv/nABf/5wAx/7AAMv/hADP/7gA0/7QANf/rADb/5wA3/+4AOP+sADn/6wA6//kAO/+3ADz/6gA9/+8APv/nAD//5wBA/6wAQf/uAEL/rgBD/+cARP+8AEX/3ABG/9oAR//cAEj/0QBJ/9oASv/RAEv/7wAeAAb/9gAX//cAI//9ADH/vwAy/+4AM//5ADT/2gA1//4ANv/3ADf/+wA4/9oAOf/3ADr/+wA7/+cAPP/7AD3/+QA+//cAP//5AED/1ABB//sAQv/cAEP/9wBE/+8ARf/JAEb/6wBH/8QASP++AEn/5wBK/8EAS//+ABwAF//7ADH/7AAy/+QAM//+ADT/7gA1//4ANgAAADf//QA4//cAOf/7ADr//gA7/+4APP/+AD3//gA+//0AP//7AED/7wBB//4AQv/uAEP//gBE//cARf/7AEb/+QBH/+gASP/vAEn/6wBK/+gAS//+AB4ABv/7ABf/8wAa//4AHf/3ACX/9wAq//4AMf/2ADL/5AAz//0ANP/zADX/+wA2//4AN//+ADj/+QA7/+4APf/+AD7/+wA///4AQP/2AEH/+gBC/+4AQ//7AET/+QBF//sARv/+AEf/8wBI/+8ASf/zAEr/6wBL//4AHQAG//EAJP/3ADH/7AAy/7sAM//sADT/4wA1/+8ANv/vADf/9wA4/+QAOf/qADr/9wA7/98APP/vAD3/9wA+/+sAP//uAED/4wBB/+4AQv/mAEP/7wBE/+IARf/VAEb/7gBH/8MASP/GAEn/uwBK/7oAS//fABwABv/sACT//gAy/54AM//rADT/6gA1//EANv/rADf/9wA4/+MAOf/oADr/9wA7/64APP/sAD3/8QA+/+wAP//sAED/4QBB//MAQv/oAEP/5ABE/9gARf/kAEb/7gBH/9EASP/QAEn/uwBK/8QAS//zADAAF//3ABj//wAZ/+kAGv//ABv//QAc//4AHf/pAB7/+wAf//8AIP/iACH//gAi//8AI//+ACT//wAl/+IAJ//uACj//gAp/+cAKv/hACv/+QAs/8MALf/QAC7/5AAv/8wAMP//ADL/4QAz//4ANP/jADX/9wA3//kAOP/fADn/9wA7/+IAPP/5AD3/+gA+//EAP//6AED/2gBB/+8AQv/aAET/7wBF/9cARv/qAEf/xgBI/7sASf/qAEr/tABL//sAHQAG/+cAF//oACT/+gAy/+IAM//xADT/zAA1/+8ANv/sADf/+gA4/8wAOf/3ADr/8wA7/8kAPP/uAD3/7wA+/+wAP//rAED/yQBB//cAQv/MAEP/+ABE/9QARf/KAEb/2gBH/8EASP/EAEn/4gBK/7cAS//vAB0ABv/xABv/+QAl/+4AMv+8ADP/7wA0/9wANf/zADb/6AA3//cAOP/hADn/5gA6//MAO//aADz/6QA9//MAPv/pAD//6wBA/+MAQf/3AEL/2gBD/+kARP/rAEX/1ABG/+kAR//JAEj/zABJ/7QASv+7AEv/5wAbAAb/9gAy/6YAM//9ADT/0wA1//oANv/+ADf//QA4/9UAOf/3ADr//wA7/7kAPP/6AD3//gA+//sAP//7AED/0ABB//oAQv/XAEP/+QBE/+IARf/zAEb/9wBH/+8ASP/vAEn/6gBK/+cAS//6ABwABv/7ACQAAgAy/9UAM//7ADT/7wA1//cANv/9ADf//wA4/+4AOf/7ADr//wA7/+sAPP/+AD3//gA+//0AP//6AED/7gBB//sAQv/sAEP/+wBE/+8ARf/7AEb//QBH/+8ASP/qAEn/3wBK//gAS//+ABwABv/nABf/lQAy/4IAM//3ADT/wQA1/+kANv/nADf/+gA4/8QAOf/oADr/6wA7/5UAPP/uAD3/+wA+//cAP//vAED/wQBB/+8AQv/DAEP/5wBE/84ARf/uAEb/7gBH/+kASP/pAEn/zgBK/+4AS//7ADMABv/sABf/owAY//kAGf/XABr//gAb//4AHP/5AB3/0AAe//gAIP+tACH/8wAi//4AJP/+ACX/0AAm//kAJ//MACj//gAp/9oAKv/+ACv//gAs/+MALf/zAC7/3AAv//cAMP/7ADL/jwAz/+oANP/CADX/7wA2/+oAN//3ADj/xgA5/+sAOv/6ADv/qgA8/+sAPf/7AD7/7wA//+8AQP++AEH/7gBC/8MAQ//qAET/1QBF/+sARv/pAEf/6ABI/+cASf/iAEr/2gBL/+4AHAAG/+cAF//hADL/1AAz/+sANP+wADX/6wA2/+QAN//jADj/qgA5/+cAOv/jADv/ugA8/+cAPf/vAD7/2gA//+kAQP+uAEH/7wBC/64AQ//kAET/uwBF/9oARv/aAEf/zABI/84ASf/TAEr/zQBL/+sAHwAG/+IAF/+lACP//gAk//sAL//uADL/hwAz/+8ANP+sADX/+AA2/9wAN//6ADj/uQA5/+4AOv/vADv/hAA8/+gAPf/pAD7/5wA//+YAQP+wAEH/6QBC/7oAQ//vAET/zgBF/+gARv/oAEf/2gBI/+YASf/QAEr/4gBL/+kAHAAG//sAF//+ADL/5wAz//sANP/kADX/+wA2//8AN//7ADj/4QA5//4AOv//ADv/6wA8//sAPf/+AD7//gA///sAQP/hAEH/+wBC/9oAQ//+AET/7wBF//sARv/6AEf/6QBI//kASf/rAEr/6QBL//sAMAAG/+wAB//YAAj/3QAJ/9MACv+/AAv/yQAM/+IADf/YAA7/7AAP/9MAEP/JABH/5wAS/+IAE//OABT/4gAV/+wAFv/nACD/WwAh/+wAIv/xACP/8QAk//YAJf/xADL/oQAz/+wANP/nADX/7AA2//sAN//2ADj/9gA5//sAO/+PADz/7AA9//YAPv/sAD//8QBA/+IAQf/nAEL/7ABD/+IARP/JAEX/zgBG/+cAR/+/AEj/xABJ/5IASv+/AEv/4gArAAb/9gAI/8QACf+cAAr/zAAL/5QADP+6AA3/xAAO/+oAD//BABD/zgAR/78AEv+7ABP/2AAU/78AFf+mABcAAgAk/+cAMf+mADL/2AAz/+cANP+7ADX/5gA2//MAN//zADj/sQA5/+oAOv/rADz/6AA9/+gAPv/mAD//5wBA/7oAQf/4AEL/twBD/+gARP/OAEX/sQBG/88AR/+EAEj/lwBJ/9AASv+NAEv/9wAsAAb/9gAH/+oACP/nAAn/xAAK/+gAC//TAAz/3QAN/9gADv/lAA//5wAQ/+IAEf/aABL/3AAT/9MAFP/bABX/xAAk//EAMf/YADL/zQAz/+wANP/kADX/9wA2//MAN//9ADj/4wA5//cAOv/3ADv/5gA8//4APf/9AD7/7gA//+4AQP/kAEH/+QBC/+YAQ//vAET/6QBF/9oARv/vAEf/zgBI/88ASf/QAEr/uQBL//kAKwAG//YAB//qAAj/7AAJ/9gACv/uAAv/4gAM/+IADf/dAA7/9AAP/+IAEP/eABH/5gAS/+IAE//TABT/3QAV/90AJP/2ADH/7AAy/74AM//uADT/3wA1//oANv/xADj/5wA5/+8AOv/5ADv/2AA8/+0APf/9AD7/8wA///EAQP/rAEH/+ABC/+QAQ//3AET/5gBF/9AARv/zAEf/xgBI/80ASf++AEr/twBL/+gAKgAH//EACP/xAAn/0wAK/+YAC//YAAz/5wAN/9gADv/oAA//5wAQ/+IAEf/iABP/2AAU/90AFf/dACT/+wAx/+wAMv+7ADP/9wA0/+QANf/rADb/5wA3//EAOP/kADn/+QA6//YAO//aADz/9wA9//4APv/uAD//8QBA/+cAQf/vAEL/4wBD/+sARP/cAEX/0ABG/+sAR//CAEj/xABJ/7QASv+6AEv/6AAmAAf/9gAI//EACf/sAAr/9gAM/+cADv/6AA//8QAQ//EAEf/vABL/4QAT//EAFP/iABX/5wAy/+kAM//9ADT/5wA1//sANv/9ADf//gA4/+sAOf/+ADoAAQA7/+gAPP/9AD3/9wA+//0AP//9AED/6wBBAAEAQv/pAEP/+QBE/+wARgACAEf/6QBI/+8ASf/nAEr/6wBL//sAKQAH//sACP/xAAn/5wAK/+4AC//2AAz/4gAN//sADv/1AA//8QAQ/90AEf/kABL/4gAT/+wAFP/YABX/3QAx//YAMv+5ADP/+AA0/+MANf/3ADb/+AA3//kAOP/iADn/+gA6//0AO//OADz//QA9//4APv/5AD///ABA/+YAQv/jAEP/9wBE/+YARf/vAEb//gBH/+cASP/vAEn/0QBK/+YAS//9ACgAB//2AAj/4gAJ/90ACv/sAAv/4gAM/+gADf/iAA7/9QAP/+gAEP/dABH/4AAS/+YAE//OABT/4gAV/90AJP/7ADH/9gAy/8EAM//vADT/3wA2//QAN//4ADj/4wA5/+kAOv/6ADv/0QA8/+YAPf/zAD7/6QA///EAQP/qAEL/3ABD/+gARP/fAEb/+ABH/7sASP+7AEn/rwBK/68AS//jACcACP/xAAn/7AAK//gADP/2AA7/9wAP//YAEP/xABH/5wAS/+cAE//xABT/7AAV/+UAMf/2ADL/6AAz//kANP/qADX/+wA2//oAN//7ADj/6wA5//cAOv//ADv/4wA8//sAPf/+AD7/+wA///oAQP/sAEH/+gBC/+MAQ//5AET/7wBF/+oARv/7AEf/4wBI/+wASf/jAEr/6gBL//4AJgAH//sACP/7AAn/5wAK//oADP/2AA7/9gAP//YAEP/xABH/8QAS//IAE//xABT/5wAV//EAMv/nADP/+wA0//EANf/9ADb//gA3//4AOP/uADn/+wA6//4AO//oAD0AAAA+//sAP//+AED/7wBB//4AQv/qAEP//wBE//EARf/3AEb/+wBH/+YASP/3AEn/2gBK/+QAS//7ACkAB//2AAj/9gAJ/90ACv/yAAz/8QAO//EAD//wABD/6gAR/+wAEv/mABP/9AAU/+wAFf/rABf/zgAx//YAMv/OADP/7wA0/+oANf/5ADb//gA3//0AOP/oADn/+QA6//0AO//YADz//gA9//8APv/6AD//+QBA/+4AQf/5AEL/4wBD//gARP/qAEX/+QBG//oAR//pAEj/6QBJ/9UASv/rAEv/+gAqAAf/sgAI/8kACf+wAAr/ugAL/7UADP+1AA3/3QAO/+QAD/+6ABD/sgAR/7UAEv+xABP/4gAU/6sAFf+mADH/lwAy/9oAM//jADT/qwA1/+IANv/iADf/4wA4/5oAOf/XADr/7gA7/7QAPP/kAD3/6wA+/+4AP//mAED/rQBB/+8AQv+qAEP/6gBE/74ARf/XAEb/2gBH/9AASP/SAEn/1QBK/80AS//qACsAB//nAAj/8QAJ/6YACv/sAAv/nAAM/90ADf+6AA7/9gAP/+IAEP/sABH/3QAS/9oAE//sABT/3QAV/8QAJP/+ADH/pgAy/+sAM//vADT/ygA1//0ANv/zADf/+wA4/9MAOf/vADr/+wA7/9gAPP/3AD3/9wA+//EAP//7AED/1QBB//cAQv/PAEP/8wBE/+YARf+7AEb/5wBH/7UASP/JAEn/2gBK/6UAS//zACkAB//2AAn/7AAK//kAC//sAAz/9gAO//oAD//2ABD/7AAR/+cAEv/vABP/9gAU//EAFf/sABcAAQAx/+YAMv/pADP/+QA0/+oANf/zADb/+wA3//oAOP/nADn/9wA6//4AO//uADz/+QA9//oAPv/7AD//+QBA/+8AQf/3AEL/6QBD//oARP/sAEX/8wBG//gAR//pAEj/6QBJ/+MASv/nAEv//QAqAAf/9gAI//sACf/sAAr/9wAL/+wADP/7AA7/+gAP//EAEP/2ABH/7AAS//EAE//2ABT/9gAV/+QAFwABADH/8QAy/+kAM//3ADT/6QA1//kANv/5ADf/+QA4/+8AOf/6ADr//gA7/+8APP/7AD3/+gA+//oAP//4AED/7wBB//sAQv/rAEP//QBE/+8ARf/3AEb/+gBH/+4ASP/rAEn/4QBK/+wAS//5ACsAB//xAAj/4gAJ/9gACv/sAAv/2AAM//YADf/iAA7/8QAP/90AEP/iABH/0wAS/+IAE//JABT/4gAV/94AJP/7ADH/3QAy/7QAM//pADT/4QA1/+wANv/vADf/6gA4/+IAOf/qADr/+gA7/9oAPP/pAD3/6wA+/+wAP//pAED/4QBB/+sAQv/cAEP/6wBE/+IARf/JAEb/7gBH/7wASP/BAEn/pgBK/7UAS//kACwAB//iAAj/5wAJ/+IACv/OAAv/2AAM/+cADf/nAA7/8AAP/90AEP+6ABH/xAAS/9cAE//XABT/2AAV/9gAG//3ACT/+wAx/+IAMv+gADP/6QA0/+MANf/mADb/7wA3/+sAOP/aADn/6AA6//YAO/+xADz/6wA9/+4APv/oAD//7wBA/9oAQf/oAEL/1wBD/+MARP/aAEX/2ABG/+cAR//PAEj/yQBJ/7kASv/BAEv/6AApAAf/8QAI/+wACf/OAAr/6gAL/84ADP/nAA3/2AAO//YAD//fABD/4gAR/9gAEv/lABP/5wAU/+IAFf/YADH/4gAy/+cAM//3ADT/2gA1//gANv/5ADf/+wA4/9wAOf/3ADr//gA7/+MAPP/3AD3//QA+//cAP//3AED/1QBC/9UAQ//9AET/6QBF/+EARv/pAEf/ugBI/8QASf/aAEr/wgBL//sAKwAH/8kACP/YAAn/xAAK/9MAC/+/AAz/yQAN/9gADv/nAA//xAAQ/7oAEf+1ABL/wQAT/9gAFP+6ABX/vwAk//sAMf+/ADL/2gAz/+gANP/KADX/6QA2/+kAN//oADj/xgA5/+QAOv/nADv/uQA8/+wAPf/uAD7/6QA//+cAQP/GAEH/7ABC/8kAQ//mAET/2ABF/84ARv/VAEf/wQBI/7wASf/GAEr/tABL/+8AKwAH//EACP/2AAn/yQAK/+oAC//TAAz/3QAN/+cADv/sAA//4gAQ/+IAEf/YABL/3wAT/90AFP/dABX/2AAk//sAMf/nADL/xgAz//MANP/iADX/7wA2/+4AN//3ADj/4wA5/+kAOv/vADv/1wA8/+4APf/zAD7/6gA//+0AQP/kAEH/9wBC/98AQ//qAET/5wBF/9AARv/vAEf/yQBI/9AASf/PAEr/xABL/+8AKQAH/+cACP/sAAn/5wAK/+kAC//dAAz/2AAO/+wAD//XABD/qwAR/8kAEv/AABP/9gAU/9MAFf/OADH/2AAy/7AAM//5ADT/2gA1//0ANv/6ADf//gA4/98AOf/3ADr//QA7/8YAPP/7AD3//gA+//gAP//4AED/1QBB//0AQv/VAEP/+ABE/+MARf/zAEb/+QBH/+4ASP/zAEn/4gBK/+cAS//zACkACP/2AAn/5wAK//QAC//sAAz/+wAN//4ADv/2AA//5QAQ/+wAEf/nABL/8wAT//EAFP/nABX/3QAx/+QAMv/KADP/+QA0/+wANf/6ADb/+gA3//sAOP/vADn/+gA6AAAAO//hADz//wA9//0APv/5AD///gBA/+wAQf/7AEL/7ABD//sARP/vAEX/9wBG//sAR//zAEj/6gBJ/+EASv/jAEv/+wArAAf/zgAI/84ACf/YAAr/ygAL/9gADP/JAA3/+wAO/9kAD//JABD/ogAR/7oAEv+5ABP/5wAU/8QAFf+9ACT/+wAx/7oAMv+FADP/+wA0/7sANf/qADb/6wA3/+wAOP++ADn/5gA6/+8AO/+iADz/6AA9/+oAPv/sAD//7wBA/8MAQf/mAEL/uwBD/+YARP/KAEX/6QBG/+8AR//jAEj/3wBJ/9MASv/hAEv/6wApAAf/zgAI/84ACf/TAAv/2AAM/84ADv/eAA//xAAQ/7AAEf/TABL/sQAT/+wAFP/FABX/yQAk//sAMf/JADL/lQAz//MANP/BADX/+QA2//MAN//3ADj/xgA5//sAOv/3ADv/pQA8/+8APf/+AD7/7gA//+oAQP/DAEH/7gBC/8QAQ//vAET/0ABF/+4ARv/uAEf/6QBI/+QASf/aAEr/5gBL//cAKgAH/8QACP/OAAn/pgAL/7oADP+rAA3/3QAO/+cAD/+5ABD/twAR/8QAEv+zABP/0wAU/7AAFf+cACT/+wAx/6EAMv/aADP/4wA0/7cANf/4ADb/4wA3//0AOP+3ADn/7gA6/+8AO/+7ADz/7gA9//EAPv/jAD//6ABA/7oAQf/zAEL/uQBD/+sARP/OAEX/3wBG/+EAR//aAEj/2ABJ/9gASv/MAEv/7gAsAAf/yQAI/84ACf/JAAr/wgAL/8kADP/JAA3//gAO/8kAD/+6ABD/jQAR/7oAEv+gABP/4gAU/7UAFf+6AB7/8QAk//sAMf+1ADL/lwAz/+8ANP+7ADX/5gA2/+4AN//uADj/uQA5/+gAOv/3ADv/hAA8/+8APf/sAD7/7AA//+oAQP+6AEH/7ABC/7kAQ//pAET/ygBF/+8ARv/vAEf/6ABI/+kASf/fAEr/5ABL//EAJgAH//YACf/iAAr/7AAL/+cADP/iAA3//wAO//UAD//nABD/7AAR/+IAEv/gABP/7AAU/90AFf/TADH/4gAy/+sAM//+ADT/6AA1//4ANgAEADf//wA4/9wAOf/6ADv/5gA8//8APf//AD///QBA/+MAQf//AEMAAABE/+8ARf/4AEb/+wBH//cASP/rAEn/6QBK/+kAS//9AAIAAQAGAEsAAAAAAAAAAQAAAADUGBYRAAAAANmXsTQAAAAA2ZexNA==";
|
|
8067
|
-
class Fn extends
|
|
8067
|
+
class Fn extends Qt {
|
|
8068
8068
|
constructor() {
|
|
8069
8069
|
super(...arguments), this.moduleName = "Vegemite";
|
|
8070
8070
|
}
|
|
@@ -8075,7 +8075,7 @@ class Fn extends Et {
|
|
|
8075
8075
|
return this.svgElement(e, t);
|
|
8076
8076
|
}
|
|
8077
8077
|
svgElement(e, t) {
|
|
8078
|
-
const A =
|
|
8078
|
+
const A = Ct(fn), n = e !== "" ? ((D) => D.charAt(0).toUpperCase() + D.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, c = i.toPathData(3), B = () => {
|
|
8079
8079
|
const D = v("g");
|
|
8080
8080
|
D.classList.add("module-text-group");
|
|
8081
8081
|
const m = v("defs");
|
|
@@ -8088,22 +8088,22 @@ class Fn extends Et {
|
|
|
8088
8088
|
I.classList.add("module-layer1"), D.appendChild(I), I.setAttribute("stroke-width", "3"), I.setAttribute("stroke", "rgb(45,41,38)"), I.setAttribute("fill", "rgb(45,41,38)"), I.setAttribute("transform", "translate(0.5,0)"), I.innerHTML = s;
|
|
8089
8089
|
const F = v("g");
|
|
8090
8090
|
F.classList.add("module-layer2"), D.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
|
|
8091
|
-
const
|
|
8092
|
-
return
|
|
8091
|
+
const y = v("g");
|
|
8092
|
+
return y.classList.add("module-layer3"), D.appendChild(y), y.setAttribute("fill", "white"), y.innerHTML = s, new Dt(D).transform(([N, S]) => [N, S + (r / 2 - N) ** 2 / (r * 6)]), D;
|
|
8093
8093
|
}, l = v("g");
|
|
8094
8094
|
l.classList.add("module-root");
|
|
8095
8095
|
const d = v("defs");
|
|
8096
8096
|
l.appendChild(d);
|
|
8097
8097
|
const C = v("g");
|
|
8098
8098
|
C.classList.add("module-bounds"), l.appendChild(C);
|
|
8099
|
-
const w =
|
|
8099
|
+
const w = mt(t.height, t.width);
|
|
8100
8100
|
w.setAttribute("opacity", "0"), C.appendChild(w);
|
|
8101
|
-
const
|
|
8102
|
-
|
|
8101
|
+
const h = v("g");
|
|
8102
|
+
h.classList.add("module-text-enclosure"), l.appendChild(h);
|
|
8103
8103
|
const u = B();
|
|
8104
|
-
|
|
8105
|
-
const
|
|
8106
|
-
return
|
|
8104
|
+
h.appendChild(u);
|
|
8105
|
+
const E = wt(c);
|
|
8106
|
+
return pt(h, E, t.height, t.width, 0.35, 0.65), fA(l.outerHTML);
|
|
8107
8107
|
}
|
|
8108
8108
|
}
|
|
8109
8109
|
async function FA(g) {
|
|
@@ -8119,7 +8119,7 @@ async function FA(g) {
|
|
|
8119
8119
|
}
|
|
8120
8120
|
var pe = /* @__PURE__ */ ((g) => (g.Error = "Error", g.Warning = "Warning", g.Info = "Info", g))(pe || {});
|
|
8121
8121
|
const yn = 1e3;
|
|
8122
|
-
class
|
|
8122
|
+
class bt extends BA {
|
|
8123
8123
|
constructor(e) {
|
|
8124
8124
|
super(), this.createdAt = /* @__PURE__ */ new Date(), this.update = e;
|
|
8125
8125
|
}
|
|
@@ -8132,7 +8132,7 @@ class Gt extends BA {
|
|
|
8132
8132
|
}
|
|
8133
8133
|
}
|
|
8134
8134
|
class Mn {
|
|
8135
|
-
constructor(e, t, A, a, n, i, s, o, r, c, B, l, d, C = !1, w,
|
|
8135
|
+
constructor(e, t, A, a, n, i, s, o, r, c, B, l, d, C = !1, w, h = !1, u = !1, E = !1) {
|
|
8136
8136
|
this.workflowStatePromiseQueue = new dA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
|
|
8137
8137
|
var p;
|
|
8138
8138
|
if (!this.previewService)
|
|
@@ -8141,7 +8141,7 @@ class Mn {
|
|
|
8141
8141
|
if (m)
|
|
8142
8142
|
for (const [, Q] of m)
|
|
8143
8143
|
Q.render(D);
|
|
8144
|
-
}, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = d, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = B, this.modelContainer = w, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = l, this.isReloadedTransaction =
|
|
8144
|
+
}, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = d, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = B, this.modelContainer = w, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = l, this.isReloadedTransaction = h, this.stepTags = c, E && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
|
|
8145
8145
|
this.initialized = !0;
|
|
8146
8146
|
}), this.initializationPromise.catch((D) => {
|
|
8147
8147
|
throw console.error(D), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -8164,7 +8164,7 @@ class Mn {
|
|
|
8164
8164
|
this.storage[s.stepName] = s.storage || {};
|
|
8165
8165
|
}), this.allScenes = await za(e);
|
|
8166
8166
|
const a = ce(this.allScenes, this.stepSelections).map((s) => s.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
|
|
8167
|
-
this.commandContext.apply(new
|
|
8167
|
+
this.commandContext.apply(new k(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
|
|
8168
8168
|
}
|
|
8169
8169
|
getWorkflowExperience() {
|
|
8170
8170
|
return this.experience;
|
|
@@ -8363,7 +8363,7 @@ class Mn {
|
|
|
8363
8363
|
},
|
|
8364
8364
|
{ refocusCamera: t }
|
|
8365
8365
|
);
|
|
8366
|
-
this.setModelContainer(A), ce(this.allScenes, this.stepSelections).filter((i) => i).map((i) => i.renderableSteps).flat().filter((i) => i.type ===
|
|
8366
|
+
this.setModelContainer(A), ce(this.allScenes, this.stepSelections).filter((i) => i).map((i) => i.renderableSteps).flat().filter((i) => i.type === M.Model || i.type === M.Material).forEach((i) => {
|
|
8367
8367
|
var r, c, B;
|
|
8368
8368
|
if (!((r = i.option) != null && r.id)) {
|
|
8369
8369
|
console.error(`Failed to read option id from step: ${i.stepName}`);
|
|
@@ -8373,7 +8373,7 @@ class Mn {
|
|
|
8373
8373
|
if (s.length === 0)
|
|
8374
8374
|
return;
|
|
8375
8375
|
const o = s[0];
|
|
8376
|
-
if (i.type ===
|
|
8376
|
+
if (i.type === M.Model) {
|
|
8377
8377
|
if (!this.modelContainer)
|
|
8378
8378
|
throw new b(
|
|
8379
8379
|
"We should always have a model container when injecting a preview!"
|
|
@@ -8423,7 +8423,7 @@ class Mn {
|
|
|
8423
8423
|
};
|
|
8424
8424
|
if (!eA(A, this.storage)) {
|
|
8425
8425
|
this.storage = A;
|
|
8426
|
-
const a = new
|
|
8426
|
+
const a = new Yt(this.constructSerializableWorkflow());
|
|
8427
8427
|
this.commandContext.apply(a, !0), this.onStepSpecificStorageChange(e), this.onStorageChange();
|
|
8428
8428
|
}
|
|
8429
8429
|
}
|
|
@@ -8444,7 +8444,7 @@ class Mn {
|
|
|
8444
8444
|
return;
|
|
8445
8445
|
const e = this.serialize();
|
|
8446
8446
|
this.workflowStatePromiseQueue.enqueue(
|
|
8447
|
-
new
|
|
8447
|
+
new bt(async () => {
|
|
8448
8448
|
await new Promise((t) => {
|
|
8449
8449
|
setTimeout(() => {
|
|
8450
8450
|
t();
|
|
@@ -8462,7 +8462,7 @@ class Mn {
|
|
|
8462
8462
|
if (this.readOnly)
|
|
8463
8463
|
return;
|
|
8464
8464
|
const e = this.serialize();
|
|
8465
|
-
return new
|
|
8465
|
+
return new bt(async () => {
|
|
8466
8466
|
await this.updateTransaction({
|
|
8467
8467
|
variables: {
|
|
8468
8468
|
id: this.transaction.id,
|
|
@@ -8475,7 +8475,7 @@ class Mn {
|
|
|
8475
8475
|
const e = this.getCommandContext().getState();
|
|
8476
8476
|
if (!e)
|
|
8477
8477
|
throw new b("Attempted to serialize state before it was initialized.");
|
|
8478
|
-
return { transaction: JSON.stringify(this.dehydrateState(
|
|
8478
|
+
return { transaction: JSON.stringify(this.dehydrateState(ge(e.transaction))) };
|
|
8479
8479
|
}
|
|
8480
8480
|
dehydrateState(e) {
|
|
8481
8481
|
var t;
|
|
@@ -8508,18 +8508,18 @@ class Mn {
|
|
|
8508
8508
|
), e), []);
|
|
8509
8509
|
}
|
|
8510
8510
|
getInvalidModelVariants() {
|
|
8511
|
-
return this.workflow.steps.reduce((e, t) => (t.type ===
|
|
8511
|
+
return this.workflow.steps.reduce((e, t) => (t.type === M.Model && !ae(t, this.stepSelections) && e.push(t.stepName), e), []);
|
|
8512
8512
|
}
|
|
8513
8513
|
async stepElementsForIntroducedSilentSteps(e, t) {
|
|
8514
8514
|
const A = this.product;
|
|
8515
8515
|
if (!A)
|
|
8516
8516
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
8517
8517
|
const a = async (r, c, B) => {
|
|
8518
|
-
if (r.type ===
|
|
8519
|
-
const l = await new
|
|
8518
|
+
if (r.type === M.SilentIllustration) {
|
|
8519
|
+
const l = await new kt(r, c).trigger();
|
|
8520
8520
|
return { step: r, results: l };
|
|
8521
|
-
} else if (r.type ===
|
|
8522
|
-
const l = await new
|
|
8521
|
+
} else if (r.type === M.ProductOverlay) {
|
|
8522
|
+
const l = await new kt(
|
|
8523
8523
|
r,
|
|
8524
8524
|
c,
|
|
8525
8525
|
B
|
|
@@ -8587,7 +8587,7 @@ class Mn {
|
|
|
8587
8587
|
this.stepSelections = {
|
|
8588
8588
|
...this.stepSelections,
|
|
8589
8589
|
[e]: { selectedVariants: t }
|
|
8590
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((Q, I) => Q + I.selectedVariants.map((F) => F.priceModifier || 0).reduce((F,
|
|
8590
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((Q, I) => Q + I.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, y) => F + y, 0), 0), this.workflow.steps.forEach((Q) => {
|
|
8591
8591
|
ae(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1, delete this.stepMetadata[Q.stepName], delete this.stepSelections[Q.stepName], delete this.storage[Q.stepName]);
|
|
8592
8592
|
});
|
|
8593
8593
|
const i = this.allScenes, s = ce(i, n), o = ce(i, this.stepSelections), r = s.map((Q) => Q.silentSteps).flat(), B = o.map((Q) => Q.silentSteps).flat().filter(
|
|
@@ -8603,12 +8603,12 @@ class Mn {
|
|
|
8603
8603
|
[e]: A
|
|
8604
8604
|
}, this.removeElements(l);
|
|
8605
8605
|
const w = this.workflow.steps.find((Q) => Q.stepName === e);
|
|
8606
|
-
if ((w == null ? void 0 : w.type) ===
|
|
8606
|
+
if ((w == null ? void 0 : w.type) === M.Frame) {
|
|
8607
8607
|
const Q = this.getStepSpecificServices(e);
|
|
8608
8608
|
(p = Q == null ? void 0 : Q.frameService) == null || p.setTargetElements(A.map((I) => I.id));
|
|
8609
8609
|
}
|
|
8610
|
-
const
|
|
8611
|
-
|
|
8610
|
+
const h = l.map((Q) => new ne(Q.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
|
|
8611
|
+
E.length > 0 && this.commandContext.apply(new k(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
8612
8612
|
const D = this.getInvalidModelVariants(), m = this.modelContainer;
|
|
8613
8613
|
if (m) {
|
|
8614
8614
|
const Q = D.map(
|
|
@@ -8629,7 +8629,7 @@ class Mn {
|
|
|
8629
8629
|
for (const o of a)
|
|
8630
8630
|
if (!this.stepInitialised[o.stepName])
|
|
8631
8631
|
switch (this.stepInitialised[o.stepName] = !0, o.type) {
|
|
8632
|
-
case
|
|
8632
|
+
case M.DigitalContent:
|
|
8633
8633
|
A.push(
|
|
8634
8634
|
wA.init(
|
|
8635
8635
|
o,
|
|
@@ -8638,7 +8638,7 @@ class Mn {
|
|
|
8638
8638
|
)
|
|
8639
8639
|
);
|
|
8640
8640
|
break;
|
|
8641
|
-
case
|
|
8641
|
+
case M.Frame:
|
|
8642
8642
|
{
|
|
8643
8643
|
const r = new Xa(o.data.forceImageCover);
|
|
8644
8644
|
r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
|
|
@@ -8648,40 +8648,40 @@ class Mn {
|
|
|
8648
8648
|
);
|
|
8649
8649
|
}
|
|
8650
8650
|
break;
|
|
8651
|
-
case
|
|
8651
|
+
case M.Illustration:
|
|
8652
8652
|
A.push(
|
|
8653
8653
|
ve.init(o, this, this.reloadedState)
|
|
8654
8654
|
);
|
|
8655
8655
|
break;
|
|
8656
|
-
case
|
|
8656
|
+
case M.Material:
|
|
8657
8657
|
A.push(
|
|
8658
|
-
|
|
8658
|
+
hA.init(o, this, this.reloadedState)
|
|
8659
8659
|
);
|
|
8660
8660
|
break;
|
|
8661
|
-
case
|
|
8662
|
-
A.push(
|
|
8661
|
+
case M.Model:
|
|
8662
|
+
A.push(EA.init(o, this, this.reloadedState));
|
|
8663
8663
|
break;
|
|
8664
|
-
case
|
|
8664
|
+
case M.Module:
|
|
8665
8665
|
this.stepSpecificServices[o.stepName] = {
|
|
8666
8666
|
module: await FA(o.data.module)
|
|
8667
8667
|
}, A.push(
|
|
8668
8668
|
uA.init(o, this, this.reloadedState)
|
|
8669
8669
|
);
|
|
8670
8670
|
break;
|
|
8671
|
-
case
|
|
8671
|
+
case M.Picture:
|
|
8672
8672
|
A.push(
|
|
8673
8673
|
QA.init(o, this, this.reloadedState)
|
|
8674
8674
|
);
|
|
8675
8675
|
break;
|
|
8676
|
-
case
|
|
8676
|
+
case M.Question:
|
|
8677
8677
|
A.push(
|
|
8678
8678
|
mA.init(o, this, this.reloadedState)
|
|
8679
8679
|
);
|
|
8680
8680
|
break;
|
|
8681
|
-
case
|
|
8681
|
+
case M.Shape:
|
|
8682
8682
|
A.push(Ee.init(o, this, this.reloadedState));
|
|
8683
8683
|
break;
|
|
8684
|
-
case
|
|
8684
|
+
case M.Text:
|
|
8685
8685
|
A.push(j.init(o, this, this.reloadedState));
|
|
8686
8686
|
break;
|
|
8687
8687
|
}
|
|
@@ -8690,7 +8690,7 @@ class Mn {
|
|
|
8690
8690
|
throw new Error(`Step initialization failed: ${o.reason}`);
|
|
8691
8691
|
return o.value;
|
|
8692
8692
|
}), i = n.filter((o) => !!o && !!o.command).map((o) => o.command), s = n.filter((o) => !!o && !!o.followup).map((o) => o.followup);
|
|
8693
|
-
i && i.length > 0 && this.commandContext.apply(new
|
|
8693
|
+
i && i.length > 0 && this.commandContext.apply(new k(i), !0);
|
|
8694
8694
|
for (const o of s)
|
|
8695
8695
|
await o();
|
|
8696
8696
|
s.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
|
|
@@ -8828,7 +8828,7 @@ class Z {
|
|
|
8828
8828
|
return this.variantData.enabled;
|
|
8829
8829
|
}
|
|
8830
8830
|
}
|
|
8831
|
-
const yA = class
|
|
8831
|
+
const yA = class rt {
|
|
8832
8832
|
constructor(e, t, A) {
|
|
8833
8833
|
this.manager = e, this.step = t, this.tags = A;
|
|
8834
8834
|
}
|
|
@@ -8838,13 +8838,13 @@ const yA = class it {
|
|
|
8838
8838
|
* @param value The new value
|
|
8839
8839
|
*/
|
|
8840
8840
|
setUpdateState(e) {
|
|
8841
|
-
|
|
8841
|
+
rt.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
|
|
8842
8842
|
}
|
|
8843
8843
|
/**
|
|
8844
8844
|
* @returns Gets the current update state of this step. All step handles for this step will see this value.
|
|
8845
8845
|
*/
|
|
8846
8846
|
getUpdateState() {
|
|
8847
|
-
return !!
|
|
8847
|
+
return !!rt.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
|
|
8848
8848
|
}
|
|
8849
8849
|
/**
|
|
8850
8850
|
* Gets the currently selected variant, or undefined if no variant is selected.
|
|
@@ -9021,7 +9021,7 @@ class Yn extends X {
|
|
|
9021
9021
|
super(e, t, A);
|
|
9022
9022
|
}
|
|
9023
9023
|
selectVariant(e) {
|
|
9024
|
-
return
|
|
9024
|
+
return hA.selectVariant(
|
|
9025
9025
|
this.step,
|
|
9026
9026
|
e.getResource(),
|
|
9027
9027
|
this.manager,
|
|
@@ -9034,7 +9034,7 @@ class Pn extends X {
|
|
|
9034
9034
|
super(e, t, A);
|
|
9035
9035
|
}
|
|
9036
9036
|
selectVariant(e) {
|
|
9037
|
-
return
|
|
9037
|
+
return EA.selectVariant(
|
|
9038
9038
|
this.step,
|
|
9039
9039
|
e.getResource(),
|
|
9040
9040
|
this.manager,
|
|
@@ -9258,7 +9258,7 @@ class Rn extends X {
|
|
|
9258
9258
|
}
|
|
9259
9259
|
]);
|
|
9260
9260
|
else {
|
|
9261
|
-
const w = B.filter((
|
|
9261
|
+
const w = B.filter((h) => h.stepID !== this.step.stepName);
|
|
9262
9262
|
this.manager.setInformationResults(w);
|
|
9263
9263
|
}
|
|
9264
9264
|
return t.helperText = l || c, t.errorText = l, t;
|
|
@@ -9338,7 +9338,7 @@ class Hn extends X {
|
|
|
9338
9338
|
return this.step.data.content;
|
|
9339
9339
|
}
|
|
9340
9340
|
}
|
|
9341
|
-
class
|
|
9341
|
+
class kn extends X {
|
|
9342
9342
|
constructor(e, t, A) {
|
|
9343
9343
|
super(e, t, A);
|
|
9344
9344
|
}
|
|
@@ -9365,7 +9365,7 @@ class Un extends X {
|
|
|
9365
9365
|
);
|
|
9366
9366
|
}
|
|
9367
9367
|
}
|
|
9368
|
-
class
|
|
9368
|
+
class Un extends X {
|
|
9369
9369
|
constructor(e, t, A) {
|
|
9370
9370
|
super(e, t, A);
|
|
9371
9371
|
}
|
|
@@ -9415,28 +9415,28 @@ class kn extends X {
|
|
|
9415
9415
|
class Me {
|
|
9416
9416
|
static get(e, t) {
|
|
9417
9417
|
switch (t.type) {
|
|
9418
|
-
case
|
|
9419
|
-
return new
|
|
9420
|
-
case
|
|
9418
|
+
case M.DigitalContent:
|
|
9419
|
+
return new kn(e, t, e.getStepTags(t.stepName));
|
|
9420
|
+
case M.Information:
|
|
9421
9421
|
return new Hn(e, t, e.getStepTags(t.stepName));
|
|
9422
|
-
case
|
|
9422
|
+
case M.Question:
|
|
9423
9423
|
return new Nn(e, t, e.getStepTags(t.stepName));
|
|
9424
|
-
case
|
|
9424
|
+
case M.Text:
|
|
9425
9425
|
return new Rn(e, t, e.getStepTags(t.stepName));
|
|
9426
|
-
case
|
|
9426
|
+
case M.Illustration:
|
|
9427
9427
|
return new Sn(e, t, e.getStepTags(t.stepName));
|
|
9428
|
-
case
|
|
9428
|
+
case M.Picture:
|
|
9429
9429
|
return new xn(e, t, e.getStepTags(t.stepName));
|
|
9430
|
-
case
|
|
9430
|
+
case M.Shape:
|
|
9431
9431
|
return new vn(e, t, e.getStepTags(t.stepName));
|
|
9432
|
-
case
|
|
9432
|
+
case M.Material:
|
|
9433
9433
|
return new Yn(e, t, e.getStepTags(t.stepName));
|
|
9434
|
-
case
|
|
9434
|
+
case M.Model:
|
|
9435
9435
|
return new Pn(e, t, e.getStepTags(t.stepName));
|
|
9436
|
-
case
|
|
9437
|
-
return new
|
|
9438
|
-
case
|
|
9439
|
-
return new
|
|
9436
|
+
case M.Frame:
|
|
9437
|
+
return new ss(e, t, e.getStepTags(t.stepName));
|
|
9438
|
+
case M.Module:
|
|
9439
|
+
return new Un(e, t, e.getStepTags(t.stepName));
|
|
9440
9440
|
default:
|
|
9441
9441
|
throw new b(`Step type ${t.type} not yet supported in Core SDK`);
|
|
9442
9442
|
}
|
|
@@ -9514,14 +9514,14 @@ const MA = f`
|
|
|
9514
9514
|
}
|
|
9515
9515
|
}
|
|
9516
9516
|
`;
|
|
9517
|
-
function
|
|
9517
|
+
function Oe(g) {
|
|
9518
9518
|
const e = JSON.parse(atob(g.split(".")[1])).exp;
|
|
9519
9519
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
9520
9520
|
}
|
|
9521
9521
|
const Jn = async (g) => {
|
|
9522
9522
|
var i, s;
|
|
9523
9523
|
const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
9524
|
-
return A && !
|
|
9524
|
+
return A && !Oe(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
9525
9525
|
mutation: Gn,
|
|
9526
9526
|
errorPolicy: "all",
|
|
9527
9527
|
fetchPolicy: "no-cache",
|
|
@@ -9542,7 +9542,7 @@ const Jn = async (g) => {
|
|
|
9542
9542
|
}, Tn = async (g) => {
|
|
9543
9543
|
var i, s;
|
|
9544
9544
|
const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
9545
|
-
return A && !
|
|
9545
|
+
return A && !Oe(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
9546
9546
|
mutation: bn,
|
|
9547
9547
|
errorPolicy: "all",
|
|
9548
9548
|
fetchPolicy: "no-cache",
|
|
@@ -9562,7 +9562,7 @@ const Jn = async (g) => {
|
|
|
9562
9562
|
headers: a
|
|
9563
9563
|
}
|
|
9564
9564
|
})).data) == null ? void 0 : s.designCreateMany;
|
|
9565
|
-
},
|
|
9565
|
+
}, ct = (g, e, t) => {
|
|
9566
9566
|
const A = (n) => {
|
|
9567
9567
|
const i = {};
|
|
9568
9568
|
if (n.type === "Frame") {
|
|
@@ -9601,7 +9601,7 @@ const Jn = async (g) => {
|
|
|
9601
9601
|
}, On = (g, e, t, A) => {
|
|
9602
9602
|
const a = {};
|
|
9603
9603
|
let n = {};
|
|
9604
|
-
t ? n =
|
|
9604
|
+
t ? n = ct(t, e, !1) : A && (n = A);
|
|
9605
9605
|
const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
|
|
9606
9606
|
for (const o of s) {
|
|
9607
9607
|
if (Object.keys(g).includes(o)) {
|
|
@@ -9662,7 +9662,7 @@ const Jn = async (g) => {
|
|
|
9662
9662
|
S.errors && console.log("Server Error:", W.message);
|
|
9663
9663
|
}), null) : T ?? null;
|
|
9664
9664
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await g.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
9665
|
-
const l = g.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, w = o &&
|
|
9665
|
+
const l = g.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, w = o && ct(o, e, !0), h = o && ct(o, e, !1), u = async (y) => {
|
|
9666
9666
|
const Y = {};
|
|
9667
9667
|
let N = 0;
|
|
9668
9668
|
if (Object.keys(n).length > 0)
|
|
@@ -9670,7 +9670,7 @@ const Jn = async (g) => {
|
|
|
9670
9670
|
const T = n[S], R = e.steps.find((W) => W.stepName === S);
|
|
9671
9671
|
for (let W = 0; W < T.selections.length; ++W) {
|
|
9672
9672
|
const O = T.selections[W];
|
|
9673
|
-
if (R && (!
|
|
9673
|
+
if (R && (!y || R.option && (R.option.variants || []).length > 1 && !R.data.hideSelectionInCart && !R.data.hideSelectionsInCart)) {
|
|
9674
9674
|
const ee = R.stepTitle;
|
|
9675
9675
|
Y[ee] ? Y[ee].push({
|
|
9676
9676
|
id: O.id || "",
|
|
@@ -9688,27 +9688,27 @@ const Jn = async (g) => {
|
|
|
9688
9688
|
}
|
|
9689
9689
|
}
|
|
9690
9690
|
return [Y, N];
|
|
9691
|
-
}, [
|
|
9692
|
-
Object.keys(
|
|
9691
|
+
}, [E] = await u(!0), D = Object.fromEntries(
|
|
9692
|
+
Object.keys(E).map((y) => [y, E[y].map((Y) => Y.id)])
|
|
9693
9693
|
), [m] = await u(!1), p = Object.fromEntries(
|
|
9694
|
-
Object.keys(m).map((
|
|
9695
|
-
|
|
9696
|
-
m[
|
|
9694
|
+
Object.keys(m).map((y) => [
|
|
9695
|
+
y,
|
|
9696
|
+
m[y].map((Y) => Y.id)
|
|
9697
9697
|
])
|
|
9698
9698
|
);
|
|
9699
9699
|
let Q = await s(C, a.id);
|
|
9700
9700
|
if (Q) {
|
|
9701
|
-
const
|
|
9702
|
-
Q = (await
|
|
9703
|
-
{ name: `${a.id}-preview-image.png`, blob:
|
|
9704
|
-
|
|
9701
|
+
const y = await (await fetch(Q)).blob();
|
|
9702
|
+
Q = (await U.uploadAsset(
|
|
9703
|
+
{ name: `${a.id}-preview-image.png`, blob: y },
|
|
9704
|
+
At.Image,
|
|
9705
9705
|
!0,
|
|
9706
9706
|
!1
|
|
9707
9707
|
)).fileLink;
|
|
9708
9708
|
}
|
|
9709
9709
|
return {
|
|
9710
9710
|
designDetails: (() => {
|
|
9711
|
-
const
|
|
9711
|
+
const y = {
|
|
9712
9712
|
name: i,
|
|
9713
9713
|
layouts: t.map((Y) => ({
|
|
9714
9714
|
index: Y.index,
|
|
@@ -9719,25 +9719,25 @@ const Jn = async (g) => {
|
|
|
9719
9719
|
useThreeDimPreview: !!C,
|
|
9720
9720
|
previewImage: Q
|
|
9721
9721
|
};
|
|
9722
|
-
if (
|
|
9722
|
+
if (h) {
|
|
9723
9723
|
const Y = [];
|
|
9724
|
-
for (const [N, S] of Object.entries(
|
|
9724
|
+
for (const [N, S] of Object.entries(h))
|
|
9725
9725
|
Y.push({ key: N, value: S });
|
|
9726
|
-
|
|
9726
|
+
y.metadata = Y;
|
|
9727
9727
|
}
|
|
9728
9728
|
if (D) {
|
|
9729
9729
|
const Y = [];
|
|
9730
9730
|
for (const [N, S] of Object.entries(p))
|
|
9731
9731
|
Y.push({ key: N, ids: S });
|
|
9732
|
-
|
|
9732
|
+
y.selectedVariants = Y;
|
|
9733
9733
|
}
|
|
9734
|
-
return
|
|
9734
|
+
return y;
|
|
9735
9735
|
})(),
|
|
9736
|
-
cartSelectionsWithPrices:
|
|
9736
|
+
cartSelectionsWithPrices: E,
|
|
9737
9737
|
cartMetadata: w
|
|
9738
9738
|
};
|
|
9739
9739
|
}, Ln = async (g, e, t, A, a, n, i, s, o, r, c) => {
|
|
9740
|
-
var u,
|
|
9740
|
+
var u, E;
|
|
9741
9741
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
9742
9742
|
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await YA(
|
|
9743
9743
|
g,
|
|
@@ -9755,16 +9755,16 @@ const Jn = async (g) => {
|
|
|
9755
9755
|
if (!(C != null && C.transaction))
|
|
9756
9756
|
throw new Error("Failed to create design");
|
|
9757
9757
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
9758
|
-
const
|
|
9758
|
+
const h = C.transaction;
|
|
9759
9759
|
return SA(
|
|
9760
|
-
|
|
9760
|
+
h,
|
|
9761
9761
|
a,
|
|
9762
9762
|
e,
|
|
9763
9763
|
l,
|
|
9764
9764
|
C == null ? void 0 : C.sku,
|
|
9765
9765
|
d,
|
|
9766
9766
|
w,
|
|
9767
|
-
(
|
|
9767
|
+
(E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
|
|
9768
9768
|
);
|
|
9769
9769
|
}, zn = async (g, e, t) => {
|
|
9770
9770
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
@@ -9884,7 +9884,7 @@ class Kn {
|
|
|
9884
9884
|
throw new b("Unexpected storage method requested");
|
|
9885
9885
|
}
|
|
9886
9886
|
}
|
|
9887
|
-
const
|
|
9887
|
+
const $e = new Kn(), jn = f`
|
|
9888
9888
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
9889
9889
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
9890
9890
|
id
|
|
@@ -9904,7 +9904,7 @@ class Se {
|
|
|
9904
9904
|
constructor(e, t) {
|
|
9905
9905
|
var a;
|
|
9906
9906
|
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = _t(async () => {
|
|
9907
|
-
await
|
|
9907
|
+
await $e.getSavedDesignByTransaction(
|
|
9908
9908
|
this.getWorkflowManager().getTransaction().id
|
|
9909
9909
|
) && this.save();
|
|
9910
9910
|
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, s) => {
|
|
@@ -9980,8 +9980,8 @@ class Se {
|
|
|
9980
9980
|
return this.workflowManager;
|
|
9981
9981
|
}
|
|
9982
9982
|
async createPreviewImage(e, t) {
|
|
9983
|
-
var
|
|
9984
|
-
const A = this.workflowManager.getWorkflow(), a = (
|
|
9983
|
+
var E, D;
|
|
9984
|
+
const A = this.workflowManager.getWorkflow(), a = (E = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : E.lookAtAnimation;
|
|
9985
9985
|
if (e) {
|
|
9986
9986
|
if (!a)
|
|
9987
9987
|
throw new Error("Failed to generate cart preview image!");
|
|
@@ -9989,7 +9989,7 @@ class Se {
|
|
|
9989
9989
|
}
|
|
9990
9990
|
let n = 2048;
|
|
9991
9991
|
t && t <= 2048 && (n = t);
|
|
9992
|
-
const i =
|
|
9992
|
+
const i = ke(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], c = s.find((m) => {
|
|
9993
9993
|
var p;
|
|
9994
9994
|
return ((p = m.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
|
|
9995
9995
|
}) || s[0], B = c.layoutState.layout.previewRegion ? {
|
|
@@ -10004,7 +10004,7 @@ class Se {
|
|
|
10004
10004
|
height: c.layoutState.layout.height
|
|
10005
10005
|
}, l = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
|
|
10006
10006
|
if (!d)
|
|
10007
|
-
throw new
|
|
10007
|
+
throw new Ve("Failed to obtain 2D context for preview image creation");
|
|
10008
10008
|
const C = zt(l.layoutState.layout, l.layoutState.elements, {
|
|
10009
10009
|
renderingConfiguration: {
|
|
10010
10010
|
purpose: Kt.Print,
|
|
@@ -10014,10 +10014,10 @@ class Se {
|
|
|
10014
10014
|
await (await $t.from(d, w, {
|
|
10015
10015
|
anonymousCrossOrigin: !0,
|
|
10016
10016
|
ignoreDimensions: !1,
|
|
10017
|
-
createCanvas:
|
|
10017
|
+
createCanvas: ke,
|
|
10018
10018
|
createImage: Vt,
|
|
10019
10019
|
DOMParser: Wt(),
|
|
10020
|
-
fetch:
|
|
10020
|
+
fetch: gt
|
|
10021
10021
|
})).render();
|
|
10022
10022
|
const u = await this.getCanvasObjectURLAsync(i);
|
|
10023
10023
|
return i.toDataURL(u);
|
|
@@ -10116,13 +10116,13 @@ class Se {
|
|
|
10116
10116
|
B !== void 0 && (B.forEach((l) => c.add(JSON.stringify(l))), s.forEach((l) => {
|
|
10117
10117
|
const d = l.getRaw().globalPropertyAspectConfigurations;
|
|
10118
10118
|
d !== void 0 && d.forEach((C) => {
|
|
10119
|
-
const w = o(C),
|
|
10120
|
-
if (
|
|
10119
|
+
const w = o(C), h = c.has(JSON.stringify(C));
|
|
10120
|
+
if (h && (w == null ? void 0 : w.getType()) === "Option") {
|
|
10121
10121
|
const u = l.getCurrentVariant();
|
|
10122
10122
|
if (!u)
|
|
10123
10123
|
return;
|
|
10124
10124
|
r.selectVariant(u), c.delete(JSON.stringify(C));
|
|
10125
|
-
} else if (
|
|
10125
|
+
} else if (h && (w == null ? void 0 : w.getType()) === "Text") {
|
|
10126
10126
|
const u = l.getText();
|
|
10127
10127
|
r.setText(u), c.delete(JSON.stringify(C));
|
|
10128
10128
|
}
|
|
@@ -10188,7 +10188,7 @@ class Se {
|
|
|
10188
10188
|
var o;
|
|
10189
10189
|
if (e)
|
|
10190
10190
|
return e;
|
|
10191
|
-
const n = this.getWorkflowManager().getTransaction().id, s = (o = (await
|
|
10191
|
+
const n = this.getWorkflowManager().getTransaction().id, s = (o = (await $e.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
|
|
10192
10192
|
return s || "My design";
|
|
10193
10193
|
})(),
|
|
10194
10194
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
@@ -10199,14 +10199,14 @@ class Se {
|
|
|
10199
10199
|
workflowId: this.getWorkflowManager().getWorkflow().id,
|
|
10200
10200
|
lastEdited: /* @__PURE__ */ new Date()
|
|
10201
10201
|
};
|
|
10202
|
-
return await
|
|
10202
|
+
return await $e.addDesign(a), a;
|
|
10203
10203
|
}
|
|
10204
10204
|
async copy() {
|
|
10205
10205
|
var s;
|
|
10206
|
-
const e =
|
|
10206
|
+
const e = ge(this.getCommandContext().getState());
|
|
10207
10207
|
if (!e)
|
|
10208
10208
|
throw new b("Internal state is undefined! Cannot copy experience!");
|
|
10209
|
-
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new
|
|
10209
|
+
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new ns({}), n = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
|
|
10210
10210
|
if (!n)
|
|
10211
10211
|
throw new b("Integration product id is undefined!");
|
|
10212
10212
|
return await a.initFromIntegrationProduct(n), await a.getWorkflowExperience(A.id, t, void 0);
|
|
@@ -10233,7 +10233,7 @@ class Se {
|
|
|
10233
10233
|
* @returns Returns true when a valid handle is implemented for a given step type. Certain steps don't support handles, such as silent illustrations.
|
|
10234
10234
|
*/
|
|
10235
10235
|
stepHasHandle(e) {
|
|
10236
|
-
return e.type !==
|
|
10236
|
+
return e.type !== M.SilentIllustration && e.type !== M.ProductOverlay;
|
|
10237
10237
|
}
|
|
10238
10238
|
getExportedData() {
|
|
10239
10239
|
var a;
|
|
@@ -10305,9 +10305,9 @@ const Wn = [
|
|
|
10305
10305
|
"tspan"
|
|
10306
10306
|
], Xn = async (g, e, t) => {
|
|
10307
10307
|
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);
|
|
10308
|
-
s.searchParams.append("video",
|
|
10309
|
-
const o = s.toString(), c = `data:image/svg+xml;base64,${
|
|
10310
|
-
const C = g.find((
|
|
10308
|
+
s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
10309
|
+
const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await tA(o, { type: "svg" }))}`, B = (d) => {
|
|
10310
|
+
const C = g.find((h) => h.panelId === d.panelId);
|
|
10311
10311
|
if (!C)
|
|
10312
10312
|
throw new z(d);
|
|
10313
10313
|
const w = J();
|
|
@@ -10331,7 +10331,7 @@ const Wn = [
|
|
|
10331
10331
|
return console.error(d), [];
|
|
10332
10332
|
}
|
|
10333
10333
|
}, qn = async (g, e, t, A) => {
|
|
10334
|
-
const a = t.data, n = a.assetUrl, i = await
|
|
10334
|
+
const a = t.data, n = a.assetUrl, i = await nt(n);
|
|
10335
10335
|
try {
|
|
10336
10336
|
const s = _A(a, A.option);
|
|
10337
10337
|
s && (e[A.stepName] = { selectedVariants: [s] });
|
|
@@ -10343,10 +10343,10 @@ const Wn = [
|
|
|
10343
10343
|
height: 1
|
|
10344
10344
|
},
|
|
10345
10345
|
(w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
|
|
10346
|
-
), B = await
|
|
10346
|
+
), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
|
|
10347
10347
|
if (!d)
|
|
10348
10348
|
throw new z(r);
|
|
10349
|
-
const C =
|
|
10349
|
+
const C = Bt(i, B, {
|
|
10350
10350
|
scale: a.scale,
|
|
10351
10351
|
left: a.x,
|
|
10352
10352
|
top: a.y
|
|
@@ -10388,7 +10388,7 @@ const Wn = [
|
|
|
10388
10388
|
const a = t.data, n = A.option;
|
|
10389
10389
|
if (!n)
|
|
10390
10390
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10391
|
-
const i = ((p = n.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) ||
|
|
10391
|
+
const i = ((p = n.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || Ke(n);
|
|
10392
10392
|
if (!i)
|
|
10393
10393
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
10394
10394
|
if (!i.asset)
|
|
@@ -10409,18 +10409,18 @@ const Wn = [
|
|
|
10409
10409
|
const Y = F.value, S = `spiff-fill-${Y.replace(/\W/g, "")}`;
|
|
10410
10410
|
I.classList.add(S), w[S] = { browserValue: Y };
|
|
10411
10411
|
}
|
|
10412
|
-
const
|
|
10413
|
-
if (
|
|
10414
|
-
const Y =
|
|
10412
|
+
const y = I.attributes.getNamedItem("stroke");
|
|
10413
|
+
if (y && y.value !== "none") {
|
|
10414
|
+
const Y = y.value, S = `spiff-stroke-${Y.replace(/\W/g, "")}`;
|
|
10415
10415
|
I.classList.add(S), w[S] = { browserValue: Y };
|
|
10416
10416
|
}
|
|
10417
10417
|
});
|
|
10418
|
-
const u = Zt().serializeToString(C),
|
|
10419
|
-
if (
|
|
10418
|
+
const u = Zt().serializeToString(C), E = a.colors;
|
|
10419
|
+
if (E) {
|
|
10420
10420
|
for (const [I, F] of Object.entries(w))
|
|
10421
|
-
for (const
|
|
10422
|
-
if (F.browserValue ===
|
|
10423
|
-
w[I] = { browserValue:
|
|
10421
|
+
for (const y of Object.keys(E))
|
|
10422
|
+
if (F.browserValue === y) {
|
|
10423
|
+
w[I] = { browserValue: E[y] };
|
|
10424
10424
|
break;
|
|
10425
10425
|
}
|
|
10426
10426
|
}
|
|
@@ -10428,11 +10428,11 @@ const Wn = [
|
|
|
10428
10428
|
const F = g.find((Y) => Y.panelId === I.panelId);
|
|
10429
10429
|
if (!F)
|
|
10430
10430
|
throw new z(I);
|
|
10431
|
-
const
|
|
10431
|
+
const y = J();
|
|
10432
10432
|
return new L(
|
|
10433
10433
|
{
|
|
10434
10434
|
colors: w,
|
|
10435
|
-
id:
|
|
10435
|
+
id: y,
|
|
10436
10436
|
svg: u,
|
|
10437
10437
|
type: G.Illustration,
|
|
10438
10438
|
y: I.top,
|
|
@@ -10487,7 +10487,7 @@ const Wn = [
|
|
|
10487
10487
|
const a = t.data, n = A.option;
|
|
10488
10488
|
if (!n)
|
|
10489
10489
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10490
|
-
const i = ((c = n.variants) == null ? void 0 : c.find((l) => l.id === a.pictureVariantId)) ||
|
|
10490
|
+
const i = ((c = n.variants) == null ? void 0 : c.find((l) => l.id === a.pictureVariantId)) || Ke(n);
|
|
10491
10491
|
if (!i)
|
|
10492
10492
|
return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
|
|
10493
10493
|
if (!i.asset)
|
|
@@ -10529,12 +10529,12 @@ const Wn = [
|
|
|
10529
10529
|
const a = t.data, n = A.option;
|
|
10530
10530
|
if (!n)
|
|
10531
10531
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10532
|
-
const i = ((r = n.variants) == null ? void 0 : r.find((c) => c.id === a.colorVariantId)) ||
|
|
10532
|
+
const i = ((r = n.variants) == null ? void 0 : r.find((c) => c.id === a.colorVariantId)) || Ke(n);
|
|
10533
10533
|
if (!i)
|
|
10534
10534
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
10535
10535
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10536
10536
|
const s = (c) => {
|
|
10537
|
-
const B = g.find((
|
|
10537
|
+
const B = g.find((h) => h.panelId === c.panelId);
|
|
10538
10538
|
if (!B)
|
|
10539
10539
|
throw new z(c);
|
|
10540
10540
|
const l = `
|
|
@@ -10584,7 +10584,7 @@ const Wn = [
|
|
|
10584
10584
|
}, ti = async (g, e, t) => {
|
|
10585
10585
|
const A = [], n = (() => {
|
|
10586
10586
|
var r, c;
|
|
10587
|
-
return e.type ===
|
|
10587
|
+
return e.type === M.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = e.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
10588
10588
|
})(), s = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? G.Image : n.endsWith(".svg") ? G.Illustration : G.Illustration)(), o = e.data.regions;
|
|
10589
10589
|
if (s === "image")
|
|
10590
10590
|
try {
|
|
@@ -10602,7 +10602,7 @@ const Wn = [
|
|
|
10602
10602
|
height: r.height,
|
|
10603
10603
|
layer: r.layer,
|
|
10604
10604
|
layerIndex: r.layerIndex,
|
|
10605
|
-
productOverlay: e.type ===
|
|
10605
|
+
productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
|
|
10606
10606
|
scaleX: 1,
|
|
10607
10607
|
scaleY: 1,
|
|
10608
10608
|
rotation: r.rotation,
|
|
@@ -10618,7 +10618,7 @@ const Wn = [
|
|
|
10618
10618
|
const r = await _(n, !0), c = (B) => {
|
|
10619
10619
|
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Xt().parseFromString(C, "image/svg+xml").firstElementChild;
|
|
10620
10620
|
if (!u)
|
|
10621
|
-
throw new
|
|
10621
|
+
throw new he("Failed to read SVG.");
|
|
10622
10622
|
return qt(u), Zt().serializeToString(u);
|
|
10623
10623
|
};
|
|
10624
10624
|
o.forEach((B) => {
|
|
@@ -10641,7 +10641,7 @@ const Wn = [
|
|
|
10641
10641
|
scaleX: 1,
|
|
10642
10642
|
scaleY: 1,
|
|
10643
10643
|
rotation: B.rotation,
|
|
10644
|
-
productOverlay: e.type ===
|
|
10644
|
+
productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
|
|
10645
10645
|
excludeFromExport: e.data.excludeFromPrint
|
|
10646
10646
|
};
|
|
10647
10647
|
A.push(new L(d, l));
|
|
@@ -10649,42 +10649,42 @@ const Wn = [
|
|
|
10649
10649
|
}
|
|
10650
10650
|
return A;
|
|
10651
10651
|
}, Ai = async (g, e, t, A) => {
|
|
10652
|
-
const a = [], n = t.data, i = 30, s = (
|
|
10652
|
+
const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
|
|
10653
10653
|
var D;
|
|
10654
|
-
const
|
|
10655
|
-
if (!
|
|
10654
|
+
const h = A.option;
|
|
10655
|
+
if (!h)
|
|
10656
10656
|
return;
|
|
10657
|
-
const u = ((D =
|
|
10657
|
+
const u = ((D = h.variants) == null ? void 0 : D.find((m) => m.id === n.fontVariantId)) || Ke(h);
|
|
10658
10658
|
if (!u || !u.asset)
|
|
10659
10659
|
return;
|
|
10660
10660
|
e[A.stepName] = { selectedVariants: [u] };
|
|
10661
|
-
const
|
|
10662
|
-
if (
|
|
10663
|
-
return
|
|
10661
|
+
const E = u.asset.fileLink;
|
|
10662
|
+
if (E)
|
|
10663
|
+
return E;
|
|
10664
10664
|
}, c = await (async () => {
|
|
10665
|
-
const
|
|
10666
|
-
if (!
|
|
10665
|
+
const h = o();
|
|
10666
|
+
if (!h)
|
|
10667
10667
|
return;
|
|
10668
|
-
const u = await
|
|
10668
|
+
const u = await dt(h);
|
|
10669
10669
|
return {
|
|
10670
|
-
assetUrl:
|
|
10670
|
+
assetUrl: h,
|
|
10671
10671
|
name: u.names.fullName.en
|
|
10672
10672
|
};
|
|
10673
|
-
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l =
|
|
10673
|
+
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = it(B, {
|
|
10674
10674
|
vertical: A.data.vertical,
|
|
10675
10675
|
uppercase: A.data.uppercase
|
|
10676
|
-
}), d = async (
|
|
10677
|
-
const u =
|
|
10676
|
+
}), d = async (h) => {
|
|
10677
|
+
const u = h.colorOption;
|
|
10678
10678
|
if (!u)
|
|
10679
10679
|
return;
|
|
10680
|
-
const
|
|
10681
|
-
return
|
|
10680
|
+
const E = V.getDefaultVariant(u);
|
|
10681
|
+
return E == null ? void 0 : E.color;
|
|
10682
10682
|
}, C = n.color || await d(A.data), w = A.data.regions;
|
|
10683
|
-
for (const
|
|
10684
|
-
const u = g.find((D) => D.panelId ===
|
|
10683
|
+
for (const h of w) {
|
|
10684
|
+
const u = g.find((D) => D.panelId === h.panelId);
|
|
10685
10685
|
if (!u)
|
|
10686
10686
|
continue;
|
|
10687
|
-
const
|
|
10687
|
+
const E = {
|
|
10688
10688
|
stepName: t.name,
|
|
10689
10689
|
id: J(),
|
|
10690
10690
|
align: s(A.data),
|
|
@@ -10692,26 +10692,26 @@ const Wn = [
|
|
|
10692
10692
|
fill: n.color || C || "#000000",
|
|
10693
10693
|
fontData: c,
|
|
10694
10694
|
fontSize: A.data.size || i,
|
|
10695
|
-
height:
|
|
10696
|
-
layer:
|
|
10697
|
-
layerIndex:
|
|
10695
|
+
height: h.height,
|
|
10696
|
+
layer: h.layer,
|
|
10697
|
+
layerIndex: h.layerIndex,
|
|
10698
10698
|
paths: A.data.paths,
|
|
10699
|
-
rotation:
|
|
10699
|
+
rotation: h.rotation,
|
|
10700
10700
|
text: l,
|
|
10701
10701
|
type: G.Textbox,
|
|
10702
10702
|
vertical: A.data.vertical,
|
|
10703
10703
|
verticalAlign: A.data.verticalAlign || "middle",
|
|
10704
|
-
width:
|
|
10705
|
-
x:
|
|
10706
|
-
y:
|
|
10704
|
+
width: h.width,
|
|
10705
|
+
x: h.left,
|
|
10706
|
+
y: h.top
|
|
10707
10707
|
};
|
|
10708
10708
|
if (c) {
|
|
10709
10709
|
const [D, m] = Ne(
|
|
10710
10710
|
A.data.size || i,
|
|
10711
10711
|
c,
|
|
10712
|
-
|
|
10712
|
+
h,
|
|
10713
10713
|
[
|
|
10714
|
-
|
|
10714
|
+
it(l, {
|
|
10715
10715
|
vertical: A.data.vertical,
|
|
10716
10716
|
uppercase: A.data.uppercase
|
|
10717
10717
|
})
|
|
@@ -10725,16 +10725,16 @@ const Wn = [
|
|
|
10725
10725
|
a.push(
|
|
10726
10726
|
new L(
|
|
10727
10727
|
{
|
|
10728
|
-
...
|
|
10728
|
+
...E,
|
|
10729
10729
|
fontSize: D,
|
|
10730
|
-
text:
|
|
10730
|
+
text: E.curved ? E.text : (m || []).join(`
|
|
10731
10731
|
`)
|
|
10732
10732
|
},
|
|
10733
10733
|
u
|
|
10734
10734
|
)
|
|
10735
10735
|
);
|
|
10736
10736
|
} else
|
|
10737
|
-
a.push(new L(
|
|
10737
|
+
a.push(new L(E, u));
|
|
10738
10738
|
}
|
|
10739
10739
|
return a;
|
|
10740
10740
|
}, ai = (g, e) => g.conditions ? g.conditions.every((t) => {
|
|
@@ -10752,18 +10752,18 @@ const Wn = [
|
|
|
10752
10752
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
10753
10753
|
if (s)
|
|
10754
10754
|
switch (s.type) {
|
|
10755
|
-
case
|
|
10755
|
+
case M.DigitalContent:
|
|
10756
10756
|
a.push(
|
|
10757
10757
|
...await Xn(t, i, s)
|
|
10758
10758
|
);
|
|
10759
10759
|
break;
|
|
10760
|
-
case
|
|
10761
|
-
case
|
|
10760
|
+
case M.Frame:
|
|
10761
|
+
case M.Photo:
|
|
10762
10762
|
a.push(
|
|
10763
10763
|
...await qn(t, n, i, s)
|
|
10764
10764
|
);
|
|
10765
10765
|
break;
|
|
10766
|
-
case
|
|
10766
|
+
case M.Illustration:
|
|
10767
10767
|
a.push(
|
|
10768
10768
|
...await Zn(
|
|
10769
10769
|
t,
|
|
@@ -10773,20 +10773,20 @@ const Wn = [
|
|
|
10773
10773
|
)
|
|
10774
10774
|
);
|
|
10775
10775
|
break;
|
|
10776
|
-
case
|
|
10776
|
+
case M.Module:
|
|
10777
10777
|
a.push(...await $n(t, i, s));
|
|
10778
10778
|
break;
|
|
10779
|
-
case
|
|
10779
|
+
case M.Picture:
|
|
10780
10780
|
a.push(
|
|
10781
10781
|
...await _n(t, n, i, s)
|
|
10782
10782
|
);
|
|
10783
10783
|
break;
|
|
10784
|
-
case
|
|
10784
|
+
case M.Shape:
|
|
10785
10785
|
a.push(
|
|
10786
10786
|
...await ei(t, n, i, s)
|
|
10787
10787
|
);
|
|
10788
10788
|
break;
|
|
10789
|
-
case
|
|
10789
|
+
case M.Text:
|
|
10790
10790
|
a.push(
|
|
10791
10791
|
...await Ai(t, n, i, s)
|
|
10792
10792
|
);
|
|
@@ -10794,7 +10794,7 @@ const Wn = [
|
|
|
10794
10794
|
}
|
|
10795
10795
|
}
|
|
10796
10796
|
for (const i of e.steps)
|
|
10797
|
-
i.type !==
|
|
10797
|
+
i.type !== M.SilentIllustration && i.type !== M.ProductOverlay || ai(i, n) && a.push(
|
|
10798
10798
|
...await ti(t, i, A)
|
|
10799
10799
|
);
|
|
10800
10800
|
return a;
|
|
@@ -10822,7 +10822,7 @@ class Ye {
|
|
|
10822
10822
|
}
|
|
10823
10823
|
const ii = () => new Promise((g, e) => {
|
|
10824
10824
|
try {
|
|
10825
|
-
const A =
|
|
10825
|
+
const A = ke().getContext("webgl2");
|
|
10826
10826
|
g(!!A);
|
|
10827
10827
|
} catch {
|
|
10828
10828
|
g(!1);
|
|
@@ -10876,7 +10876,7 @@ class oi {
|
|
|
10876
10876
|
* Actions to perform when a static render event is fired for this canvas.
|
|
10877
10877
|
*/
|
|
10878
10878
|
async render(e) {
|
|
10879
|
-
const t =
|
|
10879
|
+
const t = ge(e);
|
|
10880
10880
|
this.lastRequestedRenderArguments = t;
|
|
10881
10881
|
const A = this.getStaticContext();
|
|
10882
10882
|
if (!A) {
|
|
@@ -10956,35 +10956,35 @@ class ri extends BA {
|
|
|
10956
10956
|
ignoreClear: !0,
|
|
10957
10957
|
ignoreMouse: !0,
|
|
10958
10958
|
enableRedraw: !1,
|
|
10959
|
-
createCanvas:
|
|
10959
|
+
createCanvas: ke,
|
|
10960
10960
|
createImage: Vt,
|
|
10961
10961
|
DOMParser: Wt(),
|
|
10962
|
-
fetch:
|
|
10962
|
+
fetch: gt
|
|
10963
10963
|
});
|
|
10964
10964
|
l.resize(o, r), await l.render(), this.onRender();
|
|
10965
10965
|
}
|
|
10966
10966
|
}
|
|
10967
|
-
const
|
|
10967
|
+
const Is = (g, e) => {
|
|
10968
10968
|
const t = [];
|
|
10969
10969
|
return g.forEach((A) => {
|
|
10970
10970
|
const a = e.steps.find((n) => n.stepName === A.stepName);
|
|
10971
|
-
(a == null ? void 0 : a.type) ===
|
|
10971
|
+
(a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
|
|
10972
10972
|
name: a.stepName,
|
|
10973
10973
|
data: {
|
|
10974
10974
|
text: A.value
|
|
10975
10975
|
}
|
|
10976
10976
|
});
|
|
10977
10977
|
}), t;
|
|
10978
|
-
},
|
|
10978
|
+
}, fs = async (g, e, t, A) => {
|
|
10979
10979
|
let a = {
|
|
10980
10980
|
serializableWorkflow: { steps: [] },
|
|
10981
10981
|
layouts: {}
|
|
10982
10982
|
};
|
|
10983
|
-
a = new
|
|
10983
|
+
a = new k(t.map((o) => new Aa(o))).apply(a);
|
|
10984
10984
|
const i = await ni(g, e, t, A);
|
|
10985
|
-
return new
|
|
10985
|
+
return new k(i).apply(a);
|
|
10986
10986
|
}, ci = f`
|
|
10987
|
-
${
|
|
10987
|
+
${Be}
|
|
10988
10988
|
fragment ProductFields on Product {
|
|
10989
10989
|
id
|
|
10990
10990
|
basePrice
|
|
@@ -11037,7 +11037,7 @@ const Ds = (g, e) => {
|
|
|
11037
11037
|
...ProductFields
|
|
11038
11038
|
}
|
|
11039
11039
|
}
|
|
11040
|
-
`,
|
|
11040
|
+
`, We = (g) => f`
|
|
11041
11041
|
${g ? PA : ""}
|
|
11042
11042
|
fragment ProductCollectionFields on ProductCollection {
|
|
11043
11043
|
id
|
|
@@ -11083,7 +11083,7 @@ const Ds = (g, e) => {
|
|
|
11083
11083
|
}
|
|
11084
11084
|
}
|
|
11085
11085
|
`, gi = (g) => f`
|
|
11086
|
-
${
|
|
11086
|
+
${We(g)}
|
|
11087
11087
|
query GetBundle($id: String!) {
|
|
11088
11088
|
bundles(ids: [$id]) {
|
|
11089
11089
|
id
|
|
@@ -11156,7 +11156,7 @@ const Ds = (g, e) => {
|
|
|
11156
11156
|
}
|
|
11157
11157
|
}
|
|
11158
11158
|
`, Ci = (g) => f`
|
|
11159
|
-
${
|
|
11159
|
+
${We(g)}
|
|
11160
11160
|
mutation CreateBundle(
|
|
11161
11161
|
$collectionId: String
|
|
11162
11162
|
$initialMetadata: [MetadataInput!]
|
|
@@ -11184,7 +11184,38 @@ const Ds = (g, e) => {
|
|
|
11184
11184
|
}
|
|
11185
11185
|
}
|
|
11186
11186
|
}
|
|
11187
|
-
`, wi = f`
|
|
11187
|
+
`, wi = (g) => f`
|
|
11188
|
+
${We(g)}
|
|
11189
|
+
mutation DuplicateBundle(
|
|
11190
|
+
$id: String!
|
|
11191
|
+
$template: Boolean
|
|
11192
|
+
$marketplaceThemeInstallId: String
|
|
11193
|
+
$marketplaceThemeInstallConfigurationId: String
|
|
11194
|
+
$duplicateTransactions: Boolean
|
|
11195
|
+
) {
|
|
11196
|
+
bundleDuplicate(
|
|
11197
|
+
id: $id
|
|
11198
|
+
template: $template
|
|
11199
|
+
marketplaceThemeInstallId: $marketplaceThemeInstallId
|
|
11200
|
+
marketplaceThemeInstallConfigurationId: $marketplaceThemeInstallConfigurationId
|
|
11201
|
+
duplicateTransactions: $duplicateTransactions
|
|
11202
|
+
) {
|
|
11203
|
+
id
|
|
11204
|
+
bundleOwnerId
|
|
11205
|
+
metadata {
|
|
11206
|
+
key
|
|
11207
|
+
value
|
|
11208
|
+
}
|
|
11209
|
+
name
|
|
11210
|
+
partner {
|
|
11211
|
+
id
|
|
11212
|
+
}
|
|
11213
|
+
productCollection {
|
|
11214
|
+
...ProductCollectionFields
|
|
11215
|
+
}
|
|
11216
|
+
}
|
|
11217
|
+
}
|
|
11218
|
+
`, hi = f`
|
|
11188
11219
|
mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
|
|
11189
11220
|
bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
|
|
11190
11221
|
id
|
|
@@ -11196,13 +11227,13 @@ const Ds = (g, e) => {
|
|
|
11196
11227
|
id
|
|
11197
11228
|
}
|
|
11198
11229
|
}
|
|
11199
|
-
`,
|
|
11230
|
+
`, ui = f`
|
|
11200
11231
|
mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
|
|
11201
11232
|
bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
|
|
11202
11233
|
id
|
|
11203
11234
|
}
|
|
11204
11235
|
}
|
|
11205
|
-
`,
|
|
11236
|
+
`, Qi = f`
|
|
11206
11237
|
mutation BundleRemoveTransaction(
|
|
11207
11238
|
$id: String!
|
|
11208
11239
|
$transactionId: String!
|
|
@@ -11217,7 +11248,7 @@ const Ds = (g, e) => {
|
|
|
11217
11248
|
id
|
|
11218
11249
|
}
|
|
11219
11250
|
}
|
|
11220
|
-
`,
|
|
11251
|
+
`, mi = f`
|
|
11221
11252
|
mutation BundleRemoveTransactions(
|
|
11222
11253
|
$id: String!
|
|
11223
11254
|
$transactionIds: [String!]!
|
|
@@ -11232,7 +11263,7 @@ const Ds = (g, e) => {
|
|
|
11232
11263
|
id
|
|
11233
11264
|
}
|
|
11234
11265
|
}
|
|
11235
|
-
`,
|
|
11266
|
+
`, pi = f`
|
|
11236
11267
|
mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
|
|
11237
11268
|
bundleAddStakeholder(id: $id, details: $details, type: $type) {
|
|
11238
11269
|
id
|
|
@@ -11252,13 +11283,13 @@ const Ds = (g, e) => {
|
|
|
11252
11283
|
}
|
|
11253
11284
|
}
|
|
11254
11285
|
}
|
|
11255
|
-
`,
|
|
11286
|
+
`, Di = f`
|
|
11256
11287
|
mutation BundleAddStakeholder($id: String!, $emailAddress: String!) {
|
|
11257
11288
|
bundleRemoveStakeholder(id: $id, emailAddress: $emailAddress) {
|
|
11258
11289
|
id
|
|
11259
11290
|
}
|
|
11260
11291
|
}
|
|
11261
|
-
`,
|
|
11292
|
+
`, Ii = f`
|
|
11262
11293
|
mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
|
|
11263
11294
|
bundleUpdateStakeholders(id: $id, input: $input) {
|
|
11264
11295
|
id
|
|
@@ -11278,14 +11309,14 @@ const Ds = (g, e) => {
|
|
|
11278
11309
|
}
|
|
11279
11310
|
}
|
|
11280
11311
|
}
|
|
11281
|
-
`,
|
|
11312
|
+
`, fi = f`
|
|
11282
11313
|
mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
|
|
11283
11314
|
bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
|
|
11284
11315
|
id
|
|
11285
11316
|
}
|
|
11286
11317
|
}
|
|
11287
|
-
`,
|
|
11288
|
-
${
|
|
11318
|
+
`, Fi = (g) => f`
|
|
11319
|
+
${We(g)}
|
|
11289
11320
|
mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
|
|
11290
11321
|
bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
|
|
11291
11322
|
id
|
|
@@ -11295,7 +11326,7 @@ const Ds = (g, e) => {
|
|
|
11295
11326
|
}
|
|
11296
11327
|
}
|
|
11297
11328
|
`;
|
|
11298
|
-
class
|
|
11329
|
+
class yi {
|
|
11299
11330
|
constructor(e) {
|
|
11300
11331
|
this.handleCache = {}, this.bundle = e;
|
|
11301
11332
|
}
|
|
@@ -11339,25 +11370,25 @@ class Fi {
|
|
|
11339
11370
|
async createHandle(e) {
|
|
11340
11371
|
switch (e.type) {
|
|
11341
11372
|
case $.FileUpload:
|
|
11342
|
-
return new
|
|
11373
|
+
return new Mi(this.bundle, e);
|
|
11343
11374
|
case $.ColorOption:
|
|
11344
|
-
return new
|
|
11375
|
+
return new Jt(
|
|
11345
11376
|
this.bundle,
|
|
11346
11377
|
e,
|
|
11347
11378
|
e.entityId ? await V.getOption(e.entityId) : void 0
|
|
11348
11379
|
);
|
|
11349
11380
|
case $.Option: {
|
|
11350
11381
|
const t = e.entityId ? await V.getOption(e.entityId) : void 0;
|
|
11351
|
-
return (t == null ? void 0 : t.type) === "Color" ? new
|
|
11382
|
+
return (t == null ? void 0 : t.type) === "Color" ? new Jt(this.bundle, e, t) : new xA(this.bundle, e, t);
|
|
11352
11383
|
}
|
|
11353
11384
|
case $.Text:
|
|
11354
|
-
return new
|
|
11385
|
+
return new Si(this.bundle, e);
|
|
11355
11386
|
default:
|
|
11356
11387
|
throw new Error("Unhandled Global Property Aspect Type");
|
|
11357
11388
|
}
|
|
11358
11389
|
}
|
|
11359
11390
|
}
|
|
11360
|
-
class
|
|
11391
|
+
class It {
|
|
11361
11392
|
constructor(e, t) {
|
|
11362
11393
|
this.bundle = e, this.property = t;
|
|
11363
11394
|
}
|
|
@@ -11412,7 +11443,7 @@ class Dt {
|
|
|
11412
11443
|
return this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
11413
11444
|
}
|
|
11414
11445
|
}
|
|
11415
|
-
class
|
|
11446
|
+
class Mi extends It {
|
|
11416
11447
|
constructor(e, t) {
|
|
11417
11448
|
super(e, t);
|
|
11418
11449
|
}
|
|
@@ -11434,7 +11465,7 @@ class yi extends Dt {
|
|
|
11434
11465
|
]);
|
|
11435
11466
|
}
|
|
11436
11467
|
async canUseBackgroundRemover() {
|
|
11437
|
-
return this.bundle.getClient().canUseAddon(
|
|
11468
|
+
return this.bundle.getClient().canUseAddon(ut.BackgroundRemover);
|
|
11438
11469
|
}
|
|
11439
11470
|
/**
|
|
11440
11471
|
* Removes the background from an image, stores it in the state, and returns the new asset.
|
|
@@ -11449,7 +11480,7 @@ class yi extends Dt {
|
|
|
11449
11480
|
const t = await this.getOriginalImage();
|
|
11450
11481
|
if (!t)
|
|
11451
11482
|
throw new Error("You must supply an image selection before attempting to remove the background.");
|
|
11452
|
-
const A = this.bundle.getGlobalPropertyStateManager(), a = await
|
|
11483
|
+
const A = this.bundle.getGlobalPropertyStateManager(), a = await U.removeBackgroundFromAsset(t), i = {
|
|
11453
11484
|
...A.getAspectStorage(this.property.name),
|
|
11454
11485
|
backgroundRemovedAssetKey: a.key,
|
|
11455
11486
|
useOriginalAsset: !e
|
|
@@ -11469,7 +11500,7 @@ class yi extends Dt {
|
|
|
11469
11500
|
async getImage() {
|
|
11470
11501
|
const e = this.getStateValue();
|
|
11471
11502
|
if (e)
|
|
11472
|
-
return
|
|
11503
|
+
return U.getLocalOrFromServer(e);
|
|
11473
11504
|
}
|
|
11474
11505
|
/**
|
|
11475
11506
|
* Retrieves the original, unmodified image selection, if one exists.
|
|
@@ -11478,7 +11509,7 @@ class yi extends Dt {
|
|
|
11478
11509
|
async getOriginalImage() {
|
|
11479
11510
|
const e = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
11480
11511
|
if (e != null && e.originalAssetKey)
|
|
11481
|
-
return
|
|
11512
|
+
return U.getLocalOrFromServer(e.originalAssetKey);
|
|
11482
11513
|
}
|
|
11483
11514
|
/**
|
|
11484
11515
|
* Retrieves the version of the image selection that has the background removed, if one exists.
|
|
@@ -11487,7 +11518,7 @@ class yi extends Dt {
|
|
|
11487
11518
|
async getBackgroundRemovedImage() {
|
|
11488
11519
|
const e = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
11489
11520
|
if (e != null && e.backgroundRemovedAssetKey)
|
|
11490
|
-
return
|
|
11521
|
+
return U.getLocalOrFromServer(e.backgroundRemovedAssetKey);
|
|
11491
11522
|
}
|
|
11492
11523
|
getUseOriginalImage() {
|
|
11493
11524
|
var e;
|
|
@@ -11523,7 +11554,7 @@ class yi extends Dt {
|
|
|
11523
11554
|
const t = this.getStateValue();
|
|
11524
11555
|
if (!t)
|
|
11525
11556
|
return;
|
|
11526
|
-
const A = await
|
|
11557
|
+
const A = await U.getLocalOrFromServer(t);
|
|
11527
11558
|
if (!A)
|
|
11528
11559
|
return;
|
|
11529
11560
|
const a = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
@@ -11553,7 +11584,7 @@ class yi extends Dt {
|
|
|
11553
11584
|
);
|
|
11554
11585
|
}
|
|
11555
11586
|
}
|
|
11556
|
-
class
|
|
11587
|
+
class Si extends It {
|
|
11557
11588
|
constructor(e, t) {
|
|
11558
11589
|
super(e, t);
|
|
11559
11590
|
}
|
|
@@ -11586,7 +11617,7 @@ class Mi extends Dt {
|
|
|
11586
11617
|
await Promise.all(a);
|
|
11587
11618
|
}
|
|
11588
11619
|
}
|
|
11589
|
-
class xA extends
|
|
11620
|
+
class xA extends It {
|
|
11590
11621
|
constructor(e, t, A) {
|
|
11591
11622
|
super(e, t), this.optionResource = A;
|
|
11592
11623
|
}
|
|
@@ -11648,7 +11679,7 @@ class xA extends Dt {
|
|
|
11648
11679
|
await Promise.all(a);
|
|
11649
11680
|
}
|
|
11650
11681
|
}
|
|
11651
|
-
class
|
|
11682
|
+
class Jt extends xA {
|
|
11652
11683
|
constructor(e, t, A) {
|
|
11653
11684
|
super(e, t, A);
|
|
11654
11685
|
}
|
|
@@ -11677,9 +11708,9 @@ class bt extends xA {
|
|
|
11677
11708
|
async applyColorVariant(e, t) {
|
|
11678
11709
|
const a = this.getSharedSteps(t).map((n) => {
|
|
11679
11710
|
switch (n.getType()) {
|
|
11680
|
-
case
|
|
11711
|
+
case M.Shape:
|
|
11681
11712
|
return n.selectVariant(e);
|
|
11682
|
-
case
|
|
11713
|
+
case M.Text:
|
|
11683
11714
|
return n.setFillColor({
|
|
11684
11715
|
fill: e.getColor(),
|
|
11685
11716
|
stroke: e.getColor(),
|
|
@@ -11703,7 +11734,7 @@ class bt extends xA {
|
|
|
11703
11734
|
return ((e = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name)) == null ? void 0 : e.customColor) || ((t = this.getCurrentVariant()) == null ? void 0 : t.getColor()) || "#ffffff";
|
|
11704
11735
|
}
|
|
11705
11736
|
}
|
|
11706
|
-
const
|
|
11737
|
+
const ft = f`
|
|
11707
11738
|
fragment GlobalPropertyStateAspectFields on GlobalPropertyStateAspect {
|
|
11708
11739
|
name
|
|
11709
11740
|
value
|
|
@@ -11719,8 +11750,8 @@ const It = f`
|
|
|
11719
11750
|
}
|
|
11720
11751
|
}
|
|
11721
11752
|
}
|
|
11722
|
-
`,
|
|
11723
|
-
${
|
|
11753
|
+
`, Yi = f`
|
|
11754
|
+
${ft}
|
|
11724
11755
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
11725
11756
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
11726
11757
|
id
|
|
@@ -11729,8 +11760,8 @@ const It = f`
|
|
|
11729
11760
|
}
|
|
11730
11761
|
}
|
|
11731
11762
|
}
|
|
11732
|
-
`,
|
|
11733
|
-
${
|
|
11763
|
+
`, Pi = f`
|
|
11764
|
+
${ft}
|
|
11734
11765
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
11735
11766
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
11736
11767
|
id
|
|
@@ -11739,8 +11770,8 @@ const It = f`
|
|
|
11739
11770
|
}
|
|
11740
11771
|
}
|
|
11741
11772
|
}
|
|
11742
|
-
`,
|
|
11743
|
-
${
|
|
11773
|
+
`, xi = f`
|
|
11774
|
+
${ft}
|
|
11744
11775
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
11745
11776
|
globalPropertyState(bundleId: $bundleId) {
|
|
11746
11777
|
id
|
|
@@ -11750,7 +11781,7 @@ const It = f`
|
|
|
11750
11781
|
}
|
|
11751
11782
|
}
|
|
11752
11783
|
`;
|
|
11753
|
-
class
|
|
11784
|
+
class Ni {
|
|
11754
11785
|
constructor(e, t, A, a, n) {
|
|
11755
11786
|
this.bundleId = e, this.bundleOwnerId = t, this.configuration = A, this.bundleOptions = n, this.initPromise = this.getOrCreateGlobalPropertyState().then((i) => {
|
|
11756
11787
|
this.globalPropertyState = i;
|
|
@@ -11771,6 +11802,11 @@ class xi {
|
|
|
11771
11802
|
getGlobalPropertyState() {
|
|
11772
11803
|
return this.globalPropertyState;
|
|
11773
11804
|
}
|
|
11805
|
+
async setGlobalPropertyState(e) {
|
|
11806
|
+
this.globalPropertyState || await this.initPromise;
|
|
11807
|
+
const t = ge(this.globalPropertyState);
|
|
11808
|
+
this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
|
|
11809
|
+
}
|
|
11774
11810
|
getAspect(e) {
|
|
11775
11811
|
if (!this.globalPropertyState)
|
|
11776
11812
|
throw new Error("Global property state not initialized");
|
|
@@ -11792,7 +11828,7 @@ class xi {
|
|
|
11792
11828
|
const a = this.configuration.aspects.find((s) => s.name === e);
|
|
11793
11829
|
if (!a)
|
|
11794
11830
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11795
|
-
const n =
|
|
11831
|
+
const n = ge(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
|
|
11796
11832
|
i ? (i.value = t, A !== void 0 && (i.type = a.type, i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
|
|
11797
11833
|
name: e,
|
|
11798
11834
|
value: t,
|
|
@@ -11807,7 +11843,7 @@ class xi {
|
|
|
11807
11843
|
const A = this.configuration.aspects.find((i) => i.name === e);
|
|
11808
11844
|
if (!A)
|
|
11809
11845
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11810
|
-
const a =
|
|
11846
|
+
const a = ge(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
|
|
11811
11847
|
n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
|
|
11812
11848
|
name: e,
|
|
11813
11849
|
value: "",
|
|
@@ -11820,7 +11856,7 @@ class xi {
|
|
|
11820
11856
|
if (!this.globalPropertyState)
|
|
11821
11857
|
throw new Error("Global property state not initialized");
|
|
11822
11858
|
const e = await x.getShadowGraphqlClient().mutate({
|
|
11823
|
-
mutation:
|
|
11859
|
+
mutation: Pi,
|
|
11824
11860
|
variables: {
|
|
11825
11861
|
id: this.globalPropertyState.id,
|
|
11826
11862
|
aspects: this.globalPropertyState.aspects.map((a) => {
|
|
@@ -11860,7 +11896,7 @@ class xi {
|
|
|
11860
11896
|
async getOrCreateGlobalPropertyState() {
|
|
11861
11897
|
var A, a, n;
|
|
11862
11898
|
const e = await x.getShadowGraphqlClient().query({
|
|
11863
|
-
query:
|
|
11899
|
+
query: xi,
|
|
11864
11900
|
errorPolicy: "all",
|
|
11865
11901
|
fetchPolicy: "no-cache",
|
|
11866
11902
|
variables: {
|
|
@@ -11876,7 +11912,7 @@ class xi {
|
|
|
11876
11912
|
if (e.data.globalPropertyState && e.data.globalPropertyState.id)
|
|
11877
11913
|
return e.data.globalPropertyState;
|
|
11878
11914
|
const t = await x.getShadowGraphqlClient().mutate({
|
|
11879
|
-
mutation:
|
|
11915
|
+
mutation: Yi,
|
|
11880
11916
|
variables: {
|
|
11881
11917
|
bundleId: this.bundleId
|
|
11882
11918
|
},
|
|
@@ -11892,7 +11928,7 @@ class xi {
|
|
|
11892
11928
|
throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`);
|
|
11893
11929
|
}
|
|
11894
11930
|
}
|
|
11895
|
-
class
|
|
11931
|
+
class vi {
|
|
11896
11932
|
constructor(e) {
|
|
11897
11933
|
this.setState(e);
|
|
11898
11934
|
}
|
|
@@ -11975,7 +12011,7 @@ class Ni {
|
|
|
11975
12011
|
};
|
|
11976
12012
|
}
|
|
11977
12013
|
}
|
|
11978
|
-
class
|
|
12014
|
+
class Ri {
|
|
11979
12015
|
constructor(e) {
|
|
11980
12016
|
this.fullFetched = !1, this.collection = e;
|
|
11981
12017
|
}
|
|
@@ -11997,14 +12033,14 @@ class vi {
|
|
|
11997
12033
|
getProducts() {
|
|
11998
12034
|
if (!this.collection.productCollectionProducts)
|
|
11999
12035
|
throw new Error("Failed to find products on collection. Ensure you fetch them first!");
|
|
12000
|
-
return this.collection.productCollectionProducts.map((e) => new
|
|
12036
|
+
return this.collection.productCollectionProducts.map((e) => new _e(e));
|
|
12001
12037
|
}
|
|
12002
12038
|
/**
|
|
12003
12039
|
* A list of products in this collections with useful helpers for interacting with them.
|
|
12004
12040
|
*/
|
|
12005
12041
|
async fetchProducts(e) {
|
|
12006
12042
|
if (this.fullFetched)
|
|
12007
|
-
return this.collection.productCollectionProducts.map((A) => new
|
|
12043
|
+
return this.collection.productCollectionProducts.map((A) => new _e(A));
|
|
12008
12044
|
const t = await x.getShadowGraphqlClient().query({
|
|
12009
12045
|
query: di,
|
|
12010
12046
|
variables: {
|
|
@@ -12014,11 +12050,11 @@ class vi {
|
|
|
12014
12050
|
errorPolicy: "all",
|
|
12015
12051
|
fetchPolicy: "no-cache"
|
|
12016
12052
|
});
|
|
12017
|
-
return e || (this.fullFetched = !0), this.collection.productCollectionProducts = t.data.productCollections[0].productCollectionProducts || [], this.collection.productCollectionProducts.map((A) => new
|
|
12053
|
+
return e || (this.fullFetched = !0), this.collection.productCollectionProducts = t.data.productCollections[0].productCollectionProducts || [], this.collection.productCollectionProducts.map((A) => new _e(A));
|
|
12018
12054
|
}
|
|
12019
12055
|
getTransformCollection() {
|
|
12020
12056
|
if (this.collection.transformCollection)
|
|
12021
|
-
return new
|
|
12057
|
+
return new Hi(this.collection.transformCollection);
|
|
12022
12058
|
}
|
|
12023
12059
|
/**
|
|
12024
12060
|
* The raw collection resource. This is generally not needed and should be avoided.
|
|
@@ -12027,7 +12063,7 @@ class vi {
|
|
|
12027
12063
|
return this.collection;
|
|
12028
12064
|
}
|
|
12029
12065
|
}
|
|
12030
|
-
class
|
|
12066
|
+
class _e {
|
|
12031
12067
|
constructor(e) {
|
|
12032
12068
|
this.product = e.product, this.productResource = e;
|
|
12033
12069
|
}
|
|
@@ -12086,7 +12122,7 @@ class Ze {
|
|
|
12086
12122
|
if (t) {
|
|
12087
12123
|
const A = e.find((a) => a.workflowName === t);
|
|
12088
12124
|
if (A)
|
|
12089
|
-
return new
|
|
12125
|
+
return new Le(A);
|
|
12090
12126
|
}
|
|
12091
12127
|
throw new H(
|
|
12092
12128
|
"Called getDefaultWorkflow() before fetching collection products. Use collection.fetchProducts() first to ensure the data is available."
|
|
@@ -12100,7 +12136,7 @@ class Ze {
|
|
|
12100
12136
|
throw new H(
|
|
12101
12137
|
"No workflows on configured product. Ensure at least 1 workflow is assigned to this product."
|
|
12102
12138
|
);
|
|
12103
|
-
return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new
|
|
12139
|
+
return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new Le(t));
|
|
12104
12140
|
}
|
|
12105
12141
|
/**
|
|
12106
12142
|
* A list of all integrations this product is connected to.
|
|
@@ -12147,7 +12183,7 @@ class Ze {
|
|
|
12147
12183
|
), (s = A == null ? void 0 : A.additionalIntegrationProduct) != null && s.product ? t + (A.additionalIntegrationProduct.product.basePrice || 0) : t;
|
|
12148
12184
|
}
|
|
12149
12185
|
}
|
|
12150
|
-
class
|
|
12186
|
+
class Le {
|
|
12151
12187
|
constructor(e) {
|
|
12152
12188
|
this.workflow = e;
|
|
12153
12189
|
}
|
|
@@ -12171,7 +12207,7 @@ class Oe {
|
|
|
12171
12207
|
return this.workflow.imageUrl;
|
|
12172
12208
|
}
|
|
12173
12209
|
}
|
|
12174
|
-
class
|
|
12210
|
+
class Hi {
|
|
12175
12211
|
constructor(e) {
|
|
12176
12212
|
this.collection = e;
|
|
12177
12213
|
}
|
|
@@ -12191,10 +12227,10 @@ class Ri {
|
|
|
12191
12227
|
* @returns The transforms in this collection.
|
|
12192
12228
|
*/
|
|
12193
12229
|
getTransforms() {
|
|
12194
|
-
return this.collection.transforms.map((e) => new
|
|
12230
|
+
return this.collection.transforms.map((e) => new ki(e));
|
|
12195
12231
|
}
|
|
12196
12232
|
}
|
|
12197
|
-
class
|
|
12233
|
+
class ki {
|
|
12198
12234
|
constructor(e) {
|
|
12199
12235
|
this.transform = e;
|
|
12200
12236
|
}
|
|
@@ -12221,16 +12257,16 @@ class Hi {
|
|
|
12221
12257
|
};
|
|
12222
12258
|
}
|
|
12223
12259
|
}
|
|
12224
|
-
class
|
|
12260
|
+
class et {
|
|
12225
12261
|
constructor(e, t, A, a, n, i) {
|
|
12226
12262
|
var s, o, r;
|
|
12227
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = e, this.id = t.id, this.name = t.name || "", this.ownerId = n, this.metadata = new Map(((s = t.metadata) == null ? void 0 : s.map((c) => [c.key, c.value])) || []), this.productCollection = t.productCollection, this.bundleStateManager = new
|
|
12263
|
+
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = e, this.id = t.id, this.name = t.name || "", this.ownerId = n, this.metadata = new Map(((s = t.metadata) == null ? void 0 : s.map((c) => [c.key, c.value])) || []), this.productCollection = t.productCollection, this.bundleStateManager = new vi(t.bundleStateData), this.globalPropertyStateManager = new Ni(
|
|
12228
12264
|
this.id,
|
|
12229
12265
|
this.ownerId,
|
|
12230
12266
|
(o = this.productCollection) == null ? void 0 : o.globalPropertyConfiguration,
|
|
12231
12267
|
this.checkConditionalHandlesChanged.bind(this),
|
|
12232
12268
|
i
|
|
12233
|
-
), this.globalPropertyHandleService = new
|
|
12269
|
+
), this.globalPropertyHandleService = new yi(this), this.setPreviewService(A), this.initializationPromise = Promise.all([
|
|
12234
12270
|
this.loadExistingWorkflowExperiences(((r = t.transactions) == null ? void 0 : r.map((c) => c.id)) || [], a),
|
|
12235
12271
|
this.globalPropertyStateManager.getInitializationPromise()
|
|
12236
12272
|
]), this.initializationPromise.catch((c) => {
|
|
@@ -12298,7 +12334,7 @@ class Jt {
|
|
|
12298
12334
|
return this.workflowExperiences.map((e) => e.getTotalPriceSubunits()).reduce((e, t) => e + t, 0);
|
|
12299
12335
|
}
|
|
12300
12336
|
getProductCollection() {
|
|
12301
|
-
return this.productCollection ? new
|
|
12337
|
+
return this.productCollection ? new Ri(this.productCollection) : void 0;
|
|
12302
12338
|
}
|
|
12303
12339
|
async addWorkflowExperience(e) {
|
|
12304
12340
|
e.setBundle(this), await this.appendWorkflowExperience(e), await this.injectExperienceIntoPreviewService(e), await e.getWorkflowManager().getInitializationPromise();
|
|
@@ -12316,7 +12352,7 @@ class Jt {
|
|
|
12316
12352
|
);
|
|
12317
12353
|
const a = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = t.map((s) => a.get(s));
|
|
12318
12354
|
await x.getShadowGraphqlClient().mutate({
|
|
12319
|
-
mutation:
|
|
12355
|
+
mutation: ui,
|
|
12320
12356
|
variables: {
|
|
12321
12357
|
id: this.id,
|
|
12322
12358
|
transactionIds: t,
|
|
@@ -12379,7 +12415,7 @@ class Jt {
|
|
|
12379
12415
|
(n) => n.getWorkflowManager().getTransaction().id === t.id
|
|
12380
12416
|
);
|
|
12381
12417
|
a.setBundle(void 0), this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(t.id), await x.getShadowGraphqlClient().mutate({
|
|
12382
|
-
mutation:
|
|
12418
|
+
mutation: Qi,
|
|
12383
12419
|
variables: {
|
|
12384
12420
|
id: this.id,
|
|
12385
12421
|
transactionId: t.id,
|
|
@@ -12411,7 +12447,7 @@ class Jt {
|
|
|
12411
12447
|
A.forEach((a) => a.setBundle(void 0)), [...this.workflowExperiences, ...A].forEach(
|
|
12412
12448
|
(a) => a.checkForPriceBreakChanges()
|
|
12413
12449
|
), this.previewService && A.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), e.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
|
|
12414
|
-
mutation:
|
|
12450
|
+
mutation: mi,
|
|
12415
12451
|
variables: {
|
|
12416
12452
|
id: this.id,
|
|
12417
12453
|
transactionIds: e.map((a) => a.id),
|
|
@@ -12472,7 +12508,7 @@ class Jt {
|
|
|
12472
12508
|
async addStakeholder(e, t) {
|
|
12473
12509
|
var n;
|
|
12474
12510
|
const A = await x.getShadowGraphqlClient().mutate({
|
|
12475
|
-
mutation:
|
|
12511
|
+
mutation: pi,
|
|
12476
12512
|
variables: {
|
|
12477
12513
|
id: this.id,
|
|
12478
12514
|
details: e,
|
|
@@ -12490,7 +12526,7 @@ class Jt {
|
|
|
12490
12526
|
async removeStakeholder(e) {
|
|
12491
12527
|
var A;
|
|
12492
12528
|
if (!((A = (await x.getShadowGraphqlClient().mutate({
|
|
12493
|
-
mutation:
|
|
12529
|
+
mutation: Di,
|
|
12494
12530
|
variables: {
|
|
12495
12531
|
id: this.id,
|
|
12496
12532
|
emailAddress: e
|
|
@@ -12504,7 +12540,7 @@ class Jt {
|
|
|
12504
12540
|
async updateStakeholders(e) {
|
|
12505
12541
|
var a;
|
|
12506
12542
|
const t = await x.getShadowGraphqlClient().mutate({
|
|
12507
|
-
mutation:
|
|
12543
|
+
mutation: Ii,
|
|
12508
12544
|
variables: {
|
|
12509
12545
|
id: this.id,
|
|
12510
12546
|
input: e
|
|
@@ -12588,7 +12624,7 @@ class Jt {
|
|
|
12588
12624
|
async assignProductCollection(e) {
|
|
12589
12625
|
var A, a;
|
|
12590
12626
|
const t = await x.getShadowGraphqlClient().mutate({
|
|
12591
|
-
mutation:
|
|
12627
|
+
mutation: Fi(
|
|
12592
12628
|
((A = this.globalPropertyStateManager.getBundleOptions()) == null ? void 0 : A.eagerFetchProducts) ?? !1
|
|
12593
12629
|
),
|
|
12594
12630
|
variables: {
|
|
@@ -12644,7 +12680,7 @@ class Jt {
|
|
|
12644
12680
|
async updateBundle() {
|
|
12645
12681
|
var t;
|
|
12646
12682
|
if (!((t = (await x.getShadowGraphqlClient().mutate({
|
|
12647
|
-
mutation:
|
|
12683
|
+
mutation: hi,
|
|
12648
12684
|
variables: {
|
|
12649
12685
|
id: this.id,
|
|
12650
12686
|
name: this.name,
|
|
@@ -12659,7 +12695,7 @@ class Jt {
|
|
|
12659
12695
|
}
|
|
12660
12696
|
async updateTransactionOrder() {
|
|
12661
12697
|
await x.getShadowGraphqlClient().mutate({
|
|
12662
|
-
mutation:
|
|
12698
|
+
mutation: fi,
|
|
12663
12699
|
variables: {
|
|
12664
12700
|
id: this.id,
|
|
12665
12701
|
transactionIds: this.workflowExperiences.map((e) => e.getWorkflowManager().getTransaction().id)
|
|
@@ -12703,7 +12739,7 @@ const Ui = f`
|
|
|
12703
12739
|
}
|
|
12704
12740
|
}
|
|
12705
12741
|
`;
|
|
12706
|
-
class
|
|
12742
|
+
class Gi {
|
|
12707
12743
|
/**
|
|
12708
12744
|
*
|
|
12709
12745
|
* @param id
|
|
@@ -12756,7 +12792,7 @@ class ki {
|
|
|
12756
12792
|
"Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
|
|
12757
12793
|
);
|
|
12758
12794
|
if (C.completedAt) {
|
|
12759
|
-
s = !0, c = new
|
|
12795
|
+
s = !0, c = new bi(C);
|
|
12760
12796
|
break;
|
|
12761
12797
|
}
|
|
12762
12798
|
o += 1;
|
|
@@ -12770,7 +12806,7 @@ class ki {
|
|
|
12770
12806
|
return Promise.resolve(c);
|
|
12771
12807
|
}
|
|
12772
12808
|
}
|
|
12773
|
-
class
|
|
12809
|
+
class bi {
|
|
12774
12810
|
constructor(e) {
|
|
12775
12811
|
this.execution = e;
|
|
12776
12812
|
}
|
|
@@ -12843,7 +12879,7 @@ class Pe {
|
|
|
12843
12879
|
return this.getArtifacts().get(e);
|
|
12844
12880
|
}
|
|
12845
12881
|
}
|
|
12846
|
-
class
|
|
12882
|
+
class Ft {
|
|
12847
12883
|
constructor(e) {
|
|
12848
12884
|
this.value = e;
|
|
12849
12885
|
}
|
|
@@ -12855,13 +12891,13 @@ class ft {
|
|
|
12855
12891
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
12856
12892
|
}
|
|
12857
12893
|
}
|
|
12858
|
-
var
|
|
12859
|
-
class
|
|
12894
|
+
var Ji = /* @__PURE__ */ ((g) => (g.Transaction = "Transaction", g.Bundle = "Bundle", g.Product = "Product", g.Variant = "Variant", g.Option = "Option", g.LineItem = "LineItem", g.Asset = "Asset", g))(Ji || {});
|
|
12895
|
+
class Fs extends Ft {
|
|
12860
12896
|
constructor(e) {
|
|
12861
12897
|
super(`"${e}"`);
|
|
12862
12898
|
}
|
|
12863
12899
|
}
|
|
12864
|
-
class NA extends
|
|
12900
|
+
class NA extends Ft {
|
|
12865
12901
|
constructor(e, t) {
|
|
12866
12902
|
if (t !== "Asset" && !NA.validUUID(e))
|
|
12867
12903
|
throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
|
|
@@ -12871,7 +12907,7 @@ class NA extends ft {
|
|
|
12871
12907
|
return e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
12872
12908
|
}
|
|
12873
12909
|
}
|
|
12874
|
-
class
|
|
12910
|
+
class ys extends Ft {
|
|
12875
12911
|
constructor(e) {
|
|
12876
12912
|
super(`[${e.map((t) => t.getRaw()).join(",")}]`);
|
|
12877
12913
|
}
|
|
@@ -12905,7 +12941,7 @@ class Tt {
|
|
|
12905
12941
|
throw new Error(
|
|
12906
12942
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
12907
12943
|
);
|
|
12908
|
-
return new
|
|
12944
|
+
return new Le(e[0]);
|
|
12909
12945
|
}
|
|
12910
12946
|
getAllWorkflows() {
|
|
12911
12947
|
if (!this.integrationProduct.product)
|
|
@@ -12915,10 +12951,10 @@ class Tt {
|
|
|
12915
12951
|
throw new Error(
|
|
12916
12952
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
12917
12953
|
);
|
|
12918
|
-
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new
|
|
12954
|
+
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new Le(t));
|
|
12919
12955
|
}
|
|
12920
12956
|
}
|
|
12921
|
-
const
|
|
12957
|
+
const Ti = f`
|
|
12922
12958
|
fragment RegionFields on Region {
|
|
12923
12959
|
width
|
|
12924
12960
|
top
|
|
@@ -12936,7 +12972,7 @@ const Ji = f`
|
|
|
12936
12972
|
height
|
|
12937
12973
|
}
|
|
12938
12974
|
}
|
|
12939
|
-
`,
|
|
12975
|
+
`, Oi = f`
|
|
12940
12976
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
12941
12977
|
latDeg
|
|
12942
12978
|
lonDeg
|
|
@@ -12947,7 +12983,7 @@ const Ji = f`
|
|
|
12947
12983
|
z
|
|
12948
12984
|
}
|
|
12949
12985
|
}
|
|
12950
|
-
`,
|
|
12986
|
+
`, Li = f`
|
|
12951
12987
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
12952
12988
|
antiAliasing {
|
|
12953
12989
|
samples
|
|
@@ -13031,21 +13067,21 @@ const Ji = f`
|
|
|
13031
13067
|
weight
|
|
13032
13068
|
}
|
|
13033
13069
|
}
|
|
13034
|
-
`,
|
|
13070
|
+
`, zi = f`
|
|
13035
13071
|
fragment ModelAnimationFields on ModelAnimation {
|
|
13036
13072
|
from
|
|
13037
13073
|
to
|
|
13038
13074
|
loop
|
|
13039
13075
|
name
|
|
13040
13076
|
}
|
|
13041
|
-
`,
|
|
13077
|
+
`, Ki = (g) => f`
|
|
13042
13078
|
${Ie(g)}
|
|
13043
|
-
${
|
|
13079
|
+
${Et}
|
|
13044
13080
|
${sA}
|
|
13045
|
-
${Ji}
|
|
13046
13081
|
${Ti}
|
|
13047
13082
|
${Oi}
|
|
13048
13083
|
${Li}
|
|
13084
|
+
${zi}
|
|
13049
13085
|
query GetWorkflows($ids: [String!]!) {
|
|
13050
13086
|
workflows(ids: $ids) {
|
|
13051
13087
|
partner {
|
|
@@ -13434,7 +13470,7 @@ const Ji = f`
|
|
|
13434
13470
|
}
|
|
13435
13471
|
}
|
|
13436
13472
|
}
|
|
13437
|
-
`,
|
|
13473
|
+
`, ji = f`
|
|
13438
13474
|
query GetTransactionForPartner($id: String!) {
|
|
13439
13475
|
transactions(ids: [$id]) {
|
|
13440
13476
|
id
|
|
@@ -13451,7 +13487,7 @@ const Ji = f`
|
|
|
13451
13487
|
}
|
|
13452
13488
|
}
|
|
13453
13489
|
}
|
|
13454
|
-
`,
|
|
13490
|
+
`, Vi = f`
|
|
13455
13491
|
${Ie(!1)}
|
|
13456
13492
|
query GetWorkflowForTheme($id: String!) {
|
|
13457
13493
|
workflow(id: $id) {
|
|
@@ -13473,7 +13509,7 @@ const Ji = f`
|
|
|
13473
13509
|
}
|
|
13474
13510
|
}
|
|
13475
13511
|
}
|
|
13476
|
-
`,
|
|
13512
|
+
`, Wi = f`
|
|
13477
13513
|
query GetCustomer($emailAddress: String!) {
|
|
13478
13514
|
customer(emailAddress: $emailAddress) {
|
|
13479
13515
|
id
|
|
@@ -13483,7 +13519,7 @@ const Ji = f`
|
|
|
13483
13519
|
}
|
|
13484
13520
|
}
|
|
13485
13521
|
}
|
|
13486
|
-
`,
|
|
13522
|
+
`, Xi = f`
|
|
13487
13523
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
13488
13524
|
customerCreate(details: $details) {
|
|
13489
13525
|
id
|
|
@@ -13493,7 +13529,7 @@ const Ji = f`
|
|
|
13493
13529
|
}
|
|
13494
13530
|
}
|
|
13495
13531
|
}
|
|
13496
|
-
`,
|
|
13532
|
+
`, qi = f`
|
|
13497
13533
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
13498
13534
|
customerAuthenticate(loginToken: $loginToken) {
|
|
13499
13535
|
id
|
|
@@ -13520,11 +13556,11 @@ const Ji = f`
|
|
|
13520
13556
|
}
|
|
13521
13557
|
}
|
|
13522
13558
|
}
|
|
13523
|
-
`,
|
|
13559
|
+
`, Zi = f`
|
|
13524
13560
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
13525
13561
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
13526
13562
|
}
|
|
13527
|
-
`,
|
|
13563
|
+
`, $i = f`
|
|
13528
13564
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
13529
13565
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
13530
13566
|
id
|
|
@@ -13552,13 +13588,13 @@ const Ji = f`
|
|
|
13552
13588
|
}
|
|
13553
13589
|
}
|
|
13554
13590
|
}
|
|
13555
|
-
`,
|
|
13591
|
+
`, _i = f`
|
|
13556
13592
|
fragment TagFields on Tag {
|
|
13557
13593
|
id
|
|
13558
13594
|
name
|
|
13559
13595
|
}
|
|
13560
|
-
`,
|
|
13561
|
-
${
|
|
13596
|
+
`, es = f`
|
|
13597
|
+
${_i}
|
|
13562
13598
|
query GetManyTags($entityIds: [String!]!) {
|
|
13563
13599
|
tagsMany(entityIds: $entityIds) {
|
|
13564
13600
|
...TagFields
|
|
@@ -13577,13 +13613,13 @@ const Ji = f`
|
|
|
13577
13613
|
const a = g.layouts[t].elements.filter((n) => n.type === G.Textbox);
|
|
13578
13614
|
for (let n = 0; n < a.length; ++n) {
|
|
13579
13615
|
const i = a[n];
|
|
13580
|
-
(e = i.fontData) != null && e.assetUrl && await
|
|
13616
|
+
(e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
|
|
13581
13617
|
}
|
|
13582
13618
|
}
|
|
13583
|
-
},
|
|
13619
|
+
}, ts = async (g, e) => {
|
|
13584
13620
|
var a;
|
|
13585
13621
|
const t = await x.getShadowGraphqlClient().query({
|
|
13586
|
-
query:
|
|
13622
|
+
query: Ki(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
|
|
13587
13623
|
errorPolicy: "all",
|
|
13588
13624
|
fetchPolicy: "no-cache",
|
|
13589
13625
|
variables: {
|
|
@@ -13595,12 +13631,12 @@ const Ji = f`
|
|
|
13595
13631
|
return A.forEach((n) => {
|
|
13596
13632
|
n.steps.forEach((i) => {
|
|
13597
13633
|
var s, o, r;
|
|
13598
|
-
delete i.data.__typename, (s = i.option) != null && s.id && ((o = i.option.defaultVariant) != null && o.asset &&
|
|
13599
|
-
c.asset &&
|
|
13634
|
+
delete i.data.__typename, (s = i.option) != null && s.id && ((o = i.option.defaultVariant) != null && o.asset && U.cacheAsset(i.option.defaultVariant.asset), i.option.colorProfile && U.cacheAsset(i.option.colorProfile), (r = i.option.variants) == null || r.forEach((c) => {
|
|
13635
|
+
c.asset && U.cacheAsset(c.asset), c.thumbnail && U.cacheAsset(c.thumbnail), c.material && U.cacheMaterial(c.material);
|
|
13600
13636
|
}), Qe.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
13601
13637
|
}), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
|
|
13602
13638
|
}), A;
|
|
13603
|
-
},
|
|
13639
|
+
}, As = async (g, e) => {
|
|
13604
13640
|
const A = (await e).find((a) => a.id === g);
|
|
13605
13641
|
if (!A)
|
|
13606
13642
|
throw new Error(`Workflow not found: ${g}`);
|
|
@@ -13609,11 +13645,11 @@ const Ji = f`
|
|
|
13609
13645
|
const t = g.map((s) => Qe.get({ id: s, options: e })), A = g.filter((s, o) => t[o] === void 0);
|
|
13610
13646
|
if (A.length === 0)
|
|
13611
13647
|
return Promise.all(t);
|
|
13612
|
-
const a =
|
|
13613
|
-
(s) => Qe.set({ id: s, options: e },
|
|
13648
|
+
const a = ts(A, e), n = A.map(
|
|
13649
|
+
(s) => Qe.set({ id: s, options: e }, As(s, a))
|
|
13614
13650
|
), i = t.filter((s) => s !== void 0);
|
|
13615
13651
|
return await Promise.all(i.concat(n));
|
|
13616
|
-
}, xe = async (g, e) => (await vA([g], e))[0],
|
|
13652
|
+
}, xe = async (g, e) => (await vA([g], e))[0], as = (g) => g.sort((e, t) => e.index - t.index).map((e) => ({
|
|
13617
13653
|
id: J(),
|
|
13618
13654
|
panelId: e.name,
|
|
13619
13655
|
name: e.name,
|
|
@@ -13626,22 +13662,22 @@ const Ji = f`
|
|
|
13626
13662
|
previewRegion: e.previewRegion,
|
|
13627
13663
|
useEditableArea: e.useEditableArea,
|
|
13628
13664
|
editableArea: e.editableArea
|
|
13629
|
-
})),
|
|
13665
|
+
})), tt = (g, e) => {
|
|
13630
13666
|
const t = g.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
13631
|
-
return A ? Object.values(A.layouts).map((a) => a.layout) :
|
|
13667
|
+
return A ? Object.values(A.layouts).map((a) => a.layout) : as(e.panels);
|
|
13632
13668
|
};
|
|
13633
|
-
class
|
|
13669
|
+
class ns {
|
|
13634
13670
|
constructor(e) {
|
|
13635
13671
|
this.activeIntegration = void 0, this.updateTransactionState = async (t) => {
|
|
13636
13672
|
try {
|
|
13637
13673
|
return x.getShadowGraphqlClient().mutate({
|
|
13638
13674
|
...t,
|
|
13639
|
-
mutation:
|
|
13675
|
+
mutation: Ua
|
|
13640
13676
|
});
|
|
13641
13677
|
} catch (A) {
|
|
13642
13678
|
throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
|
|
13643
13679
|
}
|
|
13644
|
-
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.
|
|
13680
|
+
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.8.0"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
|
|
13645
13681
|
}
|
|
13646
13682
|
/** @deprecated Use `configure` instead */
|
|
13647
13683
|
configureUrls(e, t, A) {
|
|
@@ -13655,7 +13691,7 @@ class as {
|
|
|
13655
13691
|
* and the Spiff Commerce platform.
|
|
13656
13692
|
*/
|
|
13657
13693
|
getAssetManager() {
|
|
13658
|
-
return
|
|
13694
|
+
return U;
|
|
13659
13695
|
}
|
|
13660
13696
|
getCurrencyCode() {
|
|
13661
13697
|
if (this.currencyCode === void 0)
|
|
@@ -13665,7 +13701,7 @@ class as {
|
|
|
13665
13701
|
getFlowService() {
|
|
13666
13702
|
if (!ga())
|
|
13667
13703
|
throw new Error("Application key required to use Flow Service.");
|
|
13668
|
-
return new
|
|
13704
|
+
return new Gi();
|
|
13669
13705
|
}
|
|
13670
13706
|
async getIntegration() {
|
|
13671
13707
|
if (this.activeIntegration)
|
|
@@ -13730,7 +13766,7 @@ class as {
|
|
|
13730
13766
|
async authenticateTransactionFromLocalStorage(e) {
|
|
13731
13767
|
var c, B, l, d, C, w;
|
|
13732
13768
|
const t = x.getShadowGraphqlClient(), A = await t.query({
|
|
13733
|
-
query:
|
|
13769
|
+
query: ji,
|
|
13734
13770
|
errorPolicy: "all",
|
|
13735
13771
|
fetchPolicy: "no-cache",
|
|
13736
13772
|
variables: {
|
|
@@ -13749,9 +13785,9 @@ class as {
|
|
|
13749
13785
|
return Promise.resolve({ success: !0, stakeholderType: be.Owner });
|
|
13750
13786
|
const s = P.getMap("transactionCustomerIds");
|
|
13751
13787
|
if (s != null && s.has(e)) {
|
|
13752
|
-
const
|
|
13753
|
-
if (
|
|
13754
|
-
const
|
|
13788
|
+
const h = s.get(e);
|
|
13789
|
+
if (h && await this.authenticateCustomerId(h)) {
|
|
13790
|
+
const E = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
13755
13791
|
(D) => {
|
|
13756
13792
|
var m, p;
|
|
13757
13793
|
return (p = (m = D.bundle) == null ? void 0 : m.transactions) == null ? void 0 : p.some((Q) => Q.id === e);
|
|
@@ -13762,15 +13798,15 @@ class as {
|
|
|
13762
13798
|
return ((m = D.transaction) == null ? void 0 : m.id) === e;
|
|
13763
13799
|
}
|
|
13764
13800
|
));
|
|
13765
|
-
if (
|
|
13801
|
+
if (E)
|
|
13766
13802
|
return Promise.resolve({
|
|
13767
13803
|
success: !0,
|
|
13768
|
-
stakeholderType:
|
|
13804
|
+
stakeholderType: E.type
|
|
13769
13805
|
});
|
|
13770
13806
|
}
|
|
13771
13807
|
}
|
|
13772
13808
|
const r = (await t.query({
|
|
13773
|
-
query:
|
|
13809
|
+
query: Vi,
|
|
13774
13810
|
errorPolicy: "all",
|
|
13775
13811
|
variables: {
|
|
13776
13812
|
id: a.workflowId
|
|
@@ -13806,7 +13842,7 @@ class as {
|
|
|
13806
13842
|
var i;
|
|
13807
13843
|
this.customer = void 0;
|
|
13808
13844
|
const t = x.getShadowGraphqlClient(), a = (await t.query({
|
|
13809
|
-
query:
|
|
13845
|
+
query: Wi,
|
|
13810
13846
|
errorPolicy: "all",
|
|
13811
13847
|
fetchPolicy: "no-cache",
|
|
13812
13848
|
variables: {
|
|
@@ -13815,7 +13851,7 @@ class as {
|
|
|
13815
13851
|
})).data.customer;
|
|
13816
13852
|
if (!a.id) {
|
|
13817
13853
|
const o = (i = (await t.mutate({
|
|
13818
|
-
mutation:
|
|
13854
|
+
mutation: Xi,
|
|
13819
13855
|
errorPolicy: "all",
|
|
13820
13856
|
fetchPolicy: "no-cache",
|
|
13821
13857
|
variables: {
|
|
@@ -13847,14 +13883,14 @@ class as {
|
|
|
13847
13883
|
if (!a)
|
|
13848
13884
|
return !1;
|
|
13849
13885
|
const i = (s = (await t.mutate({
|
|
13850
|
-
mutation:
|
|
13886
|
+
mutation: qi,
|
|
13851
13887
|
errorPolicy: "all",
|
|
13852
13888
|
fetchPolicy: "no-cache",
|
|
13853
13889
|
variables: {
|
|
13854
13890
|
loginToken: a
|
|
13855
13891
|
}
|
|
13856
13892
|
})).data) == null ? void 0 : s.customerAuthenticate;
|
|
13857
|
-
return i ? (this.storeCustomer(i),
|
|
13893
|
+
return i ? (this.storeCustomer(i), vt(a), this.customer = i, !0) : !1;
|
|
13858
13894
|
}
|
|
13859
13895
|
/**
|
|
13860
13896
|
* Generates a verification code for the given email address.
|
|
@@ -13862,7 +13898,7 @@ class as {
|
|
|
13862
13898
|
*/
|
|
13863
13899
|
async generateVerificationCode(e) {
|
|
13864
13900
|
await x.getShadowGraphqlClient().mutate({
|
|
13865
|
-
mutation:
|
|
13901
|
+
mutation: Zi,
|
|
13866
13902
|
variables: {
|
|
13867
13903
|
emailAddress: e
|
|
13868
13904
|
}
|
|
@@ -13877,7 +13913,7 @@ class as {
|
|
|
13877
13913
|
async verifyCode(e, t) {
|
|
13878
13914
|
var n, i;
|
|
13879
13915
|
const a = (n = (await x.getShadowGraphqlClient().mutate({
|
|
13880
|
-
mutation:
|
|
13916
|
+
mutation: $i,
|
|
13881
13917
|
errorPolicy: "all",
|
|
13882
13918
|
fetchPolicy: "no-cache",
|
|
13883
13919
|
variables: {
|
|
@@ -13889,7 +13925,7 @@ class as {
|
|
|
13889
13925
|
if (!((i = a.partner) != null && i.id))
|
|
13890
13926
|
throw new Error(`Unable to find customer: ${e}`);
|
|
13891
13927
|
const s = P.getMap("customerTokens") || /* @__PURE__ */ new Map();
|
|
13892
|
-
return s.set(a.id, a.loginToken), P.setMap("customerTokens", s), this.storeCustomer(a),
|
|
13928
|
+
return s.set(a.id, a.loginToken), P.setMap("customerTokens", s), this.storeCustomer(a), vt(a.loginToken), this.customer = {
|
|
13893
13929
|
...a,
|
|
13894
13930
|
loginToken: void 0
|
|
13895
13931
|
}, !0;
|
|
@@ -13918,7 +13954,7 @@ class as {
|
|
|
13918
13954
|
i.set(n.id, n.partner.id), P.setMap("bundlePartnerIds", i);
|
|
13919
13955
|
const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
13920
13956
|
s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
|
|
13921
|
-
const o = new
|
|
13957
|
+
const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
|
|
13922
13958
|
eagerFetchProducts: (d = (l = A == null ? void 0 : A.graphql) == null ? void 0 : l.productCollection) == null ? void 0 : d.eagerFetchProducts
|
|
13923
13959
|
});
|
|
13924
13960
|
return await o.getInitializationPromise(), o;
|
|
@@ -13931,15 +13967,15 @@ class as {
|
|
|
13931
13967
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
13932
13968
|
*/
|
|
13933
13969
|
async getExistingBundle(e, t, A, a) {
|
|
13934
|
-
var
|
|
13935
|
-
const n = P.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((
|
|
13936
|
-
r && !
|
|
13970
|
+
var h, u, E, D, m, p, Q, I, F, y, Y;
|
|
13971
|
+
const n = P.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((h = Object.entries(localStorage).find(([N, S]) => N.startsWith("CognitoIdentityServiceProvider") && N.endsWith("idToken"))) == null ? void 0 : h[0]) || "", r = localStorage.getItem(o), c = {};
|
|
13972
|
+
r && !Oe(r) && (c.Authorization = `Bearer ${r}`);
|
|
13937
13973
|
const B = {
|
|
13938
13974
|
bundleOwnerId: i,
|
|
13939
13975
|
...c,
|
|
13940
13976
|
...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
|
|
13941
13977
|
}, l = await x.getShadowGraphqlClient().query({
|
|
13942
|
-
query: gi(((D = (
|
|
13978
|
+
query: gi(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
|
|
13943
13979
|
variables: {
|
|
13944
13980
|
id: e
|
|
13945
13981
|
},
|
|
@@ -13952,9 +13988,48 @@ class as {
|
|
|
13952
13988
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
13953
13989
|
const d = (I = l.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
13954
13990
|
C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
|
|
13955
|
-
const w = new
|
|
13991
|
+
const w = new et(this, d, t, A, i, {
|
|
13956
13992
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
|
|
13957
|
-
eagerFetchProducts: (Y = (
|
|
13993
|
+
eagerFetchProducts: (Y = (y = a == null ? void 0 : a.graphql) == null ? void 0 : y.productCollection) == null ? void 0 : Y.eagerFetchProducts
|
|
13994
|
+
});
|
|
13995
|
+
return await w.getInitializationPromise(), w;
|
|
13996
|
+
}
|
|
13997
|
+
/**
|
|
13998
|
+
* @param bundleId The id of the bundle to copy. The current context must have write access to the this bundle in order to duplicate it.
|
|
13999
|
+
* @param template Optional: Whether to mark the new bundle as a template. Default is false.
|
|
14000
|
+
* @param duplicateTransactions Optional: Whether to also duplicate the original bundle's transactions. Default is true.
|
|
14001
|
+
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
14002
|
+
*/
|
|
14003
|
+
async duplicateBundle(e, t, A, a) {
|
|
14004
|
+
var h, u, E, D, m, p, Q, I;
|
|
14005
|
+
const n = (h = P.getMap("bundleOwnerIds")) == null ? void 0 : h.get(e), s = ((u = Object.entries(localStorage).find(([F, y]) => F.startsWith("CognitoIdentityServiceProvider") && F.endsWith("idToken"))) == null ? void 0 : u[0]) || "", o = localStorage.getItem(s), r = {};
|
|
14006
|
+
o && !Oe(o) && (r.Authorization = `Bearer ${o}`);
|
|
14007
|
+
const c = {
|
|
14008
|
+
bundleOwnerId: n,
|
|
14009
|
+
...r,
|
|
14010
|
+
...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
|
|
14011
|
+
}, l = (p = (await x.getShadowGraphqlClient().mutate({
|
|
14012
|
+
mutation: wi(((m = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : m.eagerFetchProducts) || !1),
|
|
14013
|
+
variables: {
|
|
14014
|
+
id: e,
|
|
14015
|
+
template: t,
|
|
14016
|
+
marketplaceThemeInstallId: this.marketplaceThemeInstallId,
|
|
14017
|
+
marketplaceThemeInstallConfigurationId: this.marketplaceThemeInstallConfigurationId,
|
|
14018
|
+
duplicateTransactions: A
|
|
14019
|
+
},
|
|
14020
|
+
context: {
|
|
14021
|
+
headers: c
|
|
14022
|
+
},
|
|
14023
|
+
fetchPolicy: "no-cache"
|
|
14024
|
+
})).data) == null ? void 0 : p.bundleDuplicate;
|
|
14025
|
+
if (!(l != null && l.id))
|
|
14026
|
+
throw new Error("Unable to duplicate bundle");
|
|
14027
|
+
const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14028
|
+
d.set(l.id, l.partner.id), P.setMap("bundlePartnerIds", d);
|
|
14029
|
+
const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14030
|
+
C.set(l.id, l.bundleOwnerId), P.setMap("bundleOwnerIds", C);
|
|
14031
|
+
const w = new et(this, l, void 0, void 0, l.bundleOwnerId, {
|
|
14032
|
+
eagerFetchProducts: (I = (Q = a == null ? void 0 : a.graphql) == null ? void 0 : Q.productCollection) == null ? void 0 : I.eagerFetchProducts
|
|
13958
14033
|
});
|
|
13959
14034
|
return await w.getInitializationPromise(), w;
|
|
13960
14035
|
}
|
|
@@ -13985,7 +14060,7 @@ class as {
|
|
|
13985
14060
|
const t = x.getShadowGraphqlClient();
|
|
13986
14061
|
let A = {};
|
|
13987
14062
|
const a = e.steps.map((i) => `${e.id}_${i.stepName}`), n = await t.query({
|
|
13988
|
-
query:
|
|
14063
|
+
query: es,
|
|
13989
14064
|
fetchPolicy: "no-cache",
|
|
13990
14065
|
variables: { entityIds: a }
|
|
13991
14066
|
});
|
|
@@ -14007,11 +14082,11 @@ class as {
|
|
|
14007
14082
|
* @returns A workflow experience configured as requested.
|
|
14008
14083
|
*/
|
|
14009
14084
|
async getWorkflowExperience(e, t, A, a) {
|
|
14010
|
-
var l, d, C, w,
|
|
14085
|
+
var l, d, C, w, h;
|
|
14011
14086
|
if (!a)
|
|
14012
14087
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
14013
14088
|
const n = async () => {
|
|
14014
|
-
var
|
|
14089
|
+
var E, D, m;
|
|
14015
14090
|
const u = x.getShadowGraphqlClient();
|
|
14016
14091
|
if (a.type === "transaction") {
|
|
14017
14092
|
const { transactionId: p, readOnly: Q } = a, I = await u.query({
|
|
@@ -14022,17 +14097,17 @@ class as {
|
|
|
14022
14097
|
errorPolicy: "all",
|
|
14023
14098
|
fetchPolicy: "no-cache"
|
|
14024
14099
|
});
|
|
14025
|
-
if (!((
|
|
14100
|
+
if (!((E = I.data) != null && E.transactions) || I.data.transactions.length === 0)
|
|
14026
14101
|
throw new H("Existing transaction not found.");
|
|
14027
14102
|
const F = (D = I.data) == null ? void 0 : D.transactions[0];
|
|
14028
14103
|
if (!F.workflowId)
|
|
14029
14104
|
throw new H("Existing transaction has no workflow ID.");
|
|
14030
|
-
const
|
|
14105
|
+
const y = await xe(F.workflowId);
|
|
14031
14106
|
if (!F.product)
|
|
14032
14107
|
throw new H("Failed to load transaction, product not available.");
|
|
14033
14108
|
!this.activeIntegration && ((m = F.integrationProduct) != null && m.integration) && (this.activeIntegration = Promise.resolve(F.integrationProduct.integration));
|
|
14034
|
-
const Y = await this.getStepTags(
|
|
14035
|
-
return { transaction: F, workflow:
|
|
14109
|
+
const Y = await this.getStepTags(y);
|
|
14110
|
+
return { transaction: F, workflow: y, stepTags: Y, readOnly: Q };
|
|
14036
14111
|
}
|
|
14037
14112
|
if (a.type === "integration" || a.type === "external") {
|
|
14038
14113
|
const p = async () => {
|
|
@@ -14040,7 +14115,7 @@ class as {
|
|
|
14040
14115
|
externalIntegrationId: a.externalIntegrationId,
|
|
14041
14116
|
externalProductId: a.externalProductId
|
|
14042
14117
|
}, N = await u.mutate({
|
|
14043
|
-
mutation:
|
|
14118
|
+
mutation: Ht,
|
|
14044
14119
|
variables: {
|
|
14045
14120
|
...Y,
|
|
14046
14121
|
workflowId: a.workflowId,
|
|
@@ -14060,8 +14135,8 @@ class as {
|
|
|
14060
14135
|
if (!S.product)
|
|
14061
14136
|
throw new H("Failed to create transaction, product not available.");
|
|
14062
14137
|
return S;
|
|
14063
|
-
}, Q = xe(a.workflowId, a == null ? void 0 : a.graphql), [I, F] = await Promise.all([p(), Q]),
|
|
14064
|
-
return { transaction: I, workflow: F, stepTags:
|
|
14138
|
+
}, Q = xe(a.workflowId, a == null ? void 0 : a.graphql), [I, F] = await Promise.all([p(), Q]), y = await this.getStepTags(F);
|
|
14139
|
+
return { transaction: I, workflow: F, stepTags: y };
|
|
14065
14140
|
}
|
|
14066
14141
|
throw new H("No workflow ID provided.");
|
|
14067
14142
|
}, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
|
|
@@ -14083,12 +14158,12 @@ class as {
|
|
|
14083
14158
|
};
|
|
14084
14159
|
if (a.type === "transaction" && i.workflowState) {
|
|
14085
14160
|
const u = JSON.parse(i.workflowState);
|
|
14086
|
-
c.layouts = Object.values(u.layouts).map((
|
|
14161
|
+
c.layouts = Object.values(u.layouts).map((E) => E.layout), await se(u), await re(u), c.reloadedState = u;
|
|
14087
14162
|
} else if (!r && a.workflowState) {
|
|
14088
14163
|
const u = JSON.parse(a.workflowState);
|
|
14089
|
-
c.layouts = Object.values(u.layouts).map((
|
|
14164
|
+
c.layouts = Object.values(u.layouts).map((E) => E.layout), await se(u), await re(u), c.reloadedState = u;
|
|
14090
14165
|
} else
|
|
14091
|
-
c.layouts =
|
|
14166
|
+
c.layouts = tt(
|
|
14092
14167
|
c.transaction,
|
|
14093
14168
|
c.workflow
|
|
14094
14169
|
);
|
|
@@ -14097,7 +14172,7 @@ class as {
|
|
|
14097
14172
|
), a.previewService ? (c.previewService = a.previewService, (C = c.product) != null && C.modelUrl && (c.modelContainer = c.previewService.loadModel({
|
|
14098
14173
|
model: c.product.modelUrl,
|
|
14099
14174
|
contextService: c.renderableContextService
|
|
14100
|
-
}))) : (c.previewService = A && A(s), (w = c.product) != null && w.modelUrl && (c.modelContainer = (
|
|
14175
|
+
}))) : (c.previewService = A && A(s), (w = c.product) != null && w.modelUrl && (c.modelContainer = (h = c.previewService) == null ? void 0 : h.loadModel({
|
|
14101
14176
|
model: c.product.modelUrl,
|
|
14102
14177
|
contextService: c.renderableContextService
|
|
14103
14178
|
}))), a.type !== "transaction") {
|
|
@@ -14120,7 +14195,7 @@ class as {
|
|
|
14120
14195
|
if (e.length === 0)
|
|
14121
14196
|
throw new H("No options provided!");
|
|
14122
14197
|
const A = x.getShadowGraphqlClient(), a = async (p) => {
|
|
14123
|
-
var
|
|
14198
|
+
var y, Y, N;
|
|
14124
14199
|
if (p.length === 0)
|
|
14125
14200
|
return [];
|
|
14126
14201
|
const Q = p.map((S) => S.option.transactionId), I = await A.query({
|
|
@@ -14132,7 +14207,7 @@ class as {
|
|
|
14132
14207
|
fetchPolicy: "no-cache"
|
|
14133
14208
|
}), F = I.data.transactions;
|
|
14134
14209
|
if (F.length !== p.length) {
|
|
14135
|
-
const S = ((Y = (
|
|
14210
|
+
const S = ((Y = (y = I.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
14136
14211
|
throw new H(`Not all transactions were found: ${S}`);
|
|
14137
14212
|
}
|
|
14138
14213
|
return !this.activeIntegration && ((N = F[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(F[0].integrationProduct.integration)), F.map((S, T) => {
|
|
@@ -14145,7 +14220,7 @@ class as {
|
|
|
14145
14220
|
};
|
|
14146
14221
|
});
|
|
14147
14222
|
}, n = async (p) => {
|
|
14148
|
-
var F,
|
|
14223
|
+
var F, y, Y;
|
|
14149
14224
|
if (p.length === 0)
|
|
14150
14225
|
return [];
|
|
14151
14226
|
const Q = await A.mutate({
|
|
@@ -14166,7 +14241,7 @@ class as {
|
|
|
14166
14241
|
fetchPolicy: "no-cache"
|
|
14167
14242
|
}), I = (F = Q.data) == null ? void 0 : F.transactionCreateMany;
|
|
14168
14243
|
if (!I || I.length === 0) {
|
|
14169
|
-
const N = ((Y = (
|
|
14244
|
+
const N = ((Y = (y = Q.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
14170
14245
|
throw new H(`Failed to create transactions: ${N}`);
|
|
14171
14246
|
}
|
|
14172
14247
|
return I.map((N, S) => ({
|
|
@@ -14177,12 +14252,12 @@ class as {
|
|
|
14177
14252
|
}));
|
|
14178
14253
|
}, i = e.map((p, Q) => ({ option: p, index: Q })), s = i.filter((p) => p.option.type === "transaction"), o = i.filter(
|
|
14179
14254
|
(p) => p.option.type === "integration" || p.option.type === "external"
|
|
14180
|
-
), r =
|
|
14255
|
+
), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
|
|
14181
14256
|
...r.map(a),
|
|
14182
14257
|
...c.map(n)
|
|
14183
|
-
])).flat(), l = [...new Set(B.map((p) => p.workflowId))], d = await vA(l, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(),
|
|
14258
|
+
])).flat(), l = [...new Set(B.map((p) => p.workflowId))], d = await vA(l, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
|
|
14184
14259
|
var W;
|
|
14185
|
-
const { transaction: Q, workflowId: I, readOnly: F, index:
|
|
14260
|
+
const { transaction: Q, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
|
|
14186
14261
|
!w.get(Q.id) && Q.transactionOwnerId && w.set(Q.id, Q.transactionOwnerId);
|
|
14187
14262
|
const T = w.get(Q.id) || void 0, R = {
|
|
14188
14263
|
product: Q.product,
|
|
@@ -14204,14 +14279,14 @@ class as {
|
|
|
14204
14279
|
const O = JSON.parse(S.workflowState);
|
|
14205
14280
|
R.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), R.reloadedState = O;
|
|
14206
14281
|
} else
|
|
14207
|
-
R.layouts =
|
|
14282
|
+
R.layouts = tt(
|
|
14208
14283
|
R.transaction,
|
|
14209
14284
|
R.workflow
|
|
14210
14285
|
);
|
|
14211
14286
|
return R.renderableContextService = new Ye(
|
|
14212
14287
|
R.layouts
|
|
14213
|
-
), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index:
|
|
14214
|
-
}), u = await Promise.all(
|
|
14288
|
+
), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: y, options: S };
|
|
14289
|
+
}), u = await Promise.all(h);
|
|
14215
14290
|
P.setMap("transactionOwnerIds", w);
|
|
14216
14291
|
const D = u.sort((p, Q) => p.index - Q.index).map(async (p) => {
|
|
14217
14292
|
const { experienceOptions: Q, options: I } = p, F = new Se(this, Q);
|
|
@@ -14229,7 +14304,7 @@ class as {
|
|
|
14229
14304
|
if (e === "")
|
|
14230
14305
|
throw new H("No integration product ID provided.");
|
|
14231
14306
|
const A = await x.getShadowGraphqlClient().mutate({
|
|
14232
|
-
mutation:
|
|
14307
|
+
mutation: Ht,
|
|
14233
14308
|
variables: {
|
|
14234
14309
|
integrationProductId: e,
|
|
14235
14310
|
claim: !0,
|
|
@@ -14316,7 +14391,7 @@ class as {
|
|
|
14316
14391
|
}
|
|
14317
14392
|
try {
|
|
14318
14393
|
const l = (r = (await A.mutate({
|
|
14319
|
-
mutation:
|
|
14394
|
+
mutation: ka,
|
|
14320
14395
|
variables: { id: e },
|
|
14321
14396
|
errorPolicy: "all"
|
|
14322
14397
|
})).data) == null ? void 0 : r.transactionClaim;
|
|
@@ -14373,7 +14448,7 @@ class as {
|
|
|
14373
14448
|
const d = JSON.parse(t);
|
|
14374
14449
|
this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await se(d), await re(d), this.experienceOptions.reloadedState = d;
|
|
14375
14450
|
} else
|
|
14376
|
-
this.experienceOptions.layouts =
|
|
14451
|
+
this.experienceOptions.layouts = tt(
|
|
14377
14452
|
this.experienceOptions.transaction,
|
|
14378
14453
|
this.experienceOptions.workflow
|
|
14379
14454
|
);
|
|
@@ -14465,7 +14540,7 @@ class as {
|
|
|
14465
14540
|
return a.data.transactions[0].transactionShareActions;
|
|
14466
14541
|
}
|
|
14467
14542
|
}
|
|
14468
|
-
class
|
|
14543
|
+
class Ms {
|
|
14469
14544
|
getClient() {
|
|
14470
14545
|
return this.client ?? {};
|
|
14471
14546
|
}
|
|
@@ -14618,8 +14693,8 @@ class ys {
|
|
|
14618
14693
|
return [];
|
|
14619
14694
|
}
|
|
14620
14695
|
}
|
|
14621
|
-
var
|
|
14622
|
-
class
|
|
14696
|
+
var is = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(is || {});
|
|
14697
|
+
class ss extends X {
|
|
14623
14698
|
constructor(e, t, A) {
|
|
14624
14699
|
var a;
|
|
14625
14700
|
super(e, t, A), this.frameService = (a = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : a.frameService;
|
|
@@ -14663,7 +14738,7 @@ class is extends X {
|
|
|
14663
14738
|
* Returns `true` if the Background Remover is available for the current session.
|
|
14664
14739
|
*/
|
|
14665
14740
|
async canUseBackgroundRemover() {
|
|
14666
|
-
return this.manager.getClient().canUseAddon(
|
|
14741
|
+
return this.manager.getClient().canUseAddon(ut.BackgroundRemover);
|
|
14667
14742
|
}
|
|
14668
14743
|
/**
|
|
14669
14744
|
* Returns `true` if the Background Remover is available for the current session and if the associated frame has a user-supplied raster image.
|
|
@@ -14686,7 +14761,7 @@ class is extends X {
|
|
|
14686
14761
|
const t = await this.getOriginalImageSelection();
|
|
14687
14762
|
if (!t)
|
|
14688
14763
|
throw new Error("You must supply an image selection before attempting to remove the background.");
|
|
14689
|
-
const A = await
|
|
14764
|
+
const A = await U.removeBackgroundFromAsset(t);
|
|
14690
14765
|
e && await Ae.selectImage(this.step, A, this.manager, !1);
|
|
14691
14766
|
const a = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.framePatternData) || {};
|
|
14692
14767
|
return this.manager.updateStorage(this.step.stepName, {
|
|
@@ -14715,7 +14790,7 @@ class is extends X {
|
|
|
14715
14790
|
}
|
|
14716
14791
|
async getOriginalImageColors() {
|
|
14717
14792
|
const e = this.getImageData();
|
|
14718
|
-
return e != null && e.svg ? (await
|
|
14793
|
+
return e != null && e.svg ? (await ze(e.svg)).colors : void 0;
|
|
14719
14794
|
}
|
|
14720
14795
|
getMaxAllowedColors() {
|
|
14721
14796
|
return this.step.data.maxColors;
|
|
@@ -14745,13 +14820,13 @@ class is extends X {
|
|
|
14745
14820
|
var t, A;
|
|
14746
14821
|
const e = (A = (t = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : t.framePatternData) == null ? void 0 : A.originalAssetKey;
|
|
14747
14822
|
if (e)
|
|
14748
|
-
return
|
|
14823
|
+
return U.getLocalOrFromServer(e);
|
|
14749
14824
|
}
|
|
14750
14825
|
async getBackgroundRemovedImageSelection() {
|
|
14751
14826
|
var t, A;
|
|
14752
14827
|
const e = (A = (t = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : t.framePatternData) == null ? void 0 : A.backgroundRemovedAssetKey;
|
|
14753
14828
|
if (e)
|
|
14754
|
-
return
|
|
14829
|
+
return U.getLocalOrFromServer(e);
|
|
14755
14830
|
}
|
|
14756
14831
|
hasOriginalImageSelection() {
|
|
14757
14832
|
var e, t;
|
|
@@ -14792,133 +14867,133 @@ class is extends X {
|
|
|
14792
14867
|
}
|
|
14793
14868
|
}
|
|
14794
14869
|
export {
|
|
14795
|
-
|
|
14796
|
-
|
|
14797
|
-
|
|
14870
|
+
ut as AddonHandle,
|
|
14871
|
+
ys as ArrayInput,
|
|
14872
|
+
Ps as AspectType,
|
|
14798
14873
|
ie as AssetNotFoundError,
|
|
14799
|
-
|
|
14800
|
-
|
|
14801
|
-
|
|
14802
|
-
|
|
14803
|
-
|
|
14804
|
-
|
|
14805
|
-
|
|
14806
|
-
|
|
14874
|
+
xs as AssetType,
|
|
14875
|
+
Ns as BringForwardCommand,
|
|
14876
|
+
vs as BringToBackCommand,
|
|
14877
|
+
Rs as BringToFrontCommand,
|
|
14878
|
+
Hs as CanvasCommand,
|
|
14879
|
+
_e as CollectionProduct,
|
|
14880
|
+
Jt as ColorOptionGlobalPropertyHandle,
|
|
14881
|
+
ks as CommandContext,
|
|
14807
14882
|
va as ConversionDataType,
|
|
14808
14883
|
Na as ConversionLocation,
|
|
14809
14884
|
Us as CreateElementCommand,
|
|
14810
|
-
|
|
14811
|
-
|
|
14812
|
-
|
|
14813
|
-
|
|
14885
|
+
Gs as CreateLayoutCommand,
|
|
14886
|
+
bs as DeleteElementCommand,
|
|
14887
|
+
kn as DigitalContentStepHandle,
|
|
14888
|
+
Mi as FileUploadGlobalPropertyHandle,
|
|
14814
14889
|
Pe as FlowExecutionNodeResult,
|
|
14815
|
-
|
|
14816
|
-
|
|
14817
|
-
|
|
14818
|
-
|
|
14819
|
-
|
|
14820
|
-
|
|
14890
|
+
bi as FlowExecutionResult,
|
|
14891
|
+
Gi as FlowService,
|
|
14892
|
+
Js as FontAlignmentCommand,
|
|
14893
|
+
Ts as FontColorCommand,
|
|
14894
|
+
Os as FontSizeCommand,
|
|
14895
|
+
Ls as FontSourceCommand,
|
|
14821
14896
|
Xa as FrameService,
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14825
|
-
|
|
14897
|
+
is as FrameStep,
|
|
14898
|
+
ss as FrameStepHandle,
|
|
14899
|
+
It as GlobalPropertyHandle,
|
|
14900
|
+
zs as GroupCommand,
|
|
14826
14901
|
Sn as IllustrationStepHandle,
|
|
14827
14902
|
pe as InformationMessageType,
|
|
14828
14903
|
Hn as InformationStepHandle,
|
|
14829
14904
|
Tt as IntegrationProduct,
|
|
14830
14905
|
Pa as IntegrationType,
|
|
14831
|
-
|
|
14832
|
-
|
|
14906
|
+
Ks as LayoutElementFactory,
|
|
14907
|
+
js as LayoutElementType,
|
|
14833
14908
|
z as LayoutNotFoundError,
|
|
14834
14909
|
Yn as MaterialStepHandle,
|
|
14835
14910
|
Ge as MisconfigurationError,
|
|
14836
|
-
|
|
14911
|
+
Ms as MockWorkflowManager,
|
|
14837
14912
|
Pn as ModelStepHandle,
|
|
14838
|
-
|
|
14839
|
-
|
|
14913
|
+
Un as ModuleStepHandle,
|
|
14914
|
+
Vs as MoveCommand,
|
|
14840
14915
|
NA as ObjectInput,
|
|
14841
|
-
|
|
14916
|
+
Ji as ObjectInputType,
|
|
14842
14917
|
xA as OptionGlobalPropertyHandle,
|
|
14843
|
-
|
|
14844
|
-
|
|
14918
|
+
Ue as OptionNotFoundError,
|
|
14919
|
+
he as ParseError,
|
|
14845
14920
|
xn as PictureStepHandle,
|
|
14846
14921
|
xa as ProductCameraRig,
|
|
14847
|
-
|
|
14848
|
-
|
|
14922
|
+
Ri as ProductCollection,
|
|
14923
|
+
Le as ProductWorkflow,
|
|
14849
14924
|
Qe as PromiseCache,
|
|
14850
14925
|
dA as PromiseQueue,
|
|
14851
14926
|
Nn as QuestionStepHandle,
|
|
14852
14927
|
BA as QueueablePromise,
|
|
14853
|
-
|
|
14928
|
+
Ws as ResizeCommand,
|
|
14854
14929
|
ue as ResourceNotFoundError,
|
|
14855
|
-
|
|
14856
|
-
|
|
14930
|
+
Xs as RotateCommand,
|
|
14931
|
+
qs as SendBackwardsCommand,
|
|
14857
14932
|
vn as ShapeStepHandle,
|
|
14858
|
-
|
|
14933
|
+
ns as SpiffCommerceClient,
|
|
14859
14934
|
be as StakeholderType,
|
|
14860
|
-
|
|
14935
|
+
Zs as StepAspectType,
|
|
14861
14936
|
X as StepHandle,
|
|
14862
|
-
|
|
14863
|
-
|
|
14864
|
-
|
|
14865
|
-
|
|
14937
|
+
$s as StepType,
|
|
14938
|
+
_s as TextChangeCommand,
|
|
14939
|
+
Si as TextGlobalPropertyHandle,
|
|
14940
|
+
Fs as TextInput,
|
|
14866
14941
|
Rn as TextStepHandle,
|
|
14867
14942
|
Ya as TransactionShareActionType,
|
|
14868
|
-
|
|
14869
|
-
|
|
14943
|
+
ki as Transform,
|
|
14944
|
+
Hi as TransformCollection,
|
|
14870
14945
|
b as UnhandledBehaviorError,
|
|
14871
|
-
|
|
14872
|
-
|
|
14946
|
+
eo as UnitOfMeasurement,
|
|
14947
|
+
to as UpdateImageSourceCommand,
|
|
14873
14948
|
Z as Variant,
|
|
14874
14949
|
Vn as WorkflowExperienceEventType,
|
|
14875
14950
|
Se as WorkflowExperienceImpl,
|
|
14876
|
-
|
|
14951
|
+
U as assetService,
|
|
14877
14952
|
tn as browserColorToHex,
|
|
14878
14953
|
Ln as createDesign,
|
|
14879
|
-
|
|
14880
|
-
|
|
14881
|
-
|
|
14954
|
+
Ao as dataUrlFromExternalUrl,
|
|
14955
|
+
$e as designService,
|
|
14956
|
+
ao as determineCorrectFontSizeAndLines,
|
|
14882
14957
|
wA as digitalContentStepService,
|
|
14883
|
-
|
|
14884
|
-
|
|
14885
|
-
|
|
14958
|
+
no as findElement,
|
|
14959
|
+
Ds as findPmsColors,
|
|
14960
|
+
io as frameDataCache,
|
|
14886
14961
|
Ae as frameStepService,
|
|
14887
|
-
|
|
14962
|
+
so as generate,
|
|
14888
14963
|
ni as generateCommands,
|
|
14889
|
-
|
|
14890
|
-
|
|
14891
|
-
|
|
14892
|
-
|
|
14964
|
+
oo as generateSVGWithUnknownColors,
|
|
14965
|
+
fs as generateStateFromDesignInputSteps,
|
|
14966
|
+
ro as getAttributesFromArrayBuffer,
|
|
14967
|
+
co as getAxisAlignedBoundingBox,
|
|
14893
14968
|
Wa as getBoundedOffsets,
|
|
14894
|
-
|
|
14895
|
-
|
|
14969
|
+
go as getFrameData,
|
|
14970
|
+
lo as getSvgElement,
|
|
14896
14971
|
xe as getWorkflow,
|
|
14897
14972
|
vA as getWorkflows,
|
|
14898
14973
|
x as graphQlManager,
|
|
14899
14974
|
ve as illustrationStepService,
|
|
14900
|
-
|
|
14901
|
-
|
|
14902
|
-
|
|
14903
|
-
|
|
14975
|
+
Bo as loadFont,
|
|
14976
|
+
ps as matchHexToPms,
|
|
14977
|
+
hA as materialStepService,
|
|
14978
|
+
EA as modelStepService,
|
|
14904
14979
|
uA as moduleStepService,
|
|
14905
14980
|
V as optionService,
|
|
14906
|
-
|
|
14981
|
+
Co as patternImageDataCache,
|
|
14907
14982
|
P as persistenceService,
|
|
14908
14983
|
QA as pictureStepService,
|
|
14909
|
-
|
|
14984
|
+
ms as pmsToRgb,
|
|
14910
14985
|
mA as questionStepService,
|
|
14911
|
-
|
|
14912
|
-
|
|
14986
|
+
wo as registerFetchImplementation,
|
|
14987
|
+
ho as registerWindowImplementation,
|
|
14913
14988
|
Eo as rehydrateSerializedLayout,
|
|
14914
14989
|
$a as rgbToPms,
|
|
14915
14990
|
la as setBearerAuthenticationToken,
|
|
14916
|
-
|
|
14991
|
+
uo as setCanvasModule,
|
|
14917
14992
|
Ee as shapeStepService,
|
|
14918
14993
|
qa as shortenUrl,
|
|
14919
14994
|
q as spiffCoreConfiguration,
|
|
14920
|
-
|
|
14921
|
-
|
|
14995
|
+
Is as stepAspectValuesToDesignInputSteps,
|
|
14996
|
+
Qo as svgToDataUrl,
|
|
14922
14997
|
j as textStepService,
|
|
14923
14998
|
Bn as toast
|
|
14924
14999
|
};
|