@spiffcommerce/core 23.0.1 → 23.0.3
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.js +763 -747
- package/dist/index.umd.cjs +25 -25
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { createHttpLink as
|
|
2
|
-
import { fetch as
|
|
3
|
-
import { AspectType as Ns, AssetType as vs, BringForwardCommand as Rs, BringToBackCommand as Hs, BringToFrontCommand as ks, CanvasCommand as Us, CommandContext as Gs, CreateElementCommand as bs, CreateLayoutCommand as Js, DeleteElementCommand as Ts, FontAlignmentCommand as Os, FontColorCommand as Ls, FontSizeCommand as zs, FontSourceCommand as Ks, GroupCommand as js, LayoutElementFactory as Vs, LayoutElementType as Ws, MoveCommand as Xs, ResizeCommand as qs, RotateCommand as Zs, SendBackwardsCommand as $s, StepAspectType as _s, StepType as eo, TextChangeCommand as to, UnitOfMeasurement as Ao, UpdateImageSourceCommand as ao, dataUrlFromExternalUrl as no, determineCorrectFontSizeAndLines as io, findElement as so, frameDataCache as oo, generate as ro, generateSVGWithUnknownColors as co, getAttributesFromArrayBuffer as
|
|
1
|
+
import { createHttpLink as vA, InMemoryCache as RA, ApolloClient as HA, from as kA, gql as f } from "@apollo/client/core";
|
|
2
|
+
import { fetch as lt, getAttributesFromArrayBuffer as Ot, AssetType as At, StepType as M, getFrameData as gt, frameDataCache as UA, modifySVGColors as GA, svgToDataUrl as bA, GroupCommand as k, UpdateFramePattern as JA, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as Bt, LayoutElementType as G, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as Le, svgObjectURL as Re, fetchAsString as _, DeleteElementCommand as ne, generateDefaultRectangleFrameSvg as yt, GetSVGDimensions as OA, patternImageDataCache as Mt, fetchAsArrayBuffer as LA, findElement as He, modifySVGWithElementProperties as zA, IllustrationColorCommand as at, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as nt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Xe, applyTextTransformations as it, determineCorrectFontSizeAndLines as Ne, FontSourceCommand as St, loadFont as dt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as fe, _loadFontExternalDataURL as Ct, UpdateWorkflowStateCommand as Yt, CommandContext as $A, createCanvas as ke, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as Pt, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as ze, domParser as Wt, sanitizeSvgTree as Xt, traverse as ta, xmlSerializer as qt, CreateLayoutCommand as Aa, AspectType as $, rehydrateSerializedLayout as se } from "@spiffcommerce/papyrus";
|
|
3
|
+
import { AspectType as Ns, AssetType as vs, BringForwardCommand as Rs, BringToBackCommand as Hs, BringToFrontCommand as ks, CanvasCommand as Us, CommandContext as Gs, CreateElementCommand as bs, CreateLayoutCommand as Js, DeleteElementCommand as Ts, FontAlignmentCommand as Os, FontColorCommand as Ls, FontSizeCommand as zs, FontSourceCommand as Ks, GroupCommand as js, LayoutElementFactory as Vs, LayoutElementType as Ws, MoveCommand as Xs, ResizeCommand as qs, RotateCommand as Zs, SendBackwardsCommand as $s, StepAspectType as _s, StepType as eo, TextChangeCommand as to, UnitOfMeasurement as Ao, UpdateImageSourceCommand as ao, dataUrlFromExternalUrl as no, determineCorrectFontSizeAndLines as io, findElement as so, frameDataCache as oo, generate as ro, generateSVGWithUnknownColors as co, getAttributesFromArrayBuffer as lo, getAxisAlignedBoundingBox as go, getFrameData as Bo, getSvgElement as Co, loadFont as wo, patternImageDataCache as ho, registerFetchImplementation as Eo, registerWindowImplementation as uo, rehydrateSerializedLayout as mo, setCanvasModule as Qo, svgToDataUrl as po } 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
|
-
import { Pith as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { toString as
|
|
6
|
+
import { Pith as Zt } from "pith";
|
|
7
|
+
import $t from "lodash.debounce";
|
|
8
|
+
import _t from "lodash.isequal";
|
|
9
|
+
import le from "lodash.clonedeep";
|
|
10
|
+
import { toString as eA } from "qrcode";
|
|
11
11
|
import ia from "fuse.js";
|
|
12
12
|
import { split as st } from "unicode-default-word-boundary";
|
|
13
13
|
import wt from "svg-path-bbox";
|
|
14
14
|
import xt from "lodash.chunk";
|
|
15
|
-
class
|
|
15
|
+
class tA extends Error {
|
|
16
16
|
constructor(e) {
|
|
17
17
|
super(e), this.name = this.constructor.name;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
class
|
|
20
|
+
class De extends tA {
|
|
21
21
|
constructor(e) {
|
|
22
22
|
super(`ConfigurationError - ${e}`);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
class
|
|
25
|
+
class Ue extends De {
|
|
26
26
|
constructor(e) {
|
|
27
27
|
super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
class z extends
|
|
30
|
+
class z extends De {
|
|
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 De {
|
|
36
36
|
constructor(e) {
|
|
37
37
|
super(`Asset not found for variant: ${e.name}`), this.variant = e;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
class
|
|
40
|
+
class me extends De {
|
|
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 Ge extends De {
|
|
46
46
|
constructor(e, t) {
|
|
47
47
|
super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
class Ke extends
|
|
50
|
+
class Ke extends tA {
|
|
51
51
|
constructor(e) {
|
|
52
52
|
super(`ImplementationError - ${e}`);
|
|
53
53
|
}
|
|
@@ -62,7 +62,7 @@ class he extends Ke {
|
|
|
62
62
|
super(`Parsing Error: ${e}`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
class
|
|
65
|
+
class R extends Ke {
|
|
66
66
|
constructor(e) {
|
|
67
67
|
super(`Client Error: ${e}`);
|
|
68
68
|
}
|
|
@@ -149,29 +149,29 @@ class ra {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
const q = new ra();
|
|
152
|
-
let
|
|
153
|
-
const vt = (
|
|
154
|
-
|
|
152
|
+
let AA;
|
|
153
|
+
const vt = (l) => {
|
|
154
|
+
AA = l;
|
|
155
155
|
};
|
|
156
156
|
let ht;
|
|
157
|
-
const ca = (
|
|
158
|
-
ht =
|
|
159
|
-
},
|
|
160
|
-
let
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
}, Ba = () => new Promise((
|
|
157
|
+
const ca = (l) => {
|
|
158
|
+
ht = l;
|
|
159
|
+
}, la = () => ht;
|
|
160
|
+
let aA;
|
|
161
|
+
const ga = (l) => {
|
|
162
|
+
aA = l;
|
|
163
|
+
}, Ba = () => new Promise((l) => {
|
|
164
164
|
const e = q.getHubUrl(), t = (A) => {
|
|
165
|
-
A.origin === e && (window.removeEventListener("message", t),
|
|
165
|
+
A.origin === e && (window.removeEventListener("message", t), l(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 l = {
|
|
170
170
|
applicationKey: ht,
|
|
171
|
-
customerToken:
|
|
172
|
-
bearer:
|
|
171
|
+
customerToken: AA,
|
|
172
|
+
bearer: aA
|
|
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(), ...l } : l;
|
|
175
175
|
};
|
|
176
176
|
class Ca {
|
|
177
177
|
constructor() {
|
|
@@ -183,11 +183,11 @@ class Ca {
|
|
|
183
183
|
return this.shadowGraphqlClient;
|
|
184
184
|
}
|
|
185
185
|
constructShadowGraphqlClient() {
|
|
186
|
-
const e =
|
|
186
|
+
const e = vA({
|
|
187
187
|
uri: `${q.getServerUrl()}/graphql`,
|
|
188
|
-
fetch:
|
|
188
|
+
fetch: lt
|
|
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, g = 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;
|
|
@@ -200,7 +200,7 @@ class Ca {
|
|
|
200
200
|
}
|
|
201
201
|
} catch {
|
|
202
202
|
}
|
|
203
|
-
return B && (r.Authorization = `Bearer ${B}`),
|
|
203
|
+
return B && (r.Authorization = `Bearer ${B}`), g && (r.partnerId = g), 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 }) => {
|
|
@@ -217,7 +217,7 @@ class Ca {
|
|
|
217
217
|
}
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
|
-
const n = new
|
|
220
|
+
const n = new RA({
|
|
221
221
|
addTypename: !1,
|
|
222
222
|
typePolicies: {
|
|
223
223
|
Transaction: {
|
|
@@ -251,8 +251,8 @@ class Ca {
|
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
});
|
|
254
|
-
return new
|
|
255
|
-
link:
|
|
254
|
+
return new HA({
|
|
255
|
+
link: kA([A, t, e]),
|
|
256
256
|
cache: n,
|
|
257
257
|
name: "Core"
|
|
258
258
|
});
|
|
@@ -265,8 +265,8 @@ const x = new Ca(), wa = f`
|
|
|
265
265
|
value
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
`,
|
|
269
|
-
${
|
|
268
|
+
`, Ie = (l) => f`
|
|
269
|
+
${l && 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
|
+
${l && "...AssetMetadataFields" || ""}
|
|
282
282
|
}
|
|
283
283
|
`, ha = f`
|
|
284
|
-
${
|
|
284
|
+
${Ie(!1)}
|
|
285
285
|
query GetAssets($keys: [String]!) {
|
|
286
286
|
assets(keys: $keys) {
|
|
287
287
|
...AssetFields
|
|
@@ -356,34 +356,34 @@ const x = new Ca(), wa = f`
|
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
358
|
`, ma = f`
|
|
359
|
-
${
|
|
359
|
+
${Ie(!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 (l) => (await x.getShadowGraphqlClient().query({
|
|
366
366
|
query: ha,
|
|
367
367
|
errorPolicy: "all",
|
|
368
368
|
fetchPolicy: "no-cache",
|
|
369
369
|
variables: {
|
|
370
|
-
keys:
|
|
370
|
+
keys: l
|
|
371
371
|
}
|
|
372
|
-
})).data.assets, Qa = async (
|
|
372
|
+
})).data.assets, Qa = async (l) => (await x.getShadowGraphqlClient().query({
|
|
373
373
|
query: Ea,
|
|
374
374
|
errorPolicy: "all",
|
|
375
375
|
fetchPolicy: "no-cache",
|
|
376
376
|
variables: {
|
|
377
|
-
ids:
|
|
377
|
+
ids: l
|
|
378
378
|
}
|
|
379
|
-
})).data.materials, pa = async (
|
|
379
|
+
})).data.materials, pa = async (l, 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: l,
|
|
387
387
|
type: e,
|
|
388
388
|
mimeType: t,
|
|
389
389
|
anonymous: A,
|
|
@@ -562,7 +562,7 @@ class Da {
|
|
|
562
562
|
}
|
|
563
563
|
}
|
|
564
564
|
}
|
|
565
|
-
const de = "persistentAssets",
|
|
565
|
+
const de = "persistentAssets", nA = class te {
|
|
566
566
|
/**
|
|
567
567
|
* Add a new asset to persistence
|
|
568
568
|
* @param asset The asset to add.
|
|
@@ -613,8 +613,8 @@ const de = "persistentAssets", iA = class te {
|
|
|
613
613
|
te.callbacks.forEach((e) => e());
|
|
614
614
|
}
|
|
615
615
|
};
|
|
616
|
-
|
|
617
|
-
let oe =
|
|
616
|
+
nA.callbacks = [];
|
|
617
|
+
let oe = nA;
|
|
618
618
|
const Rt = "bgrmPersistentAssets";
|
|
619
619
|
class K {
|
|
620
620
|
static has(e) {
|
|
@@ -680,7 +680,7 @@ class Ia {
|
|
|
680
680
|
this.disabled = e;
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
|
-
const
|
|
683
|
+
const Qe = new Ia(), iA = f`
|
|
684
684
|
fragment OptionFields on Option {
|
|
685
685
|
id
|
|
686
686
|
name
|
|
@@ -718,21 +718,21 @@ const me = new Ia(), sA = f`
|
|
|
718
718
|
}
|
|
719
719
|
}
|
|
720
720
|
`, fa = f`
|
|
721
|
-
${
|
|
721
|
+
${Ie(!1)}
|
|
722
722
|
${Et}
|
|
723
|
-
${
|
|
723
|
+
${iA}
|
|
724
724
|
query GetOptions($ids: [String]!) {
|
|
725
725
|
options(ids: $ids) {
|
|
726
726
|
...OptionFields
|
|
727
727
|
}
|
|
728
728
|
}
|
|
729
|
-
`, Fa = async (
|
|
729
|
+
`, Fa = async (l) => {
|
|
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: l
|
|
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 (l, e) => (await e).find((A) => A.id === l), Ma = async (l) => {
|
|
745
|
+
const e = l.map((i) => Qe.get({ id: i })), t = l.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,8 +797,8 @@ class Sa {
|
|
|
797
797
|
}
|
|
798
798
|
}
|
|
799
799
|
const V = new Sa();
|
|
800
|
-
var Ya = /* @__PURE__ */ ((
|
|
801
|
-
const
|
|
800
|
+
var Ya = /* @__PURE__ */ ((l) => (l.Hyperlink = "Hyperlink", l.Edit = "Edit", l.Approve = "Approve", l))(Ya || {}), Pa = /* @__PURE__ */ ((l) => (l.Hub = "Hub", l.Shopify = "Shopify", l))(Pa || {}), ut = /* @__PURE__ */ ((l) => (l.BackgroundRemover = "BackgroundRemover", l.ConversionAccelerator = "Conversion Accelerator", l.ProcessBuilder = "ProcessBuilder", l))(ut || {}), xa = /* @__PURE__ */ ((l) => (l[l.Orbit = 0] = "Orbit", l[l.Pan = 1] = "Pan", l))(xa || {}), Na = /* @__PURE__ */ ((l) => (l.Manual = "Manual", l.OnStart = "OnStart", l.OnQuit = "OnQuit", l.OnEnd = "OnEnd", l))(Na || {}), va = /* @__PURE__ */ ((l) => (l.Email = "Email", l.FirstName = "FirstName", l.LastName = "LastName", l.Phone = "Phone", l))(va || {}), be = /* @__PURE__ */ ((l) => (l.Owner = "Owner", l.Approver = "Approver", l.Editor = "Editor", l.Viewer = "Viewer", l))(be || {});
|
|
801
|
+
const sA = f`
|
|
802
802
|
fragment ActiveIntegrationFields on Integration {
|
|
803
803
|
id
|
|
804
804
|
logo
|
|
@@ -816,7 +816,7 @@ const oA = f`
|
|
|
816
816
|
}
|
|
817
817
|
}
|
|
818
818
|
`, Ra = f`
|
|
819
|
-
${
|
|
819
|
+
${sA}
|
|
820
820
|
query GetCurrentIntegration {
|
|
821
821
|
currentIntegration {
|
|
822
822
|
...ActiveIntegrationFields
|
|
@@ -1100,7 +1100,7 @@ const oA = f`
|
|
|
1100
1100
|
}
|
|
1101
1101
|
}
|
|
1102
1102
|
}
|
|
1103
|
-
`,
|
|
1103
|
+
`, oA = f`
|
|
1104
1104
|
fragment StakeholderFields on Stakeholder {
|
|
1105
1105
|
id
|
|
1106
1106
|
type
|
|
@@ -1108,7 +1108,7 @@ const oA = f`
|
|
|
1108
1108
|
authorizationNote
|
|
1109
1109
|
authorizationStatus
|
|
1110
1110
|
}
|
|
1111
|
-
`,
|
|
1111
|
+
`, rA = f`
|
|
1112
1112
|
fragment TransactionShareActionFields on TransactionShareAction {
|
|
1113
1113
|
id
|
|
1114
1114
|
title
|
|
@@ -1117,11 +1117,11 @@ const oA = f`
|
|
|
1117
1117
|
precedence
|
|
1118
1118
|
url
|
|
1119
1119
|
}
|
|
1120
|
-
`,
|
|
1120
|
+
`, Fe = f`
|
|
1121
1121
|
${Be}
|
|
1122
|
-
${rA}
|
|
1123
|
-
${cA}
|
|
1124
1122
|
${oA}
|
|
1123
|
+
${rA}
|
|
1124
|
+
${sA}
|
|
1125
1125
|
query ReadTransactions($ids: [String]!) {
|
|
1126
1126
|
transactions(ids: $ids) {
|
|
1127
1127
|
customLogoLink
|
|
@@ -1323,7 +1323,7 @@ f`
|
|
|
1323
1323
|
}
|
|
1324
1324
|
`;
|
|
1325
1325
|
const Ja = f`
|
|
1326
|
-
${
|
|
1326
|
+
${rA}
|
|
1327
1327
|
query ReadTransactionForShareActions($id: String!) {
|
|
1328
1328
|
transactions(ids: [$id]) {
|
|
1329
1329
|
id
|
|
@@ -1333,7 +1333,7 @@ const Ja = f`
|
|
|
1333
1333
|
}
|
|
1334
1334
|
}
|
|
1335
1335
|
}
|
|
1336
|
-
`,
|
|
1336
|
+
`, cA = f`
|
|
1337
1337
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1338
1338
|
transactions(ids: $ids) {
|
|
1339
1339
|
id
|
|
@@ -1420,7 +1420,7 @@ const Ja = f`
|
|
|
1420
1420
|
}
|
|
1421
1421
|
}
|
|
1422
1422
|
`, La = f`
|
|
1423
|
-
${
|
|
1423
|
+
${oA}
|
|
1424
1424
|
query ReadTransactionForStakeholders($id: String!) {
|
|
1425
1425
|
transactions(ids: [$id]) {
|
|
1426
1426
|
stakeholders {
|
|
@@ -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 (l) => {
|
|
1435
1435
|
const e = [];
|
|
1436
|
-
|
|
1436
|
+
l.introduction && e.push({
|
|
1437
1437
|
name: "Introduction",
|
|
1438
|
-
title:
|
|
1438
|
+
title: l.name,
|
|
1439
1439
|
renderableSteps: [
|
|
1440
1440
|
{
|
|
1441
1441
|
type: M.Introduction,
|
|
1442
1442
|
stepName: "Introduction",
|
|
1443
|
-
stepTitle:
|
|
1444
|
-
helpText:
|
|
1443
|
+
stepTitle: l.name,
|
|
1444
|
+
helpText: l.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 l.steps) {
|
|
1452
|
+
const a = Ka(A.stepName, l.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: l.finalizeStepConfig ? l.finalizeStepConfig.modelAnimation : void 0,
|
|
1482
|
+
lookAtAnimation: l.finalizeStepConfig ? l.finalizeStepConfig.lookAtAnimation : void 0
|
|
1483
1483
|
},
|
|
1484
1484
|
conditions: []
|
|
1485
1485
|
}
|
|
1486
1486
|
],
|
|
1487
1487
|
silentSteps: []
|
|
1488
1488
|
}), e;
|
|
1489
|
-
}, Ka = (
|
|
1489
|
+
}, Ka = (l, e) => e.find((t) => t.stepNames.includes(l)), ae = (l, e) => (l.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 = (l, e) => {
|
|
1499
1499
|
const t = {
|
|
1500
|
-
name:
|
|
1501
|
-
title:
|
|
1502
|
-
renderableSteps:
|
|
1503
|
-
silentSteps:
|
|
1500
|
+
name: l.name,
|
|
1501
|
+
title: l.title,
|
|
1502
|
+
renderableSteps: l.renderableSteps.filter((A) => ae(A, e)),
|
|
1503
|
+
silentSteps: l.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 = (l, e) => l.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (l, e, t = !1) => {
|
|
1507
1507
|
var i;
|
|
1508
|
-
const A = ce(
|
|
1508
|
+
const A = ce(l, 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;
|
|
@@ -1520,12 +1520,12 @@ const Ja = f`
|
|
|
1520
1520
|
);
|
|
1521
1521
|
return n;
|
|
1522
1522
|
};
|
|
1523
|
-
class
|
|
1523
|
+
class gA {
|
|
1524
1524
|
constructor() {
|
|
1525
1525
|
this.timestamp = Date.now();
|
|
1526
1526
|
}
|
|
1527
1527
|
}
|
|
1528
|
-
class
|
|
1528
|
+
class BA {
|
|
1529
1529
|
/**
|
|
1530
1530
|
* Constructs a new promise queue.
|
|
1531
1531
|
* @param queueMaxSize An optional maximum size, when the max size is hit.
|
|
@@ -1595,23 +1595,23 @@ class dA {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
}
|
|
1597
1597
|
}
|
|
1598
|
-
function Wa(
|
|
1599
|
-
const a = t.width *
|
|
1598
|
+
function Wa(l, e, t, A) {
|
|
1599
|
+
const a = t.width * l.zoom, n = t.height * l.zoom;
|
|
1600
1600
|
if (A) {
|
|
1601
|
-
const s =
|
|
1602
|
-
s.zoom = Math.max(o,
|
|
1601
|
+
const s = l, o = Math.max(e.width / t.width, e.height / t.height);
|
|
1602
|
+
s.zoom = Math.max(o, l.zoom);
|
|
1603
1603
|
const r = t.width * s.zoom, c = t.height * s.zoom;
|
|
1604
|
-
return s.x =
|
|
1604
|
+
return s.x = ye(l.x, e.width - r, 0), s.y = ye(l.y, e.height - c, 0), s;
|
|
1605
1605
|
}
|
|
1606
|
-
const i =
|
|
1607
|
-
return i.x =
|
|
1606
|
+
const i = l;
|
|
1607
|
+
return i.x = ye(i.x, -a, e.width), i.y = ye(i.y, -n, e.height), i;
|
|
1608
1608
|
}
|
|
1609
|
-
function
|
|
1610
|
-
return Math.min(Math.max(
|
|
1609
|
+
function ye(l, e, t) {
|
|
1610
|
+
return Math.min(Math.max(l, e), t);
|
|
1611
1611
|
}
|
|
1612
1612
|
class Xa {
|
|
1613
1613
|
constructor(e) {
|
|
1614
|
-
this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets =
|
|
1614
|
+
this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = $t(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = {
|
|
1615
1615
|
useThreshold: !1,
|
|
1616
1616
|
invertThreshold: !1,
|
|
1617
1617
|
threshold: 128,
|
|
@@ -1631,8 +1631,8 @@ 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
|
|
1635
|
-
|
|
1634
|
+
const s = a.currentFrameSources[i], o = await gt(s), r = this.frameData ? this.frameData[i] : void 0;
|
|
1635
|
+
_t(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(
|
|
1638
1638
|
(i) => i(this.frameData)
|
|
@@ -1666,7 +1666,7 @@ class Xa {
|
|
|
1666
1666
|
return;
|
|
1667
1667
|
}
|
|
1668
1668
|
e.forEach((t, A) => {
|
|
1669
|
-
const a =
|
|
1669
|
+
const a = UA.get(t);
|
|
1670
1670
|
a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
|
|
1671
1671
|
});
|
|
1672
1672
|
}
|
|
@@ -1684,8 +1684,8 @@ class Xa {
|
|
|
1684
1684
|
getImageSrc() {
|
|
1685
1685
|
if (this.imageData) {
|
|
1686
1686
|
if (this.imageData.svg) {
|
|
1687
|
-
const e =
|
|
1688
|
-
return
|
|
1687
|
+
const e = GA(this.imageData.svg, this.imageData.colors || {}, !1);
|
|
1688
|
+
return bA(e);
|
|
1689
1689
|
}
|
|
1690
1690
|
return this.imageData.src;
|
|
1691
1691
|
}
|
|
@@ -1795,7 +1795,7 @@ class Xa {
|
|
|
1795
1795
|
this.targetElements.forEach((s, o) => {
|
|
1796
1796
|
i(
|
|
1797
1797
|
new k([
|
|
1798
|
-
new
|
|
1798
|
+
new JA(s, t, e[o]),
|
|
1799
1799
|
new TA(
|
|
1800
1800
|
s,
|
|
1801
1801
|
a.useThreshold,
|
|
@@ -1822,7 +1822,7 @@ class Xa {
|
|
|
1822
1822
|
}
|
|
1823
1823
|
recalculateOffsets(e) {
|
|
1824
1824
|
this.frameData && ((!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((t, A) => {
|
|
1825
|
-
this.offsets[A] = Bt(e, t);
|
|
1825
|
+
this.offsets[A] = Bt(e, t, void 0, this.forceImageCover);
|
|
1826
1826
|
}), this._debouncedUpdateFrameOffsets(this.offsets, e, this.frameData, this.thresholdSettings));
|
|
1827
1827
|
}
|
|
1828
1828
|
}
|
|
@@ -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((g) => g.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 g = "";
|
|
1839
|
+
if ((o = this.product) != null && o.overlayImageUrl && (g = this.product.overlayImageUrl), i = g, !g)
|
|
1840
|
+
throw new Ge(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1841
1841
|
}
|
|
1842
1842
|
const s = this.evaluateAssetType();
|
|
1843
1843
|
if (s === G.Image) {
|
|
1844
|
-
const
|
|
1845
|
-
if (!
|
|
1844
|
+
const g = 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 (!g)
|
|
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: g,
|
|
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 g = 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 (!g) {
|
|
1874
1874
|
u("Undefined vector silent step source");
|
|
1875
1875
|
return;
|
|
1876
1876
|
}
|
|
1877
|
-
_(
|
|
1877
|
+
_(g, !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 Re(C.svg),
|
|
1884
|
+
src: g,
|
|
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 Ge(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,12 +1927,12 @@ 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 (l) => {
|
|
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: l }),
|
|
1936
1936
|
headers: {
|
|
1937
1937
|
"Content-Type": "application/json"
|
|
1938
1938
|
}
|
|
@@ -1941,7 +1941,7 @@ const qa = async (g) => {
|
|
|
1941
1941
|
throw console.error(t), new je("Failed to shorten URL, see console.");
|
|
1942
1942
|
}
|
|
1943
1943
|
};
|
|
1944
|
-
class
|
|
1944
|
+
class dA {
|
|
1945
1945
|
async poll() {
|
|
1946
1946
|
try {
|
|
1947
1947
|
if (await this.predicate()) {
|
|
@@ -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, g;
|
|
1978
|
+
const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (g = a == null ? void 0 : a.storage) == null ? void 0 : g.videoUrl;
|
|
1979
1979
|
t.updateStorage(e.stepName, {
|
|
1980
1980
|
videoShortUrl: r,
|
|
1981
1981
|
videoUrl: c
|
|
@@ -1988,12 +1988,12 @@ class Za {
|
|
|
1988
1988
|
const d = (await ot([t]))[0], C = (h = (w = d == null ? void 0 : d.versions) == null ? void 0 : w.find((u) => u.name === "mpeg4")) == null ? void 0 : h.link;
|
|
1989
1989
|
return { asset: d, link: C };
|
|
1990
1990
|
}, i = await new Promise((d, C) => {
|
|
1991
|
-
new
|
|
1991
|
+
new dA(
|
|
1992
1992
|
async () => !!(await n()).link,
|
|
1993
1993
|
async () => {
|
|
1994
1994
|
const w = await n();
|
|
1995
1995
|
if (!w.link || !w.link)
|
|
1996
|
-
throw new
|
|
1996
|
+
throw new me(w.asset);
|
|
1997
1997
|
d({
|
|
1998
1998
|
rel: "mpeg4",
|
|
1999
1999
|
href: w.link
|
|
@@ -2014,9 +2014,9 @@ class Za {
|
|
|
2014
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 Ge(a, "Missing regions.");
|
|
2018
|
+
const B = await this.regionElements(a), g = await this.command(c, B, A, a.stepName);
|
|
2019
|
+
return g && (g.command && A.getCommandDispatcher()(g.command), g.followup && await g.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
|
|
2020
2020
|
A.updateStorage(a.stepName, {
|
|
2021
2021
|
videoShortUrl: c,
|
|
2022
2022
|
videoUrl: i.href
|
|
@@ -2028,8 +2028,8 @@ class Za {
|
|
|
2028
2028
|
return e.data.regions.map(t);
|
|
2029
2029
|
}
|
|
2030
2030
|
async command(e, t, A, a) {
|
|
2031
|
-
const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await
|
|
2032
|
-
const c = r.region, B = n.find((
|
|
2031
|
+
const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await eA(e, { type: "svg" }))}`, o = t.map((r) => {
|
|
2032
|
+
const c = r.region, B = n.find((g) => g.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
|
|
2059
|
+
const CA = new Za(), pe = [
|
|
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
|
+
], ge = [
|
|
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 = ge.map((l) => [
|
|
4744
|
+
parseInt(l.substring(0, 2), 16),
|
|
4745
|
+
parseInt(l.substring(2, 4), 16),
|
|
4746
|
+
parseInt(l.substring(4, 6), 16)
|
|
4747
4747
|
]);
|
|
4748
|
-
function Ds(
|
|
4749
|
-
const e =
|
|
4750
|
-
return e >= 0 ?
|
|
4748
|
+
function Ds(l) {
|
|
4749
|
+
const e = pe.indexOf(l);
|
|
4750
|
+
return e >= 0 ? ge[e] : "";
|
|
4751
4751
|
}
|
|
4752
|
-
function $a(
|
|
4753
|
-
const e =
|
|
4754
|
-
return e >= 0 ?
|
|
4752
|
+
function $a(l) {
|
|
4753
|
+
const e = ge.indexOf(l);
|
|
4754
|
+
return e >= 0 ? pe[e] : "";
|
|
4755
4755
|
}
|
|
4756
|
-
function Is(
|
|
4757
|
-
const t = [], A = [], a = $a(
|
|
4756
|
+
function Is(l, e = 64) {
|
|
4757
|
+
const t = [], A = [], a = $a(l);
|
|
4758
4758
|
a && t.push({
|
|
4759
4759
|
pms: a,
|
|
4760
|
-
hex:
|
|
4760
|
+
hex: l,
|
|
4761
4761
|
distance: 0
|
|
4762
4762
|
});
|
|
4763
|
-
const n = parseInt(
|
|
4763
|
+
const n = parseInt(l.substring(0, 2), 16), i = parseInt(l.substring(2, 4), 16), s = parseInt(l.substring(4, 6), 16);
|
|
4764
4764
|
let o, r, c;
|
|
4765
|
-
for (let B = 0; B <
|
|
4765
|
+
for (let B = 0; B < ge.length; B++) {
|
|
4766
4766
|
o = qe[B][0], r = qe[B][1], c = qe[B][2];
|
|
4767
|
-
const
|
|
4768
|
-
A.push(
|
|
4767
|
+
const g = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
|
|
4768
|
+
A.push(g);
|
|
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((g) => g.pms === pe[B]) && t.push({ pms: pe[B], hex: ge[B], distance: A[B] });
|
|
4772
|
+
return t.sort((B, g) => B.distance - g.distance);
|
|
4773
4773
|
}
|
|
4774
|
-
const _a =
|
|
4775
|
-
function fs(
|
|
4776
|
-
return en.search(
|
|
4774
|
+
const _a = pe.map((l, e) => ({ pms: l, hex: ge[e] })), en = new ia(_a, { keys: ["pms"] });
|
|
4775
|
+
function fs(l, e) {
|
|
4776
|
+
return en.search(l, e ? { limit: e } : void 0);
|
|
4777
4777
|
}
|
|
4778
4778
|
let we = null;
|
|
4779
|
-
function tn(
|
|
4780
|
-
if (
|
|
4781
|
-
return Ut(
|
|
4779
|
+
function tn(l) {
|
|
4780
|
+
if (l.startsWith("#"))
|
|
4781
|
+
return Ut(l);
|
|
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 = l;
|
|
4787
4787
|
const e = Ut(we.fillStyle);
|
|
4788
|
-
return e || console.error(`Unknown browser color ${
|
|
4788
|
+
return e || console.error(`Unknown browser color ${l}`), e;
|
|
4789
4789
|
}
|
|
4790
|
-
function Ut(
|
|
4791
|
-
const e =
|
|
4790
|
+
function Ut(l) {
|
|
4791
|
+
const e = l.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 {
|
|
@@ -4802,7 +4802,7 @@ class An {
|
|
|
4802
4802
|
const a = A.fileLink;
|
|
4803
4803
|
if (a)
|
|
4804
4804
|
return _(a, !0);
|
|
4805
|
-
throw new
|
|
4805
|
+
throw new me(A);
|
|
4806
4806
|
};
|
|
4807
4807
|
}
|
|
4808
4808
|
async init(e, t, A) {
|
|
@@ -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, g = (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: g
|
|
4857
|
+
}), g) {
|
|
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(g, D, !0, B), t.updateMetadata(e.stepName, { image: g }), t.updateStorage(e.stepName, {
|
|
4862
|
+
framePatternSrc: g
|
|
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 g = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
|
|
4877
|
+
g && await t.setSelectionsAndElements(
|
|
4878
4878
|
e.stepName,
|
|
4879
|
-
[
|
|
4879
|
+
[g],
|
|
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(g, C))
|
|
4884
4884
|
);
|
|
4885
4885
|
t.updateStorage(e.stepName, { currentFrameSources: d }), await c();
|
|
4886
4886
|
}
|
|
@@ -4909,7 +4909,7 @@ class An {
|
|
|
4909
4909
|
const s = t.fileLink || "";
|
|
4910
4910
|
return s.endsWith(".pdf") || s.endsWith(".eps") || s.endsWith(".ai") ? new Promise((r) => {
|
|
4911
4911
|
A.addPoller(
|
|
4912
|
-
new
|
|
4912
|
+
new dA(
|
|
4913
4913
|
async () => {
|
|
4914
4914
|
var d;
|
|
4915
4915
|
const B = (d = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : d.find((C) => C.name === "svg");
|
|
@@ -4969,8 +4969,8 @@ class An {
|
|
|
4969
4969
|
if (e.endsWith("svg")) {
|
|
4970
4970
|
const i = await OA(e), s = i.width, o = i.height, r = await _(e);
|
|
4971
4971
|
if (n) {
|
|
4972
|
-
const
|
|
4973
|
-
if (
|
|
4972
|
+
const g = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
|
|
4973
|
+
if (g && g.length > 0)
|
|
4974
4974
|
throw new Error(
|
|
4975
4975
|
"Vector files may not include images or gradients when a color limit is specified."
|
|
4976
4976
|
);
|
|
@@ -5042,8 +5042,8 @@ class An {
|
|
|
5042
5042
|
};
|
|
5043
5043
|
const a = { ...e.getImageData().colors ?? {} }, n = {};
|
|
5044
5044
|
Object.entries(a).forEach(([c, B]) => {
|
|
5045
|
-
const
|
|
5046
|
-
n[c] =
|
|
5045
|
+
const g = { browserValue: B.browserValue };
|
|
5046
|
+
n[c] = g;
|
|
5047
5047
|
});
|
|
5048
5048
|
for (const [c, B] of A.entries())
|
|
5049
5049
|
a[c] = { browserValue: B.browserValue, pmsValue: B.pmsValue }, n[c] = B;
|
|
@@ -5051,8 +5051,8 @@ class An {
|
|
|
5051
5051
|
const s = t.data.colorOption;
|
|
5052
5052
|
return s && ((r = s.variants) == null || r.forEach((c) => {
|
|
5053
5053
|
i = i.map((B) => {
|
|
5054
|
-
var
|
|
5055
|
-
return B.toLowerCase() === ((
|
|
5054
|
+
var g;
|
|
5055
|
+
return B.toLowerCase() === ((g = c.color) == null ? void 0 : g.toLowerCase()) ? c.name : B;
|
|
5056
5056
|
});
|
|
5057
5057
|
})), {
|
|
5058
5058
|
newColors: a,
|
|
@@ -5069,8 +5069,8 @@ class An {
|
|
|
5069
5069
|
);
|
|
5070
5070
|
}
|
|
5071
5071
|
async selectVariantCommand(e, t, A, a, n, i) {
|
|
5072
|
-
var
|
|
5073
|
-
const s = (
|
|
5072
|
+
var g;
|
|
5073
|
+
const s = (g = a.getStepSpecificServices(e.stepName)) == null ? void 0 : g.frameService;
|
|
5074
5074
|
if (!s)
|
|
5075
5075
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
5076
5076
|
const o = await Promise.all(
|
|
@@ -5079,7 +5079,7 @@ class An {
|
|
|
5079
5079
|
n && n(!0);
|
|
5080
5080
|
const r = await Promise.all(
|
|
5081
5081
|
e.data.regions.map(async (d, C) => {
|
|
5082
|
-
const w = await
|
|
5082
|
+
const w = await gt(o[C]), h = s.getImageData(), u = A.map((I) => new ne(I.id)), E = h ? Bt(h, w, void 0, e.data.forceImageCover) : void 0, D = h ? {
|
|
5083
5083
|
id: J(),
|
|
5084
5084
|
src: h.src,
|
|
5085
5085
|
x: (E == null ? void 0 : E.x) || 0,
|
|
@@ -5140,7 +5140,7 @@ class An {
|
|
|
5140
5140
|
const A = e.fileLink;
|
|
5141
5141
|
if (A)
|
|
5142
5142
|
return A;
|
|
5143
|
-
throw new
|
|
5143
|
+
throw new me(e);
|
|
5144
5144
|
}
|
|
5145
5145
|
async loadPatternFromAsset(e, t, A, a) {
|
|
5146
5146
|
var r, c;
|
|
@@ -5208,7 +5208,7 @@ class an {
|
|
|
5208
5208
|
if (A.length === 0)
|
|
5209
5209
|
return [];
|
|
5210
5210
|
try {
|
|
5211
|
-
return
|
|
5211
|
+
return He(
|
|
5212
5212
|
A[0].id,
|
|
5213
5213
|
t.getAllLayoutData()
|
|
5214
5214
|
).colors;
|
|
@@ -5239,13 +5239,13 @@ class an {
|
|
|
5239
5239
|
if (a != null && a.selectedVariants) {
|
|
5240
5240
|
const c = a.selectedVariants[0].id;
|
|
5241
5241
|
if (o && c) {
|
|
5242
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5242
|
+
const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
|
|
5243
5243
|
if (B) {
|
|
5244
|
-
const
|
|
5244
|
+
const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5245
5245
|
await t.setSelectionsAndElements(
|
|
5246
5246
|
e.stepName,
|
|
5247
5247
|
[B],
|
|
5248
|
-
|
|
5248
|
+
g,
|
|
5249
5249
|
async () => {
|
|
5250
5250
|
var d;
|
|
5251
5251
|
t.updateMetadata(e.stepName, {
|
|
@@ -5271,12 +5271,12 @@ class an {
|
|
|
5271
5271
|
async changeColorsCommand(e, t, A, a, n) {
|
|
5272
5272
|
var c;
|
|
5273
5273
|
const i = {};
|
|
5274
|
-
for (const [B,
|
|
5275
|
-
i[B] = { browserValue:
|
|
5276
|
-
const s = zA(e, t, A, i), o = await
|
|
5274
|
+
for (const [B, g] of n.entries())
|
|
5275
|
+
i[B] = { browserValue: g, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
|
|
5276
|
+
const s = zA(e, t, A, i), o = await Re(s), r = [];
|
|
5277
5277
|
for (const B of a) {
|
|
5278
|
-
for (const [
|
|
5279
|
-
r.push(new at(B,
|
|
5278
|
+
for (const [g, d] of n.entries())
|
|
5279
|
+
r.push(new at(B, g, d));
|
|
5280
5280
|
r.push(new KA(B, s, o));
|
|
5281
5281
|
}
|
|
5282
5282
|
return new k(r);
|
|
@@ -5285,7 +5285,7 @@ class an {
|
|
|
5285
5285
|
var d, C;
|
|
5286
5286
|
if (t.length === 0)
|
|
5287
5287
|
return;
|
|
5288
|
-
const i =
|
|
5288
|
+
const i = He(
|
|
5289
5289
|
t[0].id,
|
|
5290
5290
|
a().map((w) => w.layoutState)
|
|
5291
5291
|
), s = { ...i.colors }, o = {};
|
|
@@ -5308,7 +5308,7 @@ class an {
|
|
|
5308
5308
|
B.set(w, h.browserValue);
|
|
5309
5309
|
}), !i.svg)
|
|
5310
5310
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
5311
|
-
const
|
|
5311
|
+
const g = await this.changeColorsCommand(
|
|
5312
5312
|
i.svg,
|
|
5313
5313
|
i.width,
|
|
5314
5314
|
i.height,
|
|
@@ -5317,7 +5317,7 @@ class an {
|
|
|
5317
5317
|
);
|
|
5318
5318
|
A.updateStorage(e.stepName, {
|
|
5319
5319
|
colors: o
|
|
5320
|
-
}), A.getCommandDispatcher()(
|
|
5320
|
+
}), A.getCommandDispatcher()(g);
|
|
5321
5321
|
}
|
|
5322
5322
|
async selectVariant(e, t, A, a, n) {
|
|
5323
5323
|
const i = await this.selectVariantCommand(e, t, A, a, n);
|
|
@@ -5326,7 +5326,7 @@ class an {
|
|
|
5326
5326
|
async selectVariantCommand(e, t, A, a, n) {
|
|
5327
5327
|
var u;
|
|
5328
5328
|
if (!e.data || !e.data.regions)
|
|
5329
|
-
throw new
|
|
5329
|
+
throw new Ge(e, "Missing regions.");
|
|
5330
5330
|
a(!0);
|
|
5331
5331
|
const i = A.map((E) => new ne(E.id));
|
|
5332
5332
|
e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
|
|
@@ -5335,8 +5335,8 @@ class an {
|
|
|
5335
5335
|
throw new ie(t);
|
|
5336
5336
|
const o = s.fileLink;
|
|
5337
5337
|
if (!o)
|
|
5338
|
-
throw new
|
|
5339
|
-
const r = await Le(await this.getIllustrationBody(o)), c = await
|
|
5338
|
+
throw new me(s);
|
|
5339
|
+
const r = await Le(await this.getIllustrationBody(o)), c = await Re(r.svg), B = (E) => {
|
|
5340
5340
|
const D = n.getLayouts().find((p) => p.panelId === E.panelId);
|
|
5341
5341
|
if (!D)
|
|
5342
5342
|
throw new z(E);
|
|
@@ -5350,7 +5350,7 @@ class an {
|
|
|
5350
5350
|
svg: r
|
|
5351
5351
|
})
|
|
5352
5352
|
};
|
|
5353
|
-
},
|
|
5353
|
+
}, g = e.data.regions.map(B), C = [...g.map((E) => E.command), ...i];
|
|
5354
5354
|
let w = Array.from(Object.values(r.colors)).map((E) => E.browserValue);
|
|
5355
5355
|
const h = e.data.colorOption;
|
|
5356
5356
|
return h && ((u = h.variants) == null || u.forEach((E) => {
|
|
@@ -5364,7 +5364,7 @@ class an {
|
|
|
5364
5364
|
await n.setSelectionsAndElements(
|
|
5365
5365
|
e.stepName,
|
|
5366
5366
|
[t],
|
|
5367
|
-
|
|
5367
|
+
g.map((Q) => Q.regionElement),
|
|
5368
5368
|
async () => {
|
|
5369
5369
|
n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
5370
5370
|
}
|
|
@@ -5374,7 +5374,7 @@ class an {
|
|
|
5374
5374
|
const Q = E[0], p = D[0];
|
|
5375
5375
|
await this.changeColors(
|
|
5376
5376
|
e,
|
|
5377
|
-
|
|
5377
|
+
g.map((m) => m.regionElement),
|
|
5378
5378
|
n,
|
|
5379
5379
|
() => n.getCommandContext().getAllLayouts(),
|
|
5380
5380
|
/* @__PURE__ */ new Map([[p, Q.variant.color]])
|
|
@@ -5382,7 +5382,7 @@ class an {
|
|
|
5382
5382
|
} else
|
|
5383
5383
|
e.data.colorPickerEnabled && await this.changeColors(
|
|
5384
5384
|
e,
|
|
5385
|
-
|
|
5385
|
+
g.map((Q) => Q.regionElement),
|
|
5386
5386
|
n,
|
|
5387
5387
|
() => n.getCommandContext().getAllLayouts(),
|
|
5388
5388
|
/* @__PURE__ */ new Map()
|
|
@@ -5391,12 +5391,12 @@ class an {
|
|
|
5391
5391
|
};
|
|
5392
5392
|
}
|
|
5393
5393
|
}
|
|
5394
|
-
const
|
|
5394
|
+
const ve = new an();
|
|
5395
5395
|
class nn {
|
|
5396
5396
|
async init(e, t, A) {
|
|
5397
5397
|
const a = e.option;
|
|
5398
5398
|
if (!a)
|
|
5399
|
-
throw new
|
|
5399
|
+
throw new Ue(e);
|
|
5400
5400
|
if (A)
|
|
5401
5401
|
await this.reload(e, t, A);
|
|
5402
5402
|
else {
|
|
@@ -5414,13 +5414,13 @@ class nn {
|
|
|
5414
5414
|
A.serializableWorkflow.steps
|
|
5415
5415
|
), s = Object.values(A.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === e.stepName), o = e.option;
|
|
5416
5416
|
if (!o)
|
|
5417
|
-
throw new
|
|
5417
|
+
throw new Ue(e);
|
|
5418
5418
|
if (a != null && a.selectedVariants) {
|
|
5419
5419
|
const c = a.selectedVariants[0].id;
|
|
5420
5420
|
if (c) {
|
|
5421
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5421
|
+
const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
|
|
5422
5422
|
if (B) {
|
|
5423
|
-
const
|
|
5423
|
+
const g = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
|
|
5424
5424
|
await t.setSelectionsAndElements(
|
|
5425
5425
|
e.stepName,
|
|
5426
5426
|
[B],
|
|
@@ -5431,7 +5431,7 @@ class nn {
|
|
|
5431
5431
|
const w = e.data.targetMaterials.map((h) => C.applyMaterialVariant(
|
|
5432
5432
|
h,
|
|
5433
5433
|
o.id || "",
|
|
5434
|
-
|
|
5434
|
+
g || {}
|
|
5435
5435
|
));
|
|
5436
5436
|
Promise.all(w).then(
|
|
5437
5437
|
() => t.setMandatoryFulfilled(e.stepName, !0)
|
|
@@ -5469,12 +5469,12 @@ class nn {
|
|
|
5469
5469
|
};
|
|
5470
5470
|
}
|
|
5471
5471
|
}
|
|
5472
|
-
const
|
|
5472
|
+
const wA = new nn();
|
|
5473
5473
|
class sn {
|
|
5474
5474
|
async init(e, t, A) {
|
|
5475
5475
|
const a = e.option;
|
|
5476
5476
|
if (!a)
|
|
5477
|
-
throw new
|
|
5477
|
+
throw new Ue(e);
|
|
5478
5478
|
if (A)
|
|
5479
5479
|
await this.reload(e, t, A);
|
|
5480
5480
|
else {
|
|
@@ -5494,13 +5494,13 @@ class sn {
|
|
|
5494
5494
|
if (a != null && a.selectedVariants) {
|
|
5495
5495
|
const c = a.selectedVariants[0].id;
|
|
5496
5496
|
if (o && c) {
|
|
5497
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5497
|
+
const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
|
|
5498
5498
|
if (B) {
|
|
5499
|
-
const
|
|
5499
|
+
const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5500
5500
|
await t.setSelectionsAndElements(
|
|
5501
5501
|
e.stepName,
|
|
5502
5502
|
[B],
|
|
5503
|
-
|
|
5503
|
+
g,
|
|
5504
5504
|
async () => {
|
|
5505
5505
|
var C;
|
|
5506
5506
|
const d = t.getModelContainer();
|
|
@@ -5555,7 +5555,7 @@ class sn {
|
|
|
5555
5555
|
};
|
|
5556
5556
|
}
|
|
5557
5557
|
}
|
|
5558
|
-
const
|
|
5558
|
+
const hA = new sn();
|
|
5559
5559
|
class on {
|
|
5560
5560
|
async init(e, t, A) {
|
|
5561
5561
|
if (A)
|
|
@@ -5590,55 +5590,55 @@ class on {
|
|
|
5590
5590
|
if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
|
|
5591
5591
|
return console.error("Missing configuration."), null;
|
|
5592
5592
|
A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
|
|
5593
|
-
const r = (B,
|
|
5594
|
-
const C = d || J(), h = A.getLayouts().find((E) => E.panelId ===
|
|
5593
|
+
const r = (B, g, d) => {
|
|
5594
|
+
const C = d || J(), h = A.getLayouts().find((E) => E.panelId === g.panelId);
|
|
5595
5595
|
if (!h)
|
|
5596
|
-
return console.error(`Can not find layout for region: ${
|
|
5596
|
+
return console.error(`Can not find layout for region: ${g.panelId}`), null;
|
|
5597
5597
|
const u = [];
|
|
5598
5598
|
return d && u.push(new ne(C)), u.push(
|
|
5599
5599
|
new L(
|
|
5600
5600
|
{
|
|
5601
|
-
stepRegion:
|
|
5601
|
+
stepRegion: g,
|
|
5602
5602
|
stepName: e.stepName,
|
|
5603
5603
|
colors: {},
|
|
5604
5604
|
id: C,
|
|
5605
5605
|
svg: B,
|
|
5606
5606
|
type: G.Illustration,
|
|
5607
|
-
y:
|
|
5608
|
-
x:
|
|
5609
|
-
rotation:
|
|
5610
|
-
width:
|
|
5611
|
-
height:
|
|
5612
|
-
layer:
|
|
5613
|
-
layerIndex:
|
|
5614
|
-
immutable:
|
|
5607
|
+
y: g.top,
|
|
5608
|
+
x: g.left,
|
|
5609
|
+
rotation: g.rotation,
|
|
5610
|
+
width: g.width,
|
|
5611
|
+
height: g.height,
|
|
5612
|
+
layer: g.layer,
|
|
5613
|
+
layerIndex: g.layerIndex,
|
|
5614
|
+
immutable: g.immutable
|
|
5615
5615
|
},
|
|
5616
5616
|
h
|
|
5617
5617
|
)
|
|
5618
5618
|
), {
|
|
5619
5619
|
id: C,
|
|
5620
|
-
region:
|
|
5620
|
+
region: g,
|
|
5621
5621
|
command: new k(u)
|
|
5622
5622
|
};
|
|
5623
5623
|
};
|
|
5624
5624
|
if (i.length > 0) {
|
|
5625
|
-
const
|
|
5625
|
+
const g = i.map((d) => {
|
|
5626
5626
|
if (!d.region)
|
|
5627
5627
|
return null;
|
|
5628
5628
|
const C = s.svgPrint(t, d.region);
|
|
5629
5629
|
return r(C, d.region, d.id);
|
|
5630
5630
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
5631
5631
|
return {
|
|
5632
|
-
command: new k(
|
|
5632
|
+
command: new k(g),
|
|
5633
5633
|
followup: async () => {
|
|
5634
5634
|
}
|
|
5635
5635
|
};
|
|
5636
5636
|
} else {
|
|
5637
5637
|
const B = e.data.regions.map(
|
|
5638
5638
|
(d) => r(s.svgPrint(t, d), d)
|
|
5639
|
-
),
|
|
5639
|
+
), g = B.filter((d) => !!d).map((d) => d && d.command);
|
|
5640
5640
|
return {
|
|
5641
|
-
command: new k(
|
|
5641
|
+
command: new k(g),
|
|
5642
5642
|
followup: async () => {
|
|
5643
5643
|
const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
|
|
5644
5644
|
await A.setSelectionsAndElements(
|
|
@@ -5668,7 +5668,7 @@ class on {
|
|
|
5668
5668
|
return a(""), !0;
|
|
5669
5669
|
}
|
|
5670
5670
|
}
|
|
5671
|
-
const
|
|
5671
|
+
const EA = new on();
|
|
5672
5672
|
class rn {
|
|
5673
5673
|
async init(e, t, A) {
|
|
5674
5674
|
const a = e.option;
|
|
@@ -5690,13 +5690,13 @@ class rn {
|
|
|
5690
5690
|
if (a != null && a.selectedVariants) {
|
|
5691
5691
|
const c = a.selectedVariants[0].id;
|
|
5692
5692
|
if (o && c) {
|
|
5693
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5693
|
+
const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
|
|
5694
5694
|
if (B) {
|
|
5695
|
-
const
|
|
5695
|
+
const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5696
5696
|
await t.setSelectionsAndElements(
|
|
5697
5697
|
e.stepName,
|
|
5698
5698
|
[B],
|
|
5699
|
-
|
|
5699
|
+
g,
|
|
5700
5700
|
async () => {
|
|
5701
5701
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
5702
5702
|
}
|
|
@@ -5760,7 +5760,7 @@ class rn {
|
|
|
5760
5760
|
};
|
|
5761
5761
|
}
|
|
5762
5762
|
}
|
|
5763
|
-
const
|
|
5763
|
+
const uA = new rn();
|
|
5764
5764
|
class cn {
|
|
5765
5765
|
async init(e, t, A) {
|
|
5766
5766
|
const a = e.option;
|
|
@@ -5819,8 +5819,8 @@ class cn {
|
|
|
5819
5819
|
};
|
|
5820
5820
|
}
|
|
5821
5821
|
}
|
|
5822
|
-
const
|
|
5823
|
-
class
|
|
5822
|
+
const mA = new cn();
|
|
5823
|
+
class ln {
|
|
5824
5824
|
constructor() {
|
|
5825
5825
|
this.shapeFillId = "spiff-fill-shape";
|
|
5826
5826
|
}
|
|
@@ -5846,7 +5846,7 @@ class gn {
|
|
|
5846
5846
|
async init(e, t, A) {
|
|
5847
5847
|
const a = e.option;
|
|
5848
5848
|
if (!a)
|
|
5849
|
-
throw new
|
|
5849
|
+
throw new Ue(e);
|
|
5850
5850
|
if (A)
|
|
5851
5851
|
await this.reload(e, t, A);
|
|
5852
5852
|
else {
|
|
@@ -5877,13 +5877,13 @@ class gn {
|
|
|
5877
5877
|
if (a != null && a.selectedVariants) {
|
|
5878
5878
|
const c = a.selectedVariants[0].id;
|
|
5879
5879
|
if (o && c) {
|
|
5880
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5880
|
+
const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
|
|
5881
5881
|
if (B) {
|
|
5882
|
-
const
|
|
5882
|
+
const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5883
5883
|
await t.setSelectionsAndElements(
|
|
5884
5884
|
e.stepName,
|
|
5885
5885
|
[B],
|
|
5886
|
-
|
|
5886
|
+
g,
|
|
5887
5887
|
async () => {
|
|
5888
5888
|
var d;
|
|
5889
5889
|
t.updateStorage(e.stepName, {
|
|
@@ -5907,9 +5907,9 @@ class gn {
|
|
|
5907
5907
|
};
|
|
5908
5908
|
if (A.length > 0) {
|
|
5909
5909
|
const r = (B) => {
|
|
5910
|
-
const
|
|
5911
|
-
if (!n.find((w) => w.panelId === (
|
|
5912
|
-
throw new z(
|
|
5910
|
+
const g = B.region;
|
|
5911
|
+
if (!n.find((w) => w.panelId === (g == null ? void 0 : g.panelId)))
|
|
5912
|
+
throw new z(g);
|
|
5913
5913
|
const C = s();
|
|
5914
5914
|
return new at(B.id, this.shapeFillId, C);
|
|
5915
5915
|
}, c = A.map(r).filter((B) => !!B);
|
|
@@ -5975,14 +5975,14 @@ class gn {
|
|
|
5975
5975
|
C
|
|
5976
5976
|
)
|
|
5977
5977
|
};
|
|
5978
|
-
}, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command),
|
|
5978
|
+
}, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), g = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
|
|
5979
5979
|
return {
|
|
5980
5980
|
command: new k(B),
|
|
5981
5981
|
followup: async () => {
|
|
5982
5982
|
await a.setSelectionsAndElements(
|
|
5983
5983
|
e.stepName,
|
|
5984
5984
|
t.variant ? [t.variant] : [],
|
|
5985
|
-
|
|
5985
|
+
g,
|
|
5986
5986
|
async () => {
|
|
5987
5987
|
a.updateStorage(e.stepName, { colour: s() });
|
|
5988
5988
|
}
|
|
@@ -5992,8 +5992,8 @@ class gn {
|
|
|
5992
5992
|
}
|
|
5993
5993
|
}
|
|
5994
5994
|
}
|
|
5995
|
-
const Ee = new
|
|
5996
|
-
class
|
|
5995
|
+
const Ee = new ln();
|
|
5996
|
+
class gn {
|
|
5997
5997
|
constructor() {
|
|
5998
5998
|
this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
|
|
5999
5999
|
}
|
|
@@ -6018,17 +6018,17 @@ class ln {
|
|
|
6018
6018
|
);
|
|
6019
6019
|
}
|
|
6020
6020
|
}
|
|
6021
|
-
const Bn = new
|
|
6022
|
-
class
|
|
6021
|
+
const Bn = new gn(), Ze = 30;
|
|
6022
|
+
class Je extends Error {
|
|
6023
6023
|
constructor(e) {
|
|
6024
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
6024
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
|
|
6025
6025
|
}
|
|
6026
6026
|
}
|
|
6027
6027
|
const dn = ["‘", "’", "“", "”", `
|
|
6028
6028
|
`];
|
|
6029
|
-
class
|
|
6029
|
+
class Te extends Error {
|
|
6030
6030
|
constructor(e) {
|
|
6031
|
-
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
6031
|
+
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Te.name;
|
|
6032
6032
|
}
|
|
6033
6033
|
}
|
|
6034
6034
|
class Cn {
|
|
@@ -6087,11 +6087,11 @@ class Cn {
|
|
|
6087
6087
|
color: ((s = await this.getDefaultColorVariant(e.data)) == null ? void 0 : s.name) || await this.getDefaultColor(e.data),
|
|
6088
6088
|
fillImage: o == null ? void 0 : o.name
|
|
6089
6089
|
});
|
|
6090
|
-
const
|
|
6091
|
-
if (
|
|
6090
|
+
const g = V.getDefaultVariant(a);
|
|
6091
|
+
if (g)
|
|
6092
6092
|
return this.selectVariantCommand(
|
|
6093
6093
|
e,
|
|
6094
|
-
|
|
6094
|
+
g,
|
|
6095
6095
|
{},
|
|
6096
6096
|
[],
|
|
6097
6097
|
t,
|
|
@@ -6105,7 +6105,7 @@ class Cn {
|
|
|
6105
6105
|
return null;
|
|
6106
6106
|
}
|
|
6107
6107
|
findLayoutElements(e, t) {
|
|
6108
|
-
return e.getRegionElements(t.stepName).map((n) =>
|
|
6108
|
+
return e.getRegionElements(t.stepName).map((n) => He(n.id, e.getAllLayoutData()));
|
|
6109
6109
|
}
|
|
6110
6110
|
/**
|
|
6111
6111
|
* Get the colors that can be used for a given text step.
|
|
@@ -6215,19 +6215,19 @@ class Cn {
|
|
|
6215
6215
|
for (const B of t) {
|
|
6216
6216
|
if (!B.fontData)
|
|
6217
6217
|
throw new b("Failed to resolve font data for text.");
|
|
6218
|
-
const [
|
|
6218
|
+
const [g, d] = Ne(
|
|
6219
6219
|
B.fontSize,
|
|
6220
6220
|
B.fontData,
|
|
6221
6221
|
{ left: B.x, top: B.y, width: B.width, height: B.height, rotation: B.rotation, panelId: "" },
|
|
6222
6222
|
[i],
|
|
6223
6223
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
6224
6224
|
);
|
|
6225
|
-
r.set(B.id,
|
|
6225
|
+
r.set(B.id, g), c.set(B.id, d);
|
|
6226
6226
|
const C = A.data.curved ? i : (d || []).join(`
|
|
6227
6227
|
`);
|
|
6228
|
-
o.push(this.generateTextChangeCommandsForRegion(
|
|
6228
|
+
o.push(this.generateTextChangeCommandsForRegion(g, A.data, B.id, C));
|
|
6229
6229
|
}
|
|
6230
|
-
return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((
|
|
6230
|
+
return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((g) => g) ? (s.errorData || (s.errorData = {}), s.errorData.doesNotFit = !0, s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
|
|
6231
6231
|
text: i
|
|
6232
6232
|
}), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(o), s);
|
|
6233
6233
|
}
|
|
@@ -6260,11 +6260,11 @@ class Cn {
|
|
|
6260
6260
|
const a = t.getSerializedStep(
|
|
6261
6261
|
e.stepName,
|
|
6262
6262
|
A.serializableWorkflow.steps
|
|
6263
|
-
), s = Object.values(A.layouts).map((
|
|
6263
|
+
), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
|
|
6264
6264
|
if (a != null && a.selectedVariants) {
|
|
6265
|
-
const
|
|
6266
|
-
if (o &&
|
|
6267
|
-
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id ===
|
|
6265
|
+
const g = a.selectedVariants[0].id;
|
|
6266
|
+
if (o && g) {
|
|
6267
|
+
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === g);
|
|
6268
6268
|
if (d) {
|
|
6269
6269
|
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;
|
|
6270
6270
|
await t.setSelectionsAndElements(
|
|
@@ -6311,7 +6311,7 @@ class Cn {
|
|
|
6311
6311
|
throw new ie(e);
|
|
6312
6312
|
const A = t.fileLink;
|
|
6313
6313
|
if (!A)
|
|
6314
|
-
throw new
|
|
6314
|
+
throw new me(t);
|
|
6315
6315
|
const a = await dt(A);
|
|
6316
6316
|
return {
|
|
6317
6317
|
assetUrl: A,
|
|
@@ -6322,10 +6322,10 @@ class Cn {
|
|
|
6322
6322
|
var B;
|
|
6323
6323
|
const r = n.markUpdatePending(), c = await this.fontDataFromVariant(t);
|
|
6324
6324
|
if (a.length > 0) {
|
|
6325
|
-
const
|
|
6325
|
+
const g = a.map((w) => new St(w.id, c));
|
|
6326
6326
|
if (o) {
|
|
6327
6327
|
const w = a.map((h) => new Xe(h.id, o));
|
|
6328
|
-
|
|
6328
|
+
g.push(...w);
|
|
6329
6329
|
}
|
|
6330
6330
|
const d = await this.changeInputTextWithRegion(
|
|
6331
6331
|
e,
|
|
@@ -6338,14 +6338,14 @@ class Cn {
|
|
|
6338
6338
|
i,
|
|
6339
6339
|
s
|
|
6340
6340
|
);
|
|
6341
|
-
return d &&
|
|
6342
|
-
command: new k(
|
|
6341
|
+
return d && g.push(d), {
|
|
6342
|
+
command: new k(g),
|
|
6343
6343
|
followup: async () => {
|
|
6344
6344
|
n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
|
|
6345
6345
|
}
|
|
6346
6346
|
};
|
|
6347
6347
|
} else {
|
|
6348
|
-
const
|
|
6348
|
+
const g = await this.createTextboxRegions(
|
|
6349
6349
|
e.stepName,
|
|
6350
6350
|
t,
|
|
6351
6351
|
e.data,
|
|
@@ -6356,15 +6356,15 @@ class Cn {
|
|
|
6356
6356
|
e,
|
|
6357
6357
|
e.data.size || Ze,
|
|
6358
6358
|
c,
|
|
6359
|
-
((B =
|
|
6359
|
+
((B = g[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
|
|
6360
6360
|
A,
|
|
6361
6361
|
n,
|
|
6362
6362
|
!!A.customiseAllText,
|
|
6363
6363
|
i,
|
|
6364
6364
|
s
|
|
6365
|
-
), C =
|
|
6365
|
+
), C = g.flatMap((h) => h.commands);
|
|
6366
6366
|
if (o) {
|
|
6367
|
-
const h =
|
|
6367
|
+
const h = g.map(
|
|
6368
6368
|
(u) => new Xe(u.regionElement.id, o)
|
|
6369
6369
|
);
|
|
6370
6370
|
C.push(...h);
|
|
@@ -6393,13 +6393,13 @@ class Cn {
|
|
|
6393
6393
|
const d = i.getLayouts().find((h) => h.panelId === B.panelId), C = J();
|
|
6394
6394
|
try {
|
|
6395
6395
|
if (!d)
|
|
6396
|
-
throw new
|
|
6396
|
+
throw new Te("Failed to find layout for region: " + B.panelId);
|
|
6397
6397
|
const h = A.colorOption;
|
|
6398
6398
|
let u;
|
|
6399
6399
|
if (h && h.variants) {
|
|
6400
6400
|
const S = h.variants.find((T) => {
|
|
6401
|
-
var
|
|
6402
|
-
return T.id === ((
|
|
6401
|
+
var H;
|
|
6402
|
+
return T.id === ((H = h.defaultVariant) == null ? void 0 : H.id);
|
|
6403
6403
|
}) || h.variants[0];
|
|
6404
6404
|
u = this.createTextFillSpotColor(h, S), i.updateStorage(e, {
|
|
6405
6405
|
colorProfileAssetKey: (w = h.colorProfile) == null ? void 0 : w.key
|
|
@@ -6432,7 +6432,7 @@ class Cn {
|
|
|
6432
6432
|
}, p = [], m = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
|
|
6433
6433
|
if (!Q.fontData)
|
|
6434
6434
|
throw new b("Failed to resolve font data for text.");
|
|
6435
|
-
const [F, y] =
|
|
6435
|
+
const [F, y] = Ne(
|
|
6436
6436
|
Q.fontSize,
|
|
6437
6437
|
Q.fontData,
|
|
6438
6438
|
{
|
|
@@ -6460,10 +6460,10 @@ class Cn {
|
|
|
6460
6460
|
fontData: a
|
|
6461
6461
|
};
|
|
6462
6462
|
} catch (h) {
|
|
6463
|
-
throw console.log(h), new
|
|
6463
|
+
throw console.log(h), new Je("Error adding font to region");
|
|
6464
6464
|
}
|
|
6465
6465
|
}, c = await Promise.all(A.regions.map(r)).catch((B) => {
|
|
6466
|
-
throw B instanceof
|
|
6466
|
+
throw B instanceof Je ? (Bn.setLatestToast("Failed to load font.", Ve.Error), B) : B instanceof Te ? B : new Error(B);
|
|
6467
6467
|
});
|
|
6468
6468
|
return await i.setSelectionsAndElements(
|
|
6469
6469
|
e,
|
|
@@ -6490,30 +6490,30 @@ class Cn {
|
|
|
6490
6490
|
* @deprecated
|
|
6491
6491
|
*/
|
|
6492
6492
|
async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, c) {
|
|
6493
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""),
|
|
6493
|
+
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), g = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map();
|
|
6494
6494
|
for (const Q of d)
|
|
6495
6495
|
if (Q.region) {
|
|
6496
|
-
const [p, m] =
|
|
6496
|
+
const [p, m] = Ne(
|
|
6497
6497
|
t,
|
|
6498
6498
|
A,
|
|
6499
6499
|
Q.region,
|
|
6500
|
-
[
|
|
6500
|
+
[g],
|
|
6501
6501
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
6502
6502
|
);
|
|
6503
6503
|
C.set(Q.id, p), w.set(Q.id, m);
|
|
6504
6504
|
}
|
|
6505
6505
|
const u = (() => {
|
|
6506
|
-
if (e.data && e.data.maxLength &&
|
|
6506
|
+
if (e.data && e.data.maxLength && g.length > e.data.maxLength)
|
|
6507
6507
|
return c && c(!0), { info: "0" };
|
|
6508
|
-
const Q = i.getProfanities(), p = st(
|
|
6508
|
+
const Q = i.getProfanities(), p = st(g.toLowerCase());
|
|
6509
6509
|
for (const m of p)
|
|
6510
6510
|
for (const I in Q) {
|
|
6511
6511
|
const F = Q[I].toLowerCase().replace(/\s/g, "");
|
|
6512
6512
|
if (m === F)
|
|
6513
6513
|
return o(!0), { error: "Blocked profanity." };
|
|
6514
6514
|
}
|
|
6515
|
-
return !e.data.vertical && !e.data.allowNewlines && (
|
|
6516
|
-
`) ||
|
|
6515
|
+
return !e.data.vertical && !e.data.allowNewlines && (g.includes(`
|
|
6516
|
+
`) || g.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 - g.length).toString() });
|
|
6517
6517
|
})();
|
|
6518
6518
|
if (u.error) {
|
|
6519
6519
|
r(u.error);
|
|
@@ -6526,7 +6526,7 @@ class Cn {
|
|
|
6526
6526
|
}), (n.defaultCleared || !e.data.deleteDefaultOnFocus) && i.setMandatoryFulfilled(e.stepName, !0);
|
|
6527
6527
|
const E = [];
|
|
6528
6528
|
for (const Q of d) {
|
|
6529
|
-
const p = e.data.curved ?
|
|
6529
|
+
const p = e.data.curved ? g : (w.get(Q.id) || []).join(`
|
|
6530
6530
|
`);
|
|
6531
6531
|
E.push(
|
|
6532
6532
|
this.generateTextChangeCommandsForRegion(
|
|
@@ -7804,42 +7804,42 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
7804
7804
|
</g>
|
|
7805
7805
|
</svg>
|
|
7806
7806
|
|
|
7807
|
-
`, v = (
|
|
7807
|
+
`, v = (l) => ZA("http://www.w3.org/2000/svg", l), Qt = (l, e) => {
|
|
7808
7808
|
const t = v("rect");
|
|
7809
|
-
return t.setAttribute("height", `${
|
|
7809
|
+
return t.setAttribute("height", `${l}`), t.setAttribute("width", `${e}`), t;
|
|
7810
7810
|
}, En = () => {
|
|
7811
|
-
const
|
|
7812
|
-
return
|
|
7813
|
-
}, un = (
|
|
7811
|
+
const l = v("svg");
|
|
7812
|
+
return l.setAttribute("xmlns", "http://www.w3.org/2000/svg"), l.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), l.setAttribute("version", "1.1"), l;
|
|
7813
|
+
}, un = (l) => {
|
|
7814
7814
|
const e = v("use");
|
|
7815
|
-
return e.setAttribute("xlink:href",
|
|
7815
|
+
return e.setAttribute("xlink:href", l), e.setAttribute("href", l), e;
|
|
7816
7816
|
};
|
|
7817
|
-
function
|
|
7818
|
-
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(
|
|
7817
|
+
function QA(l) {
|
|
7818
|
+
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(l) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
|
|
7819
7819
|
return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
|
|
7820
7820
|
}
|
|
7821
|
-
const mn = (
|
|
7821
|
+
const mn = (l, e, t) => {
|
|
7822
7822
|
const A = v("g");
|
|
7823
|
-
|
|
7823
|
+
l.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
|
|
7824
7824
|
};
|
|
7825
|
-
function
|
|
7825
|
+
function pA(l, e, t) {
|
|
7826
7826
|
const A = J();
|
|
7827
|
-
mn(e, t, `bgdef-${A}`),
|
|
7827
|
+
mn(e, t, `bgdef-${A}`), l.appendChild(un(`#bgdef-${A}`));
|
|
7828
7828
|
}
|
|
7829
|
-
const
|
|
7830
|
-
const a =
|
|
7829
|
+
const DA = (l, e, t, A) => {
|
|
7830
|
+
const a = fe("filter");
|
|
7831
7831
|
a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
7832
|
-
const n =
|
|
7833
|
-
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${
|
|
7834
|
-
const i =
|
|
7832
|
+
const n = fe("feOffset");
|
|
7833
|
+
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${l}`), n.setAttribute("dy", `${e}`);
|
|
7834
|
+
const i = fe("feGaussianBlur");
|
|
7835
7835
|
a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
|
|
7836
|
-
const s =
|
|
7836
|
+
const s = fe("feBlend");
|
|
7837
7837
|
return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
|
|
7838
|
-
},
|
|
7839
|
-
let e =
|
|
7838
|
+
}, IA = (l) => {
|
|
7839
|
+
let e = l;
|
|
7840
7840
|
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;
|
|
7841
7841
|
};
|
|
7842
|
-
function pt(
|
|
7842
|
+
function pt(l, e, t, A, a, n) {
|
|
7843
7843
|
const i = a || 1, s = n || 1, o = {
|
|
7844
7844
|
x: e[0],
|
|
7845
7845
|
y: e[1],
|
|
@@ -7849,10 +7849,10 @@ function pt(g, e, t, A, a, n) {
|
|
|
7849
7849
|
if (o.width <= 0)
|
|
7850
7850
|
return;
|
|
7851
7851
|
const r = Qn(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;
|
|
7852
|
-
|
|
7852
|
+
l.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
|
|
7853
7853
|
}
|
|
7854
|
-
function Qn(
|
|
7855
|
-
const a = t /
|
|
7854
|
+
function Qn(l, e, t, A) {
|
|
7855
|
+
const a = t / l, n = A / e;
|
|
7856
7856
|
return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
|
|
7857
7857
|
}
|
|
7858
7858
|
const Gt = {
|
|
@@ -7889,18 +7889,18 @@ class Dt {
|
|
|
7889
7889
|
o && (i.push(s), t = s);
|
|
7890
7890
|
for (const c of r) {
|
|
7891
7891
|
const B = n[c];
|
|
7892
|
-
let
|
|
7892
|
+
let g;
|
|
7893
7893
|
switch (typeof B) {
|
|
7894
7894
|
case "boolean":
|
|
7895
|
-
|
|
7895
|
+
g = B | 0;
|
|
7896
7896
|
break;
|
|
7897
7897
|
case "number":
|
|
7898
|
-
|
|
7898
|
+
g = (B * 100 | 0) / 100;
|
|
7899
7899
|
break;
|
|
7900
7900
|
default:
|
|
7901
7901
|
throw new he("Failed to encode path.");
|
|
7902
7902
|
}
|
|
7903
|
-
o || i.push(" "), i.push(
|
|
7903
|
+
o || i.push(" "), i.push(g), o = !1;
|
|
7904
7904
|
}
|
|
7905
7905
|
return i.join("");
|
|
7906
7906
|
};
|
|
@@ -7922,8 +7922,8 @@ class Dt {
|
|
|
7922
7922
|
);
|
|
7923
7923
|
for (let c = 0; c < s.length / r.length; c++) {
|
|
7924
7924
|
const B = { type: i, relative: o };
|
|
7925
|
-
for (let
|
|
7926
|
-
B[r[
|
|
7925
|
+
for (let g = 0; g < r.length; g++)
|
|
7926
|
+
B[r[g]] = s[c * r.length + g];
|
|
7927
7927
|
a.push(B);
|
|
7928
7928
|
}
|
|
7929
7929
|
} else
|
|
@@ -7982,7 +7982,7 @@ class pn extends mt {
|
|
|
7982
7982
|
brandSvg(e, t) {
|
|
7983
7983
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
7984
7984
|
const p = v("g"), m = v("defs");
|
|
7985
|
-
p.appendChild(m), m.appendChild(
|
|
7985
|
+
p.appendChild(m), m.appendChild(DA(3, 7, 4, "shadow"));
|
|
7986
7986
|
const I = v("g");
|
|
7987
7987
|
p.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
7988
7988
|
const F = v("g");
|
|
@@ -7991,21 +7991,21 @@ class pn extends mt {
|
|
|
7991
7991
|
p.appendChild(y), y.setAttribute("fill", "#9d2621"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = A;
|
|
7992
7992
|
const Y = v("g");
|
|
7993
7993
|
return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new Dt(p).transform(([S, T]) => [S, T + (n / 2 - S) ** 2 / (n * 2.9)]), p;
|
|
7994
|
-
}, [o, r, c] =
|
|
7994
|
+
}, [o, r, c] = QA(t);
|
|
7995
7995
|
if (!o)
|
|
7996
7996
|
return "";
|
|
7997
7997
|
const B = v("defs");
|
|
7998
|
-
o.appendChild(B),
|
|
7999
|
-
const
|
|
7998
|
+
o.appendChild(B), pA(o, B, t);
|
|
7999
|
+
const g = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
|
|
8000
8000
|
o.appendChild(h), h.setAttribute("transform", `translate(${C} ${w}) rotate(-21)`);
|
|
8001
|
-
const u = Qt(
|
|
8001
|
+
const u = Qt(g, d);
|
|
8002
8002
|
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
8003
8003
|
const E = v("g");
|
|
8004
8004
|
h.appendChild(E);
|
|
8005
8005
|
const D = s();
|
|
8006
8006
|
E.appendChild(D);
|
|
8007
8007
|
const Q = wt(i);
|
|
8008
|
-
return pt(E, Q,
|
|
8008
|
+
return pt(E, Q, g, d), IA(o.outerHTML);
|
|
8009
8009
|
}
|
|
8010
8010
|
}
|
|
8011
8011
|
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==";
|
|
@@ -8036,13 +8036,13 @@ class In extends mt {
|
|
|
8036
8036
|
S,
|
|
8037
8037
|
T + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
|
|
8038
8038
|
]), N.transform(([S, T]) => [S - (i - T) * (s - S) / 800, T]), I;
|
|
8039
|
-
}, [c, B,
|
|
8039
|
+
}, [c, B, g] = QA(t);
|
|
8040
8040
|
if (!c)
|
|
8041
8041
|
return "";
|
|
8042
8042
|
const d = v("defs");
|
|
8043
|
-
c.appendChild(d),
|
|
8043
|
+
c.appendChild(d), pA(c, d, t);
|
|
8044
8044
|
let C, w, h, u;
|
|
8045
|
-
A ? (C = B * 0.25 * (1 + 0.1), w =
|
|
8045
|
+
A ? (C = B * 0.25 * (1 + 0.1), w = g / 2 * (1 + 0.1), h = g * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), w = g * 0.8, h = g * 0.067, u = B * 0.33);
|
|
8046
8046
|
const E = v("g");
|
|
8047
8047
|
c.appendChild(E), E.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
|
|
8048
8048
|
const D = Qt(C, w);
|
|
@@ -8072,7 +8072,7 @@ class Fn extends mt {
|
|
|
8072
8072
|
const D = v("g");
|
|
8073
8073
|
D.classList.add("module-text-group");
|
|
8074
8074
|
const Q = v("defs");
|
|
8075
|
-
D.appendChild(Q), Q.appendChild(
|
|
8075
|
+
D.appendChild(Q), Q.appendChild(DA(0, 2, 2, "shadow"));
|
|
8076
8076
|
const p = v("path");
|
|
8077
8077
|
p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), Q.appendChild(p);
|
|
8078
8078
|
const m = v("g");
|
|
@@ -8083,36 +8083,36 @@ class Fn extends mt {
|
|
|
8083
8083
|
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;
|
|
8084
8084
|
const y = v("g");
|
|
8085
8085
|
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;
|
|
8086
|
-
},
|
|
8087
|
-
|
|
8086
|
+
}, g = v("g");
|
|
8087
|
+
g.classList.add("module-root");
|
|
8088
8088
|
const d = v("defs");
|
|
8089
|
-
|
|
8089
|
+
g.appendChild(d);
|
|
8090
8090
|
const C = v("g");
|
|
8091
|
-
C.classList.add("module-bounds"),
|
|
8091
|
+
C.classList.add("module-bounds"), g.appendChild(C);
|
|
8092
8092
|
const w = Qt(t.height, t.width);
|
|
8093
8093
|
w.setAttribute("opacity", "0"), C.appendChild(w);
|
|
8094
8094
|
const h = v("g");
|
|
8095
|
-
h.classList.add("module-text-enclosure"),
|
|
8095
|
+
h.classList.add("module-text-enclosure"), g.appendChild(h);
|
|
8096
8096
|
const u = B();
|
|
8097
8097
|
h.appendChild(u);
|
|
8098
8098
|
const E = wt(c);
|
|
8099
|
-
return pt(h, E, t.height, t.width, 0.35, 0.65),
|
|
8099
|
+
return pt(h, E, t.height, t.width, 0.35, 0.65), IA(g.outerHTML);
|
|
8100
8100
|
}
|
|
8101
8101
|
}
|
|
8102
|
-
async function
|
|
8103
|
-
if (
|
|
8102
|
+
async function fA(l) {
|
|
8103
|
+
if (l === "Favourites")
|
|
8104
8104
|
return new pn();
|
|
8105
|
-
if (
|
|
8105
|
+
if (l === "Maltesers") {
|
|
8106
8106
|
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]);
|
|
8107
8107
|
return new In(A[0], A[1]);
|
|
8108
8108
|
}
|
|
8109
|
-
if (
|
|
8109
|
+
if (l === "Vegemite")
|
|
8110
8110
|
return new Fn();
|
|
8111
|
-
throw new b(`Failed to resolve Module, Module ${
|
|
8111
|
+
throw new b(`Failed to resolve Module, Module ${l} not found`);
|
|
8112
8112
|
}
|
|
8113
|
-
var Ve = /* @__PURE__ */ ((
|
|
8113
|
+
var Ve = /* @__PURE__ */ ((l) => (l.Error = "Error", l.Warning = "Warning", l.Info = "Info", l))(Ve || {});
|
|
8114
8114
|
const yn = 1e3;
|
|
8115
|
-
class bt extends
|
|
8115
|
+
class bt extends gA {
|
|
8116
8116
|
constructor(e) {
|
|
8117
8117
|
super(), this.createdAt = /* @__PURE__ */ new Date(), this.update = e;
|
|
8118
8118
|
}
|
|
@@ -8125,8 +8125,8 @@ class bt extends BA {
|
|
|
8125
8125
|
}
|
|
8126
8126
|
}
|
|
8127
8127
|
class Mn {
|
|
8128
|
-
constructor(e, t, A, a, n, i, s, o, r, c, B,
|
|
8129
|
-
this.workflowStatePromiseQueue = new
|
|
8128
|
+
constructor(e, t, A, a, n, i, s, o, r, c, B, g, d, C = !1, w, h = !1, u = !1, E = !1) {
|
|
8129
|
+
this.workflowStatePromiseQueue = new BA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
|
|
8130
8130
|
var p;
|
|
8131
8131
|
if (!this.previewService)
|
|
8132
8132
|
return;
|
|
@@ -8134,7 +8134,7 @@ class Mn {
|
|
|
8134
8134
|
if (Q)
|
|
8135
8135
|
for (const [, m] of Q)
|
|
8136
8136
|
m.render(D);
|
|
8137
|
-
}, 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 =
|
|
8137
|
+
}, 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 = g, this.isReloadedTransaction = h, this.stepTags = c, E && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
|
|
8138
8138
|
this.initialized = !0;
|
|
8139
8139
|
}), this.initializationPromise.catch((D) => {
|
|
8140
8140
|
throw console.error(D), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -8371,8 +8371,8 @@ class Mn {
|
|
|
8371
8371
|
throw new b(
|
|
8372
8372
|
"We should always have a model container when injecting a preview!"
|
|
8373
8373
|
);
|
|
8374
|
-
const
|
|
8375
|
-
if (!
|
|
8374
|
+
const g = (B = o.asset) == null ? void 0 : B.fileLink;
|
|
8375
|
+
if (!g) {
|
|
8376
8376
|
console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
|
|
8377
8377
|
return;
|
|
8378
8378
|
}
|
|
@@ -8380,14 +8380,14 @@ class Mn {
|
|
|
8380
8380
|
this.modelContainer.applyModelVariant(
|
|
8381
8381
|
i.stepName,
|
|
8382
8382
|
{
|
|
8383
|
-
model:
|
|
8383
|
+
model: g,
|
|
8384
8384
|
contextService: this.getLayoutPreviewService()
|
|
8385
8385
|
},
|
|
8386
8386
|
d.replaceProductModel || !1
|
|
8387
8387
|
);
|
|
8388
8388
|
} else {
|
|
8389
|
-
const
|
|
8390
|
-
if (!
|
|
8389
|
+
const g = o.material;
|
|
8390
|
+
if (!g) {
|
|
8391
8391
|
console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
|
|
8392
8392
|
return;
|
|
8393
8393
|
}
|
|
@@ -8396,7 +8396,7 @@ class Mn {
|
|
|
8396
8396
|
throw new b(
|
|
8397
8397
|
"We should always have a model container when injecting a preview!"
|
|
8398
8398
|
);
|
|
8399
|
-
this.modelContainer.applyMaterialVariant(C, i.option.id,
|
|
8399
|
+
this.modelContainer.applyMaterialVariant(C, i.option.id, g);
|
|
8400
8400
|
});
|
|
8401
8401
|
}
|
|
8402
8402
|
}), await A.getInitializationPromise(), this.renderLayouts();
|
|
@@ -8414,7 +8414,7 @@ class Mn {
|
|
|
8414
8414
|
...this.storage,
|
|
8415
8415
|
[e]: { ...this.storage[e], ...t }
|
|
8416
8416
|
};
|
|
8417
|
-
if (!
|
|
8417
|
+
if (!_t(A, this.storage)) {
|
|
8418
8418
|
this.storage = A;
|
|
8419
8419
|
const a = new Yt(this.constructSerializableWorkflow());
|
|
8420
8420
|
this.commandContext.apply(a, !0), this.onStepSpecificStorageChange(e), this.onStorageChange();
|
|
@@ -8468,7 +8468,7 @@ class Mn {
|
|
|
8468
8468
|
const e = this.getCommandContext().getState();
|
|
8469
8469
|
if (!e)
|
|
8470
8470
|
throw new b("Attempted to serialize state before it was initialized.");
|
|
8471
|
-
return { transaction: JSON.stringify(this.dehydrateState(
|
|
8471
|
+
return { transaction: JSON.stringify(this.dehydrateState(le(e.transaction))) };
|
|
8472
8472
|
}
|
|
8473
8473
|
dehydrateState(e) {
|
|
8474
8474
|
var t;
|
|
@@ -8509,15 +8509,15 @@ class Mn {
|
|
|
8509
8509
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
8510
8510
|
const a = async (r, c, B) => {
|
|
8511
8511
|
if (r.type === M.SilentIllustration) {
|
|
8512
|
-
const
|
|
8513
|
-
return { step: r, results:
|
|
8512
|
+
const g = await new kt(r, c).trigger();
|
|
8513
|
+
return { step: r, results: g };
|
|
8514
8514
|
} else if (r.type === M.ProductOverlay) {
|
|
8515
|
-
const
|
|
8515
|
+
const g = await new kt(
|
|
8516
8516
|
r,
|
|
8517
8517
|
c,
|
|
8518
8518
|
B
|
|
8519
8519
|
).trigger();
|
|
8520
|
-
return { step: r, results:
|
|
8520
|
+
return { step: r, results: g };
|
|
8521
8521
|
}
|
|
8522
8522
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
8523
8523
|
}, n = e.filter(
|
|
@@ -8589,18 +8589,18 @@ class Mn {
|
|
|
8589
8589
|
r.forEach((m) => {
|
|
8590
8590
|
ae(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
|
|
8591
8591
|
});
|
|
8592
|
-
const
|
|
8592
|
+
const g = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
8593
8593
|
this.stepElements = {
|
|
8594
8594
|
...this.stepElements,
|
|
8595
8595
|
...d,
|
|
8596
8596
|
[e]: A
|
|
8597
|
-
}, this.removeElements(
|
|
8597
|
+
}, this.removeElements(g);
|
|
8598
8598
|
const w = this.workflow.steps.find((m) => m.stepName === e);
|
|
8599
8599
|
if ((w == null ? void 0 : w.type) === M.Frame) {
|
|
8600
8600
|
const m = this.getStepSpecificServices(e);
|
|
8601
8601
|
(p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((I) => I.id));
|
|
8602
8602
|
}
|
|
8603
|
-
const h =
|
|
8603
|
+
const h = g.map((m) => new ne(m.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
|
|
8604
8604
|
E.length > 0 && this.commandContext.apply(new k(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
8605
8605
|
const D = this.getInvalidModelVariants(), Q = this.modelContainer;
|
|
8606
8606
|
if (Q) {
|
|
@@ -8624,7 +8624,7 @@ class Mn {
|
|
|
8624
8624
|
switch (this.stepInitialised[o.stepName] = !0, o.type) {
|
|
8625
8625
|
case M.DigitalContent:
|
|
8626
8626
|
A.push(
|
|
8627
|
-
|
|
8627
|
+
CA.init(
|
|
8628
8628
|
o,
|
|
8629
8629
|
this,
|
|
8630
8630
|
this.reloadedState
|
|
@@ -8643,32 +8643,32 @@ class Mn {
|
|
|
8643
8643
|
break;
|
|
8644
8644
|
case M.Illustration:
|
|
8645
8645
|
A.push(
|
|
8646
|
-
|
|
8646
|
+
ve.init(o, this, this.reloadedState)
|
|
8647
8647
|
);
|
|
8648
8648
|
break;
|
|
8649
8649
|
case M.Material:
|
|
8650
8650
|
A.push(
|
|
8651
|
-
|
|
8651
|
+
wA.init(o, this, this.reloadedState)
|
|
8652
8652
|
);
|
|
8653
8653
|
break;
|
|
8654
8654
|
case M.Model:
|
|
8655
|
-
A.push(
|
|
8655
|
+
A.push(hA.init(o, this, this.reloadedState));
|
|
8656
8656
|
break;
|
|
8657
8657
|
case M.Module:
|
|
8658
8658
|
this.stepSpecificServices[o.stepName] = {
|
|
8659
|
-
module: await
|
|
8659
|
+
module: await fA(o.data.module)
|
|
8660
8660
|
}, A.push(
|
|
8661
|
-
|
|
8661
|
+
EA.init(o, this, this.reloadedState)
|
|
8662
8662
|
);
|
|
8663
8663
|
break;
|
|
8664
8664
|
case M.Picture:
|
|
8665
8665
|
A.push(
|
|
8666
|
-
|
|
8666
|
+
uA.init(o, this, this.reloadedState)
|
|
8667
8667
|
);
|
|
8668
8668
|
break;
|
|
8669
8669
|
case M.Question:
|
|
8670
8670
|
A.push(
|
|
8671
|
-
|
|
8671
|
+
mA.init(o, this, this.reloadedState)
|
|
8672
8672
|
);
|
|
8673
8673
|
break;
|
|
8674
8674
|
case M.Shape:
|
|
@@ -8821,7 +8821,7 @@ class Z {
|
|
|
8821
8821
|
return this.variantData.enabled;
|
|
8822
8822
|
}
|
|
8823
8823
|
}
|
|
8824
|
-
const
|
|
8824
|
+
const FA = class rt {
|
|
8825
8825
|
constructor(e, t, A) {
|
|
8826
8826
|
this.manager = e, this.step = t, this.tags = A;
|
|
8827
8827
|
}
|
|
@@ -8952,8 +8952,8 @@ const yA = class rt {
|
|
|
8952
8952
|
e ? a && e.executeCameraAnimation(a) : console.warn("No preview service available, cannot execute camera animations."), t ? A && t.executeAnimation(A) : console.warn("No model container available, cannot execute model animations.");
|
|
8953
8953
|
}
|
|
8954
8954
|
};
|
|
8955
|
-
|
|
8956
|
-
let X =
|
|
8955
|
+
FA.updateState = /* @__PURE__ */ new Map();
|
|
8956
|
+
let X = FA;
|
|
8957
8957
|
class Sn extends X {
|
|
8958
8958
|
constructor(e, t, A) {
|
|
8959
8959
|
super(e, t, A);
|
|
@@ -8965,7 +8965,7 @@ class Sn extends X {
|
|
|
8965
8965
|
*/
|
|
8966
8966
|
async selectVariant(e) {
|
|
8967
8967
|
if (!this.getUpdateState() && this.getCurrentVariant() !== e)
|
|
8968
|
-
return
|
|
8968
|
+
return ve.selectVariant(
|
|
8969
8969
|
this.step,
|
|
8970
8970
|
e.getResource(),
|
|
8971
8971
|
this.manager.getRegionElements(this.step.stepName) || [],
|
|
@@ -8981,7 +8981,7 @@ class Sn extends X {
|
|
|
8981
8981
|
const e = this.manager.getRegionElements(this.step.stepName) || [];
|
|
8982
8982
|
if (e.length !== 0)
|
|
8983
8983
|
try {
|
|
8984
|
-
return
|
|
8984
|
+
return He(e[0].id, this.manager.getAllLayoutData()).colors;
|
|
8985
8985
|
} catch (t) {
|
|
8986
8986
|
console.error(t);
|
|
8987
8987
|
}
|
|
@@ -8991,7 +8991,7 @@ class Sn extends X {
|
|
|
8991
8991
|
*/
|
|
8992
8992
|
setColor(e, t) {
|
|
8993
8993
|
const A = /* @__PURE__ */ new Map();
|
|
8994
|
-
return A.set(e, t),
|
|
8994
|
+
return A.set(e, t), ve.changeColors(
|
|
8995
8995
|
this.step,
|
|
8996
8996
|
this.manager.getRegionElements(this.step.stepName),
|
|
8997
8997
|
this.manager,
|
|
@@ -9003,7 +9003,7 @@ class Sn extends X {
|
|
|
9003
9003
|
return this.step.data.colorOption;
|
|
9004
9004
|
}
|
|
9005
9005
|
getAvailableColors() {
|
|
9006
|
-
return this.step.data.colorPickerEnabled ?
|
|
9006
|
+
return this.step.data.colorPickerEnabled ? ve.availableColors(this.step, this.manager) : Promise.resolve([]);
|
|
9007
9007
|
}
|
|
9008
9008
|
isColorPickerEnabled() {
|
|
9009
9009
|
return this.step.data.colorPickerEnabled ?? !1;
|
|
@@ -9014,7 +9014,7 @@ class Yn extends X {
|
|
|
9014
9014
|
super(e, t, A);
|
|
9015
9015
|
}
|
|
9016
9016
|
selectVariant(e) {
|
|
9017
|
-
return
|
|
9017
|
+
return wA.selectVariant(
|
|
9018
9018
|
this.step,
|
|
9019
9019
|
e.getResource(),
|
|
9020
9020
|
this.manager,
|
|
@@ -9027,7 +9027,7 @@ class Pn extends X {
|
|
|
9027
9027
|
super(e, t, A);
|
|
9028
9028
|
}
|
|
9029
9029
|
selectVariant(e) {
|
|
9030
|
-
return
|
|
9030
|
+
return hA.selectVariant(
|
|
9031
9031
|
this.step,
|
|
9032
9032
|
e.getResource(),
|
|
9033
9033
|
this.manager,
|
|
@@ -9045,7 +9045,7 @@ class xn extends X {
|
|
|
9045
9045
|
* @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
|
|
9046
9046
|
*/
|
|
9047
9047
|
selectVariant(e) {
|
|
9048
|
-
return
|
|
9048
|
+
return uA.selectVariant(
|
|
9049
9049
|
this.step,
|
|
9050
9050
|
e.getResource(),
|
|
9051
9051
|
this.manager,
|
|
@@ -9060,7 +9060,7 @@ class Nn extends X {
|
|
|
9060
9060
|
async selectVariant(e) {
|
|
9061
9061
|
if (!e.getId())
|
|
9062
9062
|
throw new Error("Unable to select variant with a null ID");
|
|
9063
|
-
await
|
|
9063
|
+
await mA.selectVariant(this.step, e.getId(), this.manager);
|
|
9064
9064
|
}
|
|
9065
9065
|
/**
|
|
9066
9066
|
* The way that this step expects to be rendered.
|
|
@@ -9329,7 +9329,7 @@ class kn extends X {
|
|
|
9329
9329
|
* @returns The final URL string for the QR code.
|
|
9330
9330
|
*/
|
|
9331
9331
|
async selectVideo(e) {
|
|
9332
|
-
return
|
|
9332
|
+
return CA.regenerateQRCode(
|
|
9333
9333
|
this.manager.getRegionElements(this.step.stepName),
|
|
9334
9334
|
e.key,
|
|
9335
9335
|
this.manager,
|
|
@@ -9367,7 +9367,7 @@ class Un extends X {
|
|
|
9367
9367
|
return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.text) || "";
|
|
9368
9368
|
}
|
|
9369
9369
|
setText(e) {
|
|
9370
|
-
|
|
9370
|
+
EA.changeText(this.step, e, this.manager, "", (t) => {
|
|
9371
9371
|
if (t)
|
|
9372
9372
|
this.manager.setInformationResults([
|
|
9373
9373
|
...this.manager.getInformationResults(),
|
|
@@ -9384,7 +9384,7 @@ class Un extends X {
|
|
|
9384
9384
|
});
|
|
9385
9385
|
}
|
|
9386
9386
|
}
|
|
9387
|
-
class
|
|
9387
|
+
class Me {
|
|
9388
9388
|
static get(e, t) {
|
|
9389
9389
|
switch (t.type) {
|
|
9390
9390
|
case M.DigitalContent:
|
|
@@ -9414,7 +9414,7 @@ class ye {
|
|
|
9414
9414
|
}
|
|
9415
9415
|
}
|
|
9416
9416
|
}
|
|
9417
|
-
const
|
|
9417
|
+
const yA = f`
|
|
9418
9418
|
fragment CreateDesignTransaction on Transaction {
|
|
9419
9419
|
id
|
|
9420
9420
|
designName
|
|
@@ -9440,7 +9440,7 @@ const MA = f`
|
|
|
9440
9440
|
}
|
|
9441
9441
|
}
|
|
9442
9442
|
`, Gn = f`
|
|
9443
|
-
${
|
|
9443
|
+
${yA}
|
|
9444
9444
|
mutation CreateDesign(
|
|
9445
9445
|
$name: String!
|
|
9446
9446
|
$layouts: [LayoutInput]!
|
|
@@ -9472,7 +9472,7 @@ const MA = f`
|
|
|
9472
9472
|
}
|
|
9473
9473
|
}
|
|
9474
9474
|
`, bn = f`
|
|
9475
|
-
${
|
|
9475
|
+
${yA}
|
|
9476
9476
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
9477
9477
|
designCreateMany(inputs: $inputs) {
|
|
9478
9478
|
id
|
|
@@ -9486,40 +9486,40 @@ const MA = f`
|
|
|
9486
9486
|
}
|
|
9487
9487
|
}
|
|
9488
9488
|
`;
|
|
9489
|
-
function
|
|
9490
|
-
const e = JSON.parse(atob(
|
|
9489
|
+
function Oe(l) {
|
|
9490
|
+
const e = JSON.parse(atob(l.split(".")[1])).exp;
|
|
9491
9491
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
9492
9492
|
}
|
|
9493
|
-
const Jn = async (
|
|
9493
|
+
const Jn = async (l) => {
|
|
9494
9494
|
var i, s;
|
|
9495
9495
|
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 = {};
|
|
9496
|
-
return A && !
|
|
9496
|
+
return A && !Oe(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
9497
9497
|
mutation: Gn,
|
|
9498
9498
|
errorPolicy: "all",
|
|
9499
9499
|
fetchPolicy: "no-cache",
|
|
9500
9500
|
variables: {
|
|
9501
|
-
name:
|
|
9502
|
-
layouts:
|
|
9503
|
-
workflowId:
|
|
9504
|
-
transactionId:
|
|
9505
|
-
previewImage:
|
|
9506
|
-
useThreeDimPreview:
|
|
9507
|
-
metadata:
|
|
9508
|
-
selectedVariants:
|
|
9501
|
+
name: l.name,
|
|
9502
|
+
layouts: l.layouts,
|
|
9503
|
+
workflowId: l.workflowId,
|
|
9504
|
+
transactionId: l.transactionId,
|
|
9505
|
+
previewImage: l.previewImage,
|
|
9506
|
+
useThreeDimPreview: l.useThreeDimPreview,
|
|
9507
|
+
metadata: l.metadata,
|
|
9508
|
+
selectedVariants: l.selectedVariants
|
|
9509
9509
|
},
|
|
9510
9510
|
context: {
|
|
9511
9511
|
headers: a
|
|
9512
9512
|
}
|
|
9513
9513
|
})).data) == null ? void 0 : s.designCreate;
|
|
9514
|
-
}, Tn = async (
|
|
9514
|
+
}, Tn = async (l) => {
|
|
9515
9515
|
var i, s;
|
|
9516
9516
|
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 = {};
|
|
9517
|
-
return A && !
|
|
9517
|
+
return A && !Oe(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
9518
9518
|
mutation: bn,
|
|
9519
9519
|
errorPolicy: "all",
|
|
9520
9520
|
fetchPolicy: "no-cache",
|
|
9521
9521
|
variables: {
|
|
9522
|
-
inputs:
|
|
9522
|
+
inputs: l.map((o) => ({
|
|
9523
9523
|
name: o.name,
|
|
9524
9524
|
layouts: o.layouts,
|
|
9525
9525
|
workflowId: o.workflowId,
|
|
@@ -9534,17 +9534,17 @@ const Jn = async (g) => {
|
|
|
9534
9534
|
headers: a
|
|
9535
9535
|
}
|
|
9536
9536
|
})).data) == null ? void 0 : s.designCreateMany;
|
|
9537
|
-
}, ct = (
|
|
9537
|
+
}, ct = (l, e, t) => {
|
|
9538
9538
|
const A = (n) => {
|
|
9539
9539
|
const i = {};
|
|
9540
9540
|
if (n.type === "Frame") {
|
|
9541
|
-
const s =
|
|
9541
|
+
const s = l[n.stepName], o = n.data;
|
|
9542
9542
|
if (!s || !s.image || o.hideImageInCart && t)
|
|
9543
9543
|
return i;
|
|
9544
9544
|
i[`${n.stepTitle} image`] = s.image;
|
|
9545
9545
|
}
|
|
9546
9546
|
if (n.type === "Illustration") {
|
|
9547
|
-
const s =
|
|
9547
|
+
const s = l[n.stepName], o = n.data;
|
|
9548
9548
|
if (!s || o.hideColorsInCart && t || !s.colors)
|
|
9549
9549
|
return i;
|
|
9550
9550
|
if (s.colors.length > 0) {
|
|
@@ -9553,13 +9553,13 @@ const Jn = async (g) => {
|
|
|
9553
9553
|
}
|
|
9554
9554
|
}
|
|
9555
9555
|
if (n.type === "Module") {
|
|
9556
|
-
const s =
|
|
9556
|
+
const s = l[n.stepName], o = n.data;
|
|
9557
9557
|
if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && t)
|
|
9558
9558
|
return i;
|
|
9559
9559
|
i[`${n.stepTitle} text`] = s.text;
|
|
9560
9560
|
}
|
|
9561
9561
|
if (n.type === "Text") {
|
|
9562
|
-
const s =
|
|
9562
|
+
const s = l[n.stepName];
|
|
9563
9563
|
if (!s)
|
|
9564
9564
|
return i;
|
|
9565
9565
|
const o = n.data;
|
|
@@ -9570,14 +9570,14 @@ const Jn = async (g) => {
|
|
|
9570
9570
|
return e.steps.forEach((n) => {
|
|
9571
9571
|
Object.assign(a, A(n));
|
|
9572
9572
|
}), a;
|
|
9573
|
-
}, On = (
|
|
9573
|
+
}, On = (l, e, t, A) => {
|
|
9574
9574
|
const a = {};
|
|
9575
9575
|
let n = {};
|
|
9576
9576
|
t ? n = ct(t, e, !1) : A && (n = A);
|
|
9577
9577
|
const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
|
|
9578
9578
|
for (const o of s) {
|
|
9579
|
-
if (Object.keys(
|
|
9580
|
-
const r =
|
|
9579
|
+
if (Object.keys(l).includes(o)) {
|
|
9580
|
+
const r = l[o], c = e.steps.find((B) => B.stepTitle === o);
|
|
9581
9581
|
a[`${c == null ? void 0 : c.stepTitle} selection`] = {
|
|
9582
9582
|
value: r[0].name,
|
|
9583
9583
|
priceModifier: r[0].priceModifier
|
|
@@ -9590,60 +9590,60 @@ const Jn = async (g) => {
|
|
|
9590
9590
|
});
|
|
9591
9591
|
}
|
|
9592
9592
|
return a;
|
|
9593
|
-
},
|
|
9593
|
+
}, MA = (l, e, t, A, a, n, i, s) => {
|
|
9594
9594
|
var C, w;
|
|
9595
|
-
const o = e.basePrice || 0, r =
|
|
9596
|
-
additionalExternalProductId: (C =
|
|
9597
|
-
additionalExternalVariantId: (w =
|
|
9595
|
+
const o = e.basePrice || 0, r = l.priceModifierTotal || 0, c = On(A, t, void 0, n), g = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(l.id), d = {
|
|
9596
|
+
additionalExternalProductId: (C = l.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
|
|
9597
|
+
additionalExternalVariantId: (w = l.integrationProduct) == null ? void 0 : w.additionalExternalVariantId,
|
|
9598
9598
|
baseCost: o,
|
|
9599
|
-
designExternalVariants:
|
|
9600
|
-
designProductId:
|
|
9601
|
-
designProductVariantId:
|
|
9599
|
+
designExternalVariants: l.designExternalVariants,
|
|
9600
|
+
designProductId: l.externalDesignProductId,
|
|
9601
|
+
designProductVariantId: l.externalDesignProductVariantId,
|
|
9602
9602
|
event: "onComplete",
|
|
9603
9603
|
exportedData: c,
|
|
9604
|
-
externalCartProductId:
|
|
9605
|
-
externalCartProductVariantId:
|
|
9604
|
+
externalCartProductId: l.externalCartProductId,
|
|
9605
|
+
externalCartProductVariantId: l.externalCartProductVariantId,
|
|
9606
9606
|
lineItemImageUrl: i || "",
|
|
9607
9607
|
optionsCost: r,
|
|
9608
9608
|
processExecutionId: s,
|
|
9609
|
-
quantity:
|
|
9610
|
-
transactionId:
|
|
9611
|
-
transactionOwnerId:
|
|
9609
|
+
quantity: l.quantity,
|
|
9610
|
+
transactionId: l.id,
|
|
9611
|
+
transactionOwnerId: g,
|
|
9612
9612
|
weight: e.weight,
|
|
9613
|
-
workflowViewerLink:
|
|
9614
|
-
workflowViewerReadOnlyLink:
|
|
9613
|
+
workflowViewerLink: l.workflowViewerLink || "",
|
|
9614
|
+
workflowViewerReadOnlyLink: l.workflowViewerReadOnlyLink || ""
|
|
9615
9615
|
};
|
|
9616
9616
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
9617
|
-
},
|
|
9617
|
+
}, SA = async (l, e, t, A, a, n, i, s, o, r) => {
|
|
9618
9618
|
var F;
|
|
9619
9619
|
await (async () => {
|
|
9620
|
-
var
|
|
9620
|
+
var H;
|
|
9621
9621
|
if (r !== void 0)
|
|
9622
9622
|
return r;
|
|
9623
|
-
await
|
|
9623
|
+
await l.outstandingRequestsPromise();
|
|
9624
9624
|
const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), S = await x.getShadowGraphqlClient().query({
|
|
9625
|
-
query:
|
|
9625
|
+
query: cA,
|
|
9626
9626
|
variables: { ids: [a.id] },
|
|
9627
9627
|
fetchPolicy: "no-cache",
|
|
9628
9628
|
errorPolicy: "all",
|
|
9629
9629
|
context: {
|
|
9630
9630
|
transactionOwnerId: Y
|
|
9631
9631
|
}
|
|
9632
|
-
}), T = (
|
|
9632
|
+
}), T = (H = S.data) == null ? void 0 : H.transactions[0].workflowState;
|
|
9633
9633
|
return S.errors ? (S.errors.forEach((W) => {
|
|
9634
9634
|
S.errors && console.log("Server Error:", W.message);
|
|
9635
9635
|
}), null) : T ?? null;
|
|
9636
|
-
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await
|
|
9637
|
-
const
|
|
9636
|
+
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await l.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
9637
|
+
const g = l.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, C = g && e.showModelOnFinishStep && !!d, w = o && ct(o, e, !0), h = o && ct(o, e, !1), u = async (y) => {
|
|
9638
9638
|
const Y = {};
|
|
9639
9639
|
let N = 0;
|
|
9640
9640
|
if (Object.keys(n).length > 0)
|
|
9641
9641
|
for (const S of Object.keys(n)) {
|
|
9642
|
-
const T = n[S],
|
|
9642
|
+
const T = n[S], H = e.steps.find((W) => W.stepName === S);
|
|
9643
9643
|
for (let W = 0; W < T.selections.length; ++W) {
|
|
9644
9644
|
const O = T.selections[W];
|
|
9645
|
-
if (
|
|
9646
|
-
const ee =
|
|
9645
|
+
if (H && (!y || H.option && (H.option.variants || []).length > 1 && !H.data.hideSelectionInCart && !H.data.hideSelectionsInCart)) {
|
|
9646
|
+
const ee = H.stepTitle;
|
|
9647
9647
|
Y[ee] ? Y[ee].push({
|
|
9648
9648
|
id: O.id || "",
|
|
9649
9649
|
name: O.name,
|
|
@@ -9708,11 +9708,11 @@ const Jn = async (g) => {
|
|
|
9708
9708
|
cartSelectionsWithPrices: E,
|
|
9709
9709
|
cartMetadata: w
|
|
9710
9710
|
};
|
|
9711
|
-
}, Ln = async (
|
|
9711
|
+
}, Ln = async (l, e, t, A, a, n, i, s, o, r, c) => {
|
|
9712
9712
|
var u, E;
|
|
9713
9713
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
9714
|
-
const { designDetails: B, cartSelectionsWithPrices:
|
|
9715
|
-
|
|
9714
|
+
const { designDetails: B, cartSelectionsWithPrices: g, cartMetadata: d } = await SA(
|
|
9715
|
+
l,
|
|
9716
9716
|
e,
|
|
9717
9717
|
t,
|
|
9718
9718
|
A,
|
|
@@ -9728,27 +9728,27 @@ const Jn = async (g) => {
|
|
|
9728
9728
|
throw new Error("Failed to create design");
|
|
9729
9729
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
9730
9730
|
const h = C.transaction;
|
|
9731
|
-
return
|
|
9731
|
+
return MA(
|
|
9732
9732
|
h,
|
|
9733
9733
|
a,
|
|
9734
9734
|
e,
|
|
9735
|
-
|
|
9735
|
+
g,
|
|
9736
9736
|
C == null ? void 0 : C.sku,
|
|
9737
9737
|
d,
|
|
9738
9738
|
w,
|
|
9739
9739
|
(E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
|
|
9740
9740
|
);
|
|
9741
|
-
}, zn = async (
|
|
9741
|
+
}, zn = async (l, e, t) => {
|
|
9742
9742
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
9743
|
-
|
|
9743
|
+
l.map(async (s) => {
|
|
9744
9744
|
await s.workflowManager.outstandingRequestsPromise();
|
|
9745
9745
|
})
|
|
9746
9746
|
);
|
|
9747
9747
|
const a = await (async () => {
|
|
9748
9748
|
var r;
|
|
9749
9749
|
const o = await x.getShadowGraphqlClient().query({
|
|
9750
|
-
query:
|
|
9751
|
-
variables: { ids:
|
|
9750
|
+
query: cA,
|
|
9751
|
+
variables: { ids: l.map((c) => c.transaction.id) },
|
|
9752
9752
|
fetchPolicy: "no-cache",
|
|
9753
9753
|
errorPolicy: "all"
|
|
9754
9754
|
});
|
|
@@ -9756,7 +9756,7 @@ const Jn = async (g) => {
|
|
|
9756
9756
|
o.errors && console.log("Server Error:", c.message);
|
|
9757
9757
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((c) => c.workflowState ?? null) : null;
|
|
9758
9758
|
})(), n = await Promise.all(
|
|
9759
|
-
|
|
9759
|
+
l.map(async (s, o) => await SA(
|
|
9760
9760
|
s.workflowManager,
|
|
9761
9761
|
s.workflow,
|
|
9762
9762
|
s.layouts,
|
|
@@ -9774,9 +9774,9 @@ const Jn = async (g) => {
|
|
|
9774
9774
|
if (!i)
|
|
9775
9775
|
throw new Error("Failed to create designs");
|
|
9776
9776
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
9777
|
-
var
|
|
9778
|
-
const r =
|
|
9779
|
-
return
|
|
9777
|
+
var g;
|
|
9778
|
+
const r = l[o], c = n[o], B = s.transaction;
|
|
9779
|
+
return MA(
|
|
9780
9780
|
B,
|
|
9781
9781
|
r.product,
|
|
9782
9782
|
r.workflow,
|
|
@@ -9785,7 +9785,7 @@ const Jn = async (g) => {
|
|
|
9785
9785
|
c.cartMetadata,
|
|
9786
9786
|
//lineItemImageLink,
|
|
9787
9787
|
void 0,
|
|
9788
|
-
(
|
|
9788
|
+
(g = s.processExecution) == null ? void 0 : g.id
|
|
9789
9789
|
);
|
|
9790
9790
|
});
|
|
9791
9791
|
};
|
|
@@ -9871,11 +9871,11 @@ const $e = new Kn(), jn = f`
|
|
|
9871
9871
|
}
|
|
9872
9872
|
}
|
|
9873
9873
|
`;
|
|
9874
|
-
var Vn = /* @__PURE__ */ ((
|
|
9875
|
-
class
|
|
9874
|
+
var Vn = /* @__PURE__ */ ((l) => (l.QuantityChanged = "QuantityChanged", l.PriceBreakChanged = "PriceBreakChanged", l))(Vn || {});
|
|
9875
|
+
class Se {
|
|
9876
9876
|
constructor(e, t) {
|
|
9877
9877
|
var a;
|
|
9878
|
-
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate =
|
|
9878
|
+
if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = $t(async () => {
|
|
9879
9879
|
await $e.getSavedDesignByTransaction(
|
|
9880
9880
|
this.getWorkflowManager().getTransaction().id
|
|
9881
9881
|
) && this.save();
|
|
@@ -9961,7 +9961,7 @@ class Me {
|
|
|
9961
9961
|
}
|
|
9962
9962
|
let n = 2048;
|
|
9963
9963
|
t && t <= 2048 && (n = t);
|
|
9964
|
-
const i =
|
|
9964
|
+
const i = ke(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], c = s.find((Q) => {
|
|
9965
9965
|
var p;
|
|
9966
9966
|
return ((p = Q.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
|
|
9967
9967
|
}) || s[0], B = c.layoutState.layout.previewRegion ? {
|
|
@@ -9974,22 +9974,22 @@ class Me {
|
|
|
9974
9974
|
y: 0,
|
|
9975
9975
|
width: c.layoutState.layout.width,
|
|
9976
9976
|
height: c.layoutState.layout.height
|
|
9977
|
-
},
|
|
9977
|
+
}, g = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
|
|
9978
9978
|
if (!d)
|
|
9979
9979
|
throw new je("Failed to obtain 2D context for preview image creation");
|
|
9980
|
-
const C =
|
|
9980
|
+
const C = Lt(g.layoutState.layout, g.layoutState.elements, {
|
|
9981
9981
|
renderingConfiguration: {
|
|
9982
|
-
purpose:
|
|
9982
|
+
purpose: zt.Print,
|
|
9983
9983
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
9984
9984
|
}
|
|
9985
|
-
}), w =
|
|
9986
|
-
await (await
|
|
9985
|
+
}), w = Kt(C);
|
|
9986
|
+
await (await Zt.from(d, w, {
|
|
9987
9987
|
anonymousCrossOrigin: !0,
|
|
9988
9988
|
ignoreDimensions: !1,
|
|
9989
|
-
createCanvas:
|
|
9990
|
-
createImage:
|
|
9991
|
-
DOMParser:
|
|
9992
|
-
fetch:
|
|
9989
|
+
createCanvas: ke,
|
|
9990
|
+
createImage: jt,
|
|
9991
|
+
DOMParser: Vt(),
|
|
9992
|
+
fetch: lt
|
|
9993
9993
|
})).render();
|
|
9994
9994
|
const u = await this.getCanvasObjectURLAsync(i);
|
|
9995
9995
|
return i.toDataURL(u);
|
|
@@ -10001,7 +10001,7 @@ class Me {
|
|
|
10001
10001
|
const A = this.cachedStepHandles.get(t.stepName);
|
|
10002
10002
|
if (A)
|
|
10003
10003
|
return A;
|
|
10004
|
-
const a =
|
|
10004
|
+
const a = Me.get(this.getWorkflowManager(), t);
|
|
10005
10005
|
return this.cachedStepHandles.set(t.stepName, a), a;
|
|
10006
10006
|
}
|
|
10007
10007
|
getSteps() {
|
|
@@ -10085,17 +10085,17 @@ class Me {
|
|
|
10085
10085
|
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);
|
|
10086
10086
|
i.forEach((r) => {
|
|
10087
10087
|
const c = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
|
|
10088
|
-
B !== void 0 && (B.forEach((
|
|
10089
|
-
const d =
|
|
10088
|
+
B !== void 0 && (B.forEach((g) => c.add(JSON.stringify(g))), s.forEach((g) => {
|
|
10089
|
+
const d = g.getRaw().globalPropertyAspectConfigurations;
|
|
10090
10090
|
d !== void 0 && d.forEach((C) => {
|
|
10091
10091
|
const w = o(C), h = c.has(JSON.stringify(C));
|
|
10092
10092
|
if (h && (w == null ? void 0 : w.getType()) === "Option") {
|
|
10093
|
-
const u =
|
|
10093
|
+
const u = g.getCurrentVariant();
|
|
10094
10094
|
if (!u)
|
|
10095
10095
|
return;
|
|
10096
10096
|
r.selectVariant(u), c.delete(JSON.stringify(C));
|
|
10097
10097
|
} else if (h && (w == null ? void 0 : w.getType()) === "Text") {
|
|
10098
|
-
const u =
|
|
10098
|
+
const u = g.getText();
|
|
10099
10099
|
r.setText(u), c.delete(JSON.stringify(C));
|
|
10100
10100
|
}
|
|
10101
10101
|
});
|
|
@@ -10105,10 +10105,10 @@ class Me {
|
|
|
10105
10105
|
getStepByName(e) {
|
|
10106
10106
|
const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
|
|
10107
10107
|
if (!(!t || !this.stepHasHandle(t)))
|
|
10108
|
-
return
|
|
10108
|
+
return Me.get(this.getWorkflowManager(), t);
|
|
10109
10109
|
}
|
|
10110
10110
|
getStepsByType(e) {
|
|
10111
|
-
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) =>
|
|
10111
|
+
return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Me.get(this.getWorkflowManager(), t));
|
|
10112
10112
|
}
|
|
10113
10113
|
getStepsByScene(e) {
|
|
10114
10114
|
if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
|
|
@@ -10117,7 +10117,7 @@ class Me {
|
|
|
10117
10117
|
);
|
|
10118
10118
|
return e.stepIds.map(
|
|
10119
10119
|
(A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
|
|
10120
|
-
).filter((A) => this.stepHasHandle(A)).map((A) =>
|
|
10120
|
+
).filter((A) => this.stepHasHandle(A)).map((A) => Me.get(this.getWorkflowManager(), A));
|
|
10121
10121
|
}
|
|
10122
10122
|
async attachCustomerDetails(e) {
|
|
10123
10123
|
return this.assignCustomerDetails({ emailAddress: e.email });
|
|
@@ -10175,7 +10175,7 @@ class Me {
|
|
|
10175
10175
|
}
|
|
10176
10176
|
async copy() {
|
|
10177
10177
|
var s;
|
|
10178
|
-
const e =
|
|
10178
|
+
const e = le(this.getCommandContext().getState());
|
|
10179
10179
|
if (!e)
|
|
10180
10180
|
throw new b("Internal state is undefined! Cannot copy experience!");
|
|
10181
10181
|
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new ss({}), n = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
|
|
@@ -10275,11 +10275,11 @@ const Wn = [
|
|
|
10275
10275
|
"textPath",
|
|
10276
10276
|
"tref",
|
|
10277
10277
|
"tspan"
|
|
10278
|
-
], Xn = async (
|
|
10278
|
+
], Xn = async (l, e, t) => {
|
|
10279
10279
|
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);
|
|
10280
10280
|
s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
10281
|
-
const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await
|
|
10282
|
-
const C =
|
|
10281
|
+
const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await eA(o, { type: "svg" }))}`, B = (d) => {
|
|
10282
|
+
const C = l.find((h) => h.panelId === d.panelId);
|
|
10283
10283
|
if (!C)
|
|
10284
10284
|
throw new z(d);
|
|
10285
10285
|
const w = J();
|
|
@@ -10296,40 +10296,37 @@ const Wn = [
|
|
|
10296
10296
|
},
|
|
10297
10297
|
C
|
|
10298
10298
|
);
|
|
10299
|
-
},
|
|
10299
|
+
}, g = t.data.regions;
|
|
10300
10300
|
try {
|
|
10301
|
-
return
|
|
10301
|
+
return g.map(B);
|
|
10302
10302
|
} catch (d) {
|
|
10303
10303
|
return console.error(d), [];
|
|
10304
10304
|
}
|
|
10305
|
-
}, qn = async (
|
|
10305
|
+
}, qn = async (l, e, t, A) => {
|
|
10306
10306
|
const a = t.data, n = a.assetUrl, i = await nt(n);
|
|
10307
10307
|
try {
|
|
10308
10308
|
const s = _A(a, A.option);
|
|
10309
10309
|
s && (e[A.stepName] = { selectedVariants: [s] });
|
|
10310
10310
|
const o = async (r) => {
|
|
10311
10311
|
var w;
|
|
10312
|
-
const c = await ea(
|
|
10313
|
-
r || {
|
|
10314
|
-
width: 1,
|
|
10315
|
-
height: 1
|
|
10316
|
-
},
|
|
10317
|
-
(w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
|
|
10318
|
-
), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
|
|
10312
|
+
const c = await ea(r, (w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink), B = await gt(c), g = J(), d = l.find((h) => h.panelId === r.panelId);
|
|
10319
10313
|
if (!d)
|
|
10320
10314
|
throw new z(r);
|
|
10321
|
-
const C = Bt(
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
|
|
10325
|
-
|
|
10315
|
+
const C = Bt(
|
|
10316
|
+
i,
|
|
10317
|
+
B,
|
|
10318
|
+
{
|
|
10319
|
+
scale: a.scale,
|
|
10320
|
+
left: a.x,
|
|
10321
|
+
top: a.y
|
|
10322
|
+
},
|
|
10323
|
+
A.data.forceImageCover
|
|
10324
|
+
);
|
|
10326
10325
|
return [
|
|
10327
10326
|
new L(
|
|
10328
10327
|
{
|
|
10329
|
-
id:
|
|
10328
|
+
id: g,
|
|
10330
10329
|
path: B.path,
|
|
10331
|
-
dataWidth: B.width,
|
|
10332
|
-
dataHeight: B.height,
|
|
10333
10330
|
type: G.Frame,
|
|
10334
10331
|
forceImageCover: A.data.forceImageCover,
|
|
10335
10332
|
x: r.left,
|
|
@@ -10341,18 +10338,29 @@ const Wn = [
|
|
|
10341
10338
|
rotation: r.rotation,
|
|
10342
10339
|
scaleX: r.width / B.width,
|
|
10343
10340
|
scaleY: r.height / B.height,
|
|
10344
|
-
pattern:
|
|
10341
|
+
pattern: {
|
|
10342
|
+
id: `${g}-pattern`,
|
|
10343
|
+
src: i.src,
|
|
10344
|
+
x: C.x,
|
|
10345
|
+
y: C.y,
|
|
10346
|
+
width: i.width,
|
|
10347
|
+
height: i.height,
|
|
10348
|
+
rotation: 0,
|
|
10349
|
+
scaleX: C.zoom,
|
|
10350
|
+
scaleY: C.zoom,
|
|
10351
|
+
svg: i.svg,
|
|
10352
|
+
colors: i.colors
|
|
10353
|
+
}
|
|
10345
10354
|
},
|
|
10346
10355
|
d
|
|
10347
|
-
)
|
|
10348
|
-
new Lt(l, i, C)
|
|
10356
|
+
)
|
|
10349
10357
|
];
|
|
10350
10358
|
};
|
|
10351
10359
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
10352
10360
|
} catch (s) {
|
|
10353
10361
|
return console.error(s), [];
|
|
10354
10362
|
}
|
|
10355
|
-
}, Zn = async (
|
|
10363
|
+
}, Zn = async (l, e, t, A) => {
|
|
10356
10364
|
var p, m;
|
|
10357
10365
|
const a = t.data, n = A.option;
|
|
10358
10366
|
if (!n)
|
|
@@ -10366,10 +10374,10 @@ const Wn = [
|
|
|
10366
10374
|
const s = (m = i.asset) == null ? void 0 : m.fileLink;
|
|
10367
10375
|
if (!s)
|
|
10368
10376
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
10369
|
-
const o = await _(s, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", C =
|
|
10377
|
+
const o = await _(s, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", C = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
10370
10378
|
if (!C)
|
|
10371
10379
|
return console.error("Failed to read SVG."), [];
|
|
10372
|
-
|
|
10380
|
+
Xt(C);
|
|
10373
10381
|
const w = {};
|
|
10374
10382
|
ta(C, (I) => {
|
|
10375
10383
|
Wn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
@@ -10384,7 +10392,7 @@ const Wn = [
|
|
|
10384
10392
|
I.classList.add(S), w[S] = { browserValue: Y };
|
|
10385
10393
|
}
|
|
10386
10394
|
});
|
|
10387
|
-
const u =
|
|
10395
|
+
const u = qt().serializeToString(C), E = a.colors;
|
|
10388
10396
|
if (E) {
|
|
10389
10397
|
for (const [I, F] of Object.entries(w))
|
|
10390
10398
|
for (const y of Object.keys(E))
|
|
@@ -10394,7 +10402,7 @@ const Wn = [
|
|
|
10394
10402
|
}
|
|
10395
10403
|
}
|
|
10396
10404
|
const D = (I) => {
|
|
10397
|
-
const F =
|
|
10405
|
+
const F = l.find((Y) => Y.panelId === I.panelId);
|
|
10398
10406
|
if (!F)
|
|
10399
10407
|
throw new z(I);
|
|
10400
10408
|
const y = J();
|
|
@@ -10421,9 +10429,9 @@ const Wn = [
|
|
|
10421
10429
|
} catch (I) {
|
|
10422
10430
|
return console.error(I), [];
|
|
10423
10431
|
}
|
|
10424
|
-
}, $n = async (
|
|
10425
|
-
const A = await
|
|
10426
|
-
const r =
|
|
10432
|
+
}, $n = async (l, e, t) => {
|
|
10433
|
+
const A = await fA(t.data.module), a = e.data, n = (s, o) => {
|
|
10434
|
+
const r = l.find((B) => B.panelId === o.panelId);
|
|
10427
10435
|
if (!r)
|
|
10428
10436
|
throw new z(o);
|
|
10429
10437
|
const c = J();
|
|
@@ -10451,12 +10459,12 @@ const Wn = [
|
|
|
10451
10459
|
} catch (s) {
|
|
10452
10460
|
return console.error(s), [];
|
|
10453
10461
|
}
|
|
10454
|
-
}, _n = async (
|
|
10462
|
+
}, _n = async (l, e, t, A) => {
|
|
10455
10463
|
var c, B;
|
|
10456
10464
|
const a = t.data, n = A.option;
|
|
10457
10465
|
if (!n)
|
|
10458
10466
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10459
|
-
const i = ((c = n.variants) == null ? void 0 : c.find((
|
|
10467
|
+
const i = ((c = n.variants) == null ? void 0 : c.find((g) => g.id === a.pictureVariantId)) || ze(n);
|
|
10460
10468
|
if (!i)
|
|
10461
10469
|
return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
|
|
10462
10470
|
if (!i.asset)
|
|
@@ -10465,24 +10473,24 @@ const Wn = [
|
|
|
10465
10473
|
const s = (B = i.asset) == null ? void 0 : B.fileLink;
|
|
10466
10474
|
if (!s)
|
|
10467
10475
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
10468
|
-
const o = (
|
|
10469
|
-
const d =
|
|
10476
|
+
const o = (g) => {
|
|
10477
|
+
const d = l.find((w) => w.panelId === g.panelId);
|
|
10470
10478
|
if (!d)
|
|
10471
|
-
throw new z(
|
|
10479
|
+
throw new z(g);
|
|
10472
10480
|
const C = J();
|
|
10473
10481
|
return new L(
|
|
10474
10482
|
{
|
|
10475
10483
|
id: C,
|
|
10476
10484
|
src: s,
|
|
10477
10485
|
type: G.Image,
|
|
10478
|
-
y:
|
|
10479
|
-
x:
|
|
10480
|
-
rotation:
|
|
10481
|
-
width:
|
|
10482
|
-
height:
|
|
10483
|
-
layer:
|
|
10484
|
-
layerIndex:
|
|
10485
|
-
immutable:
|
|
10486
|
+
y: g.top,
|
|
10487
|
+
x: g.left,
|
|
10488
|
+
rotation: g.rotation,
|
|
10489
|
+
width: g.width,
|
|
10490
|
+
height: g.height,
|
|
10491
|
+
layer: g.layer,
|
|
10492
|
+
layerIndex: g.layerIndex,
|
|
10493
|
+
immutable: g.immutable,
|
|
10486
10494
|
preserveAspectRatio: "none"
|
|
10487
10495
|
},
|
|
10488
10496
|
d
|
|
@@ -10490,10 +10498,10 @@ const Wn = [
|
|
|
10490
10498
|
}, r = A.data.regions;
|
|
10491
10499
|
try {
|
|
10492
10500
|
return r.map(o);
|
|
10493
|
-
} catch (
|
|
10494
|
-
return console.error(
|
|
10501
|
+
} catch (g) {
|
|
10502
|
+
return console.error(g), [];
|
|
10495
10503
|
}
|
|
10496
|
-
}, ei = async (
|
|
10504
|
+
}, ei = async (l, e, t, A) => {
|
|
10497
10505
|
var r;
|
|
10498
10506
|
const a = t.data, n = A.option;
|
|
10499
10507
|
if (!n)
|
|
@@ -10503,10 +10511,10 @@ const Wn = [
|
|
|
10503
10511
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
10504
10512
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10505
10513
|
const s = (c) => {
|
|
10506
|
-
const B =
|
|
10514
|
+
const B = l.find((h) => h.panelId === c.panelId);
|
|
10507
10515
|
if (!B)
|
|
10508
10516
|
throw new z(c);
|
|
10509
|
-
const
|
|
10517
|
+
const g = `
|
|
10510
10518
|
<svg
|
|
10511
10519
|
xmlns="http://www.w3.org/2000/svg"
|
|
10512
10520
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -10531,7 +10539,7 @@ const Wn = [
|
|
|
10531
10539
|
{
|
|
10532
10540
|
colors: C,
|
|
10533
10541
|
id: w,
|
|
10534
|
-
svg:
|
|
10542
|
+
svg: g,
|
|
10535
10543
|
type: G.Illustration,
|
|
10536
10544
|
y: c.top,
|
|
10537
10545
|
x: c.left,
|
|
@@ -10550,7 +10558,7 @@ const Wn = [
|
|
|
10550
10558
|
} catch (c) {
|
|
10551
10559
|
return console.error(c), [];
|
|
10552
10560
|
}
|
|
10553
|
-
}, ti = async (
|
|
10561
|
+
}, ti = async (l, e, t) => {
|
|
10554
10562
|
const A = [], n = (() => {
|
|
10555
10563
|
var r, c;
|
|
10556
10564
|
return e.type === M.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = e.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
@@ -10558,7 +10566,7 @@ const Wn = [
|
|
|
10558
10566
|
if (s === "image")
|
|
10559
10567
|
try {
|
|
10560
10568
|
o.forEach((r) => {
|
|
10561
|
-
const c =
|
|
10569
|
+
const c = l.find((g) => g.panelId === r.panelId);
|
|
10562
10570
|
if (!c)
|
|
10563
10571
|
throw new z(r);
|
|
10564
10572
|
const B = {
|
|
@@ -10585,14 +10593,14 @@ const Wn = [
|
|
|
10585
10593
|
}
|
|
10586
10594
|
else {
|
|
10587
10595
|
const r = await _(n, !0), c = (B) => {
|
|
10588
|
-
const
|
|
10596
|
+
const g = /<svg.*?<\/svg>/s, d = B.match(g) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Wt().parseFromString(C, "image/svg+xml").firstElementChild;
|
|
10589
10597
|
if (!u)
|
|
10590
10598
|
throw new he("Failed to read SVG.");
|
|
10591
|
-
return
|
|
10599
|
+
return Xt(u), qt().serializeToString(u);
|
|
10592
10600
|
};
|
|
10593
10601
|
o.forEach((B) => {
|
|
10594
|
-
const
|
|
10595
|
-
if (!
|
|
10602
|
+
const g = l.find((C) => C.panelId === B.panelId);
|
|
10603
|
+
if (!g)
|
|
10596
10604
|
throw new z(B);
|
|
10597
10605
|
const d = {
|
|
10598
10606
|
id: J(),
|
|
@@ -10613,11 +10621,11 @@ const Wn = [
|
|
|
10613
10621
|
productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
|
|
10614
10622
|
excludeFromExport: e.data.excludeFromPrint
|
|
10615
10623
|
};
|
|
10616
|
-
A.push(new L(d,
|
|
10624
|
+
A.push(new L(d, g));
|
|
10617
10625
|
});
|
|
10618
10626
|
}
|
|
10619
10627
|
return A;
|
|
10620
|
-
}, Ai = async (
|
|
10628
|
+
}, Ai = async (l, e, t, A) => {
|
|
10621
10629
|
const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
|
|
10622
10630
|
var D;
|
|
10623
10631
|
const h = A.option;
|
|
@@ -10639,7 +10647,7 @@ const Wn = [
|
|
|
10639
10647
|
assetUrl: h,
|
|
10640
10648
|
name: u.names.fullName.en
|
|
10641
10649
|
};
|
|
10642
|
-
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "",
|
|
10650
|
+
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", g = it(B, {
|
|
10643
10651
|
vertical: A.data.vertical,
|
|
10644
10652
|
uppercase: A.data.uppercase
|
|
10645
10653
|
}), d = async (h) => {
|
|
@@ -10650,7 +10658,7 @@ const Wn = [
|
|
|
10650
10658
|
return E == null ? void 0 : E.color;
|
|
10651
10659
|
}, C = n.color || await d(A.data), w = A.data.regions;
|
|
10652
10660
|
for (const h of w) {
|
|
10653
|
-
const u =
|
|
10661
|
+
const u = l.find((D) => D.panelId === h.panelId);
|
|
10654
10662
|
if (!u)
|
|
10655
10663
|
continue;
|
|
10656
10664
|
const E = {
|
|
@@ -10666,7 +10674,7 @@ const Wn = [
|
|
|
10666
10674
|
layerIndex: h.layerIndex,
|
|
10667
10675
|
paths: A.data.paths,
|
|
10668
10676
|
rotation: h.rotation,
|
|
10669
|
-
text:
|
|
10677
|
+
text: g,
|
|
10670
10678
|
type: G.Textbox,
|
|
10671
10679
|
vertical: A.data.vertical,
|
|
10672
10680
|
verticalAlign: A.data.verticalAlign || "middle",
|
|
@@ -10675,12 +10683,12 @@ const Wn = [
|
|
|
10675
10683
|
y: h.top
|
|
10676
10684
|
};
|
|
10677
10685
|
if (c) {
|
|
10678
|
-
const [D, Q] =
|
|
10686
|
+
const [D, Q] = Ne(
|
|
10679
10687
|
A.data.size || i,
|
|
10680
10688
|
c,
|
|
10681
10689
|
h,
|
|
10682
10690
|
[
|
|
10683
|
-
it(
|
|
10691
|
+
it(g, {
|
|
10684
10692
|
vertical: A.data.vertical,
|
|
10685
10693
|
uppercase: A.data.uppercase
|
|
10686
10694
|
})
|
|
@@ -10706,7 +10714,7 @@ const Wn = [
|
|
|
10706
10714
|
a.push(new L(E, u));
|
|
10707
10715
|
}
|
|
10708
10716
|
return a;
|
|
10709
|
-
}, ai = (
|
|
10717
|
+
}, ai = (l, e) => l.conditions ? l.conditions.every((t) => {
|
|
10710
10718
|
const A = e[t.targetStepName];
|
|
10711
10719
|
if (A && A.selectedVariants) {
|
|
10712
10720
|
const a = A.selectedVariants;
|
|
@@ -10715,9 +10723,9 @@ const Wn = [
|
|
|
10715
10723
|
);
|
|
10716
10724
|
}
|
|
10717
10725
|
return !1;
|
|
10718
|
-
}) : !0, ni = async (
|
|
10726
|
+
}) : !0, ni = async (l, e, t, A) => {
|
|
10719
10727
|
const a = [], n = {};
|
|
10720
|
-
for (const i of
|
|
10728
|
+
for (const i of l) {
|
|
10721
10729
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
10722
10730
|
if (s)
|
|
10723
10731
|
switch (s.type) {
|
|
@@ -10768,7 +10776,7 @@ const Wn = [
|
|
|
10768
10776
|
);
|
|
10769
10777
|
return a;
|
|
10770
10778
|
};
|
|
10771
|
-
class
|
|
10779
|
+
class Ye {
|
|
10772
10780
|
constructor(e) {
|
|
10773
10781
|
this.handleCompleteRender = null;
|
|
10774
10782
|
const t = /* @__PURE__ */ new Map();
|
|
@@ -10789,17 +10797,17 @@ class Se {
|
|
|
10789
10797
|
return this.layouts;
|
|
10790
10798
|
}
|
|
10791
10799
|
}
|
|
10792
|
-
const ii = () => new Promise((
|
|
10800
|
+
const ii = () => new Promise((l, e) => {
|
|
10793
10801
|
try {
|
|
10794
|
-
const A =
|
|
10795
|
-
|
|
10802
|
+
const A = ke().getContext("webgl2");
|
|
10803
|
+
l(!!A);
|
|
10796
10804
|
} catch {
|
|
10797
|
-
|
|
10805
|
+
l(!1);
|
|
10798
10806
|
}
|
|
10799
10807
|
}), si = ii();
|
|
10800
10808
|
class oi {
|
|
10801
10809
|
constructor(e, t, A, a) {
|
|
10802
|
-
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.renderQueue = new
|
|
10810
|
+
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.renderQueue = new BA(2), this.id = e, this.name = t, this.service = A, this.panelSize = a;
|
|
10803
10811
|
}
|
|
10804
10812
|
getID() {
|
|
10805
10813
|
return this.id;
|
|
@@ -10845,7 +10853,7 @@ class oi {
|
|
|
10845
10853
|
* Actions to perform when a static render event is fired for this canvas.
|
|
10846
10854
|
*/
|
|
10847
10855
|
async render(e) {
|
|
10848
|
-
const t =
|
|
10856
|
+
const t = le(e);
|
|
10849
10857
|
this.lastRequestedRenderArguments = t;
|
|
10850
10858
|
const A = this.getStaticContext();
|
|
10851
10859
|
if (!A) {
|
|
@@ -10865,7 +10873,7 @@ class oi {
|
|
|
10865
10873
|
);
|
|
10866
10874
|
}
|
|
10867
10875
|
}
|
|
10868
|
-
class ri extends
|
|
10876
|
+
class ri extends gA {
|
|
10869
10877
|
// TODO: Do we need to pass this whole array in?
|
|
10870
10878
|
constructor(e, t, A, a, n) {
|
|
10871
10879
|
super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.layouts = n;
|
|
@@ -10916,26 +10924,26 @@ class ri extends BA {
|
|
|
10916
10924
|
o = w.width, r = w.height;
|
|
10917
10925
|
} else
|
|
10918
10926
|
o = n.width, r = n.height;
|
|
10919
|
-
const c =
|
|
10920
|
-
renderingConfiguration: { purpose:
|
|
10921
|
-
}), B =
|
|
10927
|
+
const c = Lt(e.layoutState.layout, t, {
|
|
10928
|
+
renderingConfiguration: { purpose: zt.ThreeD }
|
|
10929
|
+
}), B = Kt(c), g = await Zt.from(this.ctx, B, {
|
|
10922
10930
|
anonymousCrossOrigin: !0,
|
|
10923
10931
|
ignoreDimensions: !this.nonPOTSupport,
|
|
10924
10932
|
ignoreAnimation: !0,
|
|
10925
10933
|
ignoreClear: !0,
|
|
10926
10934
|
ignoreMouse: !0,
|
|
10927
10935
|
enableRedraw: !1,
|
|
10928
|
-
createCanvas:
|
|
10929
|
-
createImage:
|
|
10930
|
-
DOMParser:
|
|
10931
|
-
fetch:
|
|
10936
|
+
createCanvas: ke,
|
|
10937
|
+
createImage: jt,
|
|
10938
|
+
DOMParser: Vt(),
|
|
10939
|
+
fetch: lt
|
|
10932
10940
|
});
|
|
10933
|
-
|
|
10941
|
+
g.resize(o, r), await g.render(), this.onRender();
|
|
10934
10942
|
}
|
|
10935
10943
|
}
|
|
10936
|
-
const Fs = (
|
|
10944
|
+
const Fs = (l, e) => {
|
|
10937
10945
|
const t = [];
|
|
10938
|
-
return
|
|
10946
|
+
return l.forEach((A) => {
|
|
10939
10947
|
const a = e.steps.find((n) => n.stepName === A.stepName);
|
|
10940
10948
|
(a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
|
|
10941
10949
|
name: a.stepName,
|
|
@@ -10944,13 +10952,13 @@ const Fs = (g, e) => {
|
|
|
10944
10952
|
}
|
|
10945
10953
|
});
|
|
10946
10954
|
}), t;
|
|
10947
|
-
}, ys = async (
|
|
10955
|
+
}, ys = async (l, e, t, A) => {
|
|
10948
10956
|
let a = {
|
|
10949
10957
|
serializableWorkflow: { steps: [] },
|
|
10950
10958
|
layouts: {}
|
|
10951
10959
|
};
|
|
10952
10960
|
a = new k(t.map((o) => new Aa(o))).apply(a);
|
|
10953
|
-
const i = await ni(
|
|
10961
|
+
const i = await ni(l, e, t, A);
|
|
10954
10962
|
return new k(i).apply(a);
|
|
10955
10963
|
}, ci = f`
|
|
10956
10964
|
${Be}
|
|
@@ -10996,7 +11004,7 @@ const Fs = (g, e) => {
|
|
|
10996
11004
|
name
|
|
10997
11005
|
}
|
|
10998
11006
|
}
|
|
10999
|
-
`,
|
|
11007
|
+
`, YA = f`
|
|
11000
11008
|
${ci}
|
|
11001
11009
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
11002
11010
|
id
|
|
@@ -11006,8 +11014,8 @@ const Fs = (g, e) => {
|
|
|
11006
11014
|
...ProductFields
|
|
11007
11015
|
}
|
|
11008
11016
|
}
|
|
11009
|
-
`, We = (
|
|
11010
|
-
${
|
|
11017
|
+
`, We = (l) => f`
|
|
11018
|
+
${l ? YA : ""}
|
|
11011
11019
|
fragment ProductCollectionFields on ProductCollection {
|
|
11012
11020
|
id
|
|
11013
11021
|
name
|
|
@@ -11032,7 +11040,7 @@ const Fs = (g, e) => {
|
|
|
11032
11040
|
}
|
|
11033
11041
|
}
|
|
11034
11042
|
}
|
|
11035
|
-
${
|
|
11043
|
+
${l ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
|
|
11036
11044
|
transformCollection {
|
|
11037
11045
|
id
|
|
11038
11046
|
name
|
|
@@ -11057,8 +11065,8 @@ const Fs = (g, e) => {
|
|
|
11057
11065
|
}
|
|
11058
11066
|
}
|
|
11059
11067
|
}
|
|
11060
|
-
`,
|
|
11061
|
-
${We(
|
|
11068
|
+
`, li = (l) => f`
|
|
11069
|
+
${We(l)}
|
|
11062
11070
|
query GetBundle($id: String!) {
|
|
11063
11071
|
bundles(ids: [$id]) {
|
|
11064
11072
|
id
|
|
@@ -11079,7 +11087,7 @@ const Fs = (g, e) => {
|
|
|
11079
11087
|
}
|
|
11080
11088
|
}
|
|
11081
11089
|
}
|
|
11082
|
-
`,
|
|
11090
|
+
`, gi = f`
|
|
11083
11091
|
query GetBundleStakeholders($id: String!) {
|
|
11084
11092
|
bundles(ids: [$id]) {
|
|
11085
11093
|
id
|
|
@@ -11121,7 +11129,7 @@ const Fs = (g, e) => {
|
|
|
11121
11129
|
}
|
|
11122
11130
|
}
|
|
11123
11131
|
`, di = f`
|
|
11124
|
-
${
|
|
11132
|
+
${YA}
|
|
11125
11133
|
query GetProductCollectionProducts($id: String!, $productIds: [String!]) {
|
|
11126
11134
|
productCollections(ids: [$id], productIds: $productIds) {
|
|
11127
11135
|
id
|
|
@@ -11130,8 +11138,8 @@ const Fs = (g, e) => {
|
|
|
11130
11138
|
}
|
|
11131
11139
|
}
|
|
11132
11140
|
}
|
|
11133
|
-
`, Ci = (
|
|
11134
|
-
${We(
|
|
11141
|
+
`, Ci = (l) => f`
|
|
11142
|
+
${We(l)}
|
|
11135
11143
|
mutation CreateBundle(
|
|
11136
11144
|
$collectionId: String
|
|
11137
11145
|
$initialMetadata: [MetadataInput!]
|
|
@@ -11159,8 +11167,8 @@ const Fs = (g, e) => {
|
|
|
11159
11167
|
}
|
|
11160
11168
|
}
|
|
11161
11169
|
}
|
|
11162
|
-
`, wi = (
|
|
11163
|
-
${We(
|
|
11170
|
+
`, wi = (l) => f`
|
|
11171
|
+
${We(l)}
|
|
11164
11172
|
mutation DuplicateBundle(
|
|
11165
11173
|
$id: String!
|
|
11166
11174
|
$template: Boolean
|
|
@@ -11290,8 +11298,8 @@ const Fs = (g, e) => {
|
|
|
11290
11298
|
id
|
|
11291
11299
|
}
|
|
11292
11300
|
}
|
|
11293
|
-
`, Fi = (
|
|
11294
|
-
${We(
|
|
11301
|
+
`, Fi = (l) => f`
|
|
11302
|
+
${We(l)}
|
|
11295
11303
|
mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
|
|
11296
11304
|
bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
|
|
11297
11305
|
id
|
|
@@ -11300,7 +11308,7 @@ const Fs = (g, e) => {
|
|
|
11300
11308
|
}
|
|
11301
11309
|
}
|
|
11302
11310
|
}
|
|
11303
|
-
`, yi = (
|
|
11311
|
+
`, yi = (l) => f`
|
|
11304
11312
|
query CustomerBundlesFeed($id: String!, $limit: Int!, $offset: Int!, $template: Boolean, $templateStatus: BundleTemplateStatus) {
|
|
11305
11313
|
customerBundlesFeed(id: $id, limit: $limit, offset: $offset, template: $template, templateStatus: $templateStatus) {
|
|
11306
11314
|
items {
|
|
@@ -11318,7 +11326,7 @@ const Fs = (g, e) => {
|
|
|
11318
11326
|
fileLink
|
|
11319
11327
|
}
|
|
11320
11328
|
}
|
|
11321
|
-
${
|
|
11329
|
+
${l ? "metadata { key, value }" : ""}
|
|
11322
11330
|
}
|
|
11323
11331
|
total
|
|
11324
11332
|
}
|
|
@@ -11377,7 +11385,7 @@ class Mi {
|
|
|
11377
11385
|
);
|
|
11378
11386
|
case $.Option: {
|
|
11379
11387
|
const t = e.entityId ? await V.getOption(e.entityId) : void 0;
|
|
11380
|
-
return (t == null ? void 0 : t.type) === "Color" ? new Jt(this.bundle, e, t) : new
|
|
11388
|
+
return (t == null ? void 0 : t.type) === "Color" ? new Jt(this.bundle, e, t) : new PA(this.bundle, e, t);
|
|
11381
11389
|
}
|
|
11382
11390
|
case $.Text:
|
|
11383
11391
|
return new Yi(this.bundle, e);
|
|
@@ -11615,7 +11623,7 @@ class Yi extends It {
|
|
|
11615
11623
|
await Promise.all(a);
|
|
11616
11624
|
}
|
|
11617
11625
|
}
|
|
11618
|
-
class
|
|
11626
|
+
class PA extends It {
|
|
11619
11627
|
constructor(e, t, A) {
|
|
11620
11628
|
super(e, t), this.optionResource = A;
|
|
11621
11629
|
}
|
|
@@ -11677,7 +11685,7 @@ class xA extends It {
|
|
|
11677
11685
|
await Promise.all(a);
|
|
11678
11686
|
}
|
|
11679
11687
|
}
|
|
11680
|
-
class Jt extends
|
|
11688
|
+
class Jt extends PA {
|
|
11681
11689
|
constructor(e, t, A) {
|
|
11682
11690
|
super(e, t, A);
|
|
11683
11691
|
}
|
|
@@ -11802,7 +11810,7 @@ class vi {
|
|
|
11802
11810
|
}
|
|
11803
11811
|
async setGlobalPropertyState(e) {
|
|
11804
11812
|
this.globalPropertyState || await this.initPromise;
|
|
11805
|
-
const t =
|
|
11813
|
+
const t = le(this.globalPropertyState);
|
|
11806
11814
|
this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
|
|
11807
11815
|
}
|
|
11808
11816
|
getAspect(e) {
|
|
@@ -11826,7 +11834,7 @@ class vi {
|
|
|
11826
11834
|
const a = this.configuration.aspects.find((s) => s.name === e);
|
|
11827
11835
|
if (!a)
|
|
11828
11836
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11829
|
-
const n =
|
|
11837
|
+
const n = le(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
|
|
11830
11838
|
i ? (i.value = t, i.type = a.type, A !== void 0 && (i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
|
|
11831
11839
|
name: e,
|
|
11832
11840
|
value: t,
|
|
@@ -11842,7 +11850,7 @@ class vi {
|
|
|
11842
11850
|
const A = this.configuration.aspects.find((i) => i.name === e);
|
|
11843
11851
|
if (!A)
|
|
11844
11852
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11845
|
-
const a =
|
|
11853
|
+
const a = le(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
|
|
11846
11854
|
n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
|
|
11847
11855
|
name: e,
|
|
11848
11856
|
value: "",
|
|
@@ -12127,19 +12135,27 @@ class _e {
|
|
|
12127
12135
|
* A helper function for pulling the default workflow.
|
|
12128
12136
|
*/
|
|
12129
12137
|
getDefaultWorkflow() {
|
|
12130
|
-
const e = this.product.workflows
|
|
12138
|
+
const e = this.product.workflows;
|
|
12139
|
+
if (e === void 0)
|
|
12140
|
+
throw new R(
|
|
12141
|
+
"Called getDefaultWorkflow() before fetching collection products. Use collection.fetchProducts() first to ensure the data is available."
|
|
12142
|
+
);
|
|
12131
12143
|
if (e.length === 0)
|
|
12132
|
-
throw new
|
|
12133
|
-
"
|
|
12144
|
+
throw new R(
|
|
12145
|
+
"Called getDefaultWorkflow() but no workflows on requested product. Ensure at least 1 workflow is assigned to this product."
|
|
12134
12146
|
);
|
|
12135
12147
|
const t = this.productResource.workflowId;
|
|
12136
12148
|
if (t) {
|
|
12137
12149
|
const A = e.find((a) => a.workflowName === t);
|
|
12138
12150
|
if (A)
|
|
12139
|
-
return new
|
|
12140
|
-
}
|
|
12141
|
-
|
|
12142
|
-
|
|
12151
|
+
return new ue(A);
|
|
12152
|
+
}
|
|
12153
|
+
if (e.length === 1)
|
|
12154
|
+
return console.warn(
|
|
12155
|
+
"Called getDefaultWorkflow() but no default was configured. There is only one workflow available so we will fall back to using this!"
|
|
12156
|
+
), new ue(e[0]);
|
|
12157
|
+
throw new R(
|
|
12158
|
+
"Called getDefaultWorkflow() but no default workflow is configured for the requested product. Multiple workflows exist so we can't assume!"
|
|
12143
12159
|
);
|
|
12144
12160
|
}
|
|
12145
12161
|
/**
|
|
@@ -12147,10 +12163,10 @@ class _e {
|
|
|
12147
12163
|
*/
|
|
12148
12164
|
getAllWorkflows() {
|
|
12149
12165
|
if ((this.product.workflows || []).length === 0)
|
|
12150
|
-
throw new
|
|
12166
|
+
throw new R(
|
|
12151
12167
|
"No workflows on configured product. Ensure at least 1 workflow is assigned to this product."
|
|
12152
12168
|
);
|
|
12153
|
-
return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new
|
|
12169
|
+
return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new ue(t));
|
|
12154
12170
|
}
|
|
12155
12171
|
/**
|
|
12156
12172
|
* A list of all integrations this product is connected to.
|
|
@@ -12197,7 +12213,7 @@ class _e {
|
|
|
12197
12213
|
), (s = A == null ? void 0 : A.additionalIntegrationProduct) != null && s.product ? t + (A.additionalIntegrationProduct.product.basePrice || 0) : t;
|
|
12198
12214
|
}
|
|
12199
12215
|
}
|
|
12200
|
-
class
|
|
12216
|
+
class ue {
|
|
12201
12217
|
constructor(e) {
|
|
12202
12218
|
this.workflow = e;
|
|
12203
12219
|
}
|
|
@@ -12526,7 +12542,7 @@ class et {
|
|
|
12526
12542
|
variables: {
|
|
12527
12543
|
id: this.id,
|
|
12528
12544
|
details: e,
|
|
12529
|
-
type: t ||
|
|
12545
|
+
type: t || be.Owner
|
|
12530
12546
|
},
|
|
12531
12547
|
context: {
|
|
12532
12548
|
bundleOwnerId: this.ownerId
|
|
@@ -12570,7 +12586,7 @@ class et {
|
|
|
12570
12586
|
}
|
|
12571
12587
|
async getAllStakeholders() {
|
|
12572
12588
|
const e = await x.getShadowGraphqlClient().query({
|
|
12573
|
-
query:
|
|
12589
|
+
query: gi,
|
|
12574
12590
|
errorPolicy: "all",
|
|
12575
12591
|
fetchPolicy: "no-cache",
|
|
12576
12592
|
variables: {
|
|
@@ -12762,14 +12778,14 @@ class bi {
|
|
|
12762
12778
|
* @returns
|
|
12763
12779
|
*/
|
|
12764
12780
|
async execute(e, t, A) {
|
|
12765
|
-
var B,
|
|
12766
|
-
const n = (
|
|
12781
|
+
var B, g, d;
|
|
12782
|
+
const n = (g = (B = (await x.getShadowGraphqlClient().mutate({
|
|
12767
12783
|
mutation: Gi,
|
|
12768
12784
|
variables: {
|
|
12769
12785
|
processFlowId: e,
|
|
12770
12786
|
inputs: [...t.map((C) => C.getValueForTransmission())]
|
|
12771
12787
|
}
|
|
12772
|
-
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 :
|
|
12788
|
+
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : g.id;
|
|
12773
12789
|
if (!n)
|
|
12774
12790
|
throw new Error("Failed to create process execution.");
|
|
12775
12791
|
function i(C) {
|
|
@@ -12834,14 +12850,14 @@ class Ji {
|
|
|
12834
12850
|
* @returns The nodes contained within the execution.
|
|
12835
12851
|
*/
|
|
12836
12852
|
getNodes() {
|
|
12837
|
-
return this.execution.nodes.map((e) => new
|
|
12853
|
+
return this.execution.nodes.map((e) => new Pe(e));
|
|
12838
12854
|
}
|
|
12839
12855
|
/**
|
|
12840
12856
|
* @param type The type of node to return.
|
|
12841
12857
|
* @returns A list of nodes matching the requested type.
|
|
12842
12858
|
*/
|
|
12843
12859
|
getNodesByType(e) {
|
|
12844
|
-
return this.execution.nodes.filter((t) => t.type === e).map((t) => new
|
|
12860
|
+
return this.execution.nodes.filter((t) => t.type === e).map((t) => new Pe(t));
|
|
12845
12861
|
}
|
|
12846
12862
|
/**
|
|
12847
12863
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -12850,7 +12866,7 @@ class Ji {
|
|
|
12850
12866
|
return this.execution.nodes.filter(
|
|
12851
12867
|
(e) => e.type === "StartTerminal"
|
|
12852
12868
|
/* StartTerminal */
|
|
12853
|
-
).map((e) => new
|
|
12869
|
+
).map((e) => new Pe(e));
|
|
12854
12870
|
}
|
|
12855
12871
|
/**
|
|
12856
12872
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -12859,7 +12875,7 @@ class Ji {
|
|
|
12859
12875
|
return this.execution.nodes.filter(
|
|
12860
12876
|
(e) => e.type === "EndTerminal"
|
|
12861
12877
|
/* EndTerminal */
|
|
12862
|
-
).map((e) => new
|
|
12878
|
+
).map((e) => new Pe(e));
|
|
12863
12879
|
}
|
|
12864
12880
|
/**
|
|
12865
12881
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -12876,7 +12892,7 @@ class Ji {
|
|
|
12876
12892
|
return new Date(this.execution.failedAt);
|
|
12877
12893
|
}
|
|
12878
12894
|
}
|
|
12879
|
-
class
|
|
12895
|
+
class Pe {
|
|
12880
12896
|
constructor(e) {
|
|
12881
12897
|
this.node = e;
|
|
12882
12898
|
}
|
|
@@ -12905,15 +12921,15 @@ class Ft {
|
|
|
12905
12921
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
12906
12922
|
}
|
|
12907
12923
|
}
|
|
12908
|
-
var Ti = /* @__PURE__ */ ((
|
|
12924
|
+
var Ti = /* @__PURE__ */ ((l) => (l.Transaction = "Transaction", l.Bundle = "Bundle", l.Product = "Product", l.Variant = "Variant", l.Option = "Option", l.LineItem = "LineItem", l.Asset = "Asset", l))(Ti || {});
|
|
12909
12925
|
class Ms extends Ft {
|
|
12910
12926
|
constructor(e) {
|
|
12911
12927
|
super(`"${e}"`);
|
|
12912
12928
|
}
|
|
12913
12929
|
}
|
|
12914
|
-
class
|
|
12930
|
+
class xA extends Ft {
|
|
12915
12931
|
constructor(e, t) {
|
|
12916
|
-
if (t !== "Asset" && !
|
|
12932
|
+
if (t !== "Asset" && !xA.validUUID(e))
|
|
12917
12933
|
throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
|
|
12918
12934
|
super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
|
|
12919
12935
|
}
|
|
@@ -12955,7 +12971,7 @@ class Tt {
|
|
|
12955
12971
|
throw new Error(
|
|
12956
12972
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
12957
12973
|
);
|
|
12958
|
-
return new
|
|
12974
|
+
return new ue(e[0]);
|
|
12959
12975
|
}
|
|
12960
12976
|
getAllWorkflows() {
|
|
12961
12977
|
if (!this.integrationProduct.product)
|
|
@@ -12965,7 +12981,7 @@ class Tt {
|
|
|
12965
12981
|
throw new Error(
|
|
12966
12982
|
"No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
|
|
12967
12983
|
);
|
|
12968
|
-
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new
|
|
12984
|
+
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new ue(t));
|
|
12969
12985
|
}
|
|
12970
12986
|
}
|
|
12971
12987
|
const Oi = f`
|
|
@@ -13185,10 +13201,10 @@ const Oi = f`
|
|
|
13185
13201
|
loop
|
|
13186
13202
|
name
|
|
13187
13203
|
}
|
|
13188
|
-
`, $i = (
|
|
13189
|
-
${
|
|
13204
|
+
`, $i = (l) => f`
|
|
13205
|
+
${Ie(l)}
|
|
13190
13206
|
${Et}
|
|
13191
|
-
${
|
|
13207
|
+
${iA}
|
|
13192
13208
|
${Wi}
|
|
13193
13209
|
${Xi}
|
|
13194
13210
|
${qi}
|
|
@@ -13596,7 +13612,7 @@ const Oi = f`
|
|
|
13596
13612
|
}
|
|
13597
13613
|
}
|
|
13598
13614
|
`, es = f`
|
|
13599
|
-
${
|
|
13615
|
+
${Ie(!1)}
|
|
13600
13616
|
query GetWorkflowForTheme($id: String!) {
|
|
13601
13617
|
workflow(id: $id) {
|
|
13602
13618
|
id
|
|
@@ -13629,30 +13645,30 @@ const Oi = f`
|
|
|
13629
13645
|
...TagFields
|
|
13630
13646
|
}
|
|
13631
13647
|
}
|
|
13632
|
-
`, re = async (
|
|
13648
|
+
`, re = async (l) => {
|
|
13633
13649
|
var e;
|
|
13634
|
-
for (const t in
|
|
13635
|
-
const A =
|
|
13650
|
+
for (const t in l.layouts) {
|
|
13651
|
+
const A = l.layouts[t].elements.filter(
|
|
13636
13652
|
(n) => n.type === G.Illustration
|
|
13637
13653
|
);
|
|
13638
13654
|
for (let n = 0; n < A.length; ++n) {
|
|
13639
13655
|
const i = A[n];
|
|
13640
|
-
i.src && i.svg && (i.cachedObjectURL = await
|
|
13656
|
+
i.src && i.svg && (i.cachedObjectURL = await Re(i.svg));
|
|
13641
13657
|
}
|
|
13642
|
-
const a =
|
|
13658
|
+
const a = l.layouts[t].elements.filter((n) => n.type === G.Textbox);
|
|
13643
13659
|
for (let n = 0; n < a.length; ++n) {
|
|
13644
13660
|
const i = a[n];
|
|
13645
13661
|
(e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
|
|
13646
13662
|
}
|
|
13647
13663
|
}
|
|
13648
|
-
}, as = async (
|
|
13664
|
+
}, as = async (l, e) => {
|
|
13649
13665
|
var a;
|
|
13650
13666
|
const t = await x.getShadowGraphqlClient().query({
|
|
13651
13667
|
query: $i(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
|
|
13652
13668
|
errorPolicy: "all",
|
|
13653
13669
|
fetchPolicy: "no-cache",
|
|
13654
13670
|
variables: {
|
|
13655
|
-
ids:
|
|
13671
|
+
ids: l
|
|
13656
13672
|
}
|
|
13657
13673
|
});
|
|
13658
13674
|
if (t.error)
|
|
@@ -13660,30 +13676,30 @@ const Oi = f`
|
|
|
13660
13676
|
if (t.errors)
|
|
13661
13677
|
throw t.errors.forEach((n) => console.error(n)), new Error("Unable to read workflows. Consult GraphQL errors.");
|
|
13662
13678
|
const A = t.data.workflows;
|
|
13663
|
-
if (A === void 0 || A.length !==
|
|
13679
|
+
if (A === void 0 || A.length !== l.length)
|
|
13664
13680
|
throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
|
|
13665
13681
|
return A.forEach((n) => {
|
|
13666
13682
|
n.steps.forEach((i) => {
|
|
13667
13683
|
var s, o, r;
|
|
13668
13684
|
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) => {
|
|
13669
13685
|
c.asset && U.cacheAsset(c.asset), c.thumbnail && U.cacheAsset(c.thumbnail), c.material && U.cacheMaterial(c.material);
|
|
13670
|
-
}),
|
|
13686
|
+
}), Qe.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
13671
13687
|
}), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
|
|
13672
13688
|
}), A;
|
|
13673
|
-
}, ns = async (
|
|
13674
|
-
const A = (await e).find((a) => a.id ===
|
|
13689
|
+
}, ns = async (l, e) => {
|
|
13690
|
+
const A = (await e).find((a) => a.id === l);
|
|
13675
13691
|
if (!A)
|
|
13676
|
-
throw new Error(`Workflow not found: ${
|
|
13692
|
+
throw new Error(`Workflow not found: ${l}`);
|
|
13677
13693
|
return A;
|
|
13678
|
-
},
|
|
13679
|
-
const t =
|
|
13694
|
+
}, NA = async (l, e) => {
|
|
13695
|
+
const t = l.map((s) => Qe.get({ id: s, options: e })), A = l.filter((s, o) => t[o] === void 0);
|
|
13680
13696
|
if (A.length === 0)
|
|
13681
13697
|
return Promise.all(t);
|
|
13682
13698
|
const a = as(A, e), n = A.map(
|
|
13683
|
-
(s) =>
|
|
13699
|
+
(s) => Qe.set({ id: s, options: e }, ns(s, a))
|
|
13684
13700
|
), i = t.filter((s) => s !== void 0);
|
|
13685
13701
|
return await Promise.all(i.concat(n));
|
|
13686
|
-
},
|
|
13702
|
+
}, xe = async (l, e) => (await NA([l], e))[0], is = (l) => l.sort((e, t) => e.index - t.index).map((e) => ({
|
|
13687
13703
|
id: J(),
|
|
13688
13704
|
panelId: e.name,
|
|
13689
13705
|
name: e.name,
|
|
@@ -13696,8 +13712,8 @@ const Oi = f`
|
|
|
13696
13712
|
previewRegion: e.previewRegion,
|
|
13697
13713
|
useEditableArea: e.useEditableArea,
|
|
13698
13714
|
editableArea: e.editableArea
|
|
13699
|
-
})), tt = (
|
|
13700
|
-
const t =
|
|
13715
|
+
})), tt = (l, e) => {
|
|
13716
|
+
const t = l.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
13701
13717
|
return A ? Object.values(A.layouts).map((a) => a.layout) : is(e.panels);
|
|
13702
13718
|
};
|
|
13703
13719
|
class ss {
|
|
@@ -13709,16 +13725,16 @@ class ss {
|
|
|
13709
13725
|
mutation: Ua
|
|
13710
13726
|
});
|
|
13711
13727
|
} catch (A) {
|
|
13712
|
-
throw console.error(A), new
|
|
13728
|
+
throw console.error(A), new R("Critical - Unable to synchronize workflow state with server.");
|
|
13713
13729
|
}
|
|
13714
|
-
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 23.0.
|
|
13730
|
+
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 23.0.3"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
|
|
13715
13731
|
}
|
|
13716
13732
|
/** @deprecated Use `configure` instead */
|
|
13717
13733
|
configureUrls(e, t, A) {
|
|
13718
13734
|
q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
|
|
13719
13735
|
}
|
|
13720
13736
|
configure(e) {
|
|
13721
|
-
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken &&
|
|
13737
|
+
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && ga(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
|
|
13722
13738
|
}
|
|
13723
13739
|
/**
|
|
13724
13740
|
* @returns The asset manager allows for common operations related to assets
|
|
@@ -13733,7 +13749,7 @@ class ss {
|
|
|
13733
13749
|
return this.currencyCode;
|
|
13734
13750
|
}
|
|
13735
13751
|
getFlowService() {
|
|
13736
|
-
if (!
|
|
13752
|
+
if (!la())
|
|
13737
13753
|
throw new Error("Application key required to use Flow Service.");
|
|
13738
13754
|
return new bi();
|
|
13739
13755
|
}
|
|
@@ -13767,15 +13783,15 @@ class ss {
|
|
|
13767
13783
|
var a, n;
|
|
13768
13784
|
const t = P.getMap("bundleOwnerIds");
|
|
13769
13785
|
if (t != null && t.has(e))
|
|
13770
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
13786
|
+
return Promise.resolve({ success: !0, stakeholderType: be.Owner });
|
|
13771
13787
|
const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
13772
13788
|
if (A.has(e)) {
|
|
13773
13789
|
const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
13774
13790
|
if (o && await this.authenticateCustomerId(o)) {
|
|
13775
13791
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
13776
13792
|
(B) => {
|
|
13777
|
-
var
|
|
13778
|
-
return ((
|
|
13793
|
+
var g;
|
|
13794
|
+
return ((g = B.bundle) == null ? void 0 : g.id) === e;
|
|
13779
13795
|
}
|
|
13780
13796
|
);
|
|
13781
13797
|
if (c)
|
|
@@ -13798,7 +13814,7 @@ class ss {
|
|
|
13798
13814
|
* @throws An error if the transaction is not found.
|
|
13799
13815
|
*/
|
|
13800
13816
|
async authenticateTransactionFromLocalStorage(e) {
|
|
13801
|
-
var c, B,
|
|
13817
|
+
var c, B, g, d, C, w;
|
|
13802
13818
|
const t = x.getShadowGraphqlClient(), A = await t.query({
|
|
13803
13819
|
query: _i,
|
|
13804
13820
|
errorPolicy: "all",
|
|
@@ -13816,12 +13832,12 @@ class ss {
|
|
|
13816
13832
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
13817
13833
|
const i = P.getMap("transactionOwnerIds");
|
|
13818
13834
|
if (i != null && i.has(e))
|
|
13819
|
-
return Promise.resolve({ success: !0, stakeholderType:
|
|
13835
|
+
return Promise.resolve({ success: !0, stakeholderType: be.Owner });
|
|
13820
13836
|
const s = P.getMap("transactionCustomerIds");
|
|
13821
13837
|
if (s != null && s.has(e)) {
|
|
13822
13838
|
const h = s.get(e);
|
|
13823
13839
|
if (h && await this.authenticateCustomerId(h)) {
|
|
13824
|
-
const E = ((d = (
|
|
13840
|
+
const E = ((d = (g = this.customer) == null ? void 0 : g.bundleStakeholders) == null ? void 0 : d.find(
|
|
13825
13841
|
(D) => {
|
|
13826
13842
|
var Q, p;
|
|
13827
13843
|
return (p = (Q = D.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
|
|
@@ -13986,7 +14002,7 @@ class ss {
|
|
|
13986
14002
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
13987
14003
|
*/
|
|
13988
14004
|
async getNewBundle(e, t, A) {
|
|
13989
|
-
var r, c, B,
|
|
14005
|
+
var r, c, B, g, d;
|
|
13990
14006
|
const n = (B = (await x.getShadowGraphqlClient().mutate({
|
|
13991
14007
|
mutation: Ci(((c = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : c.eagerFetchProducts) || !1),
|
|
13992
14008
|
variables: {
|
|
@@ -14004,7 +14020,7 @@ class ss {
|
|
|
14004
14020
|
const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14005
14021
|
s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
|
|
14006
14022
|
const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
|
|
14007
|
-
eagerFetchProducts: (d = (
|
|
14023
|
+
eagerFetchProducts: (d = (g = A == null ? void 0 : A.graphql) == null ? void 0 : g.productCollection) == null ? void 0 : d.eagerFetchProducts
|
|
14008
14024
|
});
|
|
14009
14025
|
return await o.getInitializationPromise(), o;
|
|
14010
14026
|
}
|
|
@@ -14018,13 +14034,13 @@ class ss {
|
|
|
14018
14034
|
async getExistingBundle(e, t, A, a) {
|
|
14019
14035
|
var h, u, E, D, Q, p, m, I, F, y, Y;
|
|
14020
14036
|
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 = {};
|
|
14021
|
-
r && !
|
|
14037
|
+
r && !Oe(r) && (c.Authorization = `Bearer ${r}`);
|
|
14022
14038
|
const B = {
|
|
14023
14039
|
bundleOwnerId: i,
|
|
14024
14040
|
...c,
|
|
14025
14041
|
...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
|
|
14026
|
-
},
|
|
14027
|
-
query:
|
|
14042
|
+
}, g = await x.getShadowGraphqlClient().query({
|
|
14043
|
+
query: li(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
|
|
14028
14044
|
variables: {
|
|
14029
14045
|
id: e
|
|
14030
14046
|
},
|
|
@@ -14033,9 +14049,9 @@ class ss {
|
|
|
14033
14049
|
headers: B
|
|
14034
14050
|
}
|
|
14035
14051
|
});
|
|
14036
|
-
if (!((Q =
|
|
14052
|
+
if (!((Q = g.data) != null && Q.bundles) || ((p = g.data) == null ? void 0 : p.bundles.length) === 0 || !((m = g.data) != null && m.bundles[0]))
|
|
14037
14053
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
14038
|
-
const d = (I =
|
|
14054
|
+
const d = (I = g.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14039
14055
|
C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
|
|
14040
14056
|
const w = new et(this, d, t, A, i, {
|
|
14041
14057
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
|
|
@@ -14052,12 +14068,12 @@ class ss {
|
|
|
14052
14068
|
async duplicateBundle(e, t, A, a) {
|
|
14053
14069
|
var h, u, E, D, Q, p, m, I;
|
|
14054
14070
|
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 = {};
|
|
14055
|
-
o && !
|
|
14071
|
+
o && !Oe(o) && (r.Authorization = `Bearer ${o}`);
|
|
14056
14072
|
const c = {
|
|
14057
14073
|
bundleOwnerId: n,
|
|
14058
14074
|
...r,
|
|
14059
14075
|
...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
|
|
14060
|
-
},
|
|
14076
|
+
}, g = (p = (await x.getShadowGraphqlClient().mutate({
|
|
14061
14077
|
mutation: wi(((Q = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : Q.eagerFetchProducts) || !1),
|
|
14062
14078
|
variables: {
|
|
14063
14079
|
id: e,
|
|
@@ -14071,13 +14087,13 @@ class ss {
|
|
|
14071
14087
|
},
|
|
14072
14088
|
fetchPolicy: "no-cache"
|
|
14073
14089
|
})).data) == null ? void 0 : p.bundleDuplicate;
|
|
14074
|
-
if (!(
|
|
14090
|
+
if (!(g != null && g.id))
|
|
14075
14091
|
throw new Error("Unable to duplicate bundle");
|
|
14076
14092
|
const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14077
|
-
d.set(
|
|
14093
|
+
d.set(g.id, g.partner.id), P.setMap("bundlePartnerIds", d);
|
|
14078
14094
|
const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14079
|
-
C.set(
|
|
14080
|
-
const w = new et(this,
|
|
14095
|
+
C.set(g.id, g.bundleOwnerId), P.setMap("bundleOwnerIds", C);
|
|
14096
|
+
const w = new et(this, g, void 0, void 0, g.bundleOwnerId, {
|
|
14081
14097
|
eagerFetchProducts: (I = (m = a == null ? void 0 : a.graphql) == null ? void 0 : m.productCollection) == null ? void 0 : I.eagerFetchProducts
|
|
14082
14098
|
});
|
|
14083
14099
|
return await w.getInitializationPromise(), w;
|
|
@@ -14154,7 +14170,7 @@ class ss {
|
|
|
14154
14170
|
* @returns A workflow experience configured as requested.
|
|
14155
14171
|
*/
|
|
14156
14172
|
async getWorkflowExperience(e, t, A, a) {
|
|
14157
|
-
var
|
|
14173
|
+
var g, d, C, w, h;
|
|
14158
14174
|
if (!a)
|
|
14159
14175
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
14160
14176
|
const n = async () => {
|
|
@@ -14162,7 +14178,7 @@ class ss {
|
|
|
14162
14178
|
const u = x.getShadowGraphqlClient();
|
|
14163
14179
|
if (a.type === "transaction") {
|
|
14164
14180
|
const { transactionId: p, readOnly: m } = a, I = await u.query({
|
|
14165
|
-
query:
|
|
14181
|
+
query: Fe,
|
|
14166
14182
|
variables: {
|
|
14167
14183
|
ids: [p]
|
|
14168
14184
|
},
|
|
@@ -14170,13 +14186,13 @@ class ss {
|
|
|
14170
14186
|
fetchPolicy: "no-cache"
|
|
14171
14187
|
});
|
|
14172
14188
|
if (!((E = I.data) != null && E.transactions) || I.data.transactions.length === 0)
|
|
14173
|
-
throw new
|
|
14189
|
+
throw new R("Existing transaction not found.");
|
|
14174
14190
|
const F = (D = I.data) == null ? void 0 : D.transactions[0];
|
|
14175
14191
|
if (!F.workflowId)
|
|
14176
|
-
throw new
|
|
14177
|
-
const y = await
|
|
14192
|
+
throw new R("Existing transaction has no workflow ID.");
|
|
14193
|
+
const y = await xe(F.workflowId);
|
|
14178
14194
|
if (!F.product)
|
|
14179
|
-
throw new
|
|
14195
|
+
throw new R("Failed to load transaction, product not available.");
|
|
14180
14196
|
!this.activeIntegration && ((Q = F.integrationProduct) != null && Q.integration) && (this.activeIntegration = Promise.resolve(F.integrationProduct.integration));
|
|
14181
14197
|
const Y = await this.getStepTags(y);
|
|
14182
14198
|
return { transaction: F, workflow: y, stepTags: Y, readOnly: m };
|
|
@@ -14202,17 +14218,17 @@ class ss {
|
|
|
14202
14218
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
14203
14219
|
});
|
|
14204
14220
|
if (!N.data || !N.data.transactionCreate)
|
|
14205
|
-
throw new
|
|
14221
|
+
throw new R("Failed to create transaction!");
|
|
14206
14222
|
const S = N.data.transactionCreate;
|
|
14207
14223
|
if (!S.product)
|
|
14208
|
-
throw new
|
|
14224
|
+
throw new R("Failed to create transaction, product not available.");
|
|
14209
14225
|
return S;
|
|
14210
|
-
}, m =
|
|
14226
|
+
}, m = xe(a.workflowId, a == null ? void 0 : a.graphql), [I, F] = await Promise.all([p(), m]), y = await this.getStepTags(F);
|
|
14211
14227
|
return { transaction: I, workflow: F, stepTags: y };
|
|
14212
14228
|
}
|
|
14213
|
-
throw new
|
|
14229
|
+
throw new R("No workflow ID provided.");
|
|
14214
14230
|
}, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
|
|
14215
|
-
this.currencyCode = (
|
|
14231
|
+
this.currencyCode = (g = i.product.partner) == null ? void 0 : g.currencyCode;
|
|
14216
14232
|
const c = {
|
|
14217
14233
|
product: i.product,
|
|
14218
14234
|
transaction: i,
|
|
@@ -14239,7 +14255,7 @@ class ss {
|
|
|
14239
14255
|
c.transaction,
|
|
14240
14256
|
c.workflow
|
|
14241
14257
|
);
|
|
14242
|
-
if (c.renderableContextService = new
|
|
14258
|
+
if (c.renderableContextService = new Ye(
|
|
14243
14259
|
c.layouts
|
|
14244
14260
|
), a.previewService ? (c.previewService = a.previewService, (C = c.product) != null && C.modelUrl && (c.modelContainer = c.previewService.loadModel({
|
|
14245
14261
|
model: c.product.modelUrl,
|
|
@@ -14253,7 +14269,7 @@ class ss {
|
|
|
14253
14269
|
} else
|
|
14254
14270
|
c.isReloadedTransaction = !0;
|
|
14255
14271
|
this.initialized = !0, this.experienceOptions = c;
|
|
14256
|
-
const B = new
|
|
14272
|
+
const B = new Se(this, c);
|
|
14257
14273
|
return await B.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await B.attachCustomerDetails({ email: this.customer.emailAddress }), B;
|
|
14258
14274
|
}
|
|
14259
14275
|
/**
|
|
@@ -14265,13 +14281,13 @@ class ss {
|
|
|
14265
14281
|
*/
|
|
14266
14282
|
async getWorkflowExperiences(e, t) {
|
|
14267
14283
|
if (e.length === 0)
|
|
14268
|
-
throw new
|
|
14284
|
+
throw new R("No options provided!");
|
|
14269
14285
|
const A = x.getShadowGraphqlClient(), a = async (p) => {
|
|
14270
14286
|
var y, Y, N;
|
|
14271
14287
|
if (p.length === 0)
|
|
14272
14288
|
return [];
|
|
14273
14289
|
const m = p.map((S) => S.option.transactionId), I = await A.query({
|
|
14274
|
-
query:
|
|
14290
|
+
query: Fe,
|
|
14275
14291
|
variables: {
|
|
14276
14292
|
ids: m
|
|
14277
14293
|
},
|
|
@@ -14280,14 +14296,14 @@ class ss {
|
|
|
14280
14296
|
}), F = I.data.transactions;
|
|
14281
14297
|
if (F.length !== p.length) {
|
|
14282
14298
|
const S = ((Y = (y = I.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
14283
|
-
throw new
|
|
14299
|
+
throw new R(`Not all transactions were found: ${S}`);
|
|
14284
14300
|
}
|
|
14285
14301
|
return !this.activeIntegration && ((N = F[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(F[0].integrationProduct.integration)), F.map((S, T) => {
|
|
14286
|
-
var
|
|
14302
|
+
var H;
|
|
14287
14303
|
return {
|
|
14288
14304
|
transaction: S,
|
|
14289
14305
|
workflowId: S.workflowId,
|
|
14290
|
-
readOnly: ((
|
|
14306
|
+
readOnly: ((H = p.find((W) => W.option.transactionId === S.id)) == null ? void 0 : H.option.readOnly) ?? !1,
|
|
14291
14307
|
index: p[T].index
|
|
14292
14308
|
};
|
|
14293
14309
|
});
|
|
@@ -14314,7 +14330,7 @@ class ss {
|
|
|
14314
14330
|
}), I = (F = m.data) == null ? void 0 : F.transactionCreateMany;
|
|
14315
14331
|
if (!I || I.length === 0) {
|
|
14316
14332
|
const N = ((Y = (y = m.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
14317
|
-
throw new
|
|
14333
|
+
throw new R(`Failed to create transactions: ${N}`);
|
|
14318
14334
|
}
|
|
14319
14335
|
return I.map((N, S) => ({
|
|
14320
14336
|
transaction: N,
|
|
@@ -14327,11 +14343,11 @@ class ss {
|
|
|
14327
14343
|
), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
|
|
14328
14344
|
...r.map(a),
|
|
14329
14345
|
...c.map(n)
|
|
14330
|
-
])).flat(),
|
|
14346
|
+
])).flat(), g = [...new Set(B.map((p) => p.workflowId))], d = await NA(g, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
|
|
14331
14347
|
var W;
|
|
14332
14348
|
const { transaction: m, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
|
|
14333
14349
|
!w.get(m.id) && m.transactionOwnerId && w.set(m.id, m.transactionOwnerId);
|
|
14334
|
-
const T = w.get(m.id) || void 0,
|
|
14350
|
+
const T = w.get(m.id) || void 0, H = {
|
|
14335
14351
|
product: m.product,
|
|
14336
14352
|
transaction: m,
|
|
14337
14353
|
stepTags: N,
|
|
@@ -14346,22 +14362,22 @@ class ss {
|
|
|
14346
14362
|
};
|
|
14347
14363
|
if (S.type === "transaction" && m.workflowState) {
|
|
14348
14364
|
const O = JSON.parse(m.workflowState);
|
|
14349
|
-
|
|
14365
|
+
H.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), H.reloadedState = O;
|
|
14350
14366
|
} else if (!F && S.workflowState) {
|
|
14351
14367
|
const O = JSON.parse(S.workflowState);
|
|
14352
|
-
|
|
14368
|
+
H.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), H.reloadedState = O;
|
|
14353
14369
|
} else
|
|
14354
|
-
|
|
14355
|
-
|
|
14356
|
-
|
|
14370
|
+
H.layouts = tt(
|
|
14371
|
+
H.transaction,
|
|
14372
|
+
H.workflow
|
|
14357
14373
|
);
|
|
14358
|
-
return
|
|
14359
|
-
|
|
14360
|
-
),
|
|
14374
|
+
return H.renderableContextService = new Ye(
|
|
14375
|
+
H.layouts
|
|
14376
|
+
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: y, options: S };
|
|
14361
14377
|
}), u = await Promise.all(h);
|
|
14362
14378
|
P.setMap("transactionOwnerIds", w);
|
|
14363
14379
|
const D = u.sort((p, m) => p.index - m.index).map(async (p) => {
|
|
14364
|
-
const { experienceOptions: m, options: I } = p, F = new
|
|
14380
|
+
const { experienceOptions: m, options: I } = p, F = new Se(this, m);
|
|
14365
14381
|
return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
14366
14382
|
}), Q = await Promise.all(D);
|
|
14367
14383
|
return Q.forEach((p) => p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
|
|
@@ -14374,7 +14390,7 @@ class ss {
|
|
|
14374
14390
|
async initFromIntegrationProduct(e) {
|
|
14375
14391
|
var i;
|
|
14376
14392
|
if (e === "")
|
|
14377
|
-
throw new
|
|
14393
|
+
throw new R("No integration product ID provided.");
|
|
14378
14394
|
const A = await x.getShadowGraphqlClient().mutate({
|
|
14379
14395
|
mutation: Ht,
|
|
14380
14396
|
variables: {
|
|
@@ -14389,10 +14405,10 @@ class ss {
|
|
|
14389
14405
|
context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
|
|
14390
14406
|
});
|
|
14391
14407
|
if (!A.data || !A.data.transactionCreate)
|
|
14392
|
-
throw new
|
|
14408
|
+
throw new R("Failed to create transaction!");
|
|
14393
14409
|
const a = A.data.transactionCreate;
|
|
14394
14410
|
if (!a.product)
|
|
14395
|
-
throw new
|
|
14411
|
+
throw new R("Failed to create transaction, product not available.");
|
|
14396
14412
|
this.currencyCode = (i = a.product.partner) == null ? void 0 : i.currencyCode;
|
|
14397
14413
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
14398
14414
|
n.set(a.id, a.transactionOwnerId), P.setMap("transactionOwnerIds", n), this.experienceOptions = {
|
|
@@ -14414,22 +14430,22 @@ class ss {
|
|
|
14414
14430
|
async initFromTransaction(e, t = !1) {
|
|
14415
14431
|
var s, o, r, c;
|
|
14416
14432
|
if (e === "")
|
|
14417
|
-
throw new
|
|
14433
|
+
throw new R("No transaction ID provided.");
|
|
14418
14434
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
14419
14435
|
var d, C;
|
|
14420
|
-
const
|
|
14421
|
-
query:
|
|
14436
|
+
const g = (d = (await A.query({
|
|
14437
|
+
query: Fe,
|
|
14422
14438
|
variables: { ids: [e] },
|
|
14423
14439
|
fetchPolicy: "no-cache",
|
|
14424
14440
|
errorPolicy: "all"
|
|
14425
14441
|
})).data) == null ? void 0 : d.transactions[0];
|
|
14426
|
-
if (!
|
|
14427
|
-
throw new
|
|
14428
|
-
if (!
|
|
14429
|
-
throw new
|
|
14430
|
-
this.currencyCode = (C =
|
|
14431
|
-
product:
|
|
14432
|
-
transaction:
|
|
14442
|
+
if (!g)
|
|
14443
|
+
throw new R("Failed to read transaction.");
|
|
14444
|
+
if (!g.product)
|
|
14445
|
+
throw new R("Failed to load transaction, product not available.");
|
|
14446
|
+
this.currencyCode = (C = g.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
|
|
14447
|
+
product: g.product,
|
|
14448
|
+
transaction: g,
|
|
14433
14449
|
layouts: [],
|
|
14434
14450
|
stateMutationFunc: async () => {
|
|
14435
14451
|
throw new b("State mutation is forbidden in read only mode!");
|
|
@@ -14441,20 +14457,20 @@ class ss {
|
|
|
14441
14457
|
return await a();
|
|
14442
14458
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
14443
14459
|
if (i) {
|
|
14444
|
-
const
|
|
14445
|
-
query:
|
|
14460
|
+
const g = (s = (await A.query({
|
|
14461
|
+
query: Fe,
|
|
14446
14462
|
variables: {
|
|
14447
14463
|
ids: [e]
|
|
14448
14464
|
},
|
|
14449
14465
|
errorPolicy: "all"
|
|
14450
14466
|
})).data) == null ? void 0 : s.transactions[0];
|
|
14451
|
-
if (!
|
|
14452
|
-
throw new
|
|
14453
|
-
if (!
|
|
14454
|
-
throw new
|
|
14455
|
-
this.currencyCode = (o =
|
|
14456
|
-
product:
|
|
14457
|
-
transaction:
|
|
14467
|
+
if (!g)
|
|
14468
|
+
throw new R("Failed to read transaction.");
|
|
14469
|
+
if (!g.product)
|
|
14470
|
+
throw new R("Failed to load transaction, product not available.");
|
|
14471
|
+
this.currencyCode = (o = g.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
|
|
14472
|
+
product: g.product,
|
|
14473
|
+
transaction: g,
|
|
14458
14474
|
layouts: [],
|
|
14459
14475
|
stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
|
|
14460
14476
|
readOnly: t
|
|
@@ -14462,27 +14478,27 @@ class ss {
|
|
|
14462
14478
|
return;
|
|
14463
14479
|
}
|
|
14464
14480
|
try {
|
|
14465
|
-
const
|
|
14481
|
+
const g = (r = (await A.mutate({
|
|
14466
14482
|
mutation: ka,
|
|
14467
14483
|
variables: { id: e },
|
|
14468
14484
|
errorPolicy: "all"
|
|
14469
14485
|
})).data) == null ? void 0 : r.transactionClaim;
|
|
14470
|
-
if (!
|
|
14471
|
-
throw new
|
|
14472
|
-
if (!
|
|
14473
|
-
throw new
|
|
14474
|
-
this.currencyCode = (c =
|
|
14475
|
-
product:
|
|
14476
|
-
transaction:
|
|
14486
|
+
if (!g)
|
|
14487
|
+
throw new R("Failed to read transaction.");
|
|
14488
|
+
if (!g.product)
|
|
14489
|
+
throw new R("Failed to load transaction, product not available.");
|
|
14490
|
+
this.currencyCode = (c = g.product.partner) == null ? void 0 : c.currencyCode, g.transactionOwnerId && (n.set(g.id, g.transactionOwnerId), P.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
14491
|
+
product: g.product,
|
|
14492
|
+
transaction: g,
|
|
14477
14493
|
layouts: [],
|
|
14478
14494
|
stateMutationFunc: async (d) => this.updateTransactionState({
|
|
14479
14495
|
...d,
|
|
14480
|
-
context: { transactionOwnerId:
|
|
14496
|
+
context: { transactionOwnerId: g.transactionOwnerId }
|
|
14481
14497
|
}),
|
|
14482
14498
|
readOnly: t
|
|
14483
14499
|
}, this.initialized = !0;
|
|
14484
14500
|
} catch {
|
|
14485
|
-
throw new
|
|
14501
|
+
throw new R("Attempted to access a transaction that isn't available.");
|
|
14486
14502
|
}
|
|
14487
14503
|
}
|
|
14488
14504
|
/**
|
|
@@ -14491,18 +14507,18 @@ class ss {
|
|
|
14491
14507
|
async getWorkflowExperienceDeprecated(e, t, A) {
|
|
14492
14508
|
var a, n, i, s;
|
|
14493
14509
|
if (!this.initialized || !this.experienceOptions)
|
|
14494
|
-
throw new
|
|
14510
|
+
throw new R("Cannot launch experience: Not initialized.");
|
|
14495
14511
|
if (this.experienceOptions.transaction.workflowId) {
|
|
14496
|
-
const o = await
|
|
14512
|
+
const o = await xe(this.experienceOptions.transaction.workflowId);
|
|
14497
14513
|
if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
|
|
14498
14514
|
const c = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
14499
14515
|
this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await se(c), await re(c), this.experienceOptions.reloadedState = c;
|
|
14500
14516
|
}
|
|
14501
|
-
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new
|
|
14517
|
+
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
|
|
14502
14518
|
model: this.experienceOptions.product.modelUrl,
|
|
14503
14519
|
contextService: this.experienceOptions.renderableContextService
|
|
14504
14520
|
}));
|
|
14505
|
-
const r = new
|
|
14521
|
+
const r = new Se(this, this.experienceOptions);
|
|
14506
14522
|
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
14507
14523
|
}
|
|
14508
14524
|
if (e) {
|
|
@@ -14515,7 +14531,7 @@ class ss {
|
|
|
14515
14531
|
context: {
|
|
14516
14532
|
transactionOwnerId: r
|
|
14517
14533
|
}
|
|
14518
|
-
}), B =
|
|
14534
|
+
}), B = xe(e);
|
|
14519
14535
|
if (await Promise.all([c, B]), this.experienceOptions.workflow = await B, t) {
|
|
14520
14536
|
const d = JSON.parse(t);
|
|
14521
14537
|
this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await se(d), await re(d), this.experienceOptions.reloadedState = d;
|
|
@@ -14524,14 +14540,14 @@ class ss {
|
|
|
14524
14540
|
this.experienceOptions.transaction,
|
|
14525
14541
|
this.experienceOptions.workflow
|
|
14526
14542
|
);
|
|
14527
|
-
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new
|
|
14543
|
+
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
|
|
14528
14544
|
model: this.experienceOptions.product.modelUrl,
|
|
14529
14545
|
contextService: this.experienceOptions.renderableContextService
|
|
14530
14546
|
}));
|
|
14531
|
-
const
|
|
14532
|
-
return await
|
|
14547
|
+
const g = new Se(this, this.experienceOptions);
|
|
14548
|
+
return await g.getWorkflowManager().getInitializationPromise(), g;
|
|
14533
14549
|
}
|
|
14534
|
-
throw new
|
|
14550
|
+
throw new R("No workflow ID provided.");
|
|
14535
14551
|
}
|
|
14536
14552
|
/**
|
|
14537
14553
|
* @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
|
|
@@ -14547,7 +14563,7 @@ class ss {
|
|
|
14547
14563
|
*/
|
|
14548
14564
|
getProduct() {
|
|
14549
14565
|
if (!this.initialized || !this.experienceOptions)
|
|
14550
|
-
throw new
|
|
14566
|
+
throw new R("Cannot get product: Not initialized.");
|
|
14551
14567
|
return this.experienceOptions.product;
|
|
14552
14568
|
}
|
|
14553
14569
|
/**
|
|
@@ -14556,7 +14572,7 @@ class ss {
|
|
|
14556
14572
|
*/
|
|
14557
14573
|
getTransaction() {
|
|
14558
14574
|
if (!this.initialized || !this.experienceOptions)
|
|
14559
|
-
throw new
|
|
14575
|
+
throw new R("Cannot get transaction: Not initialized.");
|
|
14560
14576
|
return this.experienceOptions.transaction;
|
|
14561
14577
|
}
|
|
14562
14578
|
storeCustomer(e) {
|
|
@@ -14765,7 +14781,7 @@ class Ys {
|
|
|
14765
14781
|
return [];
|
|
14766
14782
|
}
|
|
14767
14783
|
}
|
|
14768
|
-
var os = /* @__PURE__ */ ((
|
|
14784
|
+
var os = /* @__PURE__ */ ((l) => (l.SelectFrame = "SelectFrame", l.SelectImage = "SelectImage", l.Position = "Position", l))(os || {});
|
|
14769
14785
|
class rs extends X {
|
|
14770
14786
|
constructor(e, t, A) {
|
|
14771
14787
|
var a;
|
|
@@ -14958,7 +14974,7 @@ export {
|
|
|
14958
14974
|
Ts as DeleteElementCommand,
|
|
14959
14975
|
kn as DigitalContentStepHandle,
|
|
14960
14976
|
Si as FileUploadGlobalPropertyHandle,
|
|
14961
|
-
|
|
14977
|
+
Pe as FlowExecutionNodeResult,
|
|
14962
14978
|
Ji as FlowExecutionResult,
|
|
14963
14979
|
bi as FlowService,
|
|
14964
14980
|
Os as FontAlignmentCommand,
|
|
@@ -14979,31 +14995,31 @@ export {
|
|
|
14979
14995
|
Ws as LayoutElementType,
|
|
14980
14996
|
z as LayoutNotFoundError,
|
|
14981
14997
|
Yn as MaterialStepHandle,
|
|
14982
|
-
|
|
14998
|
+
Ge as MisconfigurationError,
|
|
14983
14999
|
Ys as MockWorkflowManager,
|
|
14984
15000
|
Pn as ModelStepHandle,
|
|
14985
15001
|
Un as ModuleStepHandle,
|
|
14986
15002
|
Xs as MoveCommand,
|
|
14987
|
-
|
|
15003
|
+
xA as ObjectInput,
|
|
14988
15004
|
Ti as ObjectInputType,
|
|
14989
|
-
|
|
14990
|
-
|
|
15005
|
+
PA as OptionGlobalPropertyHandle,
|
|
15006
|
+
Ue as OptionNotFoundError,
|
|
14991
15007
|
he as ParseError,
|
|
14992
15008
|
xn as PictureStepHandle,
|
|
14993
15009
|
xa as ProductCameraRig,
|
|
14994
15010
|
Hi as ProductCollection,
|
|
14995
|
-
|
|
14996
|
-
|
|
14997
|
-
|
|
15011
|
+
ue as ProductWorkflow,
|
|
15012
|
+
Qe as PromiseCache,
|
|
15013
|
+
BA as PromiseQueue,
|
|
14998
15014
|
Nn as QuestionStepHandle,
|
|
14999
|
-
|
|
15015
|
+
gA as QueueablePromise,
|
|
15000
15016
|
qs as ResizeCommand,
|
|
15001
|
-
|
|
15017
|
+
me as ResourceNotFoundError,
|
|
15002
15018
|
Zs as RotateCommand,
|
|
15003
15019
|
$s as SendBackwardsCommand,
|
|
15004
15020
|
vn as ShapeStepHandle,
|
|
15005
15021
|
ss as SpiffCommerceClient,
|
|
15006
|
-
|
|
15022
|
+
be as StakeholderType,
|
|
15007
15023
|
_s as StepAspectType,
|
|
15008
15024
|
X as StepHandle,
|
|
15009
15025
|
eo as StepType,
|
|
@@ -15019,14 +15035,14 @@ export {
|
|
|
15019
15035
|
ao as UpdateImageSourceCommand,
|
|
15020
15036
|
Z as Variant,
|
|
15021
15037
|
Vn as WorkflowExperienceEventType,
|
|
15022
|
-
|
|
15038
|
+
Se as WorkflowExperienceImpl,
|
|
15023
15039
|
U as assetService,
|
|
15024
15040
|
tn as browserColorToHex,
|
|
15025
15041
|
Ln as createDesign,
|
|
15026
15042
|
no as dataUrlFromExternalUrl,
|
|
15027
15043
|
$e as designService,
|
|
15028
15044
|
io as determineCorrectFontSizeAndLines,
|
|
15029
|
-
|
|
15045
|
+
CA as digitalContentStepService,
|
|
15030
15046
|
so as findElement,
|
|
15031
15047
|
fs as findPmsColors,
|
|
15032
15048
|
oo as frameDataCache,
|
|
@@ -15035,31 +15051,31 @@ export {
|
|
|
15035
15051
|
ni as generateCommands,
|
|
15036
15052
|
co as generateSVGWithUnknownColors,
|
|
15037
15053
|
ys as generateStateFromDesignInputSteps,
|
|
15038
|
-
|
|
15039
|
-
|
|
15054
|
+
lo as getAttributesFromArrayBuffer,
|
|
15055
|
+
go as getAxisAlignedBoundingBox,
|
|
15040
15056
|
Wa as getBoundedOffsets,
|
|
15041
15057
|
Bo as getFrameData,
|
|
15042
15058
|
Co as getSvgElement,
|
|
15043
|
-
|
|
15044
|
-
|
|
15059
|
+
xe as getWorkflow,
|
|
15060
|
+
NA as getWorkflows,
|
|
15045
15061
|
x as graphQlManager,
|
|
15046
|
-
|
|
15062
|
+
ve as illustrationStepService,
|
|
15047
15063
|
wo as loadFont,
|
|
15048
15064
|
Is as matchHexToPms,
|
|
15049
|
-
|
|
15050
|
-
|
|
15051
|
-
|
|
15065
|
+
wA as materialStepService,
|
|
15066
|
+
hA as modelStepService,
|
|
15067
|
+
EA as moduleStepService,
|
|
15052
15068
|
V as optionService,
|
|
15053
15069
|
ho as patternImageDataCache,
|
|
15054
15070
|
P as persistenceService,
|
|
15055
|
-
|
|
15071
|
+
uA as pictureStepService,
|
|
15056
15072
|
Ds as pmsToRgb,
|
|
15057
|
-
|
|
15073
|
+
mA as questionStepService,
|
|
15058
15074
|
Eo as registerFetchImplementation,
|
|
15059
15075
|
uo as registerWindowImplementation,
|
|
15060
15076
|
mo as rehydrateSerializedLayout,
|
|
15061
15077
|
$a as rgbToPms,
|
|
15062
|
-
|
|
15078
|
+
ga as setBearerAuthenticationToken,
|
|
15063
15079
|
Qo as setCanvasModule,
|
|
15064
15080
|
Ee as shapeStepService,
|
|
15065
15081
|
qa as shortenUrl,
|