@spiffcommerce/core 22.9.1 → 22.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +23 -7
- package/dist/index.js +746 -760
- package/dist/index.umd.cjs +27 -27
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
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
|
|
3
|
-
import { AspectType as xs, AssetType as Ns, BringForwardCommand as vs, BringToBackCommand as Rs, BringToFrontCommand as Hs, CanvasCommand as ks, CommandContext as Us, CreateElementCommand as Gs, CreateLayoutCommand as bs, DeleteElementCommand as Js, FontAlignmentCommand as Ts, FontColorCommand as Os, FontSizeCommand as Ls, FontSourceCommand as zs, GroupCommand as Ks, LayoutElementFactory as js, LayoutElementType as Vs, MoveCommand as Ws, ResizeCommand as Xs, RotateCommand as qs, SendBackwardsCommand as Zs, StepAspectType as $s, StepType as _s, TextChangeCommand as eo, UnitOfMeasurement as to, UpdateImageSourceCommand as Ao, dataUrlFromExternalUrl as ao, determineCorrectFontSizeAndLines as no, findElement as io, frameDataCache as so, generate as oo, generateSVGWithUnknownColors as ro, getAttributesFromArrayBuffer as co, getAxisAlignedBoundingBox as
|
|
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 Le, svgObjectURL as ve, fetchAsString as _, DeleteElementCommand as ne, generateDefaultRectangleFrameSvg as yt, GetSVGDimensions as OA, patternImageDataCache as Mt, fetchAsArrayBuffer as LA, findElement as Re, 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 xe, FontSourceCommand as St, loadFont as dt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as Ie, _loadFontExternalDataURL as Ct, UpdateWorkflowStateCommand as Yt, CommandContext as $A, createCanvas as He, 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 ze, 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 xs, AssetType as Ns, BringForwardCommand as vs, BringToBackCommand as Rs, BringToFrontCommand as Hs, CanvasCommand as ks, CommandContext as Us, CreateElementCommand as Gs, CreateLayoutCommand as bs, DeleteElementCommand as Js, FontAlignmentCommand as Ts, FontColorCommand as Os, FontSizeCommand as Ls, FontSourceCommand as zs, GroupCommand as Ks, LayoutElementFactory as js, LayoutElementType as Vs, MoveCommand as Ws, ResizeCommand as Xs, RotateCommand as qs, SendBackwardsCommand as Zs, StepAspectType as $s, StepType as _s, TextChangeCommand as eo, UnitOfMeasurement as to, UpdateImageSourceCommand as Ao, dataUrlFromExternalUrl as ao, determineCorrectFontSizeAndLines as no, findElement as io, frameDataCache as so, generate as oo, generateSVGWithUnknownColors as ro, getAttributesFromArrayBuffer as co, getAxisAlignedBoundingBox as go, getFrameData as lo, getSvgElement as Bo, loadFont as Co, patternImageDataCache as wo, registerFetchImplementation as ho, registerWindowImplementation as Eo, rehydrateSerializedLayout as uo, setCanvasModule as Qo, svgToDataUrl as mo } 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
12
|
import { split as st } from "unicode-default-word-boundary";
|
|
@@ -17,57 +17,57 @@ class AA extends Error {
|
|
|
17
17
|
super(e), this.name = this.constructor.name;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
class
|
|
20
|
+
class pe extends AA {
|
|
21
21
|
constructor(e) {
|
|
22
22
|
super(`ConfigurationError - ${e}`);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
class
|
|
25
|
+
class ke extends pe {
|
|
26
26
|
constructor(e) {
|
|
27
27
|
super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
class z extends
|
|
30
|
+
class z extends pe {
|
|
31
31
|
constructor(e) {
|
|
32
32
|
super(`Panel not Found: ${e.panelId}`), this.panelId = (e == null ? void 0 : e.panelId) || "N/A";
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
class ie extends
|
|
35
|
+
class ie extends pe {
|
|
36
36
|
constructor(e) {
|
|
37
37
|
super(`Asset not found for variant: ${e.name}`), this.variant = e;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
class ue extends
|
|
40
|
+
class ue extends pe {
|
|
41
41
|
constructor(e) {
|
|
42
42
|
super(`Resource not found for asset: ${e.name}`), this.asset = e;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
class
|
|
45
|
+
class Ue extends pe {
|
|
46
46
|
constructor(e, t) {
|
|
47
47
|
super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
class
|
|
50
|
+
class Ke extends AA {
|
|
51
51
|
constructor(e) {
|
|
52
52
|
super(`ImplementationError - ${e}`);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
class b extends
|
|
55
|
+
class b extends Ke {
|
|
56
56
|
constructor(e) {
|
|
57
57
|
super(`Unhandled Behavior Encountered: ${e}`);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
class he extends
|
|
60
|
+
class he extends Ke {
|
|
61
61
|
constructor(e) {
|
|
62
62
|
super(`Parsing Error: ${e}`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
class H extends
|
|
65
|
+
class H extends Ke {
|
|
66
66
|
constructor(e) {
|
|
67
67
|
super(`Client Error: ${e}`);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
class
|
|
70
|
+
class je extends Ke {
|
|
71
71
|
constructor(e) {
|
|
72
72
|
super(`Resource Generation Failed: ${e}`);
|
|
73
73
|
}
|
|
@@ -150,28 +150,28 @@ class ra {
|
|
|
150
150
|
}
|
|
151
151
|
const q = new ra();
|
|
152
152
|
let aA;
|
|
153
|
-
const vt = (
|
|
154
|
-
aA =
|
|
153
|
+
const vt = (g) => {
|
|
154
|
+
aA = g;
|
|
155
155
|
};
|
|
156
156
|
let ht;
|
|
157
|
-
const ca = (
|
|
158
|
-
ht =
|
|
159
|
-
},
|
|
157
|
+
const ca = (g) => {
|
|
158
|
+
ht = g;
|
|
159
|
+
}, ga = () => ht;
|
|
160
160
|
let nA;
|
|
161
|
-
const
|
|
162
|
-
nA =
|
|
163
|
-
}, Ba = () => new Promise((
|
|
161
|
+
const la = (g) => {
|
|
162
|
+
nA = g;
|
|
163
|
+
}, Ba = () => new Promise((g) => {
|
|
164
164
|
const e = q.getHubUrl(), t = (A) => {
|
|
165
|
-
A.origin === e && (window.removeEventListener("message", t),
|
|
165
|
+
A.origin === e && (window.removeEventListener("message", t), g(A.data));
|
|
166
166
|
};
|
|
167
167
|
window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
|
|
168
168
|
}), da = async () => {
|
|
169
|
-
const
|
|
169
|
+
const g = {
|
|
170
170
|
applicationKey: ht,
|
|
171
171
|
customerToken: aA,
|
|
172
172
|
bearer: nA
|
|
173
173
|
};
|
|
174
|
-
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...
|
|
174
|
+
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...g } : g;
|
|
175
175
|
};
|
|
176
176
|
class Ca {
|
|
177
177
|
constructor() {
|
|
@@ -185,22 +185,22 @@ 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,
|
|
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
193
|
const E = window.__SENTRY__.hub;
|
|
194
194
|
if (E) {
|
|
195
195
|
const D = E.traceHeaders();
|
|
196
|
-
Object.entries(D).forEach(([
|
|
197
|
-
r[
|
|
196
|
+
Object.entries(D).forEach(([m, p]) => {
|
|
197
|
+
r[m] = p;
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
} catch {
|
|
202
202
|
}
|
|
203
|
-
return B && (r.Authorization = `Bearer ${B}`),
|
|
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 }) => {
|
|
@@ -265,8 +265,8 @@ const x = new Ca(), wa = f`
|
|
|
265
265
|
value
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
`,
|
|
269
|
-
${
|
|
268
|
+
`, De = (g) => f`
|
|
269
|
+
${g && wa || ""}
|
|
270
270
|
fragment AssetFields on Asset {
|
|
271
271
|
name
|
|
272
272
|
key
|
|
@@ -278,10 +278,10 @@ const x = new Ca(), wa = f`
|
|
|
278
278
|
name
|
|
279
279
|
link
|
|
280
280
|
}
|
|
281
|
-
${
|
|
281
|
+
${g && "...AssetMetadataFields" || ""}
|
|
282
282
|
}
|
|
283
283
|
`, ha = f`
|
|
284
|
-
${
|
|
284
|
+
${De(!1)}
|
|
285
285
|
query GetAssets($keys: [String]!) {
|
|
286
286
|
assets(keys: $keys) {
|
|
287
287
|
...AssetFields
|
|
@@ -355,35 +355,35 @@ const x = new Ca(), wa = f`
|
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
|
-
`,
|
|
359
|
-
${
|
|
358
|
+
`, Qa = f`
|
|
359
|
+
${De(!1)}
|
|
360
360
|
mutation RemoveBackgroundFromAsset($key: String!) {
|
|
361
361
|
assetRemoveBackground(key: $key) {
|
|
362
362
|
...AssetFields
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
|
-
`, ot = async (
|
|
365
|
+
`, ot = async (g) => (await x.getShadowGraphqlClient().query({
|
|
366
366
|
query: ha,
|
|
367
367
|
errorPolicy: "all",
|
|
368
368
|
fetchPolicy: "no-cache",
|
|
369
369
|
variables: {
|
|
370
|
-
keys:
|
|
370
|
+
keys: g
|
|
371
371
|
}
|
|
372
|
-
})).data.assets,
|
|
372
|
+
})).data.assets, ma = async (g) => (await x.getShadowGraphqlClient().query({
|
|
373
373
|
query: Ea,
|
|
374
374
|
errorPolicy: "all",
|
|
375
375
|
fetchPolicy: "no-cache",
|
|
376
376
|
variables: {
|
|
377
|
-
ids:
|
|
377
|
+
ids: g
|
|
378
378
|
}
|
|
379
|
-
})).data.materials, pa = async (
|
|
379
|
+
})).data.materials, pa = async (g, e, t, A, a) => {
|
|
380
380
|
var i;
|
|
381
381
|
return (i = (await x.getShadowGraphqlClient().mutate({
|
|
382
382
|
mutation: ua,
|
|
383
383
|
errorPolicy: "all",
|
|
384
384
|
fetchPolicy: "no-cache",
|
|
385
385
|
variables: {
|
|
386
|
-
name:
|
|
386
|
+
name: g,
|
|
387
387
|
type: e,
|
|
388
388
|
mimeType: t,
|
|
389
389
|
anonymous: A,
|
|
@@ -458,7 +458,7 @@ class Da {
|
|
|
458
458
|
async getMaterialLocalOrFromServer(e) {
|
|
459
459
|
if (this.materialCache.has(e))
|
|
460
460
|
return this.materialCache.get(e);
|
|
461
|
-
const A = (async () => (await
|
|
461
|
+
const A = (async () => (await ma([e]))[0])();
|
|
462
462
|
return this.materialCache.set(e, A), A;
|
|
463
463
|
}
|
|
464
464
|
/**
|
|
@@ -507,7 +507,7 @@ class Da {
|
|
|
507
507
|
const a = (async () => {
|
|
508
508
|
var i, s;
|
|
509
509
|
const n = await x.getShadowGraphqlClient().mutate({
|
|
510
|
-
mutation:
|
|
510
|
+
mutation: Qa,
|
|
511
511
|
fetchPolicy: "no-cache",
|
|
512
512
|
errorPolicy: "all",
|
|
513
513
|
variables: {
|
|
@@ -680,7 +680,7 @@ class Ia {
|
|
|
680
680
|
this.disabled = e;
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
|
-
const
|
|
683
|
+
const Qe = new Ia(), sA = f`
|
|
684
684
|
fragment OptionFields on Option {
|
|
685
685
|
id
|
|
686
686
|
name
|
|
@@ -718,7 +718,7 @@ const me = new Ia(), sA = f`
|
|
|
718
718
|
}
|
|
719
719
|
}
|
|
720
720
|
`, fa = f`
|
|
721
|
-
${
|
|
721
|
+
${De(!1)}
|
|
722
722
|
${Et}
|
|
723
723
|
${sA}
|
|
724
724
|
query GetOptions($ids: [String]!) {
|
|
@@ -726,13 +726,13 @@ const me = new Ia(), sA = f`
|
|
|
726
726
|
...OptionFields
|
|
727
727
|
}
|
|
728
728
|
}
|
|
729
|
-
`, Fa = async (
|
|
729
|
+
`, Fa = async (g) => {
|
|
730
730
|
const e = await x.getShadowGraphqlClient().query({
|
|
731
731
|
query: fa,
|
|
732
732
|
errorPolicy: "all",
|
|
733
733
|
fetchPolicy: "no-cache",
|
|
734
734
|
variables: {
|
|
735
|
-
ids:
|
|
735
|
+
ids: g
|
|
736
736
|
}
|
|
737
737
|
});
|
|
738
738
|
return e.data.options.forEach((t) => {
|
|
@@ -741,12 +741,12 @@ const me = new Ia(), sA = f`
|
|
|
741
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
|
-
}, ya = async (
|
|
745
|
-
const e =
|
|
744
|
+
}, ya = async (g, e) => (await e).find((A) => A.id === g), Ma = async (g) => {
|
|
745
|
+
const e = g.map((i) => Qe.get({ id: i })), t = g.filter((i, s) => e[s] === void 0);
|
|
746
746
|
if (t.length === 0)
|
|
747
747
|
return Promise.all(e);
|
|
748
748
|
const A = Fa(t), a = t.map(
|
|
749
|
-
(i) =>
|
|
749
|
+
(i) => Qe.set({ id: i }, ya(i, A))
|
|
750
750
|
), n = e.filter((i) => i !== void 0);
|
|
751
751
|
return await Promise.all(n.concat(a));
|
|
752
752
|
};
|
|
@@ -797,7 +797,7 @@ class Sa {
|
|
|
797
797
|
}
|
|
798
798
|
}
|
|
799
799
|
const V = new Sa();
|
|
800
|
-
var Ya = /* @__PURE__ */ ((
|
|
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 || {}), Ge = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(Ge || {});
|
|
801
801
|
const oA = f`
|
|
802
802
|
fragment ActiveIntegrationFields on Integration {
|
|
803
803
|
id
|
|
@@ -1117,7 +1117,7 @@ const oA = f`
|
|
|
1117
1117
|
precedence
|
|
1118
1118
|
url
|
|
1119
1119
|
}
|
|
1120
|
-
`,
|
|
1120
|
+
`, fe = f`
|
|
1121
1121
|
${Be}
|
|
1122
1122
|
${rA}
|
|
1123
1123
|
${cA}
|
|
@@ -1333,14 +1333,14 @@ const Ja = f`
|
|
|
1333
1333
|
}
|
|
1334
1334
|
}
|
|
1335
1335
|
}
|
|
1336
|
-
`,
|
|
1336
|
+
`, gA = f`
|
|
1337
1337
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1338
1338
|
transactions(ids: $ids) {
|
|
1339
1339
|
id
|
|
1340
1340
|
workflowState
|
|
1341
1341
|
}
|
|
1342
1342
|
}
|
|
1343
|
-
`,
|
|
1343
|
+
`, lA = f`
|
|
1344
1344
|
${Be}
|
|
1345
1345
|
fragment IntegrationProductFields on IntegrationProduct {
|
|
1346
1346
|
id
|
|
@@ -1403,14 +1403,14 @@ const Ja = f`
|
|
|
1403
1403
|
}
|
|
1404
1404
|
}
|
|
1405
1405
|
`, Ta = f`
|
|
1406
|
-
${
|
|
1406
|
+
${lA}
|
|
1407
1407
|
query GetIntegrationProducts($ids: [String!]!) {
|
|
1408
1408
|
integrationProducts(ids: $ids) {
|
|
1409
1409
|
...IntegrationProductFields
|
|
1410
1410
|
}
|
|
1411
1411
|
}
|
|
1412
1412
|
`, Oa = f`
|
|
1413
|
-
${
|
|
1413
|
+
${lA}
|
|
1414
1414
|
query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
|
|
1415
1415
|
integrationProductFromExternalIds(
|
|
1416
1416
|
externalIntegrationId: $externalIntegrationId
|
|
@@ -1431,25 +1431,25 @@ const Ja = f`
|
|
|
1431
1431
|
}
|
|
1432
1432
|
}
|
|
1433
1433
|
}
|
|
1434
|
-
`, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (
|
|
1434
|
+
`, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (g) => {
|
|
1435
1435
|
const e = [];
|
|
1436
|
-
|
|
1436
|
+
g.introduction && e.push({
|
|
1437
1437
|
name: "Introduction",
|
|
1438
|
-
title:
|
|
1438
|
+
title: g.name,
|
|
1439
1439
|
renderableSteps: [
|
|
1440
1440
|
{
|
|
1441
1441
|
type: M.Introduction,
|
|
1442
1442
|
stepName: "Introduction",
|
|
1443
|
-
stepTitle:
|
|
1444
|
-
helpText:
|
|
1443
|
+
stepTitle: g.name,
|
|
1444
|
+
helpText: g.introduction,
|
|
1445
1445
|
data: {},
|
|
1446
1446
|
conditions: []
|
|
1447
1447
|
}
|
|
1448
1448
|
],
|
|
1449
1449
|
silentSteps: []
|
|
1450
1450
|
});
|
|
1451
|
-
for (const A of
|
|
1452
|
-
const a = Ka(A.stepName,
|
|
1451
|
+
for (const A of g.steps) {
|
|
1452
|
+
const a = Ka(A.stepName, g.stepGroups);
|
|
1453
1453
|
if (!a)
|
|
1454
1454
|
e.push({
|
|
1455
1455
|
name: A.stepName,
|
|
@@ -1478,15 +1478,15 @@ const Ja = f`
|
|
|
1478
1478
|
stepTitle: t,
|
|
1479
1479
|
helpText: "",
|
|
1480
1480
|
data: {
|
|
1481
|
-
modelAnimation:
|
|
1482
|
-
lookAtAnimation:
|
|
1481
|
+
modelAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.modelAnimation : void 0,
|
|
1482
|
+
lookAtAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.lookAtAnimation : void 0
|
|
1483
1483
|
},
|
|
1484
1484
|
conditions: []
|
|
1485
1485
|
}
|
|
1486
1486
|
],
|
|
1487
1487
|
silentSteps: []
|
|
1488
1488
|
}), e;
|
|
1489
|
-
}, Ka = (
|
|
1489
|
+
}, Ka = (g, e) => e.find((t) => t.stepNames.includes(g)), ae = (g, e) => (g.conditions || []).every((t) => {
|
|
1490
1490
|
const A = e[t.targetStepName];
|
|
1491
1491
|
if (A && A.selectedVariants) {
|
|
1492
1492
|
const a = A.selectedVariants;
|
|
@@ -1495,17 +1495,17 @@ const Ja = f`
|
|
|
1495
1495
|
);
|
|
1496
1496
|
}
|
|
1497
1497
|
return !1;
|
|
1498
|
-
}), ja = (
|
|
1498
|
+
}), ja = (g, e) => {
|
|
1499
1499
|
const t = {
|
|
1500
|
-
name:
|
|
1501
|
-
title:
|
|
1502
|
-
renderableSteps:
|
|
1503
|
-
silentSteps:
|
|
1500
|
+
name: g.name,
|
|
1501
|
+
title: g.title,
|
|
1502
|
+
renderableSteps: g.renderableSteps.filter((A) => ae(A, e)),
|
|
1503
|
+
silentSteps: g.silentSteps.filter((A) => ae(A, e))
|
|
1504
1504
|
};
|
|
1505
1505
|
return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
|
|
1506
|
-
}, ce = (
|
|
1506
|
+
}, ce = (g, e) => g.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (g, e, t = !1) => {
|
|
1507
1507
|
var i;
|
|
1508
|
-
const A = ce(
|
|
1508
|
+
const A = ce(g, e), a = [];
|
|
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;
|
|
@@ -1595,19 +1595,19 @@ class dA {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
}
|
|
1597
1597
|
}
|
|
1598
|
-
function Wa(
|
|
1599
|
-
const a = t.width *
|
|
1598
|
+
function Wa(g, e, t, A) {
|
|
1599
|
+
const a = t.width * g.zoom, n = t.height * g.zoom;
|
|
1600
1600
|
if (A) {
|
|
1601
|
-
const s =
|
|
1602
|
-
s.zoom = Math.max(o,
|
|
1601
|
+
const s = g, o = Math.max(e.width / t.width, e.height / t.height);
|
|
1602
|
+
s.zoom = Math.max(o, g.zoom);
|
|
1603
1603
|
const r = t.width * s.zoom, c = t.height * s.zoom;
|
|
1604
|
-
return s.x =
|
|
1604
|
+
return s.x = Fe(g.x, e.width - r, 0), s.y = Fe(g.y, e.height - c, 0), s;
|
|
1605
1605
|
}
|
|
1606
|
-
const i =
|
|
1607
|
-
return i.x =
|
|
1606
|
+
const i = g;
|
|
1607
|
+
return i.x = Fe(i.x, -a, e.width), i.y = Fe(i.y, -n, e.height), i;
|
|
1608
1608
|
}
|
|
1609
|
-
function
|
|
1610
|
-
return Math.min(Math.max(
|
|
1609
|
+
function Fe(g, e, t) {
|
|
1610
|
+
return Math.min(Math.max(g, e), t);
|
|
1611
1611
|
}
|
|
1612
1612
|
class Xa {
|
|
1613
1613
|
constructor(e) {
|
|
@@ -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(
|
|
@@ -1830,24 +1830,24 @@ class kt {
|
|
|
1830
1830
|
constructor(e, t, A) {
|
|
1831
1831
|
this.processRegion = async (a) => {
|
|
1832
1832
|
var o, r, c, B;
|
|
1833
|
-
const n = this.layouts.find((
|
|
1833
|
+
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1834
1834
|
if (!n)
|
|
1835
1835
|
throw new z(a);
|
|
1836
1836
|
let i = "";
|
|
1837
1837
|
if (this.configuration.type === M.ProductOverlay) {
|
|
1838
|
-
let
|
|
1839
|
-
if ((o = this.product) != null && o.overlayImageUrl && (
|
|
1840
|
-
throw new
|
|
1838
|
+
let l = "";
|
|
1839
|
+
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1840
|
+
throw new Ue(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
|
|
1845
|
-
if (!
|
|
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
|
+
if (!l)
|
|
1846
1846
|
throw new Error("Undefined raster silent step source");
|
|
1847
1847
|
const d = {
|
|
1848
1848
|
stepName: this.configuration.stepName,
|
|
1849
1849
|
id: J(),
|
|
1850
|
-
src:
|
|
1850
|
+
src: l,
|
|
1851
1851
|
type: s,
|
|
1852
1852
|
y: a.top,
|
|
1853
1853
|
x: a.left,
|
|
@@ -1869,19 +1869,19 @@ class kt {
|
|
|
1869
1869
|
command: new L(d, n)
|
|
1870
1870
|
};
|
|
1871
1871
|
} else {
|
|
1872
|
-
const
|
|
1873
|
-
if (!
|
|
1872
|
+
const l = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Le(await (async () => new Promise((h, u) => {
|
|
1873
|
+
if (!l) {
|
|
1874
1874
|
u("Undefined vector silent step source");
|
|
1875
1875
|
return;
|
|
1876
1876
|
}
|
|
1877
|
-
_(
|
|
1877
|
+
_(l, !0).then((E) => {
|
|
1878
1878
|
h(E);
|
|
1879
1879
|
}).catch((E) => console.error(E));
|
|
1880
1880
|
}))()), w = {
|
|
1881
1881
|
stepName: this.configuration.stepName,
|
|
1882
1882
|
id: J(),
|
|
1883
|
-
cachedObjectURL: await
|
|
1884
|
-
src:
|
|
1883
|
+
cachedObjectURL: await ve(C.svg),
|
|
1884
|
+
src: l,
|
|
1885
1885
|
svg: C.svg,
|
|
1886
1886
|
colors: C.colors,
|
|
1887
1887
|
type: s,
|
|
@@ -1908,7 +1908,7 @@ class kt {
|
|
|
1908
1908
|
}
|
|
1909
1909
|
async trigger() {
|
|
1910
1910
|
if (!this.configuration.data.regions)
|
|
1911
|
-
throw new
|
|
1911
|
+
throw new Ue(this.configuration, "Missing regions.");
|
|
1912
1912
|
if (this.configuration.type === M.SilentIllustration) {
|
|
1913
1913
|
const e = this.configuration.data.regions.map(this.processRegion);
|
|
1914
1914
|
return Promise.all(e);
|
|
@@ -1927,18 +1927,18 @@ class kt {
|
|
|
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
|
}
|
|
1930
|
-
const qa = async (
|
|
1930
|
+
const qa = async (g) => {
|
|
1931
1931
|
const e = `${q.getServicesApiUrl()}/shortener`;
|
|
1932
1932
|
try {
|
|
1933
1933
|
return (await (await fetch(e, {
|
|
1934
1934
|
method: "POST",
|
|
1935
|
-
body: JSON.stringify({ longUrl:
|
|
1935
|
+
body: JSON.stringify({ longUrl: g }),
|
|
1936
1936
|
headers: {
|
|
1937
1937
|
"Content-Type": "application/json"
|
|
1938
1938
|
}
|
|
1939
1939
|
})).json()).shortUrl;
|
|
1940
1940
|
} catch (t) {
|
|
1941
|
-
throw console.error(t), new
|
|
1941
|
+
throw console.error(t), new je("Failed to shorten URL, see console.");
|
|
1942
1942
|
}
|
|
1943
1943
|
};
|
|
1944
1944
|
class CA {
|
|
@@ -1974,8 +1974,8 @@ class Za {
|
|
|
1974
1974
|
A.serializableWorkflow.steps
|
|
1975
1975
|
), o = Object.values(A.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === e.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
|
|
1976
1976
|
await t.setSelectionsAndElements(e.stepName, [], o, async () => {
|
|
1977
|
-
var B,
|
|
1978
|
-
const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (
|
|
1977
|
+
var B, l;
|
|
1978
|
+
const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (l = a == null ? void 0 : a.storage) == null ? void 0 : l.videoUrl;
|
|
1979
1979
|
t.updateStorage(e.stepName, {
|
|
1980
1980
|
videoShortUrl: r,
|
|
1981
1981
|
videoUrl: c
|
|
@@ -2011,12 +2011,12 @@ 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 je("Cannot create QR code, URL too long.");
|
|
2015
2015
|
const c = await qa(r);
|
|
2016
2016
|
if (!a.data || !a.data.regions)
|
|
2017
|
-
throw new
|
|
2018
|
-
const B = await this.regionElements(a),
|
|
2019
|
-
return
|
|
2017
|
+
throw new Ue(a, "Missing regions.");
|
|
2018
|
+
const B = await this.regionElements(a), l = await this.command(c, B, A, a.stepName);
|
|
2019
|
+
return l && (l.command && A.getCommandDispatcher()(l.command), l.followup && await l.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
|
|
2020
2020
|
A.updateStorage(a.stepName, {
|
|
2021
2021
|
videoShortUrl: c,
|
|
2022
2022
|
videoUrl: i.href
|
|
@@ -2029,7 +2029,7 @@ class Za {
|
|
|
2029
2029
|
}
|
|
2030
2030
|
async command(e, t, A, a) {
|
|
2031
2031
|
const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await tA(e, { type: "svg" }))}`, o = t.map((r) => {
|
|
2032
|
-
const c = r.region, B = n.find((
|
|
2032
|
+
const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
|
|
2033
2033
|
if (!B && c)
|
|
2034
2034
|
throw new z(c);
|
|
2035
2035
|
if (B && !c)
|
|
@@ -2056,7 +2056,7 @@ class Za {
|
|
|
2056
2056
|
} };
|
|
2057
2057
|
}
|
|
2058
2058
|
}
|
|
2059
|
-
const wA = new Za(),
|
|
2059
|
+
const wA = new Za(), me = [
|
|
2060
2060
|
"Yellow C",
|
|
2061
2061
|
"Yellow 012 C",
|
|
2062
2062
|
"Orange 021 C",
|
|
@@ -3398,7 +3398,7 @@ const wA = new Za(), Qe = [
|
|
|
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,55 +4740,55 @@ const wA = new Za(), Qe = [
|
|
|
4740
4740
|
"3E2B2E",
|
|
4741
4741
|
"101820",
|
|
4742
4742
|
"3D3935"
|
|
4743
|
-
], qe =
|
|
4744
|
-
parseInt(
|
|
4745
|
-
parseInt(
|
|
4746
|
-
parseInt(
|
|
4743
|
+
], qe = le.map((g) => [
|
|
4744
|
+
parseInt(g.substring(0, 2), 16),
|
|
4745
|
+
parseInt(g.substring(2, 4), 16),
|
|
4746
|
+
parseInt(g.substring(4, 6), 16)
|
|
4747
4747
|
]);
|
|
4748
|
-
function ps(
|
|
4749
|
-
const e =
|
|
4750
|
-
return e >= 0 ?
|
|
4748
|
+
function ps(g) {
|
|
4749
|
+
const e = me.indexOf(g);
|
|
4750
|
+
return e >= 0 ? le[e] : "";
|
|
4751
4751
|
}
|
|
4752
|
-
function $a(
|
|
4753
|
-
const e =
|
|
4754
|
-
return e >= 0 ?
|
|
4752
|
+
function $a(g) {
|
|
4753
|
+
const e = le.indexOf(g);
|
|
4754
|
+
return e >= 0 ? me[e] : "";
|
|
4755
4755
|
}
|
|
4756
|
-
function Ds(
|
|
4757
|
-
const t = [], A = [], a = $a(
|
|
4756
|
+
function Ds(g, e = 64) {
|
|
4757
|
+
const t = [], A = [], a = $a(g);
|
|
4758
4758
|
a && t.push({
|
|
4759
4759
|
pms: a,
|
|
4760
|
-
hex:
|
|
4760
|
+
hex: g,
|
|
4761
4761
|
distance: 0
|
|
4762
4762
|
});
|
|
4763
|
-
const n = parseInt(
|
|
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 <
|
|
4765
|
+
for (let B = 0; B < le.length; B++) {
|
|
4766
4766
|
o = qe[B][0], r = qe[B][1], c = qe[B][2];
|
|
4767
|
-
const
|
|
4768
|
-
A.push(
|
|
4767
|
+
const l = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
|
|
4768
|
+
A.push(l);
|
|
4769
4769
|
}
|
|
4770
4770
|
for (let B = 0; B < A.length; B++)
|
|
4771
|
-
A[B] <= e && !t.some((
|
|
4772
|
-
return t.sort((B,
|
|
4771
|
+
A[B] <= e && !t.some((l) => l.pms === me[B]) && t.push({ pms: me[B], hex: le[B], distance: A[B] });
|
|
4772
|
+
return t.sort((B, l) => B.distance - l.distance);
|
|
4773
4773
|
}
|
|
4774
|
-
const _a =
|
|
4775
|
-
function Is(
|
|
4776
|
-
return en.search(
|
|
4774
|
+
const _a = me.map((g, e) => ({ pms: g, hex: le[e] })), en = new ia(_a, { keys: ["pms"] });
|
|
4775
|
+
function Is(g, e) {
|
|
4776
|
+
return en.search(g, e ? { limit: e } : void 0);
|
|
4777
4777
|
}
|
|
4778
4778
|
let we = null;
|
|
4779
|
-
function tn(
|
|
4780
|
-
if (
|
|
4781
|
-
return Ut(
|
|
4779
|
+
function tn(g) {
|
|
4780
|
+
if (g.startsWith("#"))
|
|
4781
|
+
return Ut(g);
|
|
4782
4782
|
if (!document)
|
|
4783
4783
|
throw new Error("browserColorToHex is only supported on browsers");
|
|
4784
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
|
-
we.fillStyle =
|
|
4786
|
+
we.fillStyle = g;
|
|
4787
4787
|
const e = Ut(we.fillStyle);
|
|
4788
|
-
return e || console.error(`Unknown browser color ${
|
|
4788
|
+
return e || console.error(`Unknown browser color ${g}`), e;
|
|
4789
4789
|
}
|
|
4790
|
-
function Ut(
|
|
4791
|
-
const e =
|
|
4790
|
+
function Ut(g) {
|
|
4791
|
+
const e = g.substring(1).toUpperCase();
|
|
4792
4792
|
return e.length === 6 ? e : e.length === 3 ? `${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}` : "";
|
|
4793
4793
|
}
|
|
4794
4794
|
class An {
|
|
@@ -4850,16 +4850,16 @@ class An {
|
|
|
4850
4850
|
if (a) {
|
|
4851
4851
|
const c = async () => {
|
|
4852
4852
|
var C, w, h, u, E;
|
|
4853
|
-
const B = (C = a.storage) == null ? void 0 : C.colors,
|
|
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
|
-
framePatternSrc:
|
|
4857
|
-
}),
|
|
4856
|
+
framePatternSrc: l
|
|
4857
|
+
}), l) {
|
|
4858
4858
|
const D = (u = t.getStepSpecificServices(e.stepName)) == null ? void 0 : u.frameService;
|
|
4859
4859
|
if (!D)
|
|
4860
4860
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
4861
|
-
await this.loadPatternFromString(
|
|
4862
|
-
framePatternSrc:
|
|
4861
|
+
await this.loadPatternFromString(l, D, !0, B), t.updateMetadata(e.stepName, { image: l }), t.updateStorage(e.stepName, {
|
|
4862
|
+
framePatternSrc: l
|
|
4863
4863
|
}), this.validateColorCount(e, t);
|
|
4864
4864
|
}
|
|
4865
4865
|
if (d != null && d.some((D) => D.zoom)) {
|
|
@@ -4873,14 +4873,14 @@ class An {
|
|
|
4873
4873
|
if (a.selectedVariants && a.selectedVariants.length > 0) {
|
|
4874
4874
|
const B = a.selectedVariants[0].id;
|
|
4875
4875
|
if (e.option && B) {
|
|
4876
|
-
const
|
|
4877
|
-
|
|
4876
|
+
const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
|
|
4877
|
+
l && await t.setSelectionsAndElements(
|
|
4878
4878
|
e.stepName,
|
|
4879
|
-
[
|
|
4879
|
+
[l],
|
|
4880
4880
|
o,
|
|
4881
4881
|
async () => {
|
|
4882
4882
|
const d = await Promise.all(
|
|
4883
|
-
e.data.regions.map((C) => this.frameSourceSvg(
|
|
4883
|
+
e.data.regions.map((C) => this.frameSourceSvg(l, C))
|
|
4884
4884
|
);
|
|
4885
4885
|
t.updateStorage(e.stepName, { currentFrameSources: d }), await c();
|
|
4886
4886
|
}
|
|
@@ -4923,7 +4923,7 @@ class An {
|
|
|
4923
4923
|
});
|
|
4924
4924
|
},
|
|
4925
4925
|
() => {
|
|
4926
|
-
throw new
|
|
4926
|
+
throw new je("Failed to resolve transcoded PDF");
|
|
4927
4927
|
}
|
|
4928
4928
|
)
|
|
4929
4929
|
);
|
|
@@ -4972,13 +4972,13 @@ class An {
|
|
|
4972
4972
|
if (e.endsWith("svg")) {
|
|
4973
4973
|
const i = await OA(e), s = i.width, o = i.height, r = await _(e);
|
|
4974
4974
|
if (n) {
|
|
4975
|
-
const
|
|
4976
|
-
if (
|
|
4975
|
+
const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
|
|
4976
|
+
if (l && l.length > 0)
|
|
4977
4977
|
throw new Error(
|
|
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 Le(r), B = {
|
|
4982
4982
|
src: e,
|
|
4983
4983
|
width: s,
|
|
4984
4984
|
height: o,
|
|
@@ -5045,8 +5045,8 @@ class An {
|
|
|
5045
5045
|
};
|
|
5046
5046
|
const a = { ...e.getImageData().colors ?? {} }, n = {};
|
|
5047
5047
|
Object.entries(a).forEach(([c, B]) => {
|
|
5048
|
-
const
|
|
5049
|
-
n[c] =
|
|
5048
|
+
const l = { browserValue: B.browserValue };
|
|
5049
|
+
n[c] = l;
|
|
5050
5050
|
});
|
|
5051
5051
|
for (const [c, B] of A.entries())
|
|
5052
5052
|
a[c] = { browserValue: B.browserValue, pmsValue: B.pmsValue }, n[c] = B;
|
|
@@ -5054,8 +5054,8 @@ class An {
|
|
|
5054
5054
|
const s = t.data.colorOption;
|
|
5055
5055
|
return s && ((r = s.variants) == null || r.forEach((c) => {
|
|
5056
5056
|
i = i.map((B) => {
|
|
5057
|
-
var
|
|
5058
|
-
return B.toLowerCase() === ((
|
|
5057
|
+
var l;
|
|
5058
|
+
return B.toLowerCase() === ((l = c.color) == null ? void 0 : l.toLowerCase()) ? c.name : B;
|
|
5059
5059
|
});
|
|
5060
5060
|
})), {
|
|
5061
5061
|
newColors: a,
|
|
@@ -5072,8 +5072,8 @@ class An {
|
|
|
5072
5072
|
);
|
|
5073
5073
|
}
|
|
5074
5074
|
async selectVariantCommand(e, t, A, a, n, i) {
|
|
5075
|
-
var
|
|
5076
|
-
const s = (
|
|
5075
|
+
var l;
|
|
5076
|
+
const s = (l = a.getStepSpecificServices(e.stepName)) == null ? void 0 : l.frameService;
|
|
5077
5077
|
if (!s)
|
|
5078
5078
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
5079
5079
|
const o = await Promise.all(
|
|
@@ -5082,7 +5082,7 @@ 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
5087
|
src: h.src,
|
|
5088
5088
|
x: (E == null ? void 0 : E.x) || 0,
|
|
@@ -5092,11 +5092,11 @@ class An {
|
|
|
5092
5092
|
scaleX: (E == null ? void 0 : E.zoom) || 1,
|
|
5093
5093
|
scaleY: (E == null ? void 0 : E.zoom) || 1,
|
|
5094
5094
|
rotation: 0
|
|
5095
|
-
} : void 0,
|
|
5096
|
-
if (!
|
|
5095
|
+
} : void 0, m = J(), Q = a.getLayouts().find((I) => I.panelId === d.panelId);
|
|
5096
|
+
if (!Q)
|
|
5097
5097
|
throw new z(d);
|
|
5098
5098
|
return {
|
|
5099
|
-
command: this.getCreateElementCommand(
|
|
5099
|
+
command: this.getCreateElementCommand(m, d, Q, {
|
|
5100
5100
|
frameData: w,
|
|
5101
5101
|
pattern: D,
|
|
5102
5102
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
@@ -5106,7 +5106,7 @@ class An {
|
|
|
5106
5106
|
stepName: e.stepName
|
|
5107
5107
|
}),
|
|
5108
5108
|
regionEl: {
|
|
5109
|
-
id:
|
|
5109
|
+
id: m,
|
|
5110
5110
|
region: d
|
|
5111
5111
|
},
|
|
5112
5112
|
removeExistingCommands: u
|
|
@@ -5214,7 +5214,7 @@ class an {
|
|
|
5214
5214
|
if (A.length === 0)
|
|
5215
5215
|
return [];
|
|
5216
5216
|
try {
|
|
5217
|
-
return
|
|
5217
|
+
return Re(
|
|
5218
5218
|
A[0].id,
|
|
5219
5219
|
t.getAllLayoutData()
|
|
5220
5220
|
).colors;
|
|
@@ -5245,13 +5245,13 @@ class an {
|
|
|
5245
5245
|
if (a != null && a.selectedVariants) {
|
|
5246
5246
|
const c = a.selectedVariants[0].id;
|
|
5247
5247
|
if (o && c) {
|
|
5248
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5248
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5249
5249
|
if (B) {
|
|
5250
|
-
const
|
|
5250
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5251
5251
|
await t.setSelectionsAndElements(
|
|
5252
5252
|
e.stepName,
|
|
5253
5253
|
[B],
|
|
5254
|
-
|
|
5254
|
+
l,
|
|
5255
5255
|
async () => {
|
|
5256
5256
|
var d;
|
|
5257
5257
|
t.updateMetadata(e.stepName, {
|
|
@@ -5277,12 +5277,12 @@ class an {
|
|
|
5277
5277
|
async changeColorsCommand(e, t, A, a, n) {
|
|
5278
5278
|
var c;
|
|
5279
5279
|
const i = {};
|
|
5280
|
-
for (const [B,
|
|
5281
|
-
i[B] = { browserValue:
|
|
5282
|
-
const s = zA(e, t, A, i), o = await
|
|
5280
|
+
for (const [B, l] of n.entries())
|
|
5281
|
+
i[B] = { browserValue: l, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
|
|
5282
|
+
const s = zA(e, t, A, i), o = await ve(s), r = [];
|
|
5283
5283
|
for (const B of a) {
|
|
5284
|
-
for (const [
|
|
5285
|
-
r.push(new at(B,
|
|
5284
|
+
for (const [l, d] of n.entries())
|
|
5285
|
+
r.push(new at(B, l, d));
|
|
5286
5286
|
r.push(new KA(B, s, o));
|
|
5287
5287
|
}
|
|
5288
5288
|
return new k(r);
|
|
@@ -5291,7 +5291,7 @@ class an {
|
|
|
5291
5291
|
var d, C;
|
|
5292
5292
|
if (t.length === 0)
|
|
5293
5293
|
return;
|
|
5294
|
-
const i =
|
|
5294
|
+
const i = Re(
|
|
5295
5295
|
t[0].id,
|
|
5296
5296
|
a().map((w) => w.layoutState)
|
|
5297
5297
|
), s = { ...i.colors }, o = {};
|
|
@@ -5314,7 +5314,7 @@ class an {
|
|
|
5314
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
|
-
const
|
|
5317
|
+
const l = await this.changeColorsCommand(
|
|
5318
5318
|
i.svg,
|
|
5319
5319
|
i.width,
|
|
5320
5320
|
i.height,
|
|
@@ -5323,7 +5323,7 @@ class an {
|
|
|
5323
5323
|
);
|
|
5324
5324
|
A.updateStorage(e.stepName, {
|
|
5325
5325
|
colors: o
|
|
5326
|
-
}), A.getCommandDispatcher()(
|
|
5326
|
+
}), A.getCommandDispatcher()(l);
|
|
5327
5327
|
}
|
|
5328
5328
|
async selectVariant(e, t, A, a, n) {
|
|
5329
5329
|
const i = await this.selectVariantCommand(e, t, A, a, n);
|
|
@@ -5332,7 +5332,7 @@ class an {
|
|
|
5332
5332
|
async selectVariantCommand(e, t, A, a, n) {
|
|
5333
5333
|
var u;
|
|
5334
5334
|
if (!e.data || !e.data.regions)
|
|
5335
|
-
throw new
|
|
5335
|
+
throw new Ue(e, "Missing regions.");
|
|
5336
5336
|
a(!0);
|
|
5337
5337
|
const i = A.map((E) => new ne(E.id));
|
|
5338
5338
|
e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
|
|
@@ -5342,27 +5342,27 @@ class an {
|
|
|
5342
5342
|
const o = s.fileLink;
|
|
5343
5343
|
if (!o)
|
|
5344
5344
|
throw new ue(s);
|
|
5345
|
-
const r = await
|
|
5345
|
+
const r = await Le(await this.getIllustrationBody(o)), c = await ve(r.svg), B = (E) => {
|
|
5346
5346
|
const D = n.getLayouts().find((p) => p.panelId === E.panelId);
|
|
5347
5347
|
if (!D)
|
|
5348
5348
|
throw new z(E);
|
|
5349
|
-
const
|
|
5349
|
+
const m = J();
|
|
5350
5350
|
return {
|
|
5351
|
-
regionElement: { id:
|
|
5352
|
-
command: this.getCreateElementCommand(
|
|
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
|
-
},
|
|
5359
|
+
}, l = e.data.regions.map(B), C = [...l.map((E) => E.command), ...i];
|
|
5360
5360
|
let w = Array.from(Object.values(r.colors)).map((E) => E.browserValue);
|
|
5361
5361
|
const h = e.data.colorOption;
|
|
5362
5362
|
return h && ((u = h.variants) == null || u.forEach((E) => {
|
|
5363
5363
|
w = w.map((D) => {
|
|
5364
|
-
var
|
|
5365
|
-
return D.toLowerCase() === ((
|
|
5364
|
+
var 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
5368
|
command: new k(C),
|
|
@@ -5370,25 +5370,25 @@ class an {
|
|
|
5370
5370
|
await n.setSelectionsAndElements(
|
|
5371
5371
|
e.stepName,
|
|
5372
5372
|
[t],
|
|
5373
|
-
|
|
5373
|
+
l.map((m) => m.regionElement),
|
|
5374
5374
|
async () => {
|
|
5375
5375
|
n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
5376
5376
|
}
|
|
5377
5377
|
);
|
|
5378
5378
|
const E = await this.availableColors(e, n) || [], D = Object.keys(r.colors);
|
|
5379
5379
|
if (e.data.colorPickerEnabled && E.length === 1 && D.length === 1) {
|
|
5380
|
-
const
|
|
5380
|
+
const m = E[0], p = D[0];
|
|
5381
5381
|
await this.changeColors(
|
|
5382
5382
|
e,
|
|
5383
|
-
|
|
5383
|
+
l.map((Q) => Q.regionElement),
|
|
5384
5384
|
n,
|
|
5385
5385
|
() => n.getCommandContext().getAllLayouts(),
|
|
5386
|
-
/* @__PURE__ */ new Map([[p,
|
|
5386
|
+
/* @__PURE__ */ new Map([[p, m.variant.color]])
|
|
5387
5387
|
);
|
|
5388
5388
|
} else
|
|
5389
5389
|
e.data.colorPickerEnabled && await this.changeColors(
|
|
5390
5390
|
e,
|
|
5391
|
-
|
|
5391
|
+
l.map((m) => m.regionElement),
|
|
5392
5392
|
n,
|
|
5393
5393
|
() => n.getCommandContext().getAllLayouts(),
|
|
5394
5394
|
/* @__PURE__ */ new Map()
|
|
@@ -5397,12 +5397,12 @@ class an {
|
|
|
5397
5397
|
};
|
|
5398
5398
|
}
|
|
5399
5399
|
}
|
|
5400
|
-
const
|
|
5400
|
+
const Ne = new an();
|
|
5401
5401
|
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 ke(e);
|
|
5406
5406
|
if (A)
|
|
5407
5407
|
await this.reload(e, t, A);
|
|
5408
5408
|
else {
|
|
@@ -5420,13 +5420,13 @@ 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 ke(e);
|
|
5424
5424
|
if (a != null && a.selectedVariants) {
|
|
5425
5425
|
const c = a.selectedVariants[0].id;
|
|
5426
5426
|
if (c) {
|
|
5427
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5427
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5428
5428
|
if (B) {
|
|
5429
|
-
const
|
|
5429
|
+
const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
|
|
5430
5430
|
await t.setSelectionsAndElements(
|
|
5431
5431
|
e.stepName,
|
|
5432
5432
|
[B],
|
|
@@ -5437,7 +5437,7 @@ class nn {
|
|
|
5437
5437
|
const w = e.data.targetMaterials.map((h) => C.applyMaterialVariant(
|
|
5438
5438
|
h,
|
|
5439
5439
|
o.id || "",
|
|
5440
|
-
|
|
5440
|
+
l || {}
|
|
5441
5441
|
));
|
|
5442
5442
|
Promise.all(w).then(
|
|
5443
5443
|
() => t.setMandatoryFulfilled(e.stepName, !0)
|
|
@@ -5480,7 +5480,7 @@ 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 ke(e);
|
|
5484
5484
|
if (A)
|
|
5485
5485
|
await this.reload(e, t, A);
|
|
5486
5486
|
else {
|
|
@@ -5500,13 +5500,13 @@ class sn {
|
|
|
5500
5500
|
if (a != null && a.selectedVariants) {
|
|
5501
5501
|
const c = a.selectedVariants[0].id;
|
|
5502
5502
|
if (o && c) {
|
|
5503
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5503
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5504
5504
|
if (B) {
|
|
5505
|
-
const
|
|
5505
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5506
5506
|
await t.setSelectionsAndElements(
|
|
5507
5507
|
e.stepName,
|
|
5508
5508
|
[B],
|
|
5509
|
-
|
|
5509
|
+
l,
|
|
5510
5510
|
async () => {
|
|
5511
5511
|
var C;
|
|
5512
5512
|
const d = t.getModelContainer();
|
|
@@ -5596,55 +5596,55 @@ class on {
|
|
|
5596
5596
|
if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
|
|
5597
5597
|
return console.error("Missing configuration."), null;
|
|
5598
5598
|
A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
|
|
5599
|
-
const r = (B,
|
|
5600
|
-
const C = d || J(), h = A.getLayouts().find((E) => E.panelId ===
|
|
5599
|
+
const r = (B, l, d) => {
|
|
5600
|
+
const C = d || J(), h = A.getLayouts().find((E) => E.panelId === l.panelId);
|
|
5601
5601
|
if (!h)
|
|
5602
|
-
return console.error(`Can not find layout for region: ${
|
|
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(
|
|
5605
5605
|
new L(
|
|
5606
5606
|
{
|
|
5607
|
-
stepRegion:
|
|
5607
|
+
stepRegion: l,
|
|
5608
5608
|
stepName: e.stepName,
|
|
5609
5609
|
colors: {},
|
|
5610
5610
|
id: C,
|
|
5611
5611
|
svg: B,
|
|
5612
5612
|
type: G.Illustration,
|
|
5613
|
-
y:
|
|
5614
|
-
x:
|
|
5615
|
-
rotation:
|
|
5616
|
-
width:
|
|
5617
|
-
height:
|
|
5618
|
-
layer:
|
|
5619
|
-
layerIndex:
|
|
5620
|
-
immutable:
|
|
5613
|
+
y: l.top,
|
|
5614
|
+
x: l.left,
|
|
5615
|
+
rotation: l.rotation,
|
|
5616
|
+
width: l.width,
|
|
5617
|
+
height: l.height,
|
|
5618
|
+
layer: l.layer,
|
|
5619
|
+
layerIndex: l.layerIndex,
|
|
5620
|
+
immutable: l.immutable
|
|
5621
5621
|
},
|
|
5622
5622
|
h
|
|
5623
5623
|
)
|
|
5624
5624
|
), {
|
|
5625
5625
|
id: C,
|
|
5626
|
-
region:
|
|
5626
|
+
region: l,
|
|
5627
5627
|
command: new k(u)
|
|
5628
5628
|
};
|
|
5629
5629
|
};
|
|
5630
5630
|
if (i.length > 0) {
|
|
5631
|
-
const
|
|
5631
|
+
const l = i.map((d) => {
|
|
5632
5632
|
if (!d.region)
|
|
5633
5633
|
return null;
|
|
5634
5634
|
const C = s.svgPrint(t, d.region);
|
|
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 k(
|
|
5638
|
+
command: new k(l),
|
|
5639
5639
|
followup: async () => {
|
|
5640
5640
|
}
|
|
5641
5641
|
};
|
|
5642
5642
|
} else {
|
|
5643
5643
|
const B = e.data.regions.map(
|
|
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 k(
|
|
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(
|
|
@@ -5696,13 +5696,13 @@ class rn {
|
|
|
5696
5696
|
if (a != null && a.selectedVariants) {
|
|
5697
5697
|
const c = a.selectedVariants[0].id;
|
|
5698
5698
|
if (o && c) {
|
|
5699
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5699
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5700
5700
|
if (B) {
|
|
5701
|
-
const
|
|
5701
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5702
5702
|
await t.setSelectionsAndElements(
|
|
5703
5703
|
e.stepName,
|
|
5704
5704
|
[B],
|
|
5705
|
-
|
|
5705
|
+
l,
|
|
5706
5706
|
async () => {
|
|
5707
5707
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
5708
5708
|
}
|
|
@@ -5766,7 +5766,7 @@ class rn {
|
|
|
5766
5766
|
};
|
|
5767
5767
|
}
|
|
5768
5768
|
}
|
|
5769
|
-
const
|
|
5769
|
+
const QA = new rn();
|
|
5770
5770
|
class cn {
|
|
5771
5771
|
async init(e, t, A) {
|
|
5772
5772
|
const a = e.option;
|
|
@@ -5825,8 +5825,8 @@ class cn {
|
|
|
5825
5825
|
};
|
|
5826
5826
|
}
|
|
5827
5827
|
}
|
|
5828
|
-
const
|
|
5829
|
-
class
|
|
5828
|
+
const mA = new cn();
|
|
5829
|
+
class gn {
|
|
5830
5830
|
constructor() {
|
|
5831
5831
|
this.shapeFillId = "spiff-fill-shape";
|
|
5832
5832
|
}
|
|
@@ -5852,7 +5852,7 @@ class ln {
|
|
|
5852
5852
|
async init(e, t, A) {
|
|
5853
5853
|
const a = e.option;
|
|
5854
5854
|
if (!a)
|
|
5855
|
-
throw new
|
|
5855
|
+
throw new ke(e);
|
|
5856
5856
|
if (A)
|
|
5857
5857
|
await this.reload(e, t, A);
|
|
5858
5858
|
else {
|
|
@@ -5883,13 +5883,13 @@ class ln {
|
|
|
5883
5883
|
if (a != null && a.selectedVariants) {
|
|
5884
5884
|
const c = a.selectedVariants[0].id;
|
|
5885
5885
|
if (o && c) {
|
|
5886
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5886
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5887
5887
|
if (B) {
|
|
5888
|
-
const
|
|
5888
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5889
5889
|
await t.setSelectionsAndElements(
|
|
5890
5890
|
e.stepName,
|
|
5891
5891
|
[B],
|
|
5892
|
-
|
|
5892
|
+
l,
|
|
5893
5893
|
async () => {
|
|
5894
5894
|
var d;
|
|
5895
5895
|
t.updateStorage(e.stepName, {
|
|
@@ -5913,9 +5913,9 @@ class ln {
|
|
|
5913
5913
|
};
|
|
5914
5914
|
if (A.length > 0) {
|
|
5915
5915
|
const r = (B) => {
|
|
5916
|
-
const
|
|
5917
|
-
if (!n.find((w) => w.panelId === (
|
|
5918
|
-
throw new z(
|
|
5916
|
+
const l = B.region;
|
|
5917
|
+
if (!n.find((w) => w.panelId === (l == null ? void 0 : l.panelId)))
|
|
5918
|
+
throw new z(l);
|
|
5919
5919
|
const C = s();
|
|
5920
5920
|
return new at(B.id, this.shapeFillId, C);
|
|
5921
5921
|
}, c = A.map(r).filter((B) => !!B);
|
|
@@ -5981,14 +5981,14 @@ class ln {
|
|
|
5981
5981
|
C
|
|
5982
5982
|
)
|
|
5983
5983
|
};
|
|
5984
|
-
}, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command),
|
|
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
5986
|
command: new k(B),
|
|
5987
5987
|
followup: async () => {
|
|
5988
5988
|
await a.setSelectionsAndElements(
|
|
5989
5989
|
e.stepName,
|
|
5990
5990
|
t.variant ? [t.variant] : [],
|
|
5991
|
-
|
|
5991
|
+
l,
|
|
5992
5992
|
async () => {
|
|
5993
5993
|
a.updateStorage(e.stepName, { colour: s() });
|
|
5994
5994
|
}
|
|
@@ -5998,8 +5998,8 @@ class ln {
|
|
|
5998
5998
|
}
|
|
5999
5999
|
}
|
|
6000
6000
|
}
|
|
6001
|
-
const Ee = new
|
|
6002
|
-
class
|
|
6001
|
+
const Ee = new gn();
|
|
6002
|
+
class ln {
|
|
6003
6003
|
constructor() {
|
|
6004
6004
|
this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
|
|
6005
6005
|
}
|
|
@@ -6024,17 +6024,17 @@ class gn {
|
|
|
6024
6024
|
);
|
|
6025
6025
|
}
|
|
6026
6026
|
}
|
|
6027
|
-
const Bn = new
|
|
6028
|
-
class
|
|
6027
|
+
const Bn = new ln(), Ze = 30;
|
|
6028
|
+
class be extends Error {
|
|
6029
6029
|
constructor(e) {
|
|
6030
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
6030
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = be.name;
|
|
6031
6031
|
}
|
|
6032
6032
|
}
|
|
6033
6033
|
const dn = ["‘", "’", "“", "”", `
|
|
6034
6034
|
`];
|
|
6035
|
-
class
|
|
6035
|
+
class Je extends Error {
|
|
6036
6036
|
constructor(e) {
|
|
6037
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
6037
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
|
|
6038
6038
|
}
|
|
6039
6039
|
}
|
|
6040
6040
|
class Cn {
|
|
@@ -6054,19 +6054,19 @@ class Cn {
|
|
|
6054
6054
|
A = A.replaceAll(a[i], "");
|
|
6055
6055
|
return A;
|
|
6056
6056
|
}, this.textAlign = (e) => e.vertical ? "center" : e.textAlign || "center", this.getErrorsForText = (e, t, A) => {
|
|
6057
|
-
|
|
6058
|
-
t.data && t.data.maxLength && e.length > t.data.maxLength && a
|
|
6057
|
+
let a;
|
|
6058
|
+
t.data && t.data.maxLength && e.length > t.data.maxLength && (a || (a = {}), a.hitCharacterLimit = !0);
|
|
6059
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, "");
|
|
6063
6063
|
if (o === c) {
|
|
6064
|
-
a
|
|
6064
|
+
a || (a = {}), a.blockedProfanity = !0;
|
|
6065
6065
|
break;
|
|
6066
6066
|
}
|
|
6067
6067
|
}
|
|
6068
6068
|
return !t.data.allowNewlines && (e.includes(`
|
|
6069
|
-
`) || e.includes("\r")) && a
|
|
6069
|
+
`) || e.includes("\r")) && (a || (a = {}), a.illegalMultipleLines = !0), a;
|
|
6070
6070
|
};
|
|
6071
6071
|
}
|
|
6072
6072
|
async init(e, t, A) {
|
|
@@ -6093,11 +6093,11 @@ class Cn {
|
|
|
6093
6093
|
color: ((s = await this.getDefaultColorVariant(e.data)) == null ? void 0 : s.name) || await this.getDefaultColor(e.data),
|
|
6094
6094
|
fillImage: o == null ? void 0 : o.name
|
|
6095
6095
|
});
|
|
6096
|
-
const
|
|
6097
|
-
if (
|
|
6096
|
+
const l = V.getDefaultVariant(a);
|
|
6097
|
+
if (l)
|
|
6098
6098
|
return this.selectVariantCommand(
|
|
6099
6099
|
e,
|
|
6100
|
-
|
|
6100
|
+
l,
|
|
6101
6101
|
{},
|
|
6102
6102
|
[],
|
|
6103
6103
|
t,
|
|
@@ -6111,7 +6111,7 @@ class Cn {
|
|
|
6111
6111
|
return null;
|
|
6112
6112
|
}
|
|
6113
6113
|
findLayoutElements(e, t) {
|
|
6114
|
-
return e.getRegionElements(t.stepName).map((n) =>
|
|
6114
|
+
return e.getRegionElements(t.stepName).map((n) => Re(n.id, e.getAllLayoutData()));
|
|
6115
6115
|
}
|
|
6116
6116
|
/**
|
|
6117
6117
|
* Get the colors that can be used for a given text step.
|
|
@@ -6211,32 +6211,31 @@ class Cn {
|
|
|
6211
6211
|
updateInputText(e, t, A, a) {
|
|
6212
6212
|
const n = a.getStepStorage(A.stepName), i = this.getProcessedInput(e, A.data, !!n.customiseAllText), s = {
|
|
6213
6213
|
command: void 0,
|
|
6214
|
-
|
|
6215
|
-
|
|
6214
|
+
helperData: {},
|
|
6215
|
+
errorData: this.getErrorsForText(e, A, a)
|
|
6216
6216
|
};
|
|
6217
|
-
if (s.
|
|
6218
|
-
return s
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
if (!g.fontData)
|
|
6217
|
+
if (s.errorData)
|
|
6218
|
+
return s;
|
|
6219
|
+
s.helperData.charactersRemaining = A.data.maxLength - i.length;
|
|
6220
|
+
const o = [], r = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map();
|
|
6221
|
+
for (const B of t) {
|
|
6222
|
+
if (!B.fontData)
|
|
6224
6223
|
throw new b("Failed to resolve font data for text.");
|
|
6225
|
-
const [
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
{ left:
|
|
6224
|
+
const [l, d] = xe(
|
|
6225
|
+
B.fontSize,
|
|
6226
|
+
B.fontData,
|
|
6227
|
+
{ left: B.x, top: B.y, width: B.width, height: B.height, rotation: B.rotation, panelId: "" },
|
|
6229
6228
|
[i],
|
|
6230
6229
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
6231
6230
|
);
|
|
6232
|
-
|
|
6233
|
-
const
|
|
6231
|
+
r.set(B.id, l), c.set(B.id, d);
|
|
6232
|
+
const C = A.data.curved ? i : (d || []).join(`
|
|
6234
6233
|
`);
|
|
6235
|
-
|
|
6234
|
+
o.push(this.generateTextChangeCommandsForRegion(l, A.data, B.id, C));
|
|
6236
6235
|
}
|
|
6237
|
-
return !A.data.curved && t.length > 0 && !Array.from(
|
|
6236
|
+
return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((l) => l) ? (s.errorData || (s.errorData = {}), s.errorData.doesNotFit = !0, s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
|
|
6238
6237
|
text: i
|
|
6239
|
-
}), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(
|
|
6238
|
+
}), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(o), s);
|
|
6240
6239
|
}
|
|
6241
6240
|
async selectVariant(e, t, A, a, n) {
|
|
6242
6241
|
const i = await this.selectVariantCommand(
|
|
@@ -6267,11 +6266,11 @@ class Cn {
|
|
|
6267
6266
|
const a = t.getSerializedStep(
|
|
6268
6267
|
e.stepName,
|
|
6269
6268
|
A.serializableWorkflow.steps
|
|
6270
|
-
), s = Object.values(A.layouts).map((
|
|
6269
|
+
), s = Object.values(A.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === e.stepName), o = e.option;
|
|
6271
6270
|
if (a != null && a.selectedVariants) {
|
|
6272
|
-
const
|
|
6273
|
-
if (o &&
|
|
6274
|
-
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id ===
|
|
6271
|
+
const l = a.selectedVariants[0].id;
|
|
6272
|
+
if (o && l) {
|
|
6273
|
+
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
|
|
6275
6274
|
if (d) {
|
|
6276
6275
|
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
6276
|
await t.setSelectionsAndElements(
|
|
@@ -6280,8 +6279,8 @@ class Cn {
|
|
|
6280
6279
|
w,
|
|
6281
6280
|
async () => {
|
|
6282
6281
|
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)),
|
|
6284
|
-
t.getCommandDispatcher()(
|
|
6282
|
+
const D = s.map((p) => new St(p.id, C)), m = new k(D);
|
|
6283
|
+
t.getCommandDispatcher()(m);
|
|
6285
6284
|
}
|
|
6286
6285
|
);
|
|
6287
6286
|
const { command: E } = j.updateInputText(
|
|
@@ -6329,10 +6328,10 @@ class Cn {
|
|
|
6329
6328
|
var B;
|
|
6330
6329
|
const r = n.markUpdatePending(), c = await this.fontDataFromVariant(t);
|
|
6331
6330
|
if (a.length > 0) {
|
|
6332
|
-
const
|
|
6331
|
+
const l = a.map((w) => new St(w.id, c));
|
|
6333
6332
|
if (o) {
|
|
6334
6333
|
const w = a.map((h) => new Xe(h.id, o));
|
|
6335
|
-
|
|
6334
|
+
l.push(...w);
|
|
6336
6335
|
}
|
|
6337
6336
|
const d = await this.changeInputTextWithRegion(
|
|
6338
6337
|
e,
|
|
@@ -6345,14 +6344,14 @@ class Cn {
|
|
|
6345
6344
|
i,
|
|
6346
6345
|
s
|
|
6347
6346
|
);
|
|
6348
|
-
return d &&
|
|
6349
|
-
command: new k(
|
|
6347
|
+
return d && l.push(d), {
|
|
6348
|
+
command: new k(l),
|
|
6350
6349
|
followup: async () => {
|
|
6351
6350
|
n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
|
|
6352
6351
|
}
|
|
6353
6352
|
};
|
|
6354
6353
|
} else {
|
|
6355
|
-
const
|
|
6354
|
+
const l = await this.createTextboxRegions(
|
|
6356
6355
|
e.stepName,
|
|
6357
6356
|
t,
|
|
6358
6357
|
e.data,
|
|
@@ -6363,15 +6362,15 @@ class Cn {
|
|
|
6363
6362
|
e,
|
|
6364
6363
|
e.data.size || Ze,
|
|
6365
6364
|
c,
|
|
6366
|
-
((B =
|
|
6365
|
+
((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
|
|
6367
6366
|
A,
|
|
6368
6367
|
n,
|
|
6369
6368
|
!!A.customiseAllText,
|
|
6370
6369
|
i,
|
|
6371
6370
|
s
|
|
6372
|
-
), C =
|
|
6371
|
+
), C = l.flatMap((h) => h.commands);
|
|
6373
6372
|
if (o) {
|
|
6374
|
-
const h =
|
|
6373
|
+
const h = l.map(
|
|
6375
6374
|
(u) => new Xe(u.regionElement.id, o)
|
|
6376
6375
|
);
|
|
6377
6376
|
C.push(...h);
|
|
@@ -6400,7 +6399,7 @@ class Cn {
|
|
|
6400
6399
|
const d = i.getLayouts().find((h) => h.panelId === B.panelId), C = J();
|
|
6401
6400
|
try {
|
|
6402
6401
|
if (!d)
|
|
6403
|
-
throw new
|
|
6402
|
+
throw new Je("Failed to find layout for region: " + B.panelId);
|
|
6404
6403
|
const h = A.colorOption;
|
|
6405
6404
|
let u;
|
|
6406
6405
|
if (h && h.variants) {
|
|
@@ -6412,7 +6411,7 @@ class Cn {
|
|
|
6412
6411
|
colorProfileAssetKey: (w = h.colorProfile) == null ? void 0 : w.key
|
|
6413
6412
|
});
|
|
6414
6413
|
}
|
|
6415
|
-
const E = await this.getDefaultColor(A), D = E || "#000000",
|
|
6414
|
+
const E = await this.getDefaultColor(A), D = E || "#000000", m = {
|
|
6416
6415
|
stepRegion: B,
|
|
6417
6416
|
stepName: e,
|
|
6418
6417
|
align: this.textAlign(A),
|
|
@@ -6436,41 +6435,41 @@ class Cn {
|
|
|
6436
6435
|
curved: A.curved,
|
|
6437
6436
|
paths: A.paths,
|
|
6438
6437
|
fillSpotColorDefinition: u
|
|
6439
|
-
}, p = [],
|
|
6440
|
-
if (!
|
|
6438
|
+
}, p = [], Q = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
|
|
6439
|
+
if (!m.fontData)
|
|
6441
6440
|
throw new b("Failed to resolve font data for text.");
|
|
6442
|
-
const [F, y] =
|
|
6443
|
-
|
|
6444
|
-
|
|
6441
|
+
const [F, y] = xe(
|
|
6442
|
+
m.fontSize,
|
|
6443
|
+
m.fontData,
|
|
6445
6444
|
{
|
|
6446
|
-
left:
|
|
6447
|
-
top:
|
|
6448
|
-
width:
|
|
6449
|
-
height:
|
|
6450
|
-
rotation:
|
|
6445
|
+
left: m.x,
|
|
6446
|
+
top: m.y,
|
|
6447
|
+
width: m.width,
|
|
6448
|
+
height: m.height,
|
|
6449
|
+
rotation: m.rotation,
|
|
6451
6450
|
panelId: ""
|
|
6452
6451
|
},
|
|
6453
6452
|
[o],
|
|
6454
6453
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
6455
6454
|
);
|
|
6456
|
-
|
|
6455
|
+
Q.set(m.id, F), I.set(m.id, y);
|
|
6457
6456
|
const Y = A.curved || A.vertical ? o : (y || []).join(`
|
|
6458
6457
|
`);
|
|
6459
6458
|
p.push(
|
|
6460
|
-
this.generateTextChangeCommandsForRegion(F, A,
|
|
6459
|
+
this.generateTextChangeCommandsForRegion(F, A, m.id, Y)
|
|
6461
6460
|
);
|
|
6462
|
-
const N = new L(
|
|
6461
|
+
const N = new L(m, d);
|
|
6463
6462
|
return {
|
|
6464
6463
|
regionElement: { id: C, region: B },
|
|
6465
6464
|
commands: [N, ...p],
|
|
6466
|
-
newElement:
|
|
6465
|
+
newElement: m,
|
|
6467
6466
|
fontData: a
|
|
6468
6467
|
};
|
|
6469
6468
|
} catch (h) {
|
|
6470
|
-
throw console.log(h), new
|
|
6469
|
+
throw console.log(h), new be("Error adding font to region");
|
|
6471
6470
|
}
|
|
6472
6471
|
}, c = await Promise.all(A.regions.map(r)).catch((B) => {
|
|
6473
|
-
throw B instanceof
|
|
6472
|
+
throw B instanceof be ? (Bn.setLatestToast("Failed to load font.", Ve.Error), B) : B instanceof Je ? B : new Error(B);
|
|
6474
6473
|
});
|
|
6475
6474
|
return await i.setSelectionsAndElements(
|
|
6476
6475
|
e,
|
|
@@ -6497,30 +6496,30 @@ class Cn {
|
|
|
6497
6496
|
* @deprecated
|
|
6498
6497
|
*/
|
|
6499
6498
|
async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, c) {
|
|
6500
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""),
|
|
6501
|
-
for (const
|
|
6502
|
-
if (
|
|
6503
|
-
const [p,
|
|
6499
|
+
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map();
|
|
6500
|
+
for (const m of d)
|
|
6501
|
+
if (m.region) {
|
|
6502
|
+
const [p, Q] = xe(
|
|
6504
6503
|
t,
|
|
6505
6504
|
A,
|
|
6506
|
-
|
|
6507
|
-
[
|
|
6505
|
+
m.region,
|
|
6506
|
+
[l],
|
|
6508
6507
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
6509
6508
|
);
|
|
6510
|
-
C.set(
|
|
6509
|
+
C.set(m.id, p), w.set(m.id, Q);
|
|
6511
6510
|
}
|
|
6512
6511
|
const u = (() => {
|
|
6513
|
-
if (e.data && e.data.maxLength &&
|
|
6512
|
+
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
6514
6513
|
return c && c(!0), { info: "0" };
|
|
6515
|
-
const
|
|
6516
|
-
for (const
|
|
6517
|
-
for (const I in
|
|
6518
|
-
const F =
|
|
6519
|
-
if (
|
|
6514
|
+
const m = i.getProfanities(), p = st(l.toLowerCase());
|
|
6515
|
+
for (const Q of p)
|
|
6516
|
+
for (const I in m) {
|
|
6517
|
+
const F = m[I].toLowerCase().replace(/\s/g, "");
|
|
6518
|
+
if (Q === F)
|
|
6520
6519
|
return o(!0), { error: "Blocked profanity." };
|
|
6521
6520
|
}
|
|
6522
|
-
return !e.data.vertical && !e.data.allowNewlines && (
|
|
6523
|
-
`) ||
|
|
6521
|
+
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
6522
|
+
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(w.values()).every((I) => I) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
6524
6523
|
})();
|
|
6525
6524
|
if (u.error) {
|
|
6526
6525
|
r(u.error);
|
|
@@ -6532,14 +6531,14 @@ class Cn {
|
|
|
6532
6531
|
text: this.injectReplaceableText(B, e.data)
|
|
6533
6532
|
}), (n.defaultCleared || !e.data.deleteDefaultOnFocus) && i.setMandatoryFulfilled(e.stepName, !0);
|
|
6534
6533
|
const E = [];
|
|
6535
|
-
for (const
|
|
6536
|
-
const p = e.data.curved ?
|
|
6534
|
+
for (const m of d) {
|
|
6535
|
+
const p = e.data.curved ? l : (w.get(m.id) || []).join(`
|
|
6537
6536
|
`);
|
|
6538
6537
|
E.push(
|
|
6539
6538
|
this.generateTextChangeCommandsForRegion(
|
|
6540
|
-
C.get(
|
|
6539
|
+
C.get(m.id) || 1,
|
|
6541
6540
|
e.data,
|
|
6542
|
-
|
|
6541
|
+
m.id,
|
|
6543
6542
|
p
|
|
6544
6543
|
)
|
|
6545
6544
|
);
|
|
@@ -6548,7 +6547,7 @@ class Cn {
|
|
|
6548
6547
|
}
|
|
6549
6548
|
}
|
|
6550
6549
|
const j = new Cn();
|
|
6551
|
-
class
|
|
6550
|
+
class Qt {
|
|
6552
6551
|
}
|
|
6553
6552
|
const wn = "data:application/font-woff;base64,d09GRgABAAAAAFFcABIAAAAAc3wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABlAAAABwAAAAci7Ri5kdERUYAAAGwAAAAIQAAACQAfwCVR1BPUwAAAdQAAAFzAAACKO/T/WhHU1VCAAADSAAAAFcAAABs2hzd2E9TLzIAAAOgAAAASQAAAGB3Irb4Y21hcAAAA+wAAAE/AAACPrH8yqpjdnQgAAAFLAAAAG4AAABuFX4UOGZwZ20AAAWcAAABsQAAAmVTtC+nZ2FzcAAAB1AAAAAIAAAACAAAABBnbHlmAAAHWAAARU4AAGJg9ZIZG2hlYWQAAEyoAAAANQAAADYZz2YgaGhlYQAATOAAAAAeAAAAJApmAHBobXR4AABNAAAAAP4AAAE03nELNmxvY2EAAE4AAAAAgQAAAJz9pBfIbWF4cAAAToQAAAAgAAAAIAFoAoVuYW1lAABOpAAAAQcAAAJOD9ldAnBvc3QAAE+sAAAA0gAAAXKHJy9JcHJlcAAAUIAAAADcAAABiXvFD3wAAAABAAAAANXtRbgAAAAA1+mWZwAAAADd3YbGeNpjYGRgYOABYhkgZgJCRgYPIPZk8AGyWcBiDAARHgEVAAAAeNotkD0vA1AUht/bVr9S0aEL0abV6kdU9ZP2D0iIwWSXsJSIiJjMJoO5kx8gBoPJZLVKmjCQGLoYxCQirufeyknuueec9zzn3CsjKa6MqjL728cHiipERtbKVcze7pHLaRxRC3gflTG3XpnRqja1pR31dagTnepM5xroSje6070e9aRXfepLvyZpZkzB1MyG6ZsLMzCX0LqwekrB7CmnoErES/ZdTTsiNw/dqKwkZ0cJzjW0AbU0TaeLG/b5v6tN7HIhFeyPKvaB2ptW7BBVFmIA5lDrbnfVUIVUZEYTTRt+F6Lh5qolX82SaeJbMHs+v+jPlp9RtR+eUveKJPSCfYF2za2MrqJvNxHtstKKwExowfX59438Lu4VbnaEWVEVqTaI2vxDh1d28T04MXxacyjy6ItUSqjK8Orkxj9RYVaOaM5v2GS3CZgJr2p4VQWu+7mYwpjwcZSTWFBTWIhqiq5ZLExvjq3y7B6D3lX6D1VyS+MAeNolizsKgDAQRN9qCrG0tBCbQEDxHn4ukUqEYOX94xiL2cd8FgNaBmYsxeemwSkhZ77G0nVGZfxOnStspKXQ6bujZ+SgxjOxFwY2KrlVN2hp+BcvHAinAHjaY2Bh+sI4gYGVgYXVmHUGAwOjPIRmvsqQwiTAgAqYA5A4EUDA4MDA9ZuFLe1fGgMDax/jEaAwI0iOcRHTEiClwMAMADo4DD4AAAB42o2QTy8DQRjGn2G7WLqKpazFqC2r2FYtqk0kLlKNODq4iK/hozj5JhxIRMTBQYKDPZA0Ig4OpCkZ7842m6aR8Pwyf995Zt55AbQjbBYY9WAFWjG5VphFYw4cChI00xCn+R4OcYwzXOIat3jAE17whg/U8c01nuX76a+6IkRwV8OxgQNynOICV7jBHXxU8Yp31MiBhoMFDlETn+JZnIsTcYRfJEp+yU8+Vu+3Y+Uw2yalkIGLPIpYxyYq2MFuywk1QpPoEiPClPAIW+JI3AhPAqYiSoG1UQGVltcoGMMfUjs6u7Tunrjem+jrHzAGh5LDI+aoNTY+Ecb5ZGrKTk/POLOZufkFN5tbzC95yyurhbXGh+gXBnggwLYpWccB3ECe5+H/Kqqq0bq3VQkf0aheOlXKoBqZptl04geqBkTqAAASAzsFUgCcAF8AdQB7AIUAjACVAKEApQCqAL0A6wCiAHQAlgCiAKYAqwCyAL0AwwDJANEA1gDbAKgArgCwAM8AuwCTAMEAcgA+AJEAngDuAIoAmgCDAGUAuQDFALYAjgBrAG0AhwDkANQAzQBvAAB42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkMZ7oQUJxNWNYmQ7heUIaTdykYtxAR9AgUQN2q8ZoKGkSJsGIRdIfEI+IRIza4iiNDs7s3POmTNLypGqd+lrz1PnJJDC3QbNNv1OSLWzAPek6+uNjLSDB1psZvTKdfv+Cwab0ZQ7agDlPW8pDxlNO4FatKf+0fwKhvv8H/M7GLQ00/TUOgnpIQTmm3FLg+8ZzbrLD/qC1eFiMDCkmKbiLj+mUv63NOdqy7C1kdG8gzMR+ck0QFNrbQSa/tQh1fNxFEuQy6axNpiYsv4kE8GFyXRVU7XM+NrBXbKz6GCDKs2BB9jDVnkMHg4PJhTStyTKLA0R9mKrxAgRkxwKOeXcyf6kQPlIEsa8SUo744a1BsaR18CgNk+z/zybTW1vHcL4WRzBd78ZSzr4yIbaGBFiO2IpgAlEQkZV+YYaz70sBuRS+89AlIDl8Y9/nQi07thEPJe1dQ4xVgh6ftvc8suKu1a5zotCd2+qaqjSKc37Xs6+xwOeHgvDQWPBm8/7/kqB+jwsrjRoDgRDejd6/6K16oirvBc+sifTv7FaAAAAAAEAAf//AA942q28C3Qb13kuOrOxMRgMBoOZwQADYPAgAAIgCIJDYAiA4FsURVIURVEURVE0JVMP62XLsuzItqI4quO4tpMmtmPHedQnr7pZbY+TzoCKk+j2njJtT9M2t03Triq9q/ecnra365TrtEmahxulOfL99wxJ0U66TtdZ15Q3Z/aeAcn/+f2PvSlEnX3rn9y6+93Uo9QHqP9Bta5QVKl1lAxFRJWsZ/mNG1fPXin6S9ZVdoM2P6ibT9yyKtKGWRHNPW23JGs1vGGu6tYe+FatWr9El8x67Obgj/7xSSpU4gTTK5r8unVJum1eXIebNc7LB0trPjKal8S1By9dDJZaMNn2gbYPZBlBkpumr9mCabii3vDylzjfxQe7nf/od9ybozHaemJVkq1rzzab5h7JKh5tNinr7BVJXhOCkd3tatO8Kn0plakO9l4jN8/KrSeefq7ZbPZU1Hytt1EfoeuNYbqRz2Y8jIcp5HuH6RF62A3/uxp1o6omXUzIFTaqBjzmUsMegQ7QikdRk+4UHYZ7hnxlCnnyVesdoeFbNgOPCMhZ8mToulpV5UZvrbfe2+1isgy6yMRGcpjziP0ZzhdNdoZyIsYYIb5QKhezrK/87muz6ct7cqqoYoQDtZKPM1QscgHMMdzVWp2OYd7PCYyH1dyYRgG1Eq/H5lXehWg0e2ysLAfq8WiO188VhlOSTH9DSzz2H4oI/mNY3jv9JzxmpbbZWVaJDqy9i2a8nCJjjvNhJKc1RfAjdPVPPzAZPRQRi8VEEd8pMIh8IcwotSnOn9S+PsAHeQYjmsYSF83GyyGeL7wydbyvKxHp1zgP7UJ7Jy4ZN1fSPEO7AoiO0ZeyiOG4EBdkeKzc+SeKolzUSQrj97kvUHPUeer91MNUawyEzlr0b7QKRPCu4o0bD5wZK/hL5jnDeoDdMC9XafNp3bxyy+oSN9barhwTSlZ/aMP6RbpEWYtjkmy6muYZ6QYv9h9kCbMfkNeCvaG6IwRrkVjXdXJZkK1kmghAPd+o218McLXQTfc6woDIv3o4RQ9jYLAaDikewR2gnSubp9lModul08BbuMolaTXcqBogRPVaHT6mYIuABwXrVXi9alTteTJFZCcMgvEAF2B4IzU7kkui0TDnBeLWXhBzQcTxQVlIMFiJl8uN8fbHx+sYq7FEIswwF2ptLuXq4iMrq9Govtgsc75CGeOOPO3nK3t3jzDM5c/wiObFoXIhOzzS0zNwMNaIl1Nu5rfTPN0z+hjv12cCAkIsh6+McIy/OPTa9xCLUghxYgAzM/rEx2bk8YE0RjzLiqLG85iJnj6wGtVyu3rymuzGscu7Z9XI61cXCimEQ7Eow8ZQ+GtcIqzQ+JXjgtCe0acV2cMxd/6GNkFc0AcrxXljD42LckiePbmYpGjqDMXgJfcZ6gg1T7XmCb9HhI0WT/hdcoF1WdJNdMtqaBtmQ7Ta6NINVaSCuGQdpUtWW0OSW/yeeVBeU5XMSdDz0gjoeQjFJ4GvPZWgrdA294xqik7ikOJwrBsN0aB6m4wRMJkLgQojwp+Grf91mHNUljAXPSbtOft/jnzgXCkiC1y4MV/SGEGUWM5NyJVTY0k5JEqdiyeXl7IFH+PmGqOlrkr/2NB46lFJcyFFnH5hf2OsPsgL0+87T2cPHvyV195sDR2Mu13AgVJlNB/EuK3QhUErQO8YoZQrcBzjQlgbP/nq6UtH9VwmWp8v8AIdkrPiEcxoSjq9dDUXFXjaVXsf6A8CWtL460DLXmqWGqJaeULNfqCmQqg56QNqHtDNXbesuLJhzREV6c+DiqCmOSlZ3jgQUZEtTiaKQKwgUE0O2qQAiVWBgEmXSsgH1Mpk845YA22y3YjygCqAVNsC37tFVBpodwapKSYyXbgoI5FRgzTdEfjE50snlmdLKJ689vTV91ZdWK/0TqRUsawjVBqQ6GuVyGilV5JOfnLsQLxyMa4N9OmVHJv9NY0N48Tnr9OXaKFQFENo8bP68eu/cYxhlu5/+L+/tlyiaV6AzwlWULlEN54ycnGX/MKHfv1jywsv5Ti9sHth/E9A3lYp3v3X7sepT9Pvo1ofBgqZv2xYT3s21l5++sNsybrm3Wg1gFzmkGEVXRvm4Wqr2OBKa6NF3VsCETR3Ewd3gNtojcC7N04+9OEGmKOAYZ10A3k/o1ufdbzd937va992vN1HRPOFdet6/Lb5vvWb//Kh9efJtNs83C2YB9fd1lDitmDuWl8bHtoVLLnXRsi3m2/+YP1X4THf2ii5NQ+La/OHD4KPPGSPC2S8+d0Tv1Mlz8APWHvxIy+Ay4TxrstswQfucKCjzRa8TK4WmuZ8kxrldx28/r6PDI/OH1p44cXuHf/Ro4GhXQcPk8WRn13ddLGU9fKHQXQ+3bSuPQ2+FoP/NB+SWsHQ40QXT8qtSPxecnVAeqPQds/x0/edIXa2KFsdlWbTauyGdycce0tkhgy13lrekxHobCedB+to62yjp0F8bgNUkAnQGVuX7S/ihZEtcnXVscAZW0kLefsGpsLwUL8rSYcUkEP4VDKNiEzCu+RtGv6RH+G8TGQZJBmuBATSeynAoanE6Sk1Ah4YVXrAcvEIq9gwuEaA97cXS4Fo5CMcN5RIqwkxsPD5gZiHjeZ7a1f1h48M6Tkkl1/uyWB3uqdvz7lEGjUrBRYzSB7pwgLLMh5/MqgeB4XAeK7BaFhh/Hyzo+fjk7lhPZHBqYgQGrlvbOVc8dlT2FUewr64lhNQSubwkfKn/nRiVQiwDItYFrNcikNqzJNW5GBjaFTO5sDIsqwgZhX/GFh22s14ZUZkGVVIzSsY3BMfgt9j/OGZLGbVGPxRDGazOYbxgTcX7/zFLwo1+FyuKrNehDwI65rYpKWkN1aKYLj1IKI/b/2ISbvPUe+hDlCtxwko7CHWJc1tmL1ENRr9hmFN8RutFRrWYvAAbT6hW+8l5iY9Bfa6UDpAJKNXWuvqrg8RseiRzUFic/IEYsH/IBE6DaKQgQnbARMBGaEzhD3EK5Obepq40vAwGqGrYQWkg3hSG67BAzqdF5AzpcIHhBl7CbjfSTNZmEVkhdinLIFp51hN53O5FPDzCJhcge0uC+B/uegD0QI42ydrjYXfk3BCFBm3B+bvpcun3/3xllxIa14vHwAMJR5uy6aMsJqM9x6KHeMTkSDDlJY5Tkjp+3iXlxXV7F4uyNqAyYViuSlZGroyGVMkISmIgtbLGY26LF74r3qRQRgLHibFltkygKvPjE/4MQ84kPfD+KIoexACeEezAQEzxUGW4wjkQpjDPOIV+AkDX020e5CXxVEhkHDbvxySWObCta+2pU6fF1zIzVHE5771I/wH7nnqQeopqnWeeIkm3mh5CR87mI1WhxcMHtUR8pZu7D5w3gs4fzezYR4i3D3OgJW7ZLtkA1yyIVoZcMl+xyU/BC45Y0jyl0PeeEfk4Op5wly/ZB06ThD48abja3ZL1uQqGIEDh+B+kTjpXqLYlK3VOwFVHtTfYf+2TwEeumxHvelvUCNfALUNoLzzIPkEowoctz03fAZ5fJPN+TPzS/T9f9yVf6U/QrPFkXHZn3QhwLpebzGbl6KGLKVTlVJu4aFHSgPxxJym7V8cX1BQpZHjCwFBZYF7zaOh2J77zgyHpZjgZkKJcLy7s1/cf3qhXDuE8YGjx3oX6Kcx/s0/+DY9n2JOFiucb8GYEbAC6u92u+VytZzUch7E+qPy+NWvP/4r71+emdG8u40Xl0qsC3swg0MsNye61IjLjTU1GQIBOferp5tBlaYTidHT4OZt/v0UbwBOfoX6JtVaIT7sumFe1K37XwTdi/Ebpga4+GO6+cwt63IUULJonQSvtFq1prQN6+OOg7p9cH2ZeCLzfnBE58ERacQRJdbX4loCXM794tqF+8+DU4HbHU4F5kgQtpaIn79gO4svJTS4vH9H8HX5GVBy7vkXbUcgtcKxq+RqSl5LKitnQSIo6+KKJN8Ye/T5lz5KBCQm3eCS5fqoDdhkO9YiRgCDabeBNqhqFaB3XSZWIKw6uu5J0tVhZFTrxJQDk0Ob6h8Kh8AxJG3VF1zZLdY7YV23uwAmXgEUGLY/JFvodg/Rm4u2eGXzZxAAOrVZKwv89NPzMyoXddFj+kJQbH6yoo99+mhM7m4DPMxc6J+SO+KpkILZXBQ0G5FwLf2UUY16PTSgPT+oO8RvTEDgsVtV+ot9QcyJoZBcrzWqeT/XwJwQEmQG5FMZD6uJSlzlGMSLIVkUE21VsO/LvB/jhBELYvT6T6/sZhFKupnao0u/W6tzDPMiHbzepoT4sNLN+1vXv4WJqnu9ELXxPvh1yjWMV+dGOn1c91xC4pUA+C82AD8Bp8sPxFL68OnxCQgdyVtPtrRGSY+kEB9iGFVEOFWs6DmeV6MjE6tGzeUVEJG5k2/dcX3TfQRw+iNUaz+xGbs8G6anau4SbxzC1Alcah0m3iBDrEgQ7EWe2IsejwPh+VvWQHTDBu0DPCB0To0esGVhF7ECDPgA6YaXHxgZJxIRlFtSpApSY2UIPu0gvmHY3YB42+aVvBWa5223UG9UG6D2AAXCNuQkLGcc9LlpKRpkDRiObJRAHD28nj+HfTzEzAg3ZvhY9jOLXT2iVCxzKsOm/fzAIdazf3XXqQwB40gezuuJtjlDKUgysNel1Dr1NsGDMVsc7XC724vL75OkUolTc3xIEHwsKqLuweVrLfr1V9w0Av+rqEWOLSI6CBbbp3C41qawH/ri+MeOr84NNoPydIGlvVjh/dEuYIMWZPCWnv8r/rz7IrVEf3AzNhIAngrzxDwLjNdxvWbVsFLeDTNebfUSBtRsl3tUt5YdRR9663tJB4nKohlet2aTt8196zf/+Ze/9pqDRONgAGJgAKouMADN9ZvDh/75YRtYyuJaUA4D4FTsMUTGmz+472u77NW4uKbFY2AqquKaUW0S8NpLvq3VyHjz+5/72nkbwtbtyYY99tlLw8b3/sn+iFlxbWZ2H8zvJ2MLftgOxKo0zVCzBevkZn+zBT9jx2q9aTaaZl+zBb8DsUijohyONfbNBpWQZtT7mjP734FaAdcqdx+JV43e2s997C7CTcEPWsu2F/faGEVqDY/usrNEjr/agqAEu5IEAUhiNwEnxPEAEK3Zc9Wk20i6BmiQTqMa3gYp21Gl60zc5YqHhWAhMTB4UJ8NiMWCIEwlEvj/aRayI6EKxJYggML0cq+Yymi5cC5YYNTudIJhC8uaRhSY71NCi0W0WjauH7y31j91phSkOQ9jYLpHS+cAYQhTzYGvmkbjmzMzqATCzGEOQk4vvJobKHDY7QIxBlPgJQZM5ryJbi/3uc8Kdw699PpePSBPL9YdWTz91puuJ8Dn3EcVqNYqEbQpW9DO6Ca+Zc3HNqyzoNzzGKIBBtw7RfAc0KkXDLmdPwGj7Ak5+S8nvN709oIrQNsmG9x32AbzgjskuAiWL4D+hsJOUm0TrXWjMwi7MS9n1eLQPK/qaV6UAJprQjP3xOrIy4LISz63oj547eFCIfHkhzhlMMdyGhhiCYAxw7gZsVBs1IYT5477XQIvgDIy2YIQiGcLRuBvZSEcQNNt984/Pfn0pz6XMJpgNeN+Pjsw0vm5G43pyqscHw4Ec/WBK/MjksB+/s/5RBjsqhAVguUI6wdEDn7AxyO5ONf81sX3HAj4F1LpKCdrQoLHgjCzROhIYdd/Ajs6Rr1MtXSi02l2w8xVzX5iLzXfRmsXIa4fEeLu1q1xR4tH/uxfddtda6CtkXXLnbptetbXAJKCBmriWlSLgB7FyNiCyR0uG+aIwkSb1JfcMcYTiW4lTt0x7e6tI/MkIrMFV27IdzlEIydPtYm67HkSVaFucJhbuAwVzrvVVCON5YX+v1p24zZM+9GJd+WEEMJPPqrvikoxtyqG3Ex4qibnUgWtqBT5AhKiYjYcn9nLabuwopXKuqT/B/qRx+hvCHSH15tNsd+484efG3m9XmMLIgYE5uNrAz7b2bHIh4j40q4w9nCsYy9/6J5zn6au0n9AtR4mZOwgwwwZIkDQFkec0ykBfNK7dfPxW9aD4Q3zQdF6NLhhPqqTq0Mgw9MwOS1a3XBZCG2Y2epas9DNlqxkZMO6tmlTf/u7nY5NPSKax9atSfW2uWf95tDff/cNm0lV0ayvW5m222bb+s2R0I9qZBabWeBdet2qpW+bjXUrm2bNjLiWzrQBC7PiWiabBuM49FfffcE2jrZZrQNTe8lo1RosWFZyVa2zZk1cAyBBHn/iO445nhTXJib3wCcdEdeWjhyD947a47I93mOPK2RsweoOQ3q0aS43zXua5kqzBR9AJAZ+LFnpBauqtGWrRmNy+Vg6A/Zyz8SRpaP3rPw8k0mPBtv+XU/aGPHQg+DXzzfNack81TS7AS/KJF1AWaceluQ3knL30PShx50MHrj7zbw7BFh0inbi/800rIshopmgFWYL5TWCJKqHgAEsscv2+QwKOcv2A+SzZCeiIHJrW2I7q5XZQoqXhJXHjPMrSwVJVMRkvARIKnEym20UtVBdYuZTe30IVdLLDM0L/HE2CACCE3LFYi7FsqloKV7IKaHlko/IqifBi+oy59X4QGGgcFWfFhHSaRROZ2MqffkRWvin068sVDByuYXow+WeytlsOEnzbafaip+884Nzd35jJjoVUUtx2bgsy+Pz59rpA6k5XYoEE4KI1Ewxx/unRj50/qU73x/Xi4h7KpEJyKFI18ilSnOOLqSzWneYGy7d+Zfnvr3OZgX/a1hLDdQO9dp68j/xk4ArHqIzVGuSxA9njVbQtjiXdfPSLdNVtY5GNsyjonUAtEBTN6yHN83Qx378NUeWXSDLnnXrSOa2eRgwg/S9E45CxEUzCSIeum0aIPqH3/w9Wzpd4hp2galac9sjQ8abw6f++ctbUCIRT4Lsglj31gyQUXh4h4y6mwARW/DIDrMGz9l+3x+vHT7iwm6gdtLofYdM8mTx563ZUnj0Ejgr/3k7TWWebJqabM0GiRQGJyGEaT9wqemkQsGJeZw8VX0rdSSrxO2Tf7ZQKgImzh1tIs4eUiO6G3gWkGsrlUzKRPSOMtGW0J0hgT3DADROCOPzjZpW13k+lwkwPMDMmHf8QFOvJASJpuEhkoSoDMxqUReWYQK5XIjPhkPtiZJajA+EsE83piMyg2naBUBA5mQfBDx5zpdsL0fCf1YvMjm1XGgOTC/p3/jiwpxcdbGVivKtO63jwpUIzEyVQOD9AhdVQiL4v8sv3fnXl37hQntan3K5WM7HMxqLeTGae5UeQnN86OJ7f3h9aaqSEfmOmo/VOCXKBUQvkpShPgODrJ2lXHjI/Sh1krrgxKpWXdho1VcIhq1PA4a1U/15L9jkU7pJ3bIqMVJItHaB4B0SN8xgtbXrEEnA7prylqzTMLurQnBZnl8huOyQ1MrEFm3bkQerZYWjmxBtM4PoFOxUJ+8P8Z5Ok4zBZnaaaL5Tq2mQRJKdaaiRXGCt1y4XEE4RB4gCNCLgA1bO0krk0FLpPR8+ttzTbcykZRQT/YhlfSwEaLUl7Jra88gHdyVEEIaZqUIupPQdm5JDY0kNB7mk7HbLhUGOAxBoNFTl/9qQpDO/XszRN3j/vUdO/ueX6q+MlXihOTygBL2efoQSjAiM8GI05iqMrX1k98K+fZz38C9FeOBsczgSXTq9tMfLzawE+2NBmhFmU6n9e8OhY69dzebu/Ihmr59Y2YojfoJ3uS9R56mvUq04ofdB74bFHahWzYp+YwBTdQyqf8FO6yxrG+ayaE0CoXPShnW/o/feE+uWo99Dojm2bpWzt82u9ZvC+te+amvwkLg2PDQGmr2LjC243qG+uwB6dJV3jQ0Nb+rl2+5sVVxGwDselM+clFoN7qTN0IMDpLyTEx01zNfs4pw8QgP3AB9uBn+klEp4uA0mN3PBwKthBOh8M6HopJDs4M8u95Bij/0WSIIOyP2Ci+aEfPGj9ca5aSzxghfYiVJi4Mx/bOj3jTfuK3aIHk6YXpyPaX2DrLfS3tnEiJWDDDtw30iZ9Y3vc9O8mC2MNrsYd/fUA0MlFtNubIgsjQLR3UpoavrLWqI5evL9H6f3Li9DmE2+WFbI+riG6KbD4nhv71iirVBq3mtkGczRbkb2sgThs0EhgJG20uPztbd3J7IBP7r+0/WvPtEXDCSl4qzAcLKkKhAlLBNen33rh/ga6Nt7qSec/Kz5sGFVQeWqjxMtqs5vqVyGqNx1m+clULmSaO0Fnt/jqNzee8jDe+dA5X4BZveWJPlGht/zKHHK5j3SDS12bPVhO4CvPg6cO/socC4jfSmMoqXeVcdxkyjp56kg/XYVDDkqCLgy73CIRAeOjaxvOvJ36iMAAQz/GBuVOiaU2VLPkLqwVLr2/LFlXd/STkbluB2a6QfFzBeuXCvW0mWEBBxmU4kEyy7MFUU/zchsUsaMraXSJZ5h0qmswkC0ZKd4UrzfxzdrI8VfvynLjub6+Z+vuUKO8ztaO3Z4esbLgdb6r6zM6CkIRUi+iBT3lYuzh0cNWRzZJ20r8PT+3/2LVDw7U6vAUxCwMB7EgBVGJeNkCzkabccQeMH9MHWVuky1dhMeXzFaGmHqfUSvhWrVBrj0Let+8OL3i9Y9wMOstNG6J0vYes9BYCsgWVBuUDBRuUISdISp3FT5EmFwVjYrwNr7dgPXXbJSfpBMapLpA76O0Hb4K5OUGXCQJM1IYWYrorO/7CjOiesU4i7dd+uowCNkF2q2C7OExe4SzYCRdbTSTs15MiTUS6VXAXqpkzpi1YIsMeIvvqukH1w9OTKqEF+oyXOLsxEtd3xAXZiOsyofYOz6aSAekEQpNxNp/GpR7e9Gnj3FkanLFTcd5UslvZhlucVnolFvlfOCAAyr4cpoxH8j5GEe+vArtG9jYjcQHrF+H8sXZhQ2rBrVsUaD58b69ZlSimHE80sF9JmrbXw0IHIBliOxMzC037hMg0wZKeTxqDFRkpfu62U9nXElFRJY/NKdpQ9+oL/noX4+yjCpLCo2BzdtM+V1/av7MnWIep1qHSCRSpokddoNqweDgi7oZvCWNQQhyZBoeenSjSmNCuCSddixyz/yrn/fjjjaAY4V1q3u9ttmef1ubbBdXMu1F8Aiw3jXIlNrhXJ3zjbFN+CqPXfXEA8FQZ2FAyAQXskcI3lbq2c3McY9BwCyC00zLZlFu3K3WYoj7EO25vbaFtlRebVqkOwI0XjdTq0SH2ojHhvGO+Y6RLLztvqepVX++RPPHN2H2LHnjbzoo0FLeIFNXRzqqpZzGHfsq4Q6aazuyaUVuTpt8P6UEuIYkAFubPCLfb2oNPeh5ZfPZpOPFgaiPEpF25am5wPCwMITo3qzmPMLPfNRlS8fjyqcl6b9IqfEXC4Z8wxi4inel85mSmpYUTpXildXl094PLX7L8yJCvJqNo/uAwzzGuDl49TvU61RwiPbgh5ybZgiidpzELVH7WzIvbo5ccuanKpWSX3EWt1EzSf+Jeqg5klg0751SxcImzAJ2qYm9wEUHhl/84idLdtLbtemydiC6x1edLpJvVHWJ6f2Tu/bwrc3yvrWnc08YwKQkWf0wGHbMudGgWMHbIiEjheJjouy5cHNrb6I6nYtlTSr2F0pRl21SydEsW3GbEZItpF+RyKG5HYYu1Eq4+l0CqzMOVcGoWJlfmmg76H7Pn02KAeEzjRyp1lOZRMH+zhiVivlRpqZv6wrrIfYVZ5TfEx3F+/PdBQqAgbPxwUj6dDU0b78dDsE+aeziayGb7oYqR2XwgXG5VcB87KC0CGkdQi+AHsxwmfu/MW3l6b6c15PR8PLRQGE8inAoOL+49NtuCfcLM9Mne67eWPKTtP7nRoYhfAs2NBp6o+o1gTBpRo4Sc5JqNLmPhuLRgAMRUSrE2xlsQQ87RM3rJlNni69+V8cRJQXAQpZw8xtc3AdbtYK+S5gYQcZ8VrRvimR8ebIqX8p2Vo5LK4NDQ8Ch+HRHRzuaLZgmujnlweH8oWOYqlrO5T5kj3TtQMydUZAUzk/0U1OA05TttOVt11u2GO3ajCKUyrDjWF3rXfYbWx5USZAc7YHBmfc7TrTP3NmQAvISkDkgcU4GS1Uoul07UREqy2PDhU0JauKLINdDMMJXjlqwxcfW/njT2fqlX43M/ruc2P0jWs0+/Wvr+QUnuf9iiAzU+OPf/VdL/zp8GmGn1l99amTsx9cnS9nEQ5xog94lxWkRD4anxrddefX7vCLQY6jaWPl9U27yOGS+wrVS41TrS7SaxEWiOVrMSSR02ZrW003jVuWHN1oyQaJJ2QvOLY6MEuG2NDsBMowYbgwCGVIKwuQxa4VO8h/M5sVswO5etjOc9leKut0bEFUxnwY4pjhaAQzVUORaYRdfjFZan08WflAsSBzeOG1+evPPTXtcuUqYYVjEaYv0OcLiWUpF46+/sYfffmQ13OwphbKdJZOTT7yVyxbS8l/d+epV7/33FOoDJ+/cCXq/K20+zH3VepButupx5r3GDcyAiXAn5s5T1x2ZhxgG2tH6E71NQl/dBKRPzopeEtmUrSK8HfXIVJ/aDNFFf/Hn24j9hEI1H1OoP6x73/WmR4WzdF1azF325wD6R1lHQw/AlE4iOfI8CgJ0P/jD5AtsIvi2sHFORDkeXtcIKN15DC7dti+WpxjSdpp8chhkGlYdGSaiPRBp9nENzR6ZHhk7uD8wuHFtwXo/8aCLeDFpJMkqkvmfcDKzHm4HWiarLSG9Pp9d/u75C3kYYdqHsHtCdlhuGGbNxlCOplAShtfiGoS1e0MkPMSCEMPeQP8wBZCcZM2vk2sctkXTBtjp4RAlgGkmJL9mOdYgGQ4EEiCrBXTV/FqykgBQkyx/UwknRPVC1rxXEdUgnjQw7rdnCQCeOdrY+ne2XxnVyXaldYgqkaFhV+4L5fWR1n6seHDD32SFl75GuY6OV9KE2b6y8rY9P6ppiTuG3rXcIXG8p4GfURBDK0fS0QYNeZ/45Ezd/7xC0paTpeG6NYzf3U0Kwm5gOjzaSVjdLZ48s5Pf7L4XJ+WFMf2LcyMysGXHr8RTX9hYlOvaJxzP0ItUD2O3TPnDWvUu9EKE73K2Xp1WLcWSb9GGDzIDSY1PTNrU7ueJ1VZgtPRVrptE/KBRydlWwLRSWXVTbwESeqjTbbYXt6VL2xW5c/SPiEazvK5VxUP9xE2LfozvG+6PtDPCTjnf/Bpfa7a7mFTsiQvanqumOkNs1GOSyhYGZ7LDtbS3aWu2Tnjc4Kn8MycWM3k5PvLxfZyrh4eu61LKr0UnjYK0U4Pmlt8ORHnzsY+/7qxOwSWX+wtKScSQ8ZI/WCWLUoKYHbjkavZpsyVCunYQYOe1vih//akPDjlYLOzFHZ90n2GmqNGHb9Pmwdt7ZMVMDlE+0Zl3ltam5ARWzKnIM4Cnz9P7A84YnN/06xKVmTULobYkkps81aLw90mhs36kV21drJCm0jYvSmT2e3UZTe6yHj8A4aalVif5qbVhuFmUuXGbFgebvi1fo33eEXMjlVOzl2L8k3kZzji8lihq+7Cz+d8NOZTAhutTrg2uovlwr65AsOFvaKs1VaEwMF7/1BEXb2PFLMfeyqUjcNz4aqc+KNPXlltXt7d/55DWGQlTvAxLJdAv5avBITxExfKwehecwsjuX7V/SC1SD1ItWaBVmvTM3Pz7aph9fk3Wr39g9VqtdU3SyxW3yhYrIBuxQE2xZLpKglXjtg14lxow9xdhZifkJYPgjVfInkIHjxd2wjxdIE+uGRLgGXikhXMOYmBht0XRgENa3YgaEumuhlVDm/lBhiXwHgc6On0bqOt8samEyRusJA/56IZTsvRf8sVCyjd8d7ffqpflRMvTZXTMblrr1BOR1zyT3BvaVf/SC3EFwaH+7sasnJgl5D1R5gQZkJafNCY4vnU0LlTT48J0mcVta19uFRD/UJtSZRQRNpVb+MhdmEQ7QIf2NXWDEWeu/MnzFDvobljq2UwRB4XojkEoYynXVSjmUiEBzyMA23RBNDZRyH0565xwKKHqdY40d9Dxo0xTKXBV/A0wJg4KbkDDj12y8qqG2ZWtKaBhkMBG41aQ9MAEfnu+IQNEeNjEACq08cIOOQlUyYmFcRsK9dJepqw3VO13dBJAjSnZQ8b1SQSNqM2CJLCngwpfDodN57N/nfCCx8d1RcH2JSud7frfmG0QTIaYAPT0Xg0Nrc0Mhv20T65t5ZijUE2Ek2XY2IQXCnLuFx1Gg+hbE7uG6jlgAIlPZPOaCnWWyxUwh7sovnSiQefHOW0ZFLkcQ65w2omWEupHnZ/85UVva1N1nA64qtdEXb3NVJ+ORqOyh7PG4/z/HwlhZHaPtvHBI1SOMxDUOBSE3u1pJpiHd3veOstZOI3qRnQfjtHbiV4kGOg8I3iZsJsv20LIhCbhasEJuaAvqOAEGeJzAI6W/P5e3ptOhcTcIci3cO2Hd1sYyCJDgAkDt5Gm/3HhLCNzeIEofwWH8JbIZPT4mCTtuQSw7N7VP10KiHzjMRjZfAiQ0PUWm7zKbmBUhqFsw0RIuEow6vxeK+bGexWQ4oooIk9Qydy/aHocm/tLzPtc4vvobmvlJcvZlNiOcvVvnDnkWtSoKutM444ls/sXXh6pqJPMNgvMrg3HHcVlVLn+NBuLzuzvjSbkGjE6rpNM4GS0WXXfmoMrEBrmNCsC1ScA5qZfsNKk3h2t02zDhDMDtGKQjwbdHrHxoFm0Q7SOVQdJtIYlKzeGtH4dBcRUXK9Iwm43c4dJm0gQ/Qg3e3KbLeGbTVwO+WfTV8e5ejO4ctDY82M251LGRHRjYI8w7o5JZWu1Qab4ehUplMQ9FR0DyvSfq68qJeMWCwarx/9rZ6ek6defqCpRUhYmsqFeaWOEMdg7IurYa8n03dmYrpvtVulXYyfLSMsppT6pBpkwfIeJnTh3/pn1xD+b9QB6lcdP2LOGKaoW15CkTk70oiBfh7cRG7/8N3/7EC0tGhm162K97bZvQ43a5l0FuBZRVzTK90Aw3rI2ILJHWURmCO4S4dgMd2dyepwv1Xvffu90+MgjhLBjCXsvhsvmFTFJnPv2zI6YBy76bsNNTZ82kZQxLKSOMJJqCYRk3VCehJ6kAs+EjsztLzE+8biBEOlE3ozu5piS2ry+IeT2mpOzIVlnguXhJl9bvBVqsgDyOKxu3NoN4+FUnVPNihPDUx/h2H2r5y6UZ2iWYNXEXjzUuHiG9XCUoTn0rTw8afppel0OOAJdA0/VrjzD3dujqhqNF49qAhBkaUr9QUm1CiXGNw/RSEqTmH0btcoNUjNUhOU3TFj5V0bLZZo9ySm3kW0+4Bu7r51IyBSPSCecyCegd0giaWusp2bnsxL8pfCXeWBod2bdcqtZiQCejx2Bsxu9sg4Ln3LHZE+RdKatrMzbSuNQtvtjW18T2ImEr1wNWHoCUzT440JbZcS1DmMBDcpfON6mPN1Dc+WNBHxXGLsdF9KmzImooG/PDk6qgiISY/m1A5NdtONsycH7o+oF2h/rJpk2dl7p7vEDMsqHszKnE/gC1lEB9U2P5Jicse+PhYnOyc7mql3GZOT1azCumVftqztHRuQQYYNyuOadruoU9STVOsgkeEx3aq5N8xTbbckc8SwPJ4Nq+nZML1Vs0O3Qu6NVkfI7iNNeYGap3Vz6ZY1Fdkwp0QrC3qfcPT+PiDs1BIIIURKdkEnK7VCM/ttGo8dBGc/tQTW4JRkrjStZg1QVY8N+50dHYbTXLKFQpWQkt3ameA0JQAHtujeCHs2qb4Nvu6mJG0udCPSX9zAXKpcSOc8HizVBlarTHgswfnCsUKiiMKIFlgupzEeNZHv0Mc5H5euiEJceYRhMRIrU6OdupYoiVjGWZYV23RVyw7yDK81MF+KMiUVfYpJ5bOcly89duYKaGzCjTxcutTErjIKRskOoWhz/MVCAZw/7VYAH3BauY3zoK98sC0xWuH62BwfdjNTNa3Yf9h8FjEs4klPNnXnOvot1xR1D/VLVEuze/O4jdYuzS6bTULkmCfAoI/dMBd0SyC7alZ0M3XLGpLstCJEzDdKDjuOEYiQAjL7SNw1yoW1XN7oG588sEB4U5Kt4j7CGWEBHjlIcsIWXgb+7JJb4QNzxG73SWupSnCfrRMhYkKSCAy1y94L1dg2xw6crSY366LddoEmm9niTHVnfxDtQe7t4jwS/awsccCcYqisTT8gClFWkFhdmxtYHciK2kNPP3Vxrhgh2QlF4wWVQ/6HJn6vxPvCRuPaCnZ7VD3EMFlv484dl+v48K4QfzmdgKeDPM8z49E4eumRgcfYYIQdUMdODi707X7ktx7s13SjPxMQi8BTxLPl9Mmbz+v5rNaHfvmrmKmEjHiu/M2+O4/xA4N7ykk35aIKb/0YXXcLEGMtUivUY5t5XZLEaMVpEkUc081Dt6yJ4IY5IVq9QPP2wIY5SFKJbeAHjsPEBOmLpEmb/BtyOLTv8OIRwoBBuSVKLKFzu9QKxP3kqo10SAKUOyDJX1ZCo4fg0XscmCHTdzdLOB3vAXq7jG0bbtto23aqG+n0VohiF0FtuAfrCjyAnAgkOEL3wJpS4Gk2VeRQJMR6eA5D7FxJzMaibKmQrxbzLHtG7pAEJCo+Nm3EgggxKcQIiKYTkcITWhRibSxmtQFN+CuEfpduIWakl0cyQqKgcYFrU39/YE4e7i7HVTr4idGl335wKp/SQwAXkRCN+FilsGiyiZm2cNjnS6dY/pWZmYv942wxmIbfZCK7z0v/JnLRNEJkP5QKzvcP8f9BdVJj9C5nP5Q5oluGzwEinbdMqmpFHfwWFa0y0L0Z29huuar+6O+crC3VLZiudWyFI7cFM7B+c+gT3/kMWbEoF2u6RLsRQkncNsX1myPDb3bbKRNKXKMpF3hpRMabQx/4zv0/pxPCVMQ1SRHhVrbHIBktRWTNsLimhAPg3+FTduQIUfNneiNa8BK5gn9SkxoVKNoTkINKGLmwW5Te2abDO6s/u2jnXMpRELtU02xKlr+NaPpInmQZU0278kOKqfW7fdkkZwLqSvLCTtWmABFUcBOiqU5KZrvLIYqZSDTsZYtzopgjWxawWuIJozADKAxjvioHCzWR+a+IliNdYUWR2zkXXJZCwVAw9zfRoafvm1dCV5MsZvv9AbXLz8+8+ivhjKDxnOgRNIYhm3UaUxOu66xXVVOCh2aENq83Em4DlMcTTI/u3LjzIfr38dfBl03TfZRZ0S2e3zADVXNKtwaJUOzTTfUWSIOVlzasXKFaNetEKcdid9O+nh/+3XY3rbZudeZvm+3rTqusZrfKanarrEaSv2H7RiXjzeG//MH/a2f4I/Zk1B5j9nNmp7iW62yH+wIZb46MvNmwH+2wJ4tkbMHHv7M51oyQtj4z1mzBg2S2SPpgO4G7obAaica09lyho/iznVq8/Yj9wNuXbREgbRTmVNMck1qZwUnbEU9BAN4CMbQxOCbBdZgYdYj57Mxyr50WIqUD0mtFOgMdR0tvopvt7JyzL/rOjRTLZUNhLiQGMA6HVof5VFyVWZ8ghDg1lgOjjUqJAselG0ebnfnnllAbklRbDto5JIJEdARzv7FCCvRtWT7EMy7PJxJPvvjMfUxlaHqkh+FZlsNs6s73EfuHP64Zpx6YE3wvuPu8XhVkweMhUhEOp/wM4yfYXH7rNnrBzVLvpU5T9iZ38xGjNbAzzLtu728/C2birB3j3RizfaV5qGrXxs8+AfS60jRz0pc9CaM+s/+oXS4dIw4SIr+jgBMT1frYqQe3cSJTs3eOb1peG6U4WfvNrjQCnfP1mo1snDxGaLuiSt8lpbPjjdTTNzevksT+9mY4J/jOR/hOtaIXSkoaITVZ04OyV1J8XG5valQQGk/NyRqH+VC7GhdUiROxEMBMbqYkBrRwJk3AiaruGmkERfzgmJLq8kQH3EykTS0oifG9yM363AwTZTkeuJhMulxaWzocFkkoferZ2ecfWporGAh5CvreNKD1Rq8sz35q4g9GdzFTu0OpDO8PKRGOYf0sj4GrSO6pMKQHYzDv98findnsUC7G4LGXugVZi3G+HAMxmRaKT32sUBAOFlKZiKaznBCK8iLtZSKR3kQpa8eghbfu0H/n9lO9VIfTX2tKul0pgLAzHSPtnHaFIE0aTjj9ZxqVnQ6vkAPaXbaB+5nKVweNwF6F0pHi8Dzf6HW7IaJGkai40CeQQjDvYQRO4UDUA2I8UzCE/1sWgn60O7U0c233tZc/ql2icczPpWsDhb+5c3NhIgsetY/loqwc5TUe88LUHPwdsbd+4vpb1zz1fvpVqnWdYLrqkmG03ATJyQnDsDe+P3XLugIY7rFq68pTBOxdueYtmVdE6174C+cAUsxWzTnRasJdJ9x1VM0RYs6yir1D3jZnH/nxLzs+bhZ83OS6dYK/bZ5avzn8zR/ccMzcrGjuhelTrHWCs5dGPvrjlvNKB7zSvm4NxG+bQ/DKD3542fZwHeJaoQNMFmnvn56dBH82O8nC1V5i2qQfpWzTtm97YZ+zwP3w+/bCDLld27+9vJ/ct2B2u6jQgk+3W/+E9oGhyb0nThU6pvfN7J/9GTO3tUxWf8bMXXkK1PaJpnmv1HIL9xMgNSe3Dtx3llyB91MPN5tW5wgISaLYJFEJCakt93UAWT41U26OHzq/3Z8KMgMa2eMZZlW7aWXL4pH6G7hGFzjGzHbLw2Ynkh1OC+6ft1zLFzrprcMiCB4OKaHtLHA2+mjDy6guBbHRSCFdLpTFFX86095fSvO+WizmwyEWpJEhsaI3FlLbyyrZECiJtLvGqHtzyI1Flvcg7IZgHLGaoubKYRZxrCjiBuKyuYbG+jjRR8uogtBQRqHnX6MrEVcxEF5BbCpS0Nr8HJt4KpfNpCMusbd69QB/sbRS26WxBTUp8UgojDeD4VJt6N6jJR/bAWCvp6SGxfnyTGWoV2GLobYAPJSb6AuGSg14qItjO7E/Us+rhcKx3dWgdFRn3GV0b3OfYeuz+NZP0QOuWeoI9R1nD4xZMlpBklJyG9ag39letHjL2itttPYu2l1Ls6AEe0WrSppeQOzTVbPP7q1X7A1Itth/8Mf3ODKc7iab3qze4G2zvkOG0+JaMp0AQUzZYxsZWzDucMHJJgAl6o1Ebz2Zaktv12md+x2CtncRBG2O1ALW3D4PyQBaWZLFDmaadlMNAe+D8xABR335RXv7k2R63ylZaKcfBVD1bwqWLTnE/75DbqJbcsNExtvSHdGw31/TYojDitcWl8A7hAHExZEGxEXBw7okl/5OcWDjE5GYyGGxtzKA8OgE/0DXSm139GdYfKTs22Qxm1iZqWtl8YjuYbZZDDz2UgituMapGeok1dpDbF3BtdHyE1OnkW31dqLV3Fe10hAxpUWrB5zwkOOEg1U73UrMOWkT7pFafr5BdHhIbkXUURu+aAWS5Ar3Dd3NvtrbyutbnYN2ijuTZd5Wl6k3dvYN1ncUGBGpE3C0C0fHLwz06wBIijoLPo4XowlDlKYrqyk/Hxn3C0q4PVLSeXKOC08jHx8V6y527voslnv1EaPsQ99nuGDGOP/Ss/l2kiyM+hIdqqhGEwzbd+7JaqmYnRRdHj5UOH48llBCqYbGQbjFhXc/qiWPf+Z0ANwQEy3PNz1AQ+3Oe9Afuoaoo6T+QiKdG902fmm5iM4c1km6RnFtWHyYlFuWbX84HbJ3OgwCAeMAeCOxatVuFRucBtASCOdLorNJL38Y5BVNg0Uc65bI3v4BQmFFMsXtQ3PsZi7bc4Kskh32ylb0vr3PmmzXC9fJTj542u7ry2Qz21YuibYdLIGWyYnpjOCXedEPYricRfRLJcQEYs8sslo2rPh8pYgoMFrcSGjlbCwkMKwLIVdcQ/S+sd1lnaXbsRj0sMW0m9HSaf0j0fjy+7/4X77RUAUAl0ZE5RIGegOzbbn+vY/+fQX7PJhmUgrZWCKIQpdhjBrpdCFYCBVrroXFV1/7rWTsw91MsMSLGqYl8SLQO3DnafSiaz/E+Bc39+a1c04G0fQZN9RN7HjYKdaDj046/ZX9EN8vko5KUtzONc1+6cu8mmc7d+13SN0OlsA6sN8+0OQNiKGTnQYpIZisbOmV5nbxwDEGJNfYQ2gGqFFATpsOqm8dkmD3UYIJQJ4dGa884xgMgKCCC3gS9vQMXTx52udDQjoWJd1zbF9EHV86ILFIK3SE9JISmBBrZGMjL6yQbchBOaRkykI2l9VYktHlcqXJwqU/LxQuPvqp5YMg5mI2HGDS6clP3d8setluPcEgcamg/3H6iYoYYPwyq99ZuXjtSa/34XQ0Kk/AzwzFx8vtdSGw9xj2xyUUKAF905QH6HuEKlPvc/o/WgqxBxliD7qdIkJow9Idez7s/l6vA1ewaDIQlWVum/l1uFlzY2BbC8Yd3W83cL7TzWy2UN29djLiGVJviKd4R8ItzrtF9GAvOe1J3epvU6tJFwl2tko1DiJfapzBQTklKyEcbKZS3ZoWlLFQSEVwLFXIrc4VxQE/hDBNP+d/7+v0L2A+LYo8M8dqI+GI4KUxE4qVVMzygnih2fv1Xy8XRuwYhfKiAdcCNUS9QrWahBbEAVpJshl/2C6cFqMbrSJvn1NS8ZasEYcsX+v5wVcdsnCiya5bpcJtU1+/+TsHvvNjG2uVSzo4t24ytuB6h3PrblJfYrmSXt72azvvHEolm6RnO7Z1XAyRt61NNnTDPumIYGandmg3WTjn6+zc4V+QkU8YykY5RvQwXm5xoHmlHOJElgkHmWRbIIBQgBd8HGJxUGTcOf3ebE8q4ucSfI5jOG249BCaaXZ3Gt0Dl+JagldSCSWImIibplmvorarqRzXHM4k4rNjCyWJdYNsUpt1Kta1iH9CHaaGKbNPt5gBw7CKHiBhn03CDMlYL9p1mT3ahnUE9HUPRTY2hok7KRLvHY7YfzeoEfzpzGYTuZ0f2UqTDNMDoH/wl4YIce5u/sxmdDqzeSLFplp6nOxc3t4+mo4uTc60C6rdI4xJ43F5voEBdCE0nRVSLJPlOEZrnR0i53IxKcHfPWbofv48B9pdaJTiLh+jKGEm4mX5wng8kbqZXnz5yl9+jpXJtk+y5xnoiZqSiDgfj/CZrBBgBiOlPgYlZCRybLTMce2Cj2Zkzjf3W6/8ZTjc1Z0KRxVGwKBFAUU56tAQUyz6imuZ2ked2+yfU/wbrTpxPFWnGm3bwjYIVGZ0c/qWJQc3WvK03ablA4Ami9Yw0LUL/M5++D4sE6JOgNJ1SaYGVFaqoIddw8SDm6zTc0qqTqScb4BZE1whBAJVdU6B2PI5O1sr7C02W4lj+8wictnLcPfvEvoS4K15huf4C3SZpnt2F+f3+NRYMU7TORQv5OOYlaI6zwh1t/tkL8+x2Fcsz5ZYz6l8mt64SE8/mYgDstVyJT2dRHd+vDCBlhqttXC5lEL92NXcd+lT7xpRxUKizGNWoaeVBICooFHMomrpkGLTLwe49t2uRWqa+gWqZdhZ4X266bllxcEpx0WrgxCFZIWr26kn7w+/52izSzTd61ab77aZXF9LtSVBfWHcaeFc7i0QSu+4tvFo3AOeJ9M0OySrp2bHv/W8c8hK72a3PRHhzRb8rRMYtmtULnuZEDu8vY48jgJUeIbJihINcTnDYIy5VDTCMENaCAIHOXh9VWQxcvMgsQLD+zxMKdcpihUWCcqUzj993pgDD9MbVp98+OFxj3uwt69D4CWyKZkhlJ7qGw0qi6/1NebeLBVUcEZtui6JYgiglRAQ9EklWO0eff/uwKtD6TBD9h0B7MEp1xR1L81v1qtWDKsOItpBTKevk0TQq7YficU21tgY6eDxGFYQXHVMtPJA/W6gfrdIbKk1BV77xGZ19vXv/L0TOnggdHCvYytIDs6IrJtucXM7bkRcUyJBkga0x7A9qmR8x9ZcWCfGNgzOnqT0qFGvR424GZK/uxvHvkGm7s7YPGQJ3F1pWnl4v5U5SPY/md1Sy6jP2YC3fpAA3mTCDic6pC9hNpYZm9qBfukRurdONmWEGWW7hWN7C5TRY2wnmbbP9WrsOPuO7P3N2Jmn7R0Yon9QPMTwJU0OxoFrDO8W0Lgo8PlSxsfjmbl2eibP1wyFUbx+US2eStb8JKUfLEQ00tc/cc/Qk5cWMrkS6OVwNLJbF/n6aqLjyPPFNxOLmuhnOTWjMuVgRdHZbxh9giy4Emmel7/x7dleZjZWOPjMU6sZ0cMpL80/fxYVUwURyXIqrsezC59+eulSThAmtIRYl4M5LDr2KwMxx1dcK1Q/XNHmAPGiN2SJKuOSjYdlkvLERm/TyRDVnb63rYqtHTYQKEsy38SQO3GEANrhbPwjj5Xk6PQKRqAEshxJdUdZbnZlFKKsSDadFsAs5JY/ZDxVSIE1ZtVi+sxHKsXFUlrxXSxnLl1j8Nj42OhgSWfguVDq9x8bQb5wKMxhDgn9heNfOfNaQo0wUlhiGZn2jA8972PTkiJT9Fuv3XkJXYZ4eZV+nGqFiF0eA1wqEtBQIAZ5n0HOhuC8Gy3uKDHGHCLO7oRuaresQYihB+2q4WAJUMTJTYm/+d2IY3eSdj9Cb4e9x2Ak8qPdznRANKfWrUMwfXD95tBz3znrTO8RrcAUS5YOZkFDDqy74ck1MTBFyiFPfmfWDrST4loqmSUhtj2myWj2ims9vWW4rdqjQcabw+f/+Vv2K3vEtYk98CFrk2Rswes7gEtb00w3W/AGualCQNhswcM7HpgENZMD6Wy5Z8/UgYOHwDRWjd6JyZ+7ozkg/jueczRyUCP4wG1LCzljLHy3/2yEFlyZPMnVAoKs1bdaqzYVyeVhtkptJO50wk7SGOTon+tt20SXmZCoJblioNSeiBoTLIuzfDacDtYWdMQIPjGajKZ7Ci4UY5HMoCAfAuHiWBft8yckqbckcn2CcLRS9DC4pqeGKqdqtXL5UpE/nEzV5HYm4FUulXVEjirD7PBKIzuzW+/Dp2cHisO4TdL4SogzCnMG9hnNMstmI0neG8oWE99dWPlIhxiWpb+787E3H1ophALF54pxDnQsRTHg43ZR+6lDm/uMdxtWBUL7Lt2oVqumoFtRcoLsLIFaN/o1ygPaR3Yc91N2ry9lVSZJ5DkE5k2Q1rxMsUEsWlS2dyI1Ns+NsilM287dKTuRvQxO2x/pxAjZ9N3iBkm7exTBkwVUSiKhVEyh22U+yGAue33qIp1l2VSzqjNM4mDTJ8qKLNH4Vd4siM3lkDLW4FKhMAbQ6iXH98RzRkLQ5mfP1DnlaeyqdCbo4YiY9XGYFaO7yiJGAb8MKhsQMsl2jCe+yP8xBLEumgWXhhE/ISPBK3C8lxwbwQZFZ68JOQh1BeySi6pRLYrAKVogdNl5TZvYppjLptjmN8tNl0D4KlJaIh/w09fsj6ISb/0YP+mmgAPvod5P/Seq9W5iCuxNY03dnDOsDs+G2Vm13N4NU6+a+0mmzE2Y8rRuHr5lHqlaD4Q3zAfErYzxkPqP/8PR7yXRXF63LsRvm+fXbw6z33POIVgS144uLYNewrgTkSyfv7B0dBOR3L22deeBw5J8I15WFqt2CNx8N/B89AzwfD/p/DY75FbxxCnn6BXSnIiBiw5vBUSOXMFOaSQM00YPmcUFZ58RafCwAY19oGuGyeYzeYocMre5cTRMjhqxgfiOGmYJcLycJ/hHoFNIKZ/aRfpAThiMMjowmzY40DmBHOrEBlPt5Xo8YSRk7Grdk+oMsKSoieITxz++VJT5GM4xjKzPZwd5QdEaj8isyjAsi1rAek4PyqXZoKD77WOjMAqVeXKFPWRDC98rBwvGt2R9cRr+R5/h0+U04otOx4jGKSmjv5yVQwzjZ+V0KYRzhdLyRFOQeJnxkT52jkuVMyH8lefOTfCkYyQtshO1sRfNZ5GbRf7/uTERjp78Zq32WAp+4QU2JAd4sBIzn/x0qc7xgkeIMkw0jGuufxwZjsVGR6Kkjg4y9Lo7Qs1Rj1HLlFnXzf2GlQO5KVTNKVtgSM/p43ZTw/0xe8chqUCcAmx/lWwzPAT8jXXqCtmXZN4rWccfIj09srV6hqCV3BQoe/7ncJcERK4dzK2C6v4bzBVoUGeayjtlHJdTjHTs59YBMqRUFgWGnhzDYn1gtfcuQ1mAqZxa0sfSiWoiiNEmN8EIYpTYs4OdQWDnwNvZ+W2vB9vH0aQHsg1xsJljsRoVFxsKFgTeT06XmW0UKuhTQkpPIb505dyVLBYSnJo0+vR0Sg6IakfZn9aLKxPNgCDYHERenk2Xcgp+44Nn9vIN4GBKYCcaIy+bz2IXYhB3JzGvOuWkPcdfmDqTfZxny6nGQOGv73zlxV9PplROVvlEWOGniP5n3/qJ+/vuGPU09Tr1FTpNtX6D6P8iGS4TI3BSN1cNK8NvWO1DJDP4Vd18DLgYtbl4HHR+pWrNRTZMiZSSboSdrGtYJ3WlZ2D1uar1anhj7UOvPsOWrJfAUrwqml0gEjcqzpMV/UaXc9VZhTXrCyAPNzeTNsHv3e8g6ePdbnN1XbD2d5GjqajWvv3HiZ2A76tbNuL+x0jj9zWQm+NS69QFcjSDGZZb7Utkq7j1zBw53XvI6VL6kLQ2MvnsLpJo73oV3vrlz8GzX5DWPv7JX3nNNjAnf0OSv0wvLJ2+dO39r5A3MtIaOzH9gnMC3dYho7LdQ+5IUb6Wt9vzNs8vUsmaI6JgfjYPHSXnGtXDnpCzB70HBM6JQeHNzV0TTvL4bbN2tRbgwTvMksvurXiHVXK63ohdymcRjpb3pHPXzNXFXBFjlRXZIGK4cinAcapSK5xsXfn8pf1llgGEAN6cYYN8uchx0ZBROHNYllxYILX3hWeGWD8r8lphonxOQ2zEBzh7aiA6f78QlRETYARBK+zRz0ewF5Z8yhgApwLEdSCgrv9O7FiPHCztBzvG2x5t24zBT8VIqATlgvFDzIazSnlaAmuGrnKskmlkRYEeON/Ii/tKzYriZYRoKpZWvRzLRZPzp1iO1lZHdheG9JLoFlFQDsmMmoa11NwqF8IC5xVTShDjKe4HqcUns8VsJS0rKcyX+5Zrn/9rci6QcXqeedtSd2O59vFvwW8mkZTKHXEiEj39rUbf1SQ4/QXQFPi0mU99tkzMn5fXHPOHA0I6EWH42OiQppFeotxbP3b/gztB/SL1BXoPRc6qOLFTbb5onyf0QNR2lcdAwO+pWgcctTmwU20OiNazoAKfhZiz67PPsqWfqyefFa2PwkOfAPv5m5u68mc/+B1HV45B1HnvujWbuW3OrG/rkNs80W0du5eFJcHa579tzc6w9vqdH7a2jlrbPzsDbhnGHW75S/tmjt27VTql4e7eE1t3jmsmu/vZ94ACHZNap+9/aEvtjhB/bD17AIIkYegQma1IN0Z2TT73S0TtPtsFFr3UND8qWS9/HtY+IVuvvEpMfeYUvACqZjvz/380jTR5v02l/teqRo4VxpubcX6el8j972qXYnQQ7UI48Hbt2lM+v6ld2Jeq7NCvgBDb0i/Oe1e/4DWM7fNi/XI2XByd5webCRqHNQEci0sI8DyoTXauVqj++1VqbOJ/S6XStVc+8e9RqqG5aDaTWpy9tvvaRz6mPc4xFccj3Xzp86mU3doAHkkgW9D+P3SUjS8AAHjaY2BkYGAAYqZFMhPi+W2+MshzMIDA9ZfT0kH03bttx/5t+VfDpshaBeRyMDCBRAFKogy4AAAAeNpjYGRgYO37ZwMkq/5t+ZPDpsgAFEEBvgCM3gXdAAB42kWPr0uDURSGn3vu/YIoKpaJTvzFmCBiGGLwT5BVMYiMj+37ilEWhlgMpmWDmGbR4oLIinVBDIJrC0OWxCD7B9R3bOCBh/c9573nwgmMyu7HegeuBeGDNNSJwyZJuBA1SlanFK7lT0isT+xjEt+g7DuUQ0++pSyQ2kB6rv1DZV0S90XFv2qno3lbbMvvkPo2FXti0l7YsCrT1mTKzsjaLgXNsUvybouMO/15tBvmXJG877Ogt7Niwt5YtJgZ982q6yov6I8qwQ7I+QHeGqzZ3u+tXbE8vMmeIar9q3sXxzr6c8yD+nlpcaTDzB+JHkshSyZaYT3aJ/cHqyw6WAAAeNpjYEAGjDZMZkx3mPNY+Vg/sF3g4OI4wsXFtY47hucDnxrfC/57AhcEtwl1CBeJOInsEH0n1iIuJX5OoklSRnKFVIE0l/QNmQWyKXI58mUKcQqHlNyULZRvqUxSdVI9oVagLqS+SSNJs0jznraK9j688Jkuh+4z/S5DAwAB1i9XAAAAAAEAAABNALkAAwAAAAAAAgABAAIAFgAAAQAByAAAAAB42q2RvUoDURCFv+vGgEKCNhZWW1uETTYB0Taki4WC1v5s4pKQ6GYVbHwCKytrn0bNEwR8mJy7OwqxEUGWe/lm5szMuSxQ45UAV9nAEYLxGnVFJQcc0DCuEHFtvE6XF+OqFJ/GW4Ru03ibutszfmPH7Ru/E7kj4w9pHo3nVN1TyYuAXfdMj3PumXJHRkpOwowhYx64kZMZx8oMVR1Ll9GUj0hfi8M/dv6mDn/oTxVlyqfqmai6utnnclUTqQeq9tUzKjpCKRrEOp1/driqPlN0od2lky9/fXPbVfWyyMaFo1j/uEVbd0e3z/iXNLmSbqB5fmquk6i/9z3zhFtVUm3L/EuXFn9Z8AB42m3Nt07EUBSE4X+8sEvO6QHI0b62NxAKw2JyzqklSAjRUPDwSHi5p2SaT5pihoC//AQ881+OQIFKalM7JSaZYpoZZpljngUWWWKZFUIiHDEJKVVq1GmwyhrrbNBkm5wddtljnwMOi81jTjjljHMuuOSKa2645Y57HnjkSWVV1KFOdalbPepVn/o1oEENaVgjGtWYxjVRfnn//nyNPK7y9fEWhmFmNr1Z2NIVhRmZzozNxEzNqlkz62bDzLwu96beNN9qmW/6n0JnxmbyC+ZKQfUAAHjaRc49bsJAEIZhLwvG/MVgFvMXErtlEafASBFNhIRkS0jcghaKpEgR2hwj41SI++Qc8AGTSTfPK81ojur8TurTWZD3muZKHbJ87to0pma2ILPEsM9G5Np16pCOEtJ2RpUo+dFfBXuDB1ReGGXAmzJcoBwzSoD7zSgCJcOoXq/9MmpA9YNRB2orRgOoTxgPQCO4Q5HPf7VQ/U3B5nq+BZtgKxIGUXJy/N3ZkdK+lkDp/2Kw0n4TdkCTCEOwMxF2wXAs7IHdZ2Ef7D0JB2B/JByCg8c/ZmTsBdB4bnk=", hn = `<?xml version="1.0" encoding="iso-8859-1"?>
|
|
6554
6553
|
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
@@ -7811,42 +7810,42 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
7811
7810
|
</g>
|
|
7812
7811
|
</svg>
|
|
7813
7812
|
|
|
7814
|
-
`, v = (
|
|
7813
|
+
`, v = (g) => ZA("http://www.w3.org/2000/svg", g), mt = (g, e) => {
|
|
7815
7814
|
const t = v("rect");
|
|
7816
|
-
return t.setAttribute("height", `${
|
|
7815
|
+
return t.setAttribute("height", `${g}`), t.setAttribute("width", `${e}`), t;
|
|
7817
7816
|
}, En = () => {
|
|
7818
|
-
const
|
|
7819
|
-
return
|
|
7820
|
-
}, un = (
|
|
7817
|
+
const g = v("svg");
|
|
7818
|
+
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;
|
|
7819
|
+
}, un = (g) => {
|
|
7821
7820
|
const e = v("use");
|
|
7822
|
-
return e.setAttribute("xlink:href",
|
|
7821
|
+
return e.setAttribute("xlink:href", g), e.setAttribute("href", g), e;
|
|
7823
7822
|
};
|
|
7824
|
-
function pA(
|
|
7825
|
-
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(
|
|
7823
|
+
function pA(g) {
|
|
7824
|
+
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
|
|
7826
7825
|
return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
|
|
7827
7826
|
}
|
|
7828
|
-
const
|
|
7827
|
+
const Qn = (g, e, t) => {
|
|
7829
7828
|
const A = v("g");
|
|
7830
|
-
|
|
7829
|
+
g.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
|
|
7831
7830
|
};
|
|
7832
|
-
function DA(
|
|
7831
|
+
function DA(g, e, t) {
|
|
7833
7832
|
const A = J();
|
|
7834
|
-
|
|
7833
|
+
Qn(e, t, `bgdef-${A}`), g.appendChild(un(`#bgdef-${A}`));
|
|
7835
7834
|
}
|
|
7836
|
-
const IA = (
|
|
7837
|
-
const a =
|
|
7835
|
+
const IA = (g, e, t, A) => {
|
|
7836
|
+
const a = Ie("filter");
|
|
7838
7837
|
a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
7839
|
-
const n =
|
|
7840
|
-
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${
|
|
7841
|
-
const i =
|
|
7838
|
+
const n = Ie("feOffset");
|
|
7839
|
+
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${g}`), n.setAttribute("dy", `${e}`);
|
|
7840
|
+
const i = Ie("feGaussianBlur");
|
|
7842
7841
|
a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
|
|
7843
|
-
const s =
|
|
7842
|
+
const s = Ie("feBlend");
|
|
7844
7843
|
return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
|
|
7845
|
-
}, fA = (
|
|
7846
|
-
let e =
|
|
7844
|
+
}, fA = (g) => {
|
|
7845
|
+
let e = g;
|
|
7847
7846
|
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
7847
|
};
|
|
7849
|
-
function pt(
|
|
7848
|
+
function pt(g, e, t, A, a, n) {
|
|
7850
7849
|
const i = a || 1, s = n || 1, o = {
|
|
7851
7850
|
x: e[0],
|
|
7852
7851
|
y: e[1],
|
|
@@ -7855,11 +7854,11 @@ function pt(l, e, t, A, a, n) {
|
|
|
7855
7854
|
};
|
|
7856
7855
|
if (o.width <= 0)
|
|
7857
7856
|
return;
|
|
7858
|
-
const r =
|
|
7859
|
-
|
|
7857
|
+
const r = mn(o.height, o.width, t * i, A * s), c = (A - r * o.width) / 2 - r * o.x, B = (t - r * o.height) / 2 - r * o.y;
|
|
7858
|
+
g.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
|
|
7860
7859
|
}
|
|
7861
|
-
function
|
|
7862
|
-
const a = t /
|
|
7860
|
+
function mn(g, e, t, A) {
|
|
7861
|
+
const a = t / g, n = A / e;
|
|
7863
7862
|
return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
|
|
7864
7863
|
}
|
|
7865
7864
|
const Gt = {
|
|
@@ -7896,18 +7895,18 @@ class Dt {
|
|
|
7896
7895
|
o && (i.push(s), t = s);
|
|
7897
7896
|
for (const c of r) {
|
|
7898
7897
|
const B = n[c];
|
|
7899
|
-
let
|
|
7898
|
+
let l;
|
|
7900
7899
|
switch (typeof B) {
|
|
7901
7900
|
case "boolean":
|
|
7902
|
-
|
|
7901
|
+
l = B | 0;
|
|
7903
7902
|
break;
|
|
7904
7903
|
case "number":
|
|
7905
|
-
|
|
7904
|
+
l = (B * 100 | 0) / 100;
|
|
7906
7905
|
break;
|
|
7907
7906
|
default:
|
|
7908
7907
|
throw new he("Failed to encode path.");
|
|
7909
7908
|
}
|
|
7910
|
-
o || i.push(" "), i.push(
|
|
7909
|
+
o || i.push(" "), i.push(l), o = !1;
|
|
7911
7910
|
}
|
|
7912
7911
|
return i.join("");
|
|
7913
7912
|
};
|
|
@@ -7929,8 +7928,8 @@ class Dt {
|
|
|
7929
7928
|
);
|
|
7930
7929
|
for (let c = 0; c < s.length / r.length; c++) {
|
|
7931
7930
|
const B = { type: i, relative: o };
|
|
7932
|
-
for (let
|
|
7933
|
-
B[r[
|
|
7931
|
+
for (let l = 0; l < r.length; l++)
|
|
7932
|
+
B[r[l]] = s[c * r.length + l];
|
|
7934
7933
|
a.push(B);
|
|
7935
7934
|
}
|
|
7936
7935
|
} else
|
|
@@ -7972,7 +7971,7 @@ class Dt {
|
|
|
7972
7971
|
}
|
|
7973
7972
|
}
|
|
7974
7973
|
}
|
|
7975
|
-
class pn extends
|
|
7974
|
+
class pn extends Qt {
|
|
7976
7975
|
constructor() {
|
|
7977
7976
|
super(...arguments), this.moduleName = "Favourites";
|
|
7978
7977
|
}
|
|
@@ -7988,8 +7987,8 @@ class pn extends mt {
|
|
|
7988
7987
|
}
|
|
7989
7988
|
brandSvg(e, t) {
|
|
7990
7989
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
7991
|
-
const p = v("g"),
|
|
7992
|
-
p.appendChild(
|
|
7990
|
+
const p = v("g"), Q = v("defs");
|
|
7991
|
+
p.appendChild(Q), Q.appendChild(IA(3, 7, 4, "shadow"));
|
|
7993
7992
|
const I = v("g");
|
|
7994
7993
|
p.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
7995
7994
|
const F = v("g");
|
|
@@ -8003,20 +8002,20 @@ class pn extends mt {
|
|
|
8003
8002
|
return "";
|
|
8004
8003
|
const B = v("defs");
|
|
8005
8004
|
o.appendChild(B), DA(o, B, t);
|
|
8006
|
-
const
|
|
8005
|
+
const l = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
|
|
8007
8006
|
o.appendChild(h), h.setAttribute("transform", `translate(${C} ${w}) rotate(-21)`);
|
|
8008
|
-
const u =
|
|
8007
|
+
const u = mt(l, d);
|
|
8009
8008
|
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
8010
8009
|
const E = v("g");
|
|
8011
8010
|
h.appendChild(E);
|
|
8012
8011
|
const D = s();
|
|
8013
8012
|
E.appendChild(D);
|
|
8014
|
-
const
|
|
8015
|
-
return pt(E,
|
|
8013
|
+
const m = wt(i);
|
|
8014
|
+
return pt(E, m, l, d), fA(o.outerHTML);
|
|
8016
8015
|
}
|
|
8017
8016
|
}
|
|
8018
8017
|
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
|
|
8018
|
+
class In extends Qt {
|
|
8020
8019
|
constructor(e, t) {
|
|
8021
8020
|
super(), this.moduleName = "Maltesers", this.shortLength = 5, this.indicator = (A) => A ? 1 : 0, this.backgroundSvg = e, this.backgroundShortSvg = t;
|
|
8022
8021
|
}
|
|
@@ -8043,28 +8042,28 @@ class In extends mt {
|
|
|
8043
8042
|
S,
|
|
8044
8043
|
T + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
|
|
8045
8044
|
]), N.transform(([S, T]) => [S - (i - T) * (s - S) / 800, T]), I;
|
|
8046
|
-
}, [c, B,
|
|
8045
|
+
}, [c, B, l] = pA(t);
|
|
8047
8046
|
if (!c)
|
|
8048
8047
|
return "";
|
|
8049
8048
|
const d = v("defs");
|
|
8050
8049
|
c.appendChild(d), DA(c, d, t);
|
|
8051
8050
|
let C, w, h, u;
|
|
8052
|
-
A ? (C = B * 0.25 * (1 + 0.1), w =
|
|
8051
|
+
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
8052
|
const E = v("g");
|
|
8054
8053
|
c.appendChild(E), E.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
|
|
8055
|
-
const D =
|
|
8054
|
+
const D = mt(C, w);
|
|
8056
8055
|
D.setAttribute("opacity", "0"), E.appendChild(D);
|
|
8057
|
-
const
|
|
8058
|
-
E.appendChild(
|
|
8056
|
+
const m = v("g");
|
|
8057
|
+
E.appendChild(m);
|
|
8059
8058
|
const p = r();
|
|
8060
|
-
|
|
8061
|
-
const
|
|
8062
|
-
return pt(
|
|
8059
|
+
m.appendChild(p);
|
|
8060
|
+
const Q = wt(o);
|
|
8061
|
+
return pt(m, Q, C, w), c.outerHTML;
|
|
8063
8062
|
}
|
|
8064
8063
|
// 1 if true, 0 if false.
|
|
8065
8064
|
}
|
|
8066
8065
|
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/7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ABX/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
|
|
8066
|
+
class Fn extends Qt {
|
|
8068
8067
|
constructor() {
|
|
8069
8068
|
super(...arguments), this.moduleName = "Vegemite";
|
|
8070
8069
|
}
|
|
@@ -8078,46 +8077,46 @@ class Fn extends mt {
|
|
|
8078
8077
|
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
8078
|
const D = v("g");
|
|
8080
8079
|
D.classList.add("module-text-group");
|
|
8081
|
-
const
|
|
8082
|
-
D.appendChild(
|
|
8080
|
+
const m = v("defs");
|
|
8081
|
+
D.appendChild(m), m.appendChild(IA(0, 2, 2, "shadow"));
|
|
8083
8082
|
const p = v("path");
|
|
8084
|
-
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"),
|
|
8085
|
-
const
|
|
8086
|
-
|
|
8083
|
+
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), m.appendChild(p);
|
|
8084
|
+
const Q = v("g");
|
|
8085
|
+
Q.classList.add("module-layer0"), D.appendChild(Q), Q.setAttribute("filter", "url(#shadow)"), Q.innerHTML = p.outerHTML;
|
|
8087
8086
|
const I = v("g");
|
|
8088
8087
|
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
8088
|
const F = v("g");
|
|
8090
8089
|
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
8090
|
const y = v("g");
|
|
8092
8091
|
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
|
-
},
|
|
8094
|
-
|
|
8092
|
+
}, l = v("g");
|
|
8093
|
+
l.classList.add("module-root");
|
|
8095
8094
|
const d = v("defs");
|
|
8096
|
-
|
|
8095
|
+
l.appendChild(d);
|
|
8097
8096
|
const C = v("g");
|
|
8098
|
-
C.classList.add("module-bounds"),
|
|
8099
|
-
const w =
|
|
8097
|
+
C.classList.add("module-bounds"), l.appendChild(C);
|
|
8098
|
+
const w = mt(t.height, t.width);
|
|
8100
8099
|
w.setAttribute("opacity", "0"), C.appendChild(w);
|
|
8101
8100
|
const h = v("g");
|
|
8102
|
-
h.classList.add("module-text-enclosure"),
|
|
8101
|
+
h.classList.add("module-text-enclosure"), l.appendChild(h);
|
|
8103
8102
|
const u = B();
|
|
8104
8103
|
h.appendChild(u);
|
|
8105
8104
|
const E = wt(c);
|
|
8106
|
-
return pt(h, E, t.height, t.width, 0.35, 0.65), fA(
|
|
8105
|
+
return pt(h, E, t.height, t.width, 0.35, 0.65), fA(l.outerHTML);
|
|
8107
8106
|
}
|
|
8108
8107
|
}
|
|
8109
|
-
async function FA(
|
|
8110
|
-
if (
|
|
8108
|
+
async function FA(g) {
|
|
8109
|
+
if (g === "Favourites")
|
|
8111
8110
|
return new pn();
|
|
8112
|
-
if (
|
|
8111
|
+
if (g === "Maltesers") {
|
|
8113
8112
|
const e = _("https://assets.spiff.com.au/public/modules/img/MaltesersBackground.svg"), t = _("https://assets.spiff.com.au/public/modules/img/MaltesersBackgroundShort.svg"), A = await Promise.all([e, t]);
|
|
8114
8113
|
return new In(A[0], A[1]);
|
|
8115
8114
|
}
|
|
8116
|
-
if (
|
|
8115
|
+
if (g === "Vegemite")
|
|
8117
8116
|
return new Fn();
|
|
8118
|
-
throw new b(`Failed to resolve Module, Module ${
|
|
8117
|
+
throw new b(`Failed to resolve Module, Module ${g} not found`);
|
|
8119
8118
|
}
|
|
8120
|
-
var
|
|
8119
|
+
var Ve = /* @__PURE__ */ ((g) => (g.Error = "Error", g.Warning = "Warning", g.Info = "Info", g))(Ve || {});
|
|
8121
8120
|
const yn = 1e3;
|
|
8122
8121
|
class bt extends BA {
|
|
8123
8122
|
constructor(e) {
|
|
@@ -8132,16 +8131,16 @@ class bt extends BA {
|
|
|
8132
8131
|
}
|
|
8133
8132
|
}
|
|
8134
8133
|
class Mn {
|
|
8135
|
-
constructor(e, t, A, a, n, i, s, o, r, c, B,
|
|
8134
|
+
constructor(e, t, A, a, n, i, s, o, r, c, B, l, d, C = !1, w, h = !1, u = !1, E = !1) {
|
|
8136
8135
|
this.workflowStatePromiseQueue = new dA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
|
|
8137
8136
|
var p;
|
|
8138
8137
|
if (!this.previewService)
|
|
8139
8138
|
return;
|
|
8140
|
-
const D = this.getCommandContext().getAllLayouts(),
|
|
8141
|
-
if (
|
|
8142
|
-
for (const [,
|
|
8143
|
-
|
|
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 =
|
|
8139
|
+
const D = this.getCommandContext().getAllLayouts(), m = (p = this.getLayoutPreviewService()) == null ? void 0 : p.getAll();
|
|
8140
|
+
if (m)
|
|
8141
|
+
for (const [, Q] of m)
|
|
8142
|
+
Q.render(D);
|
|
8143
|
+
}, 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
8144
|
this.initialized = !0;
|
|
8146
8145
|
}), this.initializationPromise.catch((D) => {
|
|
8147
8146
|
throw console.error(D), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -8378,8 +8377,8 @@ class Mn {
|
|
|
8378
8377
|
throw new b(
|
|
8379
8378
|
"We should always have a model container when injecting a preview!"
|
|
8380
8379
|
);
|
|
8381
|
-
const
|
|
8382
|
-
if (!
|
|
8380
|
+
const l = (B = o.asset) == null ? void 0 : B.fileLink;
|
|
8381
|
+
if (!l) {
|
|
8383
8382
|
console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
|
|
8384
8383
|
return;
|
|
8385
8384
|
}
|
|
@@ -8387,14 +8386,14 @@ class Mn {
|
|
|
8387
8386
|
this.modelContainer.applyModelVariant(
|
|
8388
8387
|
i.stepName,
|
|
8389
8388
|
{
|
|
8390
|
-
model:
|
|
8389
|
+
model: l,
|
|
8391
8390
|
contextService: this.getLayoutPreviewService()
|
|
8392
8391
|
},
|
|
8393
8392
|
d.replaceProductModel || !1
|
|
8394
8393
|
);
|
|
8395
8394
|
} else {
|
|
8396
|
-
const
|
|
8397
|
-
if (!
|
|
8395
|
+
const l = o.material;
|
|
8396
|
+
if (!l) {
|
|
8398
8397
|
console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
|
|
8399
8398
|
return;
|
|
8400
8399
|
}
|
|
@@ -8403,7 +8402,7 @@ class Mn {
|
|
|
8403
8402
|
throw new b(
|
|
8404
8403
|
"We should always have a model container when injecting a preview!"
|
|
8405
8404
|
);
|
|
8406
|
-
this.modelContainer.applyMaterialVariant(C, i.option.id,
|
|
8405
|
+
this.modelContainer.applyMaterialVariant(C, i.option.id, l);
|
|
8407
8406
|
});
|
|
8408
8407
|
}
|
|
8409
8408
|
}), await A.getInitializationPromise(), this.renderLayouts();
|
|
@@ -8475,7 +8474,7 @@ class Mn {
|
|
|
8475
8474
|
const e = this.getCommandContext().getState();
|
|
8476
8475
|
if (!e)
|
|
8477
8476
|
throw new b("Attempted to serialize state before it was initialized.");
|
|
8478
|
-
return { transaction: JSON.stringify(this.dehydrateState(
|
|
8477
|
+
return { transaction: JSON.stringify(this.dehydrateState(ge(e.transaction))) };
|
|
8479
8478
|
}
|
|
8480
8479
|
dehydrateState(e) {
|
|
8481
8480
|
var t;
|
|
@@ -8516,15 +8515,15 @@ class Mn {
|
|
|
8516
8515
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
8517
8516
|
const a = async (r, c, B) => {
|
|
8518
8517
|
if (r.type === M.SilentIllustration) {
|
|
8519
|
-
const
|
|
8520
|
-
return { step: r, results:
|
|
8518
|
+
const l = await new kt(r, c).trigger();
|
|
8519
|
+
return { step: r, results: l };
|
|
8521
8520
|
} else if (r.type === M.ProductOverlay) {
|
|
8522
|
-
const
|
|
8521
|
+
const l = await new kt(
|
|
8523
8522
|
r,
|
|
8524
8523
|
c,
|
|
8525
8524
|
B
|
|
8526
8525
|
).trigger();
|
|
8527
|
-
return { step: r, results:
|
|
8526
|
+
return { step: r, results: l };
|
|
8528
8527
|
}
|
|
8529
8528
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
8530
8529
|
}, n = e.filter(
|
|
@@ -8587,32 +8586,32 @@ class Mn {
|
|
|
8587
8586
|
this.stepSelections = {
|
|
8588
8587
|
...this.stepSelections,
|
|
8589
8588
|
[e]: { selectedVariants: t }
|
|
8590
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
8591
|
-
ae(
|
|
8589
|
+
}, 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) => {
|
|
8590
|
+
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
8591
|
});
|
|
8593
|
-
const i = this.allScenes, s = ce(i, n), o = ce(i, this.stepSelections), r = s.map((
|
|
8594
|
-
(
|
|
8592
|
+
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(
|
|
8593
|
+
(Q) => !r.some((I) => I.stepName === Q.stepName)
|
|
8595
8594
|
);
|
|
8596
|
-
r.forEach((
|
|
8597
|
-
ae(
|
|
8595
|
+
r.forEach((Q) => {
|
|
8596
|
+
ae(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1);
|
|
8598
8597
|
});
|
|
8599
|
-
const
|
|
8598
|
+
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
8600
8599
|
this.stepElements = {
|
|
8601
8600
|
...this.stepElements,
|
|
8602
8601
|
...d,
|
|
8603
8602
|
[e]: A
|
|
8604
|
-
}, this.removeElements(
|
|
8605
|
-
const w = this.workflow.steps.find((
|
|
8603
|
+
}, this.removeElements(l);
|
|
8604
|
+
const w = this.workflow.steps.find((Q) => Q.stepName === e);
|
|
8606
8605
|
if ((w == null ? void 0 : w.type) === M.Frame) {
|
|
8607
|
-
const
|
|
8608
|
-
(p =
|
|
8606
|
+
const Q = this.getStepSpecificServices(e);
|
|
8607
|
+
(p = Q == null ? void 0 : Q.frameService) == null || p.setTargetElements(A.map((I) => I.id));
|
|
8609
8608
|
}
|
|
8610
|
-
const h =
|
|
8609
|
+
const h = l.map((Q) => new ne(Q.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
|
|
8611
8610
|
E.length > 0 && this.commandContext.apply(new k(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
8612
|
-
const D = this.getInvalidModelVariants(),
|
|
8613
|
-
if (
|
|
8614
|
-
const
|
|
8615
|
-
(I) =>
|
|
8611
|
+
const D = this.getInvalidModelVariants(), m = this.modelContainer;
|
|
8612
|
+
if (m) {
|
|
8613
|
+
const Q = D.map(
|
|
8614
|
+
(I) => m.applyModelVariant(
|
|
8616
8615
|
I,
|
|
8617
8616
|
{
|
|
8618
8617
|
contextService: this.getLayoutPreviewService()
|
|
@@ -8620,7 +8619,7 @@ class Mn {
|
|
|
8620
8619
|
!1
|
|
8621
8620
|
)
|
|
8622
8621
|
);
|
|
8623
|
-
await Promise.all(
|
|
8622
|
+
await Promise.all(Q);
|
|
8624
8623
|
}
|
|
8625
8624
|
await this.onSelectionChange(), a && await a();
|
|
8626
8625
|
}
|
|
@@ -8650,7 +8649,7 @@ class Mn {
|
|
|
8650
8649
|
break;
|
|
8651
8650
|
case M.Illustration:
|
|
8652
8651
|
A.push(
|
|
8653
|
-
|
|
8652
|
+
Ne.init(o, this, this.reloadedState)
|
|
8654
8653
|
);
|
|
8655
8654
|
break;
|
|
8656
8655
|
case M.Material:
|
|
@@ -8670,12 +8669,12 @@ class Mn {
|
|
|
8670
8669
|
break;
|
|
8671
8670
|
case M.Picture:
|
|
8672
8671
|
A.push(
|
|
8673
|
-
|
|
8672
|
+
QA.init(o, this, this.reloadedState)
|
|
8674
8673
|
);
|
|
8675
8674
|
break;
|
|
8676
8675
|
case M.Question:
|
|
8677
8676
|
A.push(
|
|
8678
|
-
|
|
8677
|
+
mA.init(o, this, this.reloadedState)
|
|
8679
8678
|
);
|
|
8680
8679
|
break;
|
|
8681
8680
|
case M.Shape:
|
|
@@ -8972,7 +8971,7 @@ class Sn extends X {
|
|
|
8972
8971
|
*/
|
|
8973
8972
|
async selectVariant(e) {
|
|
8974
8973
|
if (!this.getUpdateState() && this.getCurrentVariant() !== e)
|
|
8975
|
-
return
|
|
8974
|
+
return Ne.selectVariant(
|
|
8976
8975
|
this.step,
|
|
8977
8976
|
e.getResource(),
|
|
8978
8977
|
this.manager.getRegionElements(this.step.stepName) || [],
|
|
@@ -8988,7 +8987,7 @@ class Sn extends X {
|
|
|
8988
8987
|
const e = this.manager.getRegionElements(this.step.stepName) || [];
|
|
8989
8988
|
if (e.length !== 0)
|
|
8990
8989
|
try {
|
|
8991
|
-
return
|
|
8990
|
+
return Re(e[0].id, this.manager.getAllLayoutData()).colors;
|
|
8992
8991
|
} catch (t) {
|
|
8993
8992
|
console.error(t);
|
|
8994
8993
|
}
|
|
@@ -8998,7 +8997,7 @@ class Sn extends X {
|
|
|
8998
8997
|
*/
|
|
8999
8998
|
setColor(e, t) {
|
|
9000
8999
|
const A = /* @__PURE__ */ new Map();
|
|
9001
|
-
return A.set(e, t),
|
|
9000
|
+
return A.set(e, t), Ne.changeColors(
|
|
9002
9001
|
this.step,
|
|
9003
9002
|
this.manager.getRegionElements(this.step.stepName),
|
|
9004
9003
|
this.manager,
|
|
@@ -9010,7 +9009,7 @@ class Sn extends X {
|
|
|
9010
9009
|
return this.step.data.colorOption;
|
|
9011
9010
|
}
|
|
9012
9011
|
getAvailableColors() {
|
|
9013
|
-
return this.step.data.colorPickerEnabled ?
|
|
9012
|
+
return this.step.data.colorPickerEnabled ? Ne.availableColors(this.step, this.manager) : Promise.resolve([]);
|
|
9014
9013
|
}
|
|
9015
9014
|
isColorPickerEnabled() {
|
|
9016
9015
|
return this.step.data.colorPickerEnabled ?? !1;
|
|
@@ -9052,7 +9051,7 @@ class xn extends X {
|
|
|
9052
9051
|
* @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
|
|
9053
9052
|
*/
|
|
9054
9053
|
selectVariant(e) {
|
|
9055
|
-
return
|
|
9054
|
+
return QA.selectVariant(
|
|
9056
9055
|
this.step,
|
|
9057
9056
|
e.getResource(),
|
|
9058
9057
|
this.manager,
|
|
@@ -9067,7 +9066,7 @@ class Nn extends X {
|
|
|
9067
9066
|
async selectVariant(e) {
|
|
9068
9067
|
if (!e.getId())
|
|
9069
9068
|
throw new Error("Unable to select variant with a null ID");
|
|
9070
|
-
await
|
|
9069
|
+
await mA.selectVariant(this.step, e.getId(), this.manager);
|
|
9071
9070
|
}
|
|
9072
9071
|
/**
|
|
9073
9072
|
* The way that this step expects to be rendered.
|
|
@@ -9158,7 +9157,7 @@ class Rn extends X {
|
|
|
9158
9157
|
...this.manager.getInformationResults(),
|
|
9159
9158
|
{
|
|
9160
9159
|
message: "An issue has occurred with text",
|
|
9161
|
-
messageType:
|
|
9160
|
+
messageType: Ve.Error,
|
|
9162
9161
|
stepID: this.step.stepName
|
|
9163
9162
|
}
|
|
9164
9163
|
]);
|
|
@@ -9230,38 +9229,24 @@ class Rn extends X {
|
|
|
9230
9229
|
* @param userInput Input from the user.
|
|
9231
9230
|
*/
|
|
9232
9231
|
setText(e) {
|
|
9233
|
-
var
|
|
9232
|
+
var B;
|
|
9234
9233
|
const t = {
|
|
9235
|
-
input: e
|
|
9236
|
-
|
|
9234
|
+
input: e,
|
|
9235
|
+
helperData: {}
|
|
9236
|
+
}, A = j.findLayoutElements(this.manager, this.step), a = j.filterUnsupportedCharacters(e, (B = A[0]) == null ? void 0 : B.fontData);
|
|
9237
9237
|
!!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (t.input = a);
|
|
9238
9238
|
const i = A.length <= 0, s = i ? { inputText: a, text: a } : { inputText: a };
|
|
9239
9239
|
if (this.manager.updateStorage(this.step.stepName, s), this.manager.updateMetadata(this.step.stepName, {
|
|
9240
9240
|
text: a
|
|
9241
9241
|
}), i)
|
|
9242
9242
|
return t;
|
|
9243
|
-
const { command: o,
|
|
9243
|
+
const { command: o, errorData: r, helperData: c } = j.updateInputText(
|
|
9244
9244
|
a,
|
|
9245
9245
|
A,
|
|
9246
9246
|
this.step,
|
|
9247
9247
|
this.manager
|
|
9248
9248
|
);
|
|
9249
|
-
o && this.manager.getCommandDispatcher()(o);
|
|
9250
|
-
const B = this.manager.getInformationResults(), g = (C = r[0]) == null ? void 0 : C.localizationKey;
|
|
9251
|
-
if (g)
|
|
9252
|
-
this.manager.setInformationResults([
|
|
9253
|
-
...B,
|
|
9254
|
-
{
|
|
9255
|
-
message: `${g} - ${this.step.stepTitle}`,
|
|
9256
|
-
messageType: pe.Error,
|
|
9257
|
-
stepID: this.step.stepName
|
|
9258
|
-
}
|
|
9259
|
-
]);
|
|
9260
|
-
else {
|
|
9261
|
-
const w = B.filter((h) => h.stepID !== this.step.stepName);
|
|
9262
|
-
this.manager.setInformationResults(w);
|
|
9263
|
-
}
|
|
9264
|
-
return t.helperText = g || c, t.errorText = g, t;
|
|
9249
|
+
return o && this.manager.getCommandDispatcher()(o), t.helperData = c, t.errorData = r, t;
|
|
9265
9250
|
}
|
|
9266
9251
|
/**
|
|
9267
9252
|
* Gets the text currently applied to the elements of this step.
|
|
@@ -9401,7 +9386,7 @@ class Un extends X {
|
|
|
9401
9386
|
...this.manager.getInformationResults(),
|
|
9402
9387
|
{
|
|
9403
9388
|
message: t,
|
|
9404
|
-
messageType:
|
|
9389
|
+
messageType: Ve.Error,
|
|
9405
9390
|
stepID: this.step.stepName
|
|
9406
9391
|
}
|
|
9407
9392
|
]);
|
|
@@ -9412,7 +9397,7 @@ class Un extends X {
|
|
|
9412
9397
|
});
|
|
9413
9398
|
}
|
|
9414
9399
|
}
|
|
9415
|
-
class
|
|
9400
|
+
class ye {
|
|
9416
9401
|
static get(e, t) {
|
|
9417
9402
|
switch (t.type) {
|
|
9418
9403
|
case M.DigitalContent:
|
|
@@ -9514,40 +9499,40 @@ const MA = f`
|
|
|
9514
9499
|
}
|
|
9515
9500
|
}
|
|
9516
9501
|
`;
|
|
9517
|
-
function
|
|
9518
|
-
const e = JSON.parse(atob(
|
|
9502
|
+
function Te(g) {
|
|
9503
|
+
const e = JSON.parse(atob(g.split(".")[1])).exp;
|
|
9519
9504
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
9520
9505
|
}
|
|
9521
|
-
const Jn = async (
|
|
9506
|
+
const Jn = async (g) => {
|
|
9522
9507
|
var i, s;
|
|
9523
9508
|
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 && !
|
|
9509
|
+
return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
9525
9510
|
mutation: Gn,
|
|
9526
9511
|
errorPolicy: "all",
|
|
9527
9512
|
fetchPolicy: "no-cache",
|
|
9528
9513
|
variables: {
|
|
9529
|
-
name:
|
|
9530
|
-
layouts:
|
|
9531
|
-
workflowId:
|
|
9532
|
-
transactionId:
|
|
9533
|
-
previewImage:
|
|
9534
|
-
useThreeDimPreview:
|
|
9535
|
-
metadata:
|
|
9536
|
-
selectedVariants:
|
|
9514
|
+
name: g.name,
|
|
9515
|
+
layouts: g.layouts,
|
|
9516
|
+
workflowId: g.workflowId,
|
|
9517
|
+
transactionId: g.transactionId,
|
|
9518
|
+
previewImage: g.previewImage,
|
|
9519
|
+
useThreeDimPreview: g.useThreeDimPreview,
|
|
9520
|
+
metadata: g.metadata,
|
|
9521
|
+
selectedVariants: g.selectedVariants
|
|
9537
9522
|
},
|
|
9538
9523
|
context: {
|
|
9539
9524
|
headers: a
|
|
9540
9525
|
}
|
|
9541
9526
|
})).data) == null ? void 0 : s.designCreate;
|
|
9542
|
-
}, Tn = async (
|
|
9527
|
+
}, Tn = async (g) => {
|
|
9543
9528
|
var i, s;
|
|
9544
9529
|
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 && !
|
|
9530
|
+
return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
9546
9531
|
mutation: bn,
|
|
9547
9532
|
errorPolicy: "all",
|
|
9548
9533
|
fetchPolicy: "no-cache",
|
|
9549
9534
|
variables: {
|
|
9550
|
-
inputs:
|
|
9535
|
+
inputs: g.map((o) => ({
|
|
9551
9536
|
name: o.name,
|
|
9552
9537
|
layouts: o.layouts,
|
|
9553
9538
|
workflowId: o.workflowId,
|
|
@@ -9562,17 +9547,17 @@ const Jn = async (l) => {
|
|
|
9562
9547
|
headers: a
|
|
9563
9548
|
}
|
|
9564
9549
|
})).data) == null ? void 0 : s.designCreateMany;
|
|
9565
|
-
}, ct = (
|
|
9550
|
+
}, ct = (g, e, t) => {
|
|
9566
9551
|
const A = (n) => {
|
|
9567
9552
|
const i = {};
|
|
9568
9553
|
if (n.type === "Frame") {
|
|
9569
|
-
const s =
|
|
9554
|
+
const s = g[n.stepName], o = n.data;
|
|
9570
9555
|
if (!s || !s.image || o.hideImageInCart && t)
|
|
9571
9556
|
return i;
|
|
9572
9557
|
i[`${n.stepTitle} image`] = s.image;
|
|
9573
9558
|
}
|
|
9574
9559
|
if (n.type === "Illustration") {
|
|
9575
|
-
const s =
|
|
9560
|
+
const s = g[n.stepName], o = n.data;
|
|
9576
9561
|
if (!s || o.hideColorsInCart && t || !s.colors)
|
|
9577
9562
|
return i;
|
|
9578
9563
|
if (s.colors.length > 0) {
|
|
@@ -9581,13 +9566,13 @@ const Jn = async (l) => {
|
|
|
9581
9566
|
}
|
|
9582
9567
|
}
|
|
9583
9568
|
if (n.type === "Module") {
|
|
9584
|
-
const s =
|
|
9569
|
+
const s = g[n.stepName], o = n.data;
|
|
9585
9570
|
if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && t)
|
|
9586
9571
|
return i;
|
|
9587
9572
|
i[`${n.stepTitle} text`] = s.text;
|
|
9588
9573
|
}
|
|
9589
9574
|
if (n.type === "Text") {
|
|
9590
|
-
const s =
|
|
9575
|
+
const s = g[n.stepName];
|
|
9591
9576
|
if (!s)
|
|
9592
9577
|
return i;
|
|
9593
9578
|
const o = n.data;
|
|
@@ -9598,14 +9583,14 @@ const Jn = async (l) => {
|
|
|
9598
9583
|
return e.steps.forEach((n) => {
|
|
9599
9584
|
Object.assign(a, A(n));
|
|
9600
9585
|
}), a;
|
|
9601
|
-
}, On = (
|
|
9586
|
+
}, On = (g, e, t, A) => {
|
|
9602
9587
|
const a = {};
|
|
9603
9588
|
let n = {};
|
|
9604
9589
|
t ? n = ct(t, e, !1) : A && (n = A);
|
|
9605
9590
|
const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
|
|
9606
9591
|
for (const o of s) {
|
|
9607
|
-
if (Object.keys(
|
|
9608
|
-
const r =
|
|
9592
|
+
if (Object.keys(g).includes(o)) {
|
|
9593
|
+
const r = g[o], c = e.steps.find((B) => B.stepTitle === o);
|
|
9609
9594
|
a[`${c == null ? void 0 : c.stepTitle} selection`] = {
|
|
9610
9595
|
value: r[0].name,
|
|
9611
9596
|
priceModifier: r[0].priceModifier
|
|
@@ -9618,39 +9603,39 @@ const Jn = async (l) => {
|
|
|
9618
9603
|
});
|
|
9619
9604
|
}
|
|
9620
9605
|
return a;
|
|
9621
|
-
}, SA = (
|
|
9606
|
+
}, SA = (g, e, t, A, a, n, i, s) => {
|
|
9622
9607
|
var C, w;
|
|
9623
|
-
const o = e.basePrice || 0, r =
|
|
9624
|
-
additionalExternalProductId: (C =
|
|
9625
|
-
additionalExternalVariantId: (w =
|
|
9608
|
+
const o = e.basePrice || 0, r = g.priceModifierTotal || 0, c = On(A, t, void 0, n), l = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), d = {
|
|
9609
|
+
additionalExternalProductId: (C = g.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
|
|
9610
|
+
additionalExternalVariantId: (w = g.integrationProduct) == null ? void 0 : w.additionalExternalVariantId,
|
|
9626
9611
|
baseCost: o,
|
|
9627
|
-
designExternalVariants:
|
|
9628
|
-
designProductId:
|
|
9629
|
-
designProductVariantId:
|
|
9612
|
+
designExternalVariants: g.designExternalVariants,
|
|
9613
|
+
designProductId: g.externalDesignProductId,
|
|
9614
|
+
designProductVariantId: g.externalDesignProductVariantId,
|
|
9630
9615
|
event: "onComplete",
|
|
9631
9616
|
exportedData: c,
|
|
9632
|
-
externalCartProductId:
|
|
9633
|
-
externalCartProductVariantId:
|
|
9617
|
+
externalCartProductId: g.externalCartProductId,
|
|
9618
|
+
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
9634
9619
|
lineItemImageUrl: i || "",
|
|
9635
9620
|
optionsCost: r,
|
|
9636
9621
|
processExecutionId: s,
|
|
9637
|
-
quantity:
|
|
9638
|
-
transactionId:
|
|
9639
|
-
transactionOwnerId:
|
|
9622
|
+
quantity: g.quantity,
|
|
9623
|
+
transactionId: g.id,
|
|
9624
|
+
transactionOwnerId: l,
|
|
9640
9625
|
weight: e.weight,
|
|
9641
|
-
workflowViewerLink:
|
|
9642
|
-
workflowViewerReadOnlyLink:
|
|
9626
|
+
workflowViewerLink: g.workflowViewerLink || "",
|
|
9627
|
+
workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
|
|
9643
9628
|
};
|
|
9644
9629
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
9645
|
-
}, YA = async (
|
|
9630
|
+
}, YA = async (g, e, t, A, a, n, i, s, o, r) => {
|
|
9646
9631
|
var F;
|
|
9647
9632
|
await (async () => {
|
|
9648
9633
|
var R;
|
|
9649
9634
|
if (r !== void 0)
|
|
9650
9635
|
return r;
|
|
9651
|
-
await
|
|
9636
|
+
await g.outstandingRequestsPromise();
|
|
9652
9637
|
const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), S = await x.getShadowGraphqlClient().query({
|
|
9653
|
-
query:
|
|
9638
|
+
query: gA,
|
|
9654
9639
|
variables: { ids: [a.id] },
|
|
9655
9640
|
fetchPolicy: "no-cache",
|
|
9656
9641
|
errorPolicy: "all",
|
|
@@ -9661,8 +9646,8 @@ const Jn = async (l) => {
|
|
|
9661
9646
|
return S.errors ? (S.errors.forEach((W) => {
|
|
9662
9647
|
S.errors && console.log("Server Error:", W.message);
|
|
9663
9648
|
}), null) : T ?? null;
|
|
9664
|
-
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await
|
|
9665
|
-
const
|
|
9649
|
+
})() || (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"));
|
|
9650
|
+
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
9651
|
const Y = {};
|
|
9667
9652
|
let N = 0;
|
|
9668
9653
|
if (Object.keys(n).length > 0)
|
|
@@ -9690,16 +9675,16 @@ const Jn = async (l) => {
|
|
|
9690
9675
|
return [Y, N];
|
|
9691
9676
|
}, [E] = await u(!0), D = Object.fromEntries(
|
|
9692
9677
|
Object.keys(E).map((y) => [y, E[y].map((Y) => Y.id)])
|
|
9693
|
-
), [
|
|
9694
|
-
Object.keys(
|
|
9678
|
+
), [m] = await u(!1), p = Object.fromEntries(
|
|
9679
|
+
Object.keys(m).map((y) => [
|
|
9695
9680
|
y,
|
|
9696
|
-
|
|
9681
|
+
m[y].map((Y) => Y.id)
|
|
9697
9682
|
])
|
|
9698
9683
|
);
|
|
9699
|
-
let
|
|
9700
|
-
if (
|
|
9701
|
-
const y = await (await fetch(
|
|
9702
|
-
|
|
9684
|
+
let Q = await s(C, a.id);
|
|
9685
|
+
if (Q) {
|
|
9686
|
+
const y = await (await fetch(Q)).blob();
|
|
9687
|
+
Q = (await U.uploadAsset(
|
|
9703
9688
|
{ name: `${a.id}-preview-image.png`, blob: y },
|
|
9704
9689
|
At.Image,
|
|
9705
9690
|
!0,
|
|
@@ -9717,7 +9702,7 @@ const Jn = async (l) => {
|
|
|
9717
9702
|
workflowId: e.id,
|
|
9718
9703
|
transactionId: a.id,
|
|
9719
9704
|
useThreeDimPreview: !!C,
|
|
9720
|
-
previewImage:
|
|
9705
|
+
previewImage: Q
|
|
9721
9706
|
};
|
|
9722
9707
|
if (h) {
|
|
9723
9708
|
const Y = [];
|
|
@@ -9736,11 +9721,11 @@ const Jn = async (l) => {
|
|
|
9736
9721
|
cartSelectionsWithPrices: E,
|
|
9737
9722
|
cartMetadata: w
|
|
9738
9723
|
};
|
|
9739
|
-
}, Ln = async (
|
|
9724
|
+
}, Ln = async (g, e, t, A, a, n, i, s, o, r, c) => {
|
|
9740
9725
|
var u, E;
|
|
9741
9726
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
9742
|
-
const { designDetails: B, cartSelectionsWithPrices:
|
|
9743
|
-
|
|
9727
|
+
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await YA(
|
|
9728
|
+
g,
|
|
9744
9729
|
e,
|
|
9745
9730
|
t,
|
|
9746
9731
|
A,
|
|
@@ -9760,23 +9745,23 @@ const Jn = async (l) => {
|
|
|
9760
9745
|
h,
|
|
9761
9746
|
a,
|
|
9762
9747
|
e,
|
|
9763
|
-
|
|
9748
|
+
l,
|
|
9764
9749
|
C == null ? void 0 : C.sku,
|
|
9765
9750
|
d,
|
|
9766
9751
|
w,
|
|
9767
9752
|
(E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
|
|
9768
9753
|
);
|
|
9769
|
-
}, zn = async (
|
|
9754
|
+
}, zn = async (g, e, t) => {
|
|
9770
9755
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
9771
|
-
|
|
9756
|
+
g.map(async (s) => {
|
|
9772
9757
|
await s.workflowManager.outstandingRequestsPromise();
|
|
9773
9758
|
})
|
|
9774
9759
|
);
|
|
9775
9760
|
const a = await (async () => {
|
|
9776
9761
|
var r;
|
|
9777
9762
|
const o = await x.getShadowGraphqlClient().query({
|
|
9778
|
-
query:
|
|
9779
|
-
variables: { ids:
|
|
9763
|
+
query: gA,
|
|
9764
|
+
variables: { ids: g.map((c) => c.transaction.id) },
|
|
9780
9765
|
fetchPolicy: "no-cache",
|
|
9781
9766
|
errorPolicy: "all"
|
|
9782
9767
|
});
|
|
@@ -9784,7 +9769,7 @@ const Jn = async (l) => {
|
|
|
9784
9769
|
o.errors && console.log("Server Error:", c.message);
|
|
9785
9770
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((c) => c.workflowState ?? null) : null;
|
|
9786
9771
|
})(), n = await Promise.all(
|
|
9787
|
-
|
|
9772
|
+
g.map(async (s, o) => await YA(
|
|
9788
9773
|
s.workflowManager,
|
|
9789
9774
|
s.workflow,
|
|
9790
9775
|
s.layouts,
|
|
@@ -9802,8 +9787,8 @@ const Jn = async (l) => {
|
|
|
9802
9787
|
if (!i)
|
|
9803
9788
|
throw new Error("Failed to create designs");
|
|
9804
9789
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
9805
|
-
var
|
|
9806
|
-
const r =
|
|
9790
|
+
var l;
|
|
9791
|
+
const r = g[o], c = n[o], B = s.transaction;
|
|
9807
9792
|
return SA(
|
|
9808
9793
|
B,
|
|
9809
9794
|
r.product,
|
|
@@ -9813,7 +9798,7 @@ const Jn = async (l) => {
|
|
|
9813
9798
|
c.cartMetadata,
|
|
9814
9799
|
//lineItemImageLink,
|
|
9815
9800
|
void 0,
|
|
9816
|
-
(
|
|
9801
|
+
(l = s.processExecution) == null ? void 0 : l.id
|
|
9817
9802
|
);
|
|
9818
9803
|
});
|
|
9819
9804
|
};
|
|
@@ -9899,8 +9884,8 @@ const $e = new Kn(), jn = f`
|
|
|
9899
9884
|
}
|
|
9900
9885
|
}
|
|
9901
9886
|
`;
|
|
9902
|
-
var Vn = /* @__PURE__ */ ((
|
|
9903
|
-
class
|
|
9887
|
+
var Vn = /* @__PURE__ */ ((g) => (g.QuantityChanged = "QuantityChanged", g.PriceBreakChanged = "PriceBreakChanged", g))(Vn || {});
|
|
9888
|
+
class Me {
|
|
9904
9889
|
constructor(e, t) {
|
|
9905
9890
|
var a;
|
|
9906
9891
|
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = _t(async () => {
|
|
@@ -9989,9 +9974,9 @@ class Se {
|
|
|
9989
9974
|
}
|
|
9990
9975
|
let n = 2048;
|
|
9991
9976
|
t && t <= 2048 && (n = t);
|
|
9992
|
-
const i =
|
|
9977
|
+
const i = He(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], c = s.find((m) => {
|
|
9993
9978
|
var p;
|
|
9994
|
-
return ((p =
|
|
9979
|
+
return ((p = m.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
|
|
9995
9980
|
}) || s[0], B = c.layoutState.layout.previewRegion ? {
|
|
9996
9981
|
x: c.layoutState.layout.previewRegion.left,
|
|
9997
9982
|
y: c.layoutState.layout.previewRegion.top,
|
|
@@ -10002,10 +9987,10 @@ class Se {
|
|
|
10002
9987
|
y: 0,
|
|
10003
9988
|
width: c.layoutState.layout.width,
|
|
10004
9989
|
height: c.layoutState.layout.height
|
|
10005
|
-
},
|
|
9990
|
+
}, l = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
|
|
10006
9991
|
if (!d)
|
|
10007
|
-
throw new
|
|
10008
|
-
const C = zt(
|
|
9992
|
+
throw new je("Failed to obtain 2D context for preview image creation");
|
|
9993
|
+
const C = zt(l.layoutState.layout, l.layoutState.elements, {
|
|
10009
9994
|
renderingConfiguration: {
|
|
10010
9995
|
purpose: Kt.Print,
|
|
10011
9996
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
@@ -10014,10 +9999,10 @@ class Se {
|
|
|
10014
9999
|
await (await $t.from(d, w, {
|
|
10015
10000
|
anonymousCrossOrigin: !0,
|
|
10016
10001
|
ignoreDimensions: !1,
|
|
10017
|
-
createCanvas:
|
|
10002
|
+
createCanvas: He,
|
|
10018
10003
|
createImage: Vt,
|
|
10019
10004
|
DOMParser: Wt(),
|
|
10020
|
-
fetch:
|
|
10005
|
+
fetch: gt
|
|
10021
10006
|
})).render();
|
|
10022
10007
|
const u = await this.getCanvasObjectURLAsync(i);
|
|
10023
10008
|
return i.toDataURL(u);
|
|
@@ -10029,7 +10014,7 @@ class Se {
|
|
|
10029
10014
|
const A = this.cachedStepHandles.get(t.stepName);
|
|
10030
10015
|
if (A)
|
|
10031
10016
|
return A;
|
|
10032
|
-
const a =
|
|
10017
|
+
const a = ye.get(this.getWorkflowManager(), t);
|
|
10033
10018
|
return this.cachedStepHandles.set(t.stepName, a), a;
|
|
10034
10019
|
}
|
|
10035
10020
|
getSteps() {
|
|
@@ -10113,17 +10098,17 @@ class Se {
|
|
|
10113
10098
|
const a = await e.getGlobalProperties(), n = A == null ? void 0 : A.map((r) => r.getId()), i = this.getSteps().filter((r) => n === void 0 || n.includes(r.getId())), s = t.getSteps(), o = (r) => a.find((c) => c.getRawProperty().name === r.aspectName);
|
|
10114
10099
|
i.forEach((r) => {
|
|
10115
10100
|
const c = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
|
|
10116
|
-
B !== void 0 && (B.forEach((
|
|
10117
|
-
const d =
|
|
10101
|
+
B !== void 0 && (B.forEach((l) => c.add(JSON.stringify(l))), s.forEach((l) => {
|
|
10102
|
+
const d = l.getRaw().globalPropertyAspectConfigurations;
|
|
10118
10103
|
d !== void 0 && d.forEach((C) => {
|
|
10119
10104
|
const w = o(C), h = c.has(JSON.stringify(C));
|
|
10120
10105
|
if (h && (w == null ? void 0 : w.getType()) === "Option") {
|
|
10121
|
-
const u =
|
|
10106
|
+
const u = l.getCurrentVariant();
|
|
10122
10107
|
if (!u)
|
|
10123
10108
|
return;
|
|
10124
10109
|
r.selectVariant(u), c.delete(JSON.stringify(C));
|
|
10125
10110
|
} else if (h && (w == null ? void 0 : w.getType()) === "Text") {
|
|
10126
|
-
const u =
|
|
10111
|
+
const u = l.getText();
|
|
10127
10112
|
r.setText(u), c.delete(JSON.stringify(C));
|
|
10128
10113
|
}
|
|
10129
10114
|
});
|
|
@@ -10133,10 +10118,10 @@ class Se {
|
|
|
10133
10118
|
getStepByName(e) {
|
|
10134
10119
|
const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
|
|
10135
10120
|
if (!(!t || !this.stepHasHandle(t)))
|
|
10136
|
-
return
|
|
10121
|
+
return ye.get(this.getWorkflowManager(), t);
|
|
10137
10122
|
}
|
|
10138
10123
|
getStepsByType(e) {
|
|
10139
|
-
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) =>
|
|
10124
|
+
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => ye.get(this.getWorkflowManager(), t));
|
|
10140
10125
|
}
|
|
10141
10126
|
getStepsByScene(e) {
|
|
10142
10127
|
if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
|
|
@@ -10145,7 +10130,7 @@ class Se {
|
|
|
10145
10130
|
);
|
|
10146
10131
|
return e.stepIds.map(
|
|
10147
10132
|
(A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
|
|
10148
|
-
).filter((A) => this.stepHasHandle(A)).map((A) =>
|
|
10133
|
+
).filter((A) => this.stepHasHandle(A)).map((A) => ye.get(this.getWorkflowManager(), A));
|
|
10149
10134
|
}
|
|
10150
10135
|
async attachCustomerDetails(e) {
|
|
10151
10136
|
return this.assignCustomerDetails({ emailAddress: e.email });
|
|
@@ -10203,7 +10188,7 @@ class Se {
|
|
|
10203
10188
|
}
|
|
10204
10189
|
async copy() {
|
|
10205
10190
|
var s;
|
|
10206
|
-
const e =
|
|
10191
|
+
const e = ge(this.getCommandContext().getState());
|
|
10207
10192
|
if (!e)
|
|
10208
10193
|
throw new b("Internal state is undefined! Cannot copy experience!");
|
|
10209
10194
|
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new is({}), n = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
|
|
@@ -10303,11 +10288,11 @@ const Wn = [
|
|
|
10303
10288
|
"textPath",
|
|
10304
10289
|
"tref",
|
|
10305
10290
|
"tspan"
|
|
10306
|
-
], Xn = async (
|
|
10291
|
+
], Xn = async (g, e, t) => {
|
|
10307
10292
|
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
10293
|
s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
10309
10294
|
const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await tA(o, { type: "svg" }))}`, B = (d) => {
|
|
10310
|
-
const C =
|
|
10295
|
+
const C = g.find((h) => h.panelId === d.panelId);
|
|
10311
10296
|
if (!C)
|
|
10312
10297
|
throw new z(d);
|
|
10313
10298
|
const w = J();
|
|
@@ -10324,13 +10309,13 @@ const Wn = [
|
|
|
10324
10309
|
},
|
|
10325
10310
|
C
|
|
10326
10311
|
);
|
|
10327
|
-
},
|
|
10312
|
+
}, l = t.data.regions;
|
|
10328
10313
|
try {
|
|
10329
|
-
return
|
|
10314
|
+
return l.map(B);
|
|
10330
10315
|
} catch (d) {
|
|
10331
10316
|
return console.error(d), [];
|
|
10332
10317
|
}
|
|
10333
|
-
}, qn = async (
|
|
10318
|
+
}, qn = async (g, e, t, A) => {
|
|
10334
10319
|
const a = t.data, n = a.assetUrl, i = await nt(n);
|
|
10335
10320
|
try {
|
|
10336
10321
|
const s = _A(a, A.option);
|
|
@@ -10343,7 +10328,7 @@ const Wn = [
|
|
|
10343
10328
|
height: 1
|
|
10344
10329
|
},
|
|
10345
10330
|
(w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
|
|
10346
|
-
), B = await
|
|
10331
|
+
), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
|
|
10347
10332
|
if (!d)
|
|
10348
10333
|
throw new z(r);
|
|
10349
10334
|
const C = Bt(i, B, {
|
|
@@ -10354,7 +10339,7 @@ const Wn = [
|
|
|
10354
10339
|
return [
|
|
10355
10340
|
new L(
|
|
10356
10341
|
{
|
|
10357
|
-
id:
|
|
10342
|
+
id: l,
|
|
10358
10343
|
path: B.path,
|
|
10359
10344
|
dataWidth: B.width,
|
|
10360
10345
|
dataHeight: B.height,
|
|
@@ -10376,25 +10361,25 @@ const Wn = [
|
|
|
10376
10361
|
},
|
|
10377
10362
|
d
|
|
10378
10363
|
),
|
|
10379
|
-
new Lt(
|
|
10364
|
+
new Lt(l, i, C)
|
|
10380
10365
|
];
|
|
10381
10366
|
};
|
|
10382
10367
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
10383
10368
|
} catch (s) {
|
|
10384
10369
|
return console.error(s), [];
|
|
10385
10370
|
}
|
|
10386
|
-
}, Zn = async (
|
|
10387
|
-
var p,
|
|
10371
|
+
}, Zn = async (g, e, t, A) => {
|
|
10372
|
+
var p, Q;
|
|
10388
10373
|
const a = t.data, n = A.option;
|
|
10389
10374
|
if (!n)
|
|
10390
10375
|
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)) ||
|
|
10376
|
+
const i = ((p = n.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || ze(n);
|
|
10392
10377
|
if (!i)
|
|
10393
10378
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
10394
10379
|
if (!i.asset)
|
|
10395
10380
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
10396
10381
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10397
|
-
const s = (
|
|
10382
|
+
const s = (Q = i.asset) == null ? void 0 : Q.fileLink;
|
|
10398
10383
|
if (!s)
|
|
10399
10384
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
10400
10385
|
const o = await _(s, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", C = Xt().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
@@ -10425,7 +10410,7 @@ const Wn = [
|
|
|
10425
10410
|
}
|
|
10426
10411
|
}
|
|
10427
10412
|
const D = (I) => {
|
|
10428
|
-
const F =
|
|
10413
|
+
const F = g.find((Y) => Y.panelId === I.panelId);
|
|
10429
10414
|
if (!F)
|
|
10430
10415
|
throw new z(I);
|
|
10431
10416
|
const y = J();
|
|
@@ -10446,15 +10431,15 @@ const Wn = [
|
|
|
10446
10431
|
},
|
|
10447
10432
|
F
|
|
10448
10433
|
);
|
|
10449
|
-
},
|
|
10434
|
+
}, m = A.data.regions;
|
|
10450
10435
|
try {
|
|
10451
|
-
return
|
|
10436
|
+
return m.map(D);
|
|
10452
10437
|
} catch (I) {
|
|
10453
10438
|
return console.error(I), [];
|
|
10454
10439
|
}
|
|
10455
|
-
}, $n = async (
|
|
10440
|
+
}, $n = async (g, e, t) => {
|
|
10456
10441
|
const A = await FA(t.data.module), a = e.data, n = (s, o) => {
|
|
10457
|
-
const r =
|
|
10442
|
+
const r = g.find((B) => B.panelId === o.panelId);
|
|
10458
10443
|
if (!r)
|
|
10459
10444
|
throw new z(o);
|
|
10460
10445
|
const c = J();
|
|
@@ -10482,12 +10467,12 @@ const Wn = [
|
|
|
10482
10467
|
} catch (s) {
|
|
10483
10468
|
return console.error(s), [];
|
|
10484
10469
|
}
|
|
10485
|
-
}, _n = async (
|
|
10470
|
+
}, _n = async (g, e, t, A) => {
|
|
10486
10471
|
var c, B;
|
|
10487
10472
|
const a = t.data, n = A.option;
|
|
10488
10473
|
if (!n)
|
|
10489
10474
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10490
|
-
const i = ((c = n.variants) == null ? void 0 : c.find((
|
|
10475
|
+
const i = ((c = n.variants) == null ? void 0 : c.find((l) => l.id === a.pictureVariantId)) || ze(n);
|
|
10491
10476
|
if (!i)
|
|
10492
10477
|
return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
|
|
10493
10478
|
if (!i.asset)
|
|
@@ -10496,24 +10481,24 @@ const Wn = [
|
|
|
10496
10481
|
const s = (B = i.asset) == null ? void 0 : B.fileLink;
|
|
10497
10482
|
if (!s)
|
|
10498
10483
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
10499
|
-
const o = (
|
|
10500
|
-
const d =
|
|
10484
|
+
const o = (l) => {
|
|
10485
|
+
const d = g.find((w) => w.panelId === l.panelId);
|
|
10501
10486
|
if (!d)
|
|
10502
|
-
throw new z(
|
|
10487
|
+
throw new z(l);
|
|
10503
10488
|
const C = J();
|
|
10504
10489
|
return new L(
|
|
10505
10490
|
{
|
|
10506
10491
|
id: C,
|
|
10507
10492
|
src: s,
|
|
10508
10493
|
type: G.Image,
|
|
10509
|
-
y:
|
|
10510
|
-
x:
|
|
10511
|
-
rotation:
|
|
10512
|
-
width:
|
|
10513
|
-
height:
|
|
10514
|
-
layer:
|
|
10515
|
-
layerIndex:
|
|
10516
|
-
immutable:
|
|
10494
|
+
y: l.top,
|
|
10495
|
+
x: l.left,
|
|
10496
|
+
rotation: l.rotation,
|
|
10497
|
+
width: l.width,
|
|
10498
|
+
height: l.height,
|
|
10499
|
+
layer: l.layer,
|
|
10500
|
+
layerIndex: l.layerIndex,
|
|
10501
|
+
immutable: l.immutable,
|
|
10517
10502
|
preserveAspectRatio: "none"
|
|
10518
10503
|
},
|
|
10519
10504
|
d
|
|
@@ -10521,23 +10506,23 @@ const Wn = [
|
|
|
10521
10506
|
}, r = A.data.regions;
|
|
10522
10507
|
try {
|
|
10523
10508
|
return r.map(o);
|
|
10524
|
-
} catch (
|
|
10525
|
-
return console.error(
|
|
10509
|
+
} catch (l) {
|
|
10510
|
+
return console.error(l), [];
|
|
10526
10511
|
}
|
|
10527
|
-
}, ei = async (
|
|
10512
|
+
}, ei = async (g, e, t, A) => {
|
|
10528
10513
|
var r;
|
|
10529
10514
|
const a = t.data, n = A.option;
|
|
10530
10515
|
if (!n)
|
|
10531
10516
|
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)) ||
|
|
10517
|
+
const i = ((r = n.variants) == null ? void 0 : r.find((c) => c.id === a.colorVariantId)) || ze(n);
|
|
10533
10518
|
if (!i)
|
|
10534
10519
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
10535
10520
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10536
10521
|
const s = (c) => {
|
|
10537
|
-
const B =
|
|
10522
|
+
const B = g.find((h) => h.panelId === c.panelId);
|
|
10538
10523
|
if (!B)
|
|
10539
10524
|
throw new z(c);
|
|
10540
|
-
const
|
|
10525
|
+
const l = `
|
|
10541
10526
|
<svg
|
|
10542
10527
|
xmlns="http://www.w3.org/2000/svg"
|
|
10543
10528
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -10562,7 +10547,7 @@ const Wn = [
|
|
|
10562
10547
|
{
|
|
10563
10548
|
colors: C,
|
|
10564
10549
|
id: w,
|
|
10565
|
-
svg:
|
|
10550
|
+
svg: l,
|
|
10566
10551
|
type: G.Illustration,
|
|
10567
10552
|
y: c.top,
|
|
10568
10553
|
x: c.left,
|
|
@@ -10581,7 +10566,7 @@ const Wn = [
|
|
|
10581
10566
|
} catch (c) {
|
|
10582
10567
|
return console.error(c), [];
|
|
10583
10568
|
}
|
|
10584
|
-
}, ti = async (
|
|
10569
|
+
}, ti = async (g, e, t) => {
|
|
10585
10570
|
const A = [], n = (() => {
|
|
10586
10571
|
var r, c;
|
|
10587
10572
|
return e.type === M.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = e.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
@@ -10589,7 +10574,7 @@ const Wn = [
|
|
|
10589
10574
|
if (s === "image")
|
|
10590
10575
|
try {
|
|
10591
10576
|
o.forEach((r) => {
|
|
10592
|
-
const c =
|
|
10577
|
+
const c = g.find((l) => l.panelId === r.panelId);
|
|
10593
10578
|
if (!c)
|
|
10594
10579
|
throw new z(r);
|
|
10595
10580
|
const B = {
|
|
@@ -10616,14 +10601,14 @@ const Wn = [
|
|
|
10616
10601
|
}
|
|
10617
10602
|
else {
|
|
10618
10603
|
const r = await _(n, !0), c = (B) => {
|
|
10619
|
-
const
|
|
10604
|
+
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
10605
|
if (!u)
|
|
10621
10606
|
throw new he("Failed to read SVG.");
|
|
10622
10607
|
return qt(u), Zt().serializeToString(u);
|
|
10623
10608
|
};
|
|
10624
10609
|
o.forEach((B) => {
|
|
10625
|
-
const
|
|
10626
|
-
if (!
|
|
10610
|
+
const l = g.find((C) => C.panelId === B.panelId);
|
|
10611
|
+
if (!l)
|
|
10627
10612
|
throw new z(B);
|
|
10628
10613
|
const d = {
|
|
10629
10614
|
id: J(),
|
|
@@ -10644,17 +10629,17 @@ const Wn = [
|
|
|
10644
10629
|
productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
|
|
10645
10630
|
excludeFromExport: e.data.excludeFromPrint
|
|
10646
10631
|
};
|
|
10647
|
-
A.push(new L(d,
|
|
10632
|
+
A.push(new L(d, l));
|
|
10648
10633
|
});
|
|
10649
10634
|
}
|
|
10650
10635
|
return A;
|
|
10651
|
-
}, Ai = async (
|
|
10636
|
+
}, Ai = async (g, e, t, A) => {
|
|
10652
10637
|
const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
|
|
10653
10638
|
var D;
|
|
10654
10639
|
const h = A.option;
|
|
10655
10640
|
if (!h)
|
|
10656
10641
|
return;
|
|
10657
|
-
const u = ((D = h.variants) == null ? void 0 : D.find((
|
|
10642
|
+
const u = ((D = h.variants) == null ? void 0 : D.find((m) => m.id === n.fontVariantId)) || ze(h);
|
|
10658
10643
|
if (!u || !u.asset)
|
|
10659
10644
|
return;
|
|
10660
10645
|
e[A.stepName] = { selectedVariants: [u] };
|
|
@@ -10670,7 +10655,7 @@ const Wn = [
|
|
|
10670
10655
|
assetUrl: h,
|
|
10671
10656
|
name: u.names.fullName.en
|
|
10672
10657
|
};
|
|
10673
|
-
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "",
|
|
10658
|
+
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = it(B, {
|
|
10674
10659
|
vertical: A.data.vertical,
|
|
10675
10660
|
uppercase: A.data.uppercase
|
|
10676
10661
|
}), d = async (h) => {
|
|
@@ -10681,7 +10666,7 @@ const Wn = [
|
|
|
10681
10666
|
return E == null ? void 0 : E.color;
|
|
10682
10667
|
}, C = n.color || await d(A.data), w = A.data.regions;
|
|
10683
10668
|
for (const h of w) {
|
|
10684
|
-
const u =
|
|
10669
|
+
const u = g.find((D) => D.panelId === h.panelId);
|
|
10685
10670
|
if (!u)
|
|
10686
10671
|
continue;
|
|
10687
10672
|
const E = {
|
|
@@ -10697,7 +10682,7 @@ const Wn = [
|
|
|
10697
10682
|
layerIndex: h.layerIndex,
|
|
10698
10683
|
paths: A.data.paths,
|
|
10699
10684
|
rotation: h.rotation,
|
|
10700
|
-
text:
|
|
10685
|
+
text: l,
|
|
10701
10686
|
type: G.Textbox,
|
|
10702
10687
|
vertical: A.data.vertical,
|
|
10703
10688
|
verticalAlign: A.data.verticalAlign || "middle",
|
|
@@ -10706,12 +10691,12 @@ const Wn = [
|
|
|
10706
10691
|
y: h.top
|
|
10707
10692
|
};
|
|
10708
10693
|
if (c) {
|
|
10709
|
-
const [D,
|
|
10694
|
+
const [D, m] = xe(
|
|
10710
10695
|
A.data.size || i,
|
|
10711
10696
|
c,
|
|
10712
10697
|
h,
|
|
10713
10698
|
[
|
|
10714
|
-
it(
|
|
10699
|
+
it(l, {
|
|
10715
10700
|
vertical: A.data.vertical,
|
|
10716
10701
|
uppercase: A.data.uppercase
|
|
10717
10702
|
})
|
|
@@ -10727,7 +10712,7 @@ const Wn = [
|
|
|
10727
10712
|
{
|
|
10728
10713
|
...E,
|
|
10729
10714
|
fontSize: D,
|
|
10730
|
-
text: E.curved ? E.text : (
|
|
10715
|
+
text: E.curved ? E.text : (m || []).join(`
|
|
10731
10716
|
`)
|
|
10732
10717
|
},
|
|
10733
10718
|
u
|
|
@@ -10737,7 +10722,7 @@ const Wn = [
|
|
|
10737
10722
|
a.push(new L(E, u));
|
|
10738
10723
|
}
|
|
10739
10724
|
return a;
|
|
10740
|
-
}, ai = (
|
|
10725
|
+
}, ai = (g, e) => g.conditions ? g.conditions.every((t) => {
|
|
10741
10726
|
const A = e[t.targetStepName];
|
|
10742
10727
|
if (A && A.selectedVariants) {
|
|
10743
10728
|
const a = A.selectedVariants;
|
|
@@ -10746,9 +10731,9 @@ const Wn = [
|
|
|
10746
10731
|
);
|
|
10747
10732
|
}
|
|
10748
10733
|
return !1;
|
|
10749
|
-
}) : !0, ni = async (
|
|
10734
|
+
}) : !0, ni = async (g, e, t, A) => {
|
|
10750
10735
|
const a = [], n = {};
|
|
10751
|
-
for (const i of
|
|
10736
|
+
for (const i of g) {
|
|
10752
10737
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
10753
10738
|
if (s)
|
|
10754
10739
|
switch (s.type) {
|
|
@@ -10799,7 +10784,7 @@ const Wn = [
|
|
|
10799
10784
|
);
|
|
10800
10785
|
return a;
|
|
10801
10786
|
};
|
|
10802
|
-
class
|
|
10787
|
+
class Se {
|
|
10803
10788
|
constructor(e) {
|
|
10804
10789
|
this.handleCompleteRender = null;
|
|
10805
10790
|
const t = /* @__PURE__ */ new Map();
|
|
@@ -10820,12 +10805,12 @@ class Ye {
|
|
|
10820
10805
|
return this.layouts;
|
|
10821
10806
|
}
|
|
10822
10807
|
}
|
|
10823
|
-
const ii = () => new Promise((
|
|
10808
|
+
const ii = () => new Promise((g, e) => {
|
|
10824
10809
|
try {
|
|
10825
|
-
const A =
|
|
10826
|
-
|
|
10810
|
+
const A = He().getContext("webgl2");
|
|
10811
|
+
g(!!A);
|
|
10827
10812
|
} catch {
|
|
10828
|
-
|
|
10813
|
+
g(!1);
|
|
10829
10814
|
}
|
|
10830
10815
|
}), si = ii();
|
|
10831
10816
|
class oi {
|
|
@@ -10876,7 +10861,7 @@ class oi {
|
|
|
10876
10861
|
* Actions to perform when a static render event is fired for this canvas.
|
|
10877
10862
|
*/
|
|
10878
10863
|
async render(e) {
|
|
10879
|
-
const t =
|
|
10864
|
+
const t = ge(e);
|
|
10880
10865
|
this.lastRequestedRenderArguments = t;
|
|
10881
10866
|
const A = this.getStaticContext();
|
|
10882
10867
|
if (!A) {
|
|
@@ -10949,24 +10934,24 @@ class ri extends BA {
|
|
|
10949
10934
|
o = n.width, r = n.height;
|
|
10950
10935
|
const c = zt(e.layoutState.layout, t, {
|
|
10951
10936
|
renderingConfiguration: { purpose: Kt.ThreeD }
|
|
10952
|
-
}), B = jt(c),
|
|
10937
|
+
}), B = jt(c), l = await $t.from(this.ctx, B, {
|
|
10953
10938
|
anonymousCrossOrigin: !0,
|
|
10954
10939
|
ignoreDimensions: !this.nonPOTSupport,
|
|
10955
10940
|
ignoreAnimation: !0,
|
|
10956
10941
|
ignoreClear: !0,
|
|
10957
10942
|
ignoreMouse: !0,
|
|
10958
10943
|
enableRedraw: !1,
|
|
10959
|
-
createCanvas:
|
|
10944
|
+
createCanvas: He,
|
|
10960
10945
|
createImage: Vt,
|
|
10961
10946
|
DOMParser: Wt(),
|
|
10962
|
-
fetch:
|
|
10947
|
+
fetch: gt
|
|
10963
10948
|
});
|
|
10964
|
-
|
|
10949
|
+
l.resize(o, r), await l.render(), this.onRender();
|
|
10965
10950
|
}
|
|
10966
10951
|
}
|
|
10967
|
-
const fs = (
|
|
10952
|
+
const fs = (g, e) => {
|
|
10968
10953
|
const t = [];
|
|
10969
|
-
return
|
|
10954
|
+
return g.forEach((A) => {
|
|
10970
10955
|
const a = e.steps.find((n) => n.stepName === A.stepName);
|
|
10971
10956
|
(a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
|
|
10972
10957
|
name: a.stepName,
|
|
@@ -10975,13 +10960,13 @@ const fs = (l, e) => {
|
|
|
10975
10960
|
}
|
|
10976
10961
|
});
|
|
10977
10962
|
}), t;
|
|
10978
|
-
}, Fs = async (
|
|
10963
|
+
}, Fs = async (g, e, t, A) => {
|
|
10979
10964
|
let a = {
|
|
10980
10965
|
serializableWorkflow: { steps: [] },
|
|
10981
10966
|
layouts: {}
|
|
10982
10967
|
};
|
|
10983
10968
|
a = new k(t.map((o) => new Aa(o))).apply(a);
|
|
10984
|
-
const i = await ni(
|
|
10969
|
+
const i = await ni(g, e, t, A);
|
|
10985
10970
|
return new k(i).apply(a);
|
|
10986
10971
|
}, ci = f`
|
|
10987
10972
|
${Be}
|
|
@@ -11037,8 +11022,8 @@ const fs = (l, e) => {
|
|
|
11037
11022
|
...ProductFields
|
|
11038
11023
|
}
|
|
11039
11024
|
}
|
|
11040
|
-
`, We = (
|
|
11041
|
-
${
|
|
11025
|
+
`, We = (g) => f`
|
|
11026
|
+
${g ? PA : ""}
|
|
11042
11027
|
fragment ProductCollectionFields on ProductCollection {
|
|
11043
11028
|
id
|
|
11044
11029
|
name
|
|
@@ -11057,7 +11042,7 @@ const fs = (l, e) => {
|
|
|
11057
11042
|
}
|
|
11058
11043
|
}
|
|
11059
11044
|
}
|
|
11060
|
-
${
|
|
11045
|
+
${g ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
|
|
11061
11046
|
transformCollection {
|
|
11062
11047
|
id
|
|
11063
11048
|
name
|
|
@@ -11082,8 +11067,8 @@ const fs = (l, e) => {
|
|
|
11082
11067
|
}
|
|
11083
11068
|
}
|
|
11084
11069
|
}
|
|
11085
|
-
`,
|
|
11086
|
-
${We(
|
|
11070
|
+
`, gi = (g) => f`
|
|
11071
|
+
${We(g)}
|
|
11087
11072
|
query GetBundle($id: String!) {
|
|
11088
11073
|
bundles(ids: [$id]) {
|
|
11089
11074
|
id
|
|
@@ -11104,7 +11089,7 @@ const fs = (l, e) => {
|
|
|
11104
11089
|
}
|
|
11105
11090
|
}
|
|
11106
11091
|
}
|
|
11107
|
-
`,
|
|
11092
|
+
`, li = f`
|
|
11108
11093
|
query GetBundleStakeholders($id: String!) {
|
|
11109
11094
|
bundles(ids: [$id]) {
|
|
11110
11095
|
id
|
|
@@ -11155,8 +11140,8 @@ const fs = (l, e) => {
|
|
|
11155
11140
|
}
|
|
11156
11141
|
}
|
|
11157
11142
|
}
|
|
11158
|
-
`, Ci = (
|
|
11159
|
-
${We(
|
|
11143
|
+
`, Ci = (g) => f`
|
|
11144
|
+
${We(g)}
|
|
11160
11145
|
mutation CreateBundle(
|
|
11161
11146
|
$collectionId: String
|
|
11162
11147
|
$initialMetadata: [MetadataInput!]
|
|
@@ -11184,8 +11169,8 @@ const fs = (l, e) => {
|
|
|
11184
11169
|
}
|
|
11185
11170
|
}
|
|
11186
11171
|
}
|
|
11187
|
-
`, wi = (
|
|
11188
|
-
${We(
|
|
11172
|
+
`, wi = (g) => f`
|
|
11173
|
+
${We(g)}
|
|
11189
11174
|
mutation DuplicateBundle(
|
|
11190
11175
|
$id: String!
|
|
11191
11176
|
$template: Boolean
|
|
@@ -11233,7 +11218,7 @@ const fs = (l, e) => {
|
|
|
11233
11218
|
id
|
|
11234
11219
|
}
|
|
11235
11220
|
}
|
|
11236
|
-
`,
|
|
11221
|
+
`, Qi = f`
|
|
11237
11222
|
mutation BundleRemoveTransaction(
|
|
11238
11223
|
$id: String!
|
|
11239
11224
|
$transactionId: String!
|
|
@@ -11248,7 +11233,7 @@ const fs = (l, e) => {
|
|
|
11248
11233
|
id
|
|
11249
11234
|
}
|
|
11250
11235
|
}
|
|
11251
|
-
`,
|
|
11236
|
+
`, mi = f`
|
|
11252
11237
|
mutation BundleRemoveTransactions(
|
|
11253
11238
|
$id: String!
|
|
11254
11239
|
$transactionIds: [String!]!
|
|
@@ -11315,8 +11300,8 @@ const fs = (l, e) => {
|
|
|
11315
11300
|
id
|
|
11316
11301
|
}
|
|
11317
11302
|
}
|
|
11318
|
-
`, Fi = (
|
|
11319
|
-
${We(
|
|
11303
|
+
`, Fi = (g) => f`
|
|
11304
|
+
${We(g)}
|
|
11320
11305
|
mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
|
|
11321
11306
|
bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
|
|
11322
11307
|
id
|
|
@@ -11804,7 +11789,7 @@ class Ni {
|
|
|
11804
11789
|
}
|
|
11805
11790
|
async setGlobalPropertyState(e) {
|
|
11806
11791
|
this.globalPropertyState || await this.initPromise;
|
|
11807
|
-
const t =
|
|
11792
|
+
const t = ge(this.globalPropertyState);
|
|
11808
11793
|
this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
|
|
11809
11794
|
}
|
|
11810
11795
|
getAspect(e) {
|
|
@@ -11828,11 +11813,12 @@ class Ni {
|
|
|
11828
11813
|
const a = this.configuration.aspects.find((s) => s.name === e);
|
|
11829
11814
|
if (!a)
|
|
11830
11815
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11831
|
-
const n =
|
|
11832
|
-
i ? (i.value = t, A !== void 0 && (i.
|
|
11816
|
+
const n = ge(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
|
|
11817
|
+
i ? (i.value = t, i.type = a.type, A !== void 0 && (i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
|
|
11833
11818
|
name: e,
|
|
11834
11819
|
value: t,
|
|
11835
|
-
|
|
11820
|
+
type: a.type,
|
|
11821
|
+
storage: A !== null ? A : void 0
|
|
11836
11822
|
}), await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(n, this.globalPropertyState);
|
|
11837
11823
|
}
|
|
11838
11824
|
async setAspectStorage(e, t) {
|
|
@@ -11843,7 +11829,7 @@ class Ni {
|
|
|
11843
11829
|
const A = this.configuration.aspects.find((i) => i.name === e);
|
|
11844
11830
|
if (!A)
|
|
11845
11831
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11846
|
-
const a =
|
|
11832
|
+
const a = ge(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
|
|
11847
11833
|
n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
|
|
11848
11834
|
name: e,
|
|
11849
11835
|
value: "",
|
|
@@ -12122,7 +12108,7 @@ class _e {
|
|
|
12122
12108
|
if (t) {
|
|
12123
12109
|
const A = e.find((a) => a.workflowName === t);
|
|
12124
12110
|
if (A)
|
|
12125
|
-
return new
|
|
12111
|
+
return new Oe(A);
|
|
12126
12112
|
}
|
|
12127
12113
|
throw new H(
|
|
12128
12114
|
"Called getDefaultWorkflow() before fetching collection products. Use collection.fetchProducts() first to ensure the data is available."
|
|
@@ -12136,7 +12122,7 @@ class _e {
|
|
|
12136
12122
|
throw new H(
|
|
12137
12123
|
"No workflows on configured product. Ensure at least 1 workflow is assigned to this product."
|
|
12138
12124
|
);
|
|
12139
|
-
return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new
|
|
12125
|
+
return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new Oe(t));
|
|
12140
12126
|
}
|
|
12141
12127
|
/**
|
|
12142
12128
|
* A list of all integrations this product is connected to.
|
|
@@ -12183,7 +12169,7 @@ class _e {
|
|
|
12183
12169
|
), (s = A == null ? void 0 : A.additionalIntegrationProduct) != null && s.product ? t + (A.additionalIntegrationProduct.product.basePrice || 0) : t;
|
|
12184
12170
|
}
|
|
12185
12171
|
}
|
|
12186
|
-
class
|
|
12172
|
+
class Oe {
|
|
12187
12173
|
constructor(e) {
|
|
12188
12174
|
this.workflow = e;
|
|
12189
12175
|
}
|
|
@@ -12415,7 +12401,7 @@ class et {
|
|
|
12415
12401
|
(n) => n.getWorkflowManager().getTransaction().id === t.id
|
|
12416
12402
|
);
|
|
12417
12403
|
a.setBundle(void 0), this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(t.id), await x.getShadowGraphqlClient().mutate({
|
|
12418
|
-
mutation:
|
|
12404
|
+
mutation: Qi,
|
|
12419
12405
|
variables: {
|
|
12420
12406
|
id: this.id,
|
|
12421
12407
|
transactionId: t.id,
|
|
@@ -12447,7 +12433,7 @@ class et {
|
|
|
12447
12433
|
A.forEach((a) => a.setBundle(void 0)), [...this.workflowExperiences, ...A].forEach(
|
|
12448
12434
|
(a) => a.checkForPriceBreakChanges()
|
|
12449
12435
|
), this.previewService && A.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), e.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
|
|
12450
|
-
mutation:
|
|
12436
|
+
mutation: mi,
|
|
12451
12437
|
variables: {
|
|
12452
12438
|
id: this.id,
|
|
12453
12439
|
transactionIds: e.map((a) => a.id),
|
|
@@ -12512,7 +12498,7 @@ class et {
|
|
|
12512
12498
|
variables: {
|
|
12513
12499
|
id: this.id,
|
|
12514
12500
|
details: e,
|
|
12515
|
-
type: t ||
|
|
12501
|
+
type: t || Ge.Owner
|
|
12516
12502
|
},
|
|
12517
12503
|
context: {
|
|
12518
12504
|
bundleOwnerId: this.ownerId
|
|
@@ -12556,7 +12542,7 @@ class et {
|
|
|
12556
12542
|
}
|
|
12557
12543
|
async getAllStakeholders() {
|
|
12558
12544
|
const e = await x.getShadowGraphqlClient().query({
|
|
12559
|
-
query:
|
|
12545
|
+
query: li,
|
|
12560
12546
|
errorPolicy: "all",
|
|
12561
12547
|
fetchPolicy: "no-cache",
|
|
12562
12548
|
variables: {
|
|
@@ -12748,14 +12734,14 @@ class Gi {
|
|
|
12748
12734
|
* @returns
|
|
12749
12735
|
*/
|
|
12750
12736
|
async execute(e, t, A) {
|
|
12751
|
-
var B,
|
|
12752
|
-
const n = (
|
|
12737
|
+
var B, l, d;
|
|
12738
|
+
const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
|
|
12753
12739
|
mutation: Ui,
|
|
12754
12740
|
variables: {
|
|
12755
12741
|
processFlowId: e,
|
|
12756
12742
|
inputs: [...t.map((C) => C.getValueForTransmission())]
|
|
12757
12743
|
}
|
|
12758
|
-
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 :
|
|
12744
|
+
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
|
|
12759
12745
|
if (!n)
|
|
12760
12746
|
throw new Error("Failed to create process execution.");
|
|
12761
12747
|
function i(C) {
|
|
@@ -12820,14 +12806,14 @@ class bi {
|
|
|
12820
12806
|
* @returns The nodes contained within the execution.
|
|
12821
12807
|
*/
|
|
12822
12808
|
getNodes() {
|
|
12823
|
-
return this.execution.nodes.map((e) => new
|
|
12809
|
+
return this.execution.nodes.map((e) => new Ye(e));
|
|
12824
12810
|
}
|
|
12825
12811
|
/**
|
|
12826
12812
|
* @param type The type of node to return.
|
|
12827
12813
|
* @returns A list of nodes matching the requested type.
|
|
12828
12814
|
*/
|
|
12829
12815
|
getNodesByType(e) {
|
|
12830
|
-
return this.execution.nodes.filter((t) => t.type === e).map((t) => new
|
|
12816
|
+
return this.execution.nodes.filter((t) => t.type === e).map((t) => new Ye(t));
|
|
12831
12817
|
}
|
|
12832
12818
|
/**
|
|
12833
12819
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -12836,7 +12822,7 @@ class bi {
|
|
|
12836
12822
|
return this.execution.nodes.filter(
|
|
12837
12823
|
(e) => e.type === "StartTerminal"
|
|
12838
12824
|
/* StartTerminal */
|
|
12839
|
-
).map((e) => new
|
|
12825
|
+
).map((e) => new Ye(e));
|
|
12840
12826
|
}
|
|
12841
12827
|
/**
|
|
12842
12828
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -12845,7 +12831,7 @@ class bi {
|
|
|
12845
12831
|
return this.execution.nodes.filter(
|
|
12846
12832
|
(e) => e.type === "EndTerminal"
|
|
12847
12833
|
/* EndTerminal */
|
|
12848
|
-
).map((e) => new
|
|
12834
|
+
).map((e) => new Ye(e));
|
|
12849
12835
|
}
|
|
12850
12836
|
/**
|
|
12851
12837
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -12862,7 +12848,7 @@ class bi {
|
|
|
12862
12848
|
return new Date(this.execution.failedAt);
|
|
12863
12849
|
}
|
|
12864
12850
|
}
|
|
12865
|
-
class
|
|
12851
|
+
class Ye {
|
|
12866
12852
|
constructor(e) {
|
|
12867
12853
|
this.node = e;
|
|
12868
12854
|
}
|
|
@@ -12891,7 +12877,7 @@ class Ft {
|
|
|
12891
12877
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
12892
12878
|
}
|
|
12893
12879
|
}
|
|
12894
|
-
var Ji = /* @__PURE__ */ ((
|
|
12880
|
+
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
12881
|
class ys extends Ft {
|
|
12896
12882
|
constructor(e) {
|
|
12897
12883
|
super(`"${e}"`);
|
|
@@ -12941,7 +12927,7 @@ class Tt {
|
|
|
12941
12927
|
throw new Error(
|
|
12942
12928
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
12943
12929
|
);
|
|
12944
|
-
return new
|
|
12930
|
+
return new Oe(e[0]);
|
|
12945
12931
|
}
|
|
12946
12932
|
getAllWorkflows() {
|
|
12947
12933
|
if (!this.integrationProduct.product)
|
|
@@ -12951,7 +12937,7 @@ class Tt {
|
|
|
12951
12937
|
throw new Error(
|
|
12952
12938
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
12953
12939
|
);
|
|
12954
|
-
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new
|
|
12940
|
+
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new Oe(t));
|
|
12955
12941
|
}
|
|
12956
12942
|
}
|
|
12957
12943
|
const Ti = f`
|
|
@@ -13171,8 +13157,8 @@ const Ti = f`
|
|
|
13171
13157
|
loop
|
|
13172
13158
|
name
|
|
13173
13159
|
}
|
|
13174
|
-
`, Zi = (
|
|
13175
|
-
${
|
|
13160
|
+
`, Zi = (g) => f`
|
|
13161
|
+
${De(g)}
|
|
13176
13162
|
${Et}
|
|
13177
13163
|
${sA}
|
|
13178
13164
|
${Vi}
|
|
@@ -13585,7 +13571,7 @@ const Ti = f`
|
|
|
13585
13571
|
}
|
|
13586
13572
|
}
|
|
13587
13573
|
`, _i = f`
|
|
13588
|
-
${
|
|
13574
|
+
${De(!1)}
|
|
13589
13575
|
query GetWorkflowForTheme($id: String!) {
|
|
13590
13576
|
workflow(id: $id) {
|
|
13591
13577
|
id
|
|
@@ -13618,56 +13604,56 @@ const Ti = f`
|
|
|
13618
13604
|
...TagFields
|
|
13619
13605
|
}
|
|
13620
13606
|
}
|
|
13621
|
-
`, re = async (
|
|
13607
|
+
`, re = async (g) => {
|
|
13622
13608
|
var e;
|
|
13623
|
-
for (const t in
|
|
13624
|
-
const A =
|
|
13609
|
+
for (const t in g.layouts) {
|
|
13610
|
+
const A = g.layouts[t].elements.filter(
|
|
13625
13611
|
(n) => n.type === G.Illustration
|
|
13626
13612
|
);
|
|
13627
13613
|
for (let n = 0; n < A.length; ++n) {
|
|
13628
13614
|
const i = A[n];
|
|
13629
|
-
i.src && i.svg && (i.cachedObjectURL = await
|
|
13615
|
+
i.src && i.svg && (i.cachedObjectURL = await ve(i.svg));
|
|
13630
13616
|
}
|
|
13631
|
-
const a =
|
|
13617
|
+
const a = g.layouts[t].elements.filter((n) => n.type === G.Textbox);
|
|
13632
13618
|
for (let n = 0; n < a.length; ++n) {
|
|
13633
13619
|
const i = a[n];
|
|
13634
13620
|
(e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
|
|
13635
13621
|
}
|
|
13636
13622
|
}
|
|
13637
|
-
}, As = async (
|
|
13623
|
+
}, As = async (g, e) => {
|
|
13638
13624
|
var a;
|
|
13639
13625
|
const t = await x.getShadowGraphqlClient().query({
|
|
13640
13626
|
query: Zi(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
|
|
13641
13627
|
errorPolicy: "all",
|
|
13642
13628
|
fetchPolicy: "no-cache",
|
|
13643
13629
|
variables: {
|
|
13644
|
-
ids:
|
|
13630
|
+
ids: g
|
|
13645
13631
|
}
|
|
13646
13632
|
}), A = t.data.workflows;
|
|
13647
|
-
if (A === void 0 || A.length !==
|
|
13633
|
+
if (A === void 0 || A.length !== g.length)
|
|
13648
13634
|
throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
|
|
13649
13635
|
return A.forEach((n) => {
|
|
13650
13636
|
n.steps.forEach((i) => {
|
|
13651
13637
|
var s, o, r;
|
|
13652
13638
|
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) => {
|
|
13653
13639
|
c.asset && U.cacheAsset(c.asset), c.thumbnail && U.cacheAsset(c.thumbnail), c.material && U.cacheMaterial(c.material);
|
|
13654
|
-
}),
|
|
13640
|
+
}), Qe.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
13655
13641
|
}), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
|
|
13656
13642
|
}), A;
|
|
13657
|
-
}, as = async (
|
|
13658
|
-
const A = (await e).find((a) => a.id ===
|
|
13643
|
+
}, as = async (g, e) => {
|
|
13644
|
+
const A = (await e).find((a) => a.id === g);
|
|
13659
13645
|
if (!A)
|
|
13660
|
-
throw new Error(`Workflow not found: ${
|
|
13646
|
+
throw new Error(`Workflow not found: ${g}`);
|
|
13661
13647
|
return A;
|
|
13662
|
-
}, vA = async (
|
|
13663
|
-
const t =
|
|
13648
|
+
}, vA = async (g, e) => {
|
|
13649
|
+
const t = g.map((s) => Qe.get({ id: s, options: e })), A = g.filter((s, o) => t[o] === void 0);
|
|
13664
13650
|
if (A.length === 0)
|
|
13665
13651
|
return Promise.all(t);
|
|
13666
13652
|
const a = As(A, e), n = A.map(
|
|
13667
|
-
(s) =>
|
|
13653
|
+
(s) => Qe.set({ id: s, options: e }, as(s, a))
|
|
13668
13654
|
), i = t.filter((s) => s !== void 0);
|
|
13669
13655
|
return await Promise.all(i.concat(n));
|
|
13670
|
-
},
|
|
13656
|
+
}, Pe = async (g, e) => (await vA([g], e))[0], ns = (g) => g.sort((e, t) => e.index - t.index).map((e) => ({
|
|
13671
13657
|
id: J(),
|
|
13672
13658
|
panelId: e.name,
|
|
13673
13659
|
name: e.name,
|
|
@@ -13680,8 +13666,8 @@ const Ti = f`
|
|
|
13680
13666
|
previewRegion: e.previewRegion,
|
|
13681
13667
|
useEditableArea: e.useEditableArea,
|
|
13682
13668
|
editableArea: e.editableArea
|
|
13683
|
-
})), tt = (
|
|
13684
|
-
const t =
|
|
13669
|
+
})), tt = (g, e) => {
|
|
13670
|
+
const t = g.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
13685
13671
|
return A ? Object.values(A.layouts).map((a) => a.layout) : ns(e.panels);
|
|
13686
13672
|
};
|
|
13687
13673
|
class is {
|
|
@@ -13695,14 +13681,14 @@ class is {
|
|
|
13695
13681
|
} catch (A) {
|
|
13696
13682
|
throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
|
|
13697
13683
|
}
|
|
13698
|
-
}, 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.
|
|
13684
|
+
}, 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.10.0"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
|
|
13699
13685
|
}
|
|
13700
13686
|
/** @deprecated Use `configure` instead */
|
|
13701
13687
|
configureUrls(e, t, A) {
|
|
13702
13688
|
q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
|
|
13703
13689
|
}
|
|
13704
13690
|
configure(e) {
|
|
13705
|
-
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken &&
|
|
13691
|
+
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && la(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
|
|
13706
13692
|
}
|
|
13707
13693
|
/**
|
|
13708
13694
|
* @returns The asset manager allows for common operations related to assets
|
|
@@ -13717,7 +13703,7 @@ class is {
|
|
|
13717
13703
|
return this.currencyCode;
|
|
13718
13704
|
}
|
|
13719
13705
|
getFlowService() {
|
|
13720
|
-
if (!
|
|
13706
|
+
if (!ga())
|
|
13721
13707
|
throw new Error("Application key required to use Flow Service.");
|
|
13722
13708
|
return new Gi();
|
|
13723
13709
|
}
|
|
@@ -13751,15 +13737,15 @@ class is {
|
|
|
13751
13737
|
var a, n;
|
|
13752
13738
|
const t = P.getMap("bundleOwnerIds");
|
|
13753
13739
|
if (t != null && t.has(e))
|
|
13754
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
13740
|
+
return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
|
|
13755
13741
|
const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
13756
13742
|
if (A.has(e)) {
|
|
13757
13743
|
const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
13758
13744
|
if (o && await this.authenticateCustomerId(o)) {
|
|
13759
13745
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
13760
13746
|
(B) => {
|
|
13761
|
-
var
|
|
13762
|
-
return ((
|
|
13747
|
+
var l;
|
|
13748
|
+
return ((l = B.bundle) == null ? void 0 : l.id) === e;
|
|
13763
13749
|
}
|
|
13764
13750
|
);
|
|
13765
13751
|
if (c)
|
|
@@ -13782,7 +13768,7 @@ class is {
|
|
|
13782
13768
|
* @throws An error if the transaction is not found.
|
|
13783
13769
|
*/
|
|
13784
13770
|
async authenticateTransactionFromLocalStorage(e) {
|
|
13785
|
-
var c, B,
|
|
13771
|
+
var c, B, l, d, C, w;
|
|
13786
13772
|
const t = x.getShadowGraphqlClient(), A = await t.query({
|
|
13787
13773
|
query: $i,
|
|
13788
13774
|
errorPolicy: "all",
|
|
@@ -13800,20 +13786,20 @@ class is {
|
|
|
13800
13786
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
13801
13787
|
const i = P.getMap("transactionOwnerIds");
|
|
13802
13788
|
if (i != null && i.has(e))
|
|
13803
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
13789
|
+
return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
|
|
13804
13790
|
const s = P.getMap("transactionCustomerIds");
|
|
13805
13791
|
if (s != null && s.has(e)) {
|
|
13806
13792
|
const h = s.get(e);
|
|
13807
13793
|
if (h && await this.authenticateCustomerId(h)) {
|
|
13808
|
-
const E = ((d = (
|
|
13794
|
+
const E = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
13809
13795
|
(D) => {
|
|
13810
|
-
var
|
|
13811
|
-
return (p = (
|
|
13796
|
+
var m, p;
|
|
13797
|
+
return (p = (m = D.bundle) == null ? void 0 : m.transactions) == null ? void 0 : p.some((Q) => Q.id === e);
|
|
13812
13798
|
}
|
|
13813
13799
|
)) || ((w = (C = this.customer) == null ? void 0 : C.stakeholders) == null ? void 0 : w.find(
|
|
13814
13800
|
(D) => {
|
|
13815
|
-
var
|
|
13816
|
-
return ((
|
|
13801
|
+
var m;
|
|
13802
|
+
return ((m = D.transaction) == null ? void 0 : m.id) === e;
|
|
13817
13803
|
}
|
|
13818
13804
|
));
|
|
13819
13805
|
if (E)
|
|
@@ -13970,7 +13956,7 @@ class is {
|
|
|
13970
13956
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
13971
13957
|
*/
|
|
13972
13958
|
async getNewBundle(e, t, A) {
|
|
13973
|
-
var r, c, B,
|
|
13959
|
+
var r, c, B, l, d;
|
|
13974
13960
|
const n = (B = (await x.getShadowGraphqlClient().mutate({
|
|
13975
13961
|
mutation: Ci(((c = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : c.eagerFetchProducts) || !1),
|
|
13976
13962
|
variables: {
|
|
@@ -13988,7 +13974,7 @@ class is {
|
|
|
13988
13974
|
const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
13989
13975
|
s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
|
|
13990
13976
|
const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
|
|
13991
|
-
eagerFetchProducts: (d = (
|
|
13977
|
+
eagerFetchProducts: (d = (l = A == null ? void 0 : A.graphql) == null ? void 0 : l.productCollection) == null ? void 0 : d.eagerFetchProducts
|
|
13992
13978
|
});
|
|
13993
13979
|
return await o.getInitializationPromise(), o;
|
|
13994
13980
|
}
|
|
@@ -14000,15 +13986,15 @@ class is {
|
|
|
14000
13986
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
14001
13987
|
*/
|
|
14002
13988
|
async getExistingBundle(e, t, A, a) {
|
|
14003
|
-
var h, u, E, D,
|
|
13989
|
+
var h, u, E, D, m, p, Q, I, F, y, Y;
|
|
14004
13990
|
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 = {};
|
|
14005
|
-
r && !
|
|
13991
|
+
r && !Te(r) && (c.Authorization = `Bearer ${r}`);
|
|
14006
13992
|
const B = {
|
|
14007
13993
|
bundleOwnerId: i,
|
|
14008
13994
|
...c,
|
|
14009
13995
|
...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
|
|
14010
|
-
},
|
|
14011
|
-
query:
|
|
13996
|
+
}, l = await x.getShadowGraphqlClient().query({
|
|
13997
|
+
query: gi(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
|
|
14012
13998
|
variables: {
|
|
14013
13999
|
id: e
|
|
14014
14000
|
},
|
|
@@ -14017,9 +14003,9 @@ class is {
|
|
|
14017
14003
|
headers: B
|
|
14018
14004
|
}
|
|
14019
14005
|
});
|
|
14020
|
-
if (!((
|
|
14006
|
+
if (!((m = l.data) != null && m.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((Q = l.data) != null && Q.bundles[0]))
|
|
14021
14007
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
14022
|
-
const d = (I =
|
|
14008
|
+
const d = (I = l.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14023
14009
|
C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
|
|
14024
14010
|
const w = new et(this, d, t, A, i, {
|
|
14025
14011
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
|
|
@@ -14034,15 +14020,15 @@ class is {
|
|
|
14034
14020
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
14035
14021
|
*/
|
|
14036
14022
|
async duplicateBundle(e, t, A, a) {
|
|
14037
|
-
var h, u, E, D,
|
|
14023
|
+
var h, u, E, D, m, p, Q, I;
|
|
14038
14024
|
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 = {};
|
|
14039
|
-
o && !
|
|
14025
|
+
o && !Te(o) && (r.Authorization = `Bearer ${o}`);
|
|
14040
14026
|
const c = {
|
|
14041
14027
|
bundleOwnerId: n,
|
|
14042
14028
|
...r,
|
|
14043
14029
|
...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
|
|
14044
|
-
},
|
|
14045
|
-
mutation: wi(((
|
|
14030
|
+
}, l = (p = (await x.getShadowGraphqlClient().mutate({
|
|
14031
|
+
mutation: wi(((m = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : m.eagerFetchProducts) || !1),
|
|
14046
14032
|
variables: {
|
|
14047
14033
|
id: e,
|
|
14048
14034
|
template: t,
|
|
@@ -14055,14 +14041,14 @@ class is {
|
|
|
14055
14041
|
},
|
|
14056
14042
|
fetchPolicy: "no-cache"
|
|
14057
14043
|
})).data) == null ? void 0 : p.bundleDuplicate;
|
|
14058
|
-
if (!(
|
|
14044
|
+
if (!(l != null && l.id))
|
|
14059
14045
|
throw new Error("Unable to duplicate bundle");
|
|
14060
14046
|
const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14061
|
-
d.set(
|
|
14047
|
+
d.set(l.id, l.partner.id), P.setMap("bundlePartnerIds", d);
|
|
14062
14048
|
const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14063
|
-
C.set(
|
|
14064
|
-
const w = new et(this,
|
|
14065
|
-
eagerFetchProducts: (I = (
|
|
14049
|
+
C.set(l.id, l.bundleOwnerId), P.setMap("bundleOwnerIds", C);
|
|
14050
|
+
const w = new et(this, l, void 0, void 0, l.bundleOwnerId, {
|
|
14051
|
+
eagerFetchProducts: (I = (Q = a == null ? void 0 : a.graphql) == null ? void 0 : Q.productCollection) == null ? void 0 : I.eagerFetchProducts
|
|
14066
14052
|
});
|
|
14067
14053
|
return await w.getInitializationPromise(), w;
|
|
14068
14054
|
}
|
|
@@ -14115,15 +14101,15 @@ class is {
|
|
|
14115
14101
|
* @returns A workflow experience configured as requested.
|
|
14116
14102
|
*/
|
|
14117
14103
|
async getWorkflowExperience(e, t, A, a) {
|
|
14118
|
-
var
|
|
14104
|
+
var l, d, C, w, h;
|
|
14119
14105
|
if (!a)
|
|
14120
14106
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
14121
14107
|
const n = async () => {
|
|
14122
|
-
var E, D,
|
|
14108
|
+
var E, D, m;
|
|
14123
14109
|
const u = x.getShadowGraphqlClient();
|
|
14124
14110
|
if (a.type === "transaction") {
|
|
14125
|
-
const { transactionId: p, readOnly:
|
|
14126
|
-
query:
|
|
14111
|
+
const { transactionId: p, readOnly: Q } = a, I = await u.query({
|
|
14112
|
+
query: fe,
|
|
14127
14113
|
variables: {
|
|
14128
14114
|
ids: [p]
|
|
14129
14115
|
},
|
|
@@ -14135,12 +14121,12 @@ class is {
|
|
|
14135
14121
|
const F = (D = I.data) == null ? void 0 : D.transactions[0];
|
|
14136
14122
|
if (!F.workflowId)
|
|
14137
14123
|
throw new H("Existing transaction has no workflow ID.");
|
|
14138
|
-
const y = await
|
|
14124
|
+
const y = await Pe(F.workflowId);
|
|
14139
14125
|
if (!F.product)
|
|
14140
14126
|
throw new H("Failed to load transaction, product not available.");
|
|
14141
|
-
!this.activeIntegration && ((
|
|
14127
|
+
!this.activeIntegration && ((m = F.integrationProduct) != null && m.integration) && (this.activeIntegration = Promise.resolve(F.integrationProduct.integration));
|
|
14142
14128
|
const Y = await this.getStepTags(y);
|
|
14143
|
-
return { transaction: F, workflow: y, stepTags: Y, readOnly:
|
|
14129
|
+
return { transaction: F, workflow: y, stepTags: Y, readOnly: Q };
|
|
14144
14130
|
}
|
|
14145
14131
|
if (a.type === "integration" || a.type === "external") {
|
|
14146
14132
|
const p = async () => {
|
|
@@ -14168,12 +14154,12 @@ class is {
|
|
|
14168
14154
|
if (!S.product)
|
|
14169
14155
|
throw new H("Failed to create transaction, product not available.");
|
|
14170
14156
|
return S;
|
|
14171
|
-
},
|
|
14157
|
+
}, Q = Pe(a.workflowId, a == null ? void 0 : a.graphql), [I, F] = await Promise.all([p(), Q]), y = await this.getStepTags(F);
|
|
14172
14158
|
return { transaction: I, workflow: F, stepTags: y };
|
|
14173
14159
|
}
|
|
14174
14160
|
throw new H("No workflow ID provided.");
|
|
14175
14161
|
}, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
|
|
14176
|
-
this.currencyCode = (
|
|
14162
|
+
this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
|
|
14177
14163
|
const c = {
|
|
14178
14164
|
product: i.product,
|
|
14179
14165
|
transaction: i,
|
|
@@ -14200,7 +14186,7 @@ class is {
|
|
|
14200
14186
|
c.transaction,
|
|
14201
14187
|
c.workflow
|
|
14202
14188
|
);
|
|
14203
|
-
if (c.renderableContextService = new
|
|
14189
|
+
if (c.renderableContextService = new Se(
|
|
14204
14190
|
c.layouts
|
|
14205
14191
|
), a.previewService ? (c.previewService = a.previewService, (C = c.product) != null && C.modelUrl && (c.modelContainer = c.previewService.loadModel({
|
|
14206
14192
|
model: c.product.modelUrl,
|
|
@@ -14214,7 +14200,7 @@ class is {
|
|
|
14214
14200
|
} else
|
|
14215
14201
|
c.isReloadedTransaction = !0;
|
|
14216
14202
|
this.initialized = !0, this.experienceOptions = c;
|
|
14217
|
-
const B = new
|
|
14203
|
+
const B = new Me(this, c);
|
|
14218
14204
|
return await B.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await B.attachCustomerDetails({ email: this.customer.emailAddress }), B;
|
|
14219
14205
|
}
|
|
14220
14206
|
/**
|
|
@@ -14231,10 +14217,10 @@ class is {
|
|
|
14231
14217
|
var y, Y, N;
|
|
14232
14218
|
if (p.length === 0)
|
|
14233
14219
|
return [];
|
|
14234
|
-
const
|
|
14235
|
-
query:
|
|
14220
|
+
const Q = p.map((S) => S.option.transactionId), I = await A.query({
|
|
14221
|
+
query: fe,
|
|
14236
14222
|
variables: {
|
|
14237
|
-
ids:
|
|
14223
|
+
ids: Q
|
|
14238
14224
|
},
|
|
14239
14225
|
errorPolicy: "all",
|
|
14240
14226
|
fetchPolicy: "no-cache"
|
|
@@ -14256,7 +14242,7 @@ class is {
|
|
|
14256
14242
|
var F, y, Y;
|
|
14257
14243
|
if (p.length === 0)
|
|
14258
14244
|
return [];
|
|
14259
|
-
const
|
|
14245
|
+
const Q = await A.mutate({
|
|
14260
14246
|
mutation: Ha,
|
|
14261
14247
|
variables: {
|
|
14262
14248
|
inputs: p.map((N) => ({
|
|
@@ -14272,9 +14258,9 @@ class is {
|
|
|
14272
14258
|
},
|
|
14273
14259
|
errorPolicy: "all",
|
|
14274
14260
|
fetchPolicy: "no-cache"
|
|
14275
|
-
}), I = (F =
|
|
14261
|
+
}), I = (F = Q.data) == null ? void 0 : F.transactionCreateMany;
|
|
14276
14262
|
if (!I || I.length === 0) {
|
|
14277
|
-
const N = ((Y = (y =
|
|
14263
|
+
const N = ((Y = (y = Q.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
14278
14264
|
throw new H(`Failed to create transactions: ${N}`);
|
|
14279
14265
|
}
|
|
14280
14266
|
return I.map((N, S) => ({
|
|
@@ -14283,18 +14269,18 @@ class is {
|
|
|
14283
14269
|
readOnly: !1,
|
|
14284
14270
|
index: p[S].index
|
|
14285
14271
|
}));
|
|
14286
|
-
}, i = e.map((p,
|
|
14272
|
+
}, i = e.map((p, Q) => ({ option: p, index: Q })), s = i.filter((p) => p.option.type === "transaction"), o = i.filter(
|
|
14287
14273
|
(p) => p.option.type === "integration" || p.option.type === "external"
|
|
14288
14274
|
), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
|
|
14289
14275
|
...r.map(a),
|
|
14290
14276
|
...c.map(n)
|
|
14291
|
-
])).flat(),
|
|
14277
|
+
])).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) => {
|
|
14292
14278
|
var W;
|
|
14293
|
-
const { transaction:
|
|
14294
|
-
!w.get(
|
|
14295
|
-
const T = w.get(
|
|
14296
|
-
product:
|
|
14297
|
-
transaction:
|
|
14279
|
+
const { transaction: Q, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
|
|
14280
|
+
!w.get(Q.id) && Q.transactionOwnerId && w.set(Q.id, Q.transactionOwnerId);
|
|
14281
|
+
const T = w.get(Q.id) || void 0, R = {
|
|
14282
|
+
product: Q.product,
|
|
14283
|
+
transaction: Q,
|
|
14298
14284
|
stepTags: N,
|
|
14299
14285
|
layouts: [],
|
|
14300
14286
|
singleVariantsRenderable: (W = S == null ? void 0 : S.workflowConfiguration) == null ? void 0 : W.singleVariantsRenderable,
|
|
@@ -14305,8 +14291,8 @@ class is {
|
|
|
14305
14291
|
workflow: Y,
|
|
14306
14292
|
isReloadedTransaction: S.type === "transaction"
|
|
14307
14293
|
};
|
|
14308
|
-
if (S.type === "transaction" &&
|
|
14309
|
-
const O = JSON.parse(
|
|
14294
|
+
if (S.type === "transaction" && Q.workflowState) {
|
|
14295
|
+
const O = JSON.parse(Q.workflowState);
|
|
14310
14296
|
R.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), R.reloadedState = O;
|
|
14311
14297
|
} else if (!F && S.workflowState) {
|
|
14312
14298
|
const O = JSON.parse(S.workflowState);
|
|
@@ -14316,16 +14302,16 @@ class is {
|
|
|
14316
14302
|
R.transaction,
|
|
14317
14303
|
R.workflow
|
|
14318
14304
|
);
|
|
14319
|
-
return R.renderableContextService = new
|
|
14305
|
+
return R.renderableContextService = new Se(
|
|
14320
14306
|
R.layouts
|
|
14321
14307
|
), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: y, options: S };
|
|
14322
14308
|
}), u = await Promise.all(h);
|
|
14323
14309
|
P.setMap("transactionOwnerIds", w);
|
|
14324
|
-
const D = u.sort((p,
|
|
14325
|
-
const { experienceOptions:
|
|
14310
|
+
const D = u.sort((p, Q) => p.index - Q.index).map(async (p) => {
|
|
14311
|
+
const { experienceOptions: Q, options: I } = p, F = new Me(this, Q);
|
|
14326
14312
|
return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
14327
|
-
}),
|
|
14328
|
-
return
|
|
14313
|
+
}), m = await Promise.all(D);
|
|
14314
|
+
return m.forEach((p) => p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), m;
|
|
14329
14315
|
}
|
|
14330
14316
|
/**
|
|
14331
14317
|
* Initialize the client from an integration product.
|
|
@@ -14378,19 +14364,19 @@ class is {
|
|
|
14378
14364
|
throw new H("No transaction ID provided.");
|
|
14379
14365
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
14380
14366
|
var d, C;
|
|
14381
|
-
const
|
|
14382
|
-
query:
|
|
14367
|
+
const l = (d = (await A.query({
|
|
14368
|
+
query: fe,
|
|
14383
14369
|
variables: { ids: [e] },
|
|
14384
14370
|
fetchPolicy: "no-cache",
|
|
14385
14371
|
errorPolicy: "all"
|
|
14386
14372
|
})).data) == null ? void 0 : d.transactions[0];
|
|
14387
|
-
if (!
|
|
14373
|
+
if (!l)
|
|
14388
14374
|
throw new H("Failed to read transaction.");
|
|
14389
|
-
if (!
|
|
14375
|
+
if (!l.product)
|
|
14390
14376
|
throw new H("Failed to load transaction, product not available.");
|
|
14391
|
-
this.currencyCode = (C =
|
|
14392
|
-
product:
|
|
14393
|
-
transaction:
|
|
14377
|
+
this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
|
|
14378
|
+
product: l.product,
|
|
14379
|
+
transaction: l,
|
|
14394
14380
|
layouts: [],
|
|
14395
14381
|
stateMutationFunc: async () => {
|
|
14396
14382
|
throw new b("State mutation is forbidden in read only mode!");
|
|
@@ -14402,20 +14388,20 @@ class is {
|
|
|
14402
14388
|
return await a();
|
|
14403
14389
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
14404
14390
|
if (i) {
|
|
14405
|
-
const
|
|
14406
|
-
query:
|
|
14391
|
+
const l = (s = (await A.query({
|
|
14392
|
+
query: fe,
|
|
14407
14393
|
variables: {
|
|
14408
14394
|
ids: [e]
|
|
14409
14395
|
},
|
|
14410
14396
|
errorPolicy: "all"
|
|
14411
14397
|
})).data) == null ? void 0 : s.transactions[0];
|
|
14412
|
-
if (!
|
|
14398
|
+
if (!l)
|
|
14413
14399
|
throw new H("Failed to read transaction.");
|
|
14414
|
-
if (!
|
|
14400
|
+
if (!l.product)
|
|
14415
14401
|
throw new H("Failed to load transaction, product not available.");
|
|
14416
|
-
this.currencyCode = (o =
|
|
14417
|
-
product:
|
|
14418
|
-
transaction:
|
|
14402
|
+
this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
|
|
14403
|
+
product: l.product,
|
|
14404
|
+
transaction: l,
|
|
14419
14405
|
layouts: [],
|
|
14420
14406
|
stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
|
|
14421
14407
|
readOnly: t
|
|
@@ -14423,22 +14409,22 @@ class is {
|
|
|
14423
14409
|
return;
|
|
14424
14410
|
}
|
|
14425
14411
|
try {
|
|
14426
|
-
const
|
|
14412
|
+
const l = (r = (await A.mutate({
|
|
14427
14413
|
mutation: ka,
|
|
14428
14414
|
variables: { id: e },
|
|
14429
14415
|
errorPolicy: "all"
|
|
14430
14416
|
})).data) == null ? void 0 : r.transactionClaim;
|
|
14431
|
-
if (!
|
|
14417
|
+
if (!l)
|
|
14432
14418
|
throw new H("Failed to read transaction.");
|
|
14433
|
-
if (!
|
|
14419
|
+
if (!l.product)
|
|
14434
14420
|
throw new H("Failed to load transaction, product not available.");
|
|
14435
|
-
this.currencyCode = (c =
|
|
14436
|
-
product:
|
|
14437
|
-
transaction:
|
|
14421
|
+
this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), P.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
14422
|
+
product: l.product,
|
|
14423
|
+
transaction: l,
|
|
14438
14424
|
layouts: [],
|
|
14439
14425
|
stateMutationFunc: async (d) => this.updateTransactionState({
|
|
14440
14426
|
...d,
|
|
14441
|
-
context: { transactionOwnerId:
|
|
14427
|
+
context: { transactionOwnerId: l.transactionOwnerId }
|
|
14442
14428
|
}),
|
|
14443
14429
|
readOnly: t
|
|
14444
14430
|
}, this.initialized = !0;
|
|
@@ -14454,16 +14440,16 @@ class is {
|
|
|
14454
14440
|
if (!this.initialized || !this.experienceOptions)
|
|
14455
14441
|
throw new H("Cannot launch experience: Not initialized.");
|
|
14456
14442
|
if (this.experienceOptions.transaction.workflowId) {
|
|
14457
|
-
const o = await
|
|
14443
|
+
const o = await Pe(this.experienceOptions.transaction.workflowId);
|
|
14458
14444
|
if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
|
|
14459
14445
|
const c = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
14460
14446
|
this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await se(c), await re(c), this.experienceOptions.reloadedState = c;
|
|
14461
14447
|
}
|
|
14462
|
-
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new
|
|
14448
|
+
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
|
|
14463
14449
|
model: this.experienceOptions.product.modelUrl,
|
|
14464
14450
|
contextService: this.experienceOptions.renderableContextService
|
|
14465
14451
|
}));
|
|
14466
|
-
const r = new
|
|
14452
|
+
const r = new Me(this, this.experienceOptions);
|
|
14467
14453
|
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
14468
14454
|
}
|
|
14469
14455
|
if (e) {
|
|
@@ -14476,7 +14462,7 @@ class is {
|
|
|
14476
14462
|
context: {
|
|
14477
14463
|
transactionOwnerId: r
|
|
14478
14464
|
}
|
|
14479
|
-
}), B =
|
|
14465
|
+
}), B = Pe(e);
|
|
14480
14466
|
if (await Promise.all([c, B]), this.experienceOptions.workflow = await B, t) {
|
|
14481
14467
|
const d = JSON.parse(t);
|
|
14482
14468
|
this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await se(d), await re(d), this.experienceOptions.reloadedState = d;
|
|
@@ -14485,12 +14471,12 @@ class is {
|
|
|
14485
14471
|
this.experienceOptions.transaction,
|
|
14486
14472
|
this.experienceOptions.workflow
|
|
14487
14473
|
);
|
|
14488
|
-
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new
|
|
14474
|
+
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
|
|
14489
14475
|
model: this.experienceOptions.product.modelUrl,
|
|
14490
14476
|
contextService: this.experienceOptions.renderableContextService
|
|
14491
14477
|
}));
|
|
14492
|
-
const
|
|
14493
|
-
return await
|
|
14478
|
+
const l = new Me(this, this.experienceOptions);
|
|
14479
|
+
return await l.getWorkflowManager().getInitializationPromise(), l;
|
|
14494
14480
|
}
|
|
14495
14481
|
throw new H("No workflow ID provided.");
|
|
14496
14482
|
}
|
|
@@ -14726,7 +14712,7 @@ class Ss {
|
|
|
14726
14712
|
return [];
|
|
14727
14713
|
}
|
|
14728
14714
|
}
|
|
14729
|
-
var ss = /* @__PURE__ */ ((
|
|
14715
|
+
var ss = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(ss || {});
|
|
14730
14716
|
class os extends X {
|
|
14731
14717
|
constructor(e, t, A) {
|
|
14732
14718
|
var a;
|
|
@@ -14823,7 +14809,7 @@ class os extends X {
|
|
|
14823
14809
|
}
|
|
14824
14810
|
async getOriginalImageColors() {
|
|
14825
14811
|
const e = this.getImageData();
|
|
14826
|
-
return e != null && e.svg ? (await
|
|
14812
|
+
return e != null && e.svg ? (await Le(e.svg)).colors : void 0;
|
|
14827
14813
|
}
|
|
14828
14814
|
getMaxAllowedColors() {
|
|
14829
14815
|
return this.step.data.maxColors;
|
|
@@ -14919,7 +14905,7 @@ export {
|
|
|
14919
14905
|
Js as DeleteElementCommand,
|
|
14920
14906
|
kn as DigitalContentStepHandle,
|
|
14921
14907
|
Mi as FileUploadGlobalPropertyHandle,
|
|
14922
|
-
|
|
14908
|
+
Ye as FlowExecutionNodeResult,
|
|
14923
14909
|
bi as FlowExecutionResult,
|
|
14924
14910
|
Gi as FlowService,
|
|
14925
14911
|
Ts as FontAlignmentCommand,
|
|
@@ -14932,7 +14918,7 @@ export {
|
|
|
14932
14918
|
It as GlobalPropertyHandle,
|
|
14933
14919
|
Ks as GroupCommand,
|
|
14934
14920
|
Sn as IllustrationStepHandle,
|
|
14935
|
-
|
|
14921
|
+
Ve as InformationMessageType,
|
|
14936
14922
|
Hn as InformationStepHandle,
|
|
14937
14923
|
Tt as IntegrationProduct,
|
|
14938
14924
|
Pa as IntegrationType,
|
|
@@ -14940,7 +14926,7 @@ export {
|
|
|
14940
14926
|
Vs as LayoutElementType,
|
|
14941
14927
|
z as LayoutNotFoundError,
|
|
14942
14928
|
Yn as MaterialStepHandle,
|
|
14943
|
-
|
|
14929
|
+
Ue as MisconfigurationError,
|
|
14944
14930
|
Ss as MockWorkflowManager,
|
|
14945
14931
|
Pn as ModelStepHandle,
|
|
14946
14932
|
Un as ModuleStepHandle,
|
|
@@ -14948,13 +14934,13 @@ export {
|
|
|
14948
14934
|
NA as ObjectInput,
|
|
14949
14935
|
Ji as ObjectInputType,
|
|
14950
14936
|
xA as OptionGlobalPropertyHandle,
|
|
14951
|
-
|
|
14937
|
+
ke as OptionNotFoundError,
|
|
14952
14938
|
he as ParseError,
|
|
14953
14939
|
xn as PictureStepHandle,
|
|
14954
14940
|
xa as ProductCameraRig,
|
|
14955
14941
|
Ri as ProductCollection,
|
|
14956
|
-
|
|
14957
|
-
|
|
14942
|
+
Oe as ProductWorkflow,
|
|
14943
|
+
Qe as PromiseCache,
|
|
14958
14944
|
dA as PromiseQueue,
|
|
14959
14945
|
Nn as QuestionStepHandle,
|
|
14960
14946
|
BA as QueueablePromise,
|
|
@@ -14964,7 +14950,7 @@ export {
|
|
|
14964
14950
|
Zs as SendBackwardsCommand,
|
|
14965
14951
|
vn as ShapeStepHandle,
|
|
14966
14952
|
is as SpiffCommerceClient,
|
|
14967
|
-
|
|
14953
|
+
Ge as StakeholderType,
|
|
14968
14954
|
$s as StepAspectType,
|
|
14969
14955
|
X as StepHandle,
|
|
14970
14956
|
_s as StepType,
|
|
@@ -14980,7 +14966,7 @@ export {
|
|
|
14980
14966
|
Ao as UpdateImageSourceCommand,
|
|
14981
14967
|
Z as Variant,
|
|
14982
14968
|
Vn as WorkflowExperienceEventType,
|
|
14983
|
-
|
|
14969
|
+
Me as WorkflowExperienceImpl,
|
|
14984
14970
|
U as assetService,
|
|
14985
14971
|
tn as browserColorToHex,
|
|
14986
14972
|
Ln as createDesign,
|
|
@@ -14997,14 +14983,14 @@ export {
|
|
|
14997
14983
|
ro as generateSVGWithUnknownColors,
|
|
14998
14984
|
Fs as generateStateFromDesignInputSteps,
|
|
14999
14985
|
co as getAttributesFromArrayBuffer,
|
|
15000
|
-
|
|
14986
|
+
go as getAxisAlignedBoundingBox,
|
|
15001
14987
|
Wa as getBoundedOffsets,
|
|
15002
|
-
|
|
14988
|
+
lo as getFrameData,
|
|
15003
14989
|
Bo as getSvgElement,
|
|
15004
|
-
|
|
14990
|
+
Pe as getWorkflow,
|
|
15005
14991
|
vA as getWorkflows,
|
|
15006
14992
|
x as graphQlManager,
|
|
15007
|
-
|
|
14993
|
+
Ne as illustrationStepService,
|
|
15008
14994
|
Co as loadFont,
|
|
15009
14995
|
Ds as matchHexToPms,
|
|
15010
14996
|
hA as materialStepService,
|
|
@@ -15013,20 +14999,20 @@ export {
|
|
|
15013
14999
|
V as optionService,
|
|
15014
15000
|
wo as patternImageDataCache,
|
|
15015
15001
|
P as persistenceService,
|
|
15016
|
-
|
|
15002
|
+
QA as pictureStepService,
|
|
15017
15003
|
ps as pmsToRgb,
|
|
15018
|
-
|
|
15004
|
+
mA as questionStepService,
|
|
15019
15005
|
ho as registerFetchImplementation,
|
|
15020
15006
|
Eo as registerWindowImplementation,
|
|
15021
15007
|
uo as rehydrateSerializedLayout,
|
|
15022
15008
|
$a as rgbToPms,
|
|
15023
|
-
|
|
15024
|
-
|
|
15009
|
+
la as setBearerAuthenticationToken,
|
|
15010
|
+
Qo as setCanvasModule,
|
|
15025
15011
|
Ee as shapeStepService,
|
|
15026
15012
|
qa as shortenUrl,
|
|
15027
15013
|
q as spiffCoreConfiguration,
|
|
15028
15014
|
fs as stepAspectValuesToDesignInputSteps,
|
|
15029
|
-
|
|
15015
|
+
mo as svgToDataUrl,
|
|
15030
15016
|
j as textStepService,
|
|
15031
15017
|
Bn as toast
|
|
15032
15018
|
};
|