@spiffcommerce/core 16.5.0-rc.0 → 16.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as y } from "@apollo/client/core";
2
- import { fetch as _A, getAttributesFromArrayBuffer as Fe, AssetType as le, StepType as I, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as Me, calculateOffsets as ee, LayoutElementType as H, generate as k, CreateElementCommand as J, generateSVGWithUnknownColors as ye, svgObjectURL as FA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as Be, GetSVGDimensions as It, patternImageDataCache as de, fetchAsArrayBuffer as Dt, findElement as MA, modifySVGWithElementProperties as ft, IllustrationColorCommand as jA, IllustrationCacheCommand as Ft, getFontMetrics as Mt, getPatternImageData as VA, FontColorCommand as yt, FontImageFillCommand as JA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as IA, FontSourceCommand as we, loadFont as te, TextChangeCommand as Yt, FontSizeCommand as St, createElementNS as xt, createElement as wA, _loadFontExternalDataURL as ae, UpdateWorkflowStateCommand as Ee, CommandContext as Nt, createCanvas as yA, getSvgElement as Ye, LayoutRenderingPurpose as Se, renderPapyrusComponentAsString as xe, loadImage as Ne, getDomParser as Re, toBase64 as he, getVariant as Rt, generateFrameSVG as Pt, getDefaultVariant as UA, domParser as Pe, sanitizeSvgTree as He, traverse as Ht, xmlSerializer as Ue, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
1
+ import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as M } from "@apollo/client/core";
2
+ import { fetch as _A, getAttributesFromArrayBuffer as Fe, AssetType as le, StepType as I, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as Me, calculateOffsets as ee, LayoutElementType as U, generate as k, CreateElementCommand as J, generateSVGWithUnknownColors as ye, svgObjectURL as FA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as Be, GetSVGDimensions as It, patternImageDataCache as de, fetchAsArrayBuffer as Dt, findElement as MA, modifySVGWithElementProperties as ft, IllustrationColorCommand as jA, IllustrationCacheCommand as Ft, getFontMetrics as Mt, getPatternImageData as VA, FontColorCommand as yt, FontImageFillCommand as bA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as IA, FontSourceCommand as we, loadFont as te, TextChangeCommand as Yt, FontSizeCommand as St, createElementNS as xt, createElement as wA, _loadFontExternalDataURL as ae, UpdateWorkflowStateCommand as Ee, CommandContext as Nt, createCanvas as yA, getSvgElement as Ye, LayoutRenderingPurpose as Se, renderPapyrusComponentAsString as xe, loadImage as Ne, getDomParser as Re, toBase64 as he, getVariant as Rt, generateFrameSVG as Pt, getDefaultVariant as UA, domParser as Pe, sanitizeSvgTree as He, traverse as Ht, xmlSerializer as Ue, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
3
3
  import { AssetType as Ts, BringForwardCommand as Ls, BringToBackCommand as Os, BringToFrontCommand as zs, CanvasCommand as Ks, CommandContext as js, CreateElementCommand as Vs, CreateLayoutCommand as Ws, DeleteElementCommand as Xs, FontAlignmentCommand as qs, FontColorCommand as Zs, FontSizeCommand as $s, FontSourceCommand as _s, GroupCommand as Ai, LayoutElementFactory as ei, LayoutElementType as ti, MoveCommand as ai, ResizeCommand as ni, RotateCommand as si, SendBackwardsCommand as ii, StepAspectType as oi, StepType as ri, TextChangeCommand as ci, UnitOfMeasurement as gi, dataUrlFromExternalUrl as li, determineCorrectFontSizeAndLines as Bi, findElement as di, frameDataCache as wi, generate as Ei, generateSVGWithUnknownColors as hi, getAttributesFromArrayBuffer as Ci, getAxisAlignedBoundingBox as Qi, getFrameData as ui, getSvgElement as mi, loadFont as pi, patternImageDataCache as Ii, registerFetchImplementation as Di, registerWindowImplementation as fi, rehydrateSerializedLayout as Fi, setCanvasModule as Mi } from "@spiffcommerce/papyrus";
4
4
  import { setContext as vt } from "@apollo/client/link/context";
5
5
  import { onError as kt } from "@apollo/client/link/error";
@@ -7,15 +7,15 @@ import { Pith as Ge } from "pith";
7
7
  import ve from "lodash.debounce";
8
8
  import ke from "lodash.isequal";
9
9
  import gA from "lodash.clonedeep";
10
- import { toString as be } from "qrcode";
10
+ import { toString as Je } from "qrcode";
11
11
  import { split as XA } from "unicode-default-word-boundary";
12
12
  import ne from "svg-path-bbox";
13
- class Je extends Error {
13
+ class be extends Error {
14
14
  constructor(A) {
15
15
  super(A), this.name = this.constructor.name;
16
16
  }
17
17
  }
18
- class dA extends Je {
18
+ class dA extends be {
19
19
  constructor(A) {
20
20
  super(`ConfigurationError - ${A}`);
21
21
  }
@@ -25,7 +25,7 @@ class YA extends dA {
25
25
  super(`Option not Configured: ${A.stepTitle}`), this.optionId = (A == null ? void 0 : A.optionId) || "N/A";
26
26
  }
27
27
  }
28
- class L extends dA {
28
+ class T extends dA {
29
29
  constructor(A) {
30
30
  super(`Panel not Found: ${A.panelId}`), this.panelId = (A == null ? void 0 : A.panelId) || "N/A";
31
31
  }
@@ -45,7 +45,7 @@ class SA extends dA {
45
45
  super(`Workflow Misconfiguration: ${A.stepName} - ${e}`), this.step = A;
46
46
  }
47
47
  }
48
- class GA extends Je {
48
+ class GA extends be {
49
49
  constructor(A) {
50
50
  super(`ImplementationError - ${A}`);
51
51
  }
@@ -60,7 +60,7 @@ class rA extends GA {
60
60
  super(`Parsing Error: ${A}`);
61
61
  }
62
62
  }
63
- class P extends GA {
63
+ class H extends GA {
64
64
  constructor(A) {
65
65
  super(`Client Error: ${A}`);
66
66
  }
@@ -70,7 +70,7 @@ class vA extends GA {
70
70
  super(`Resource Generation Failed: ${A}`);
71
71
  }
72
72
  }
73
- class bt {
73
+ class Jt {
74
74
  get(A) {
75
75
  return localStorage.getItem(A) || void 0;
76
76
  }
@@ -113,13 +113,13 @@ class Ce {
113
113
  this.set(A, t);
114
114
  }
115
115
  }
116
- const Jt = () => {
116
+ const bt = () => {
117
117
  try {
118
- return localStorage ? new bt() : new Ce();
118
+ return localStorage ? new Jt() : new Ce();
119
119
  } catch {
120
120
  return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Ce();
121
121
  }
122
- }, x = Jt();
122
+ }, S = bt();
123
123
  class Tt {
124
124
  constructor() {
125
125
  this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
@@ -190,13 +190,13 @@ class Kt {
190
190
  uri: `${xA.getServerUrl()}/graphql`,
191
191
  fetch: _A
192
192
  }), e = vt(async (s, i) => {
193
- const { headers: r } = i, o = r || {}, c = await zt(), B = i.bearer ?? c.bearer, l = i.partnerId ?? c.partnerId, d = i.activeIntegration ?? c.activeIntegration, E = i.transactionOwnerId ?? c.transactionOwnerId, C = i.customerToken ?? c.customerToken, w = i.applicationKey ?? c.applicationKey, Q = i.bundleOwnerId ?? c.bundleOwnerId;
194
- return B && (o.Authorization = `Bearer ${B}`), l && (o.partnerId = l), d && (o.activeIntegration = d), E && (o.transactionOwnerId = E), C && (o.customerToken = C), w && (o["X-Application-Key"] = w), Q && (o.bundleOwnerId = Q), {
195
- headers: o
193
+ const { headers: o } = i, r = o || {}, c = await zt(), B = i.bearer ?? c.bearer, l = i.partnerId ?? c.partnerId, d = i.activeIntegration ?? c.activeIntegration, E = i.transactionOwnerId ?? c.transactionOwnerId, h = i.customerToken ?? c.customerToken, w = i.applicationKey ?? c.applicationKey, Q = i.bundleOwnerId ?? c.bundleOwnerId;
194
+ return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), E && (r.transactionOwnerId = E), h && (r.customerToken = h), w && (r["X-Application-Key"] = w), Q && (r.bundleOwnerId = Q), {
195
+ headers: r
196
196
  };
197
- }), t = kt(({ operation: s, graphQLErrors: i, networkError: r }) => {
198
- const o = i || [];
199
- r && console.log("GraphQL Network error"), o.forEach(() => console.log("GraphQL Error: " + s.operationName));
197
+ }), t = kt(({ operation: s, graphQLErrors: i, networkError: o }) => {
198
+ const r = i || [];
199
+ o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + s.operationName));
200
200
  });
201
201
  function a() {
202
202
  return {
@@ -251,14 +251,14 @@ class Kt {
251
251
  });
252
252
  }
253
253
  }
254
- const N = new Kt(), jt = y`
254
+ const x = new Kt(), jt = M`
255
255
  fragment AssetMetadataFields on Asset {
256
256
  metadata {
257
257
  key
258
258
  value
259
259
  }
260
260
  }
261
- `, kA = (g) => y`
261
+ `, kA = (g) => M`
262
262
  ${g && jt || ""}
263
263
  fragment AssetFields on Asset {
264
264
  name
@@ -273,14 +273,14 @@ const N = new Kt(), jt = y`
273
273
  }
274
274
  ${g && "...AssetMetadataFields" || ""}
275
275
  }
276
- `, Vt = y`
276
+ `, Vt = M`
277
277
  ${kA(!1)}
278
278
  query GetAssets($keys: [String]!) {
279
279
  assets(keys: $keys) {
280
280
  ...AssetFields
281
281
  }
282
282
  }
283
- `, se = y`
283
+ `, se = M`
284
284
  fragment MaterialFields on Material {
285
285
  id
286
286
  name
@@ -321,14 +321,14 @@ const N = new Kt(), jt = y`
321
321
  fileLink
322
322
  }
323
323
  }
324
- `, Wt = y`
324
+ `, Wt = M`
325
325
  ${se}
326
326
  query GetMaterials($ids: [String]) {
327
327
  materials(id: $ids) {
328
328
  ...MaterialFields
329
329
  }
330
330
  }
331
- `, Xt = y`
331
+ `, Xt = M`
332
332
  mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
333
333
  assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
334
334
  uploadUrl
@@ -342,14 +342,14 @@ const N = new Kt(), jt = y`
342
342
  }
343
343
  }
344
344
  }
345
- `, Ke = async (g) => (await N.getShadowGraphqlClient().query({
345
+ `, Ke = async (g) => (await x.getShadowGraphqlClient().query({
346
346
  query: Vt,
347
347
  errorPolicy: "all",
348
348
  fetchPolicy: "no-cache",
349
349
  variables: {
350
350
  keys: g
351
351
  }
352
- })).data.assets, qt = async (g) => (await N.getShadowGraphqlClient().query({
352
+ })).data.assets, qt = async (g) => (await x.getShadowGraphqlClient().query({
353
353
  query: Wt,
354
354
  errorPolicy: "all",
355
355
  fetchPolicy: "no-cache",
@@ -358,7 +358,7 @@ const N = new Kt(), jt = y`
358
358
  }
359
359
  })).data.materials, Zt = async (g, A, e, t, a) => {
360
360
  var s;
361
- return (s = (await N.getShadowGraphqlClient().mutate({
361
+ return (s = (await x.getShadowGraphqlClient().mutate({
362
362
  mutation: Xt,
363
363
  errorPolicy: "all",
364
364
  fetchPolicy: "no-cache",
@@ -375,10 +375,10 @@ class $t {
375
375
  constructor() {
376
376
  this.cache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (A) => {
377
377
  const e = await A.arrayBuffer(), t = await Fe(e), a = (n, s) => {
378
- const i = atob(n.split(",")[1]), r = [];
379
- for (let o = 0; o < i.length; o++)
380
- r.push(i.charCodeAt(o));
381
- return new Blob([new Uint8Array(r)], { type: s });
378
+ const i = atob(n.split(",")[1]), o = [];
379
+ for (let r = 0; r < i.length; r++)
380
+ o.push(i.charCodeAt(r));
381
+ return new Blob([new Uint8Array(o)], { type: s });
382
382
  };
383
383
  return {
384
384
  name: A.name.substring(A.name.lastIndexOf("/") + 1),
@@ -433,14 +433,14 @@ class $t {
433
433
  const s = await this.dispatchCreateAssetRequest(A, e, a, n);
434
434
  if (!s)
435
435
  throw new Error("Failed to create asset.");
436
- return await new Promise((i, r) => {
437
- const o = new XMLHttpRequest();
438
- o.open("PUT", s.assetResponse.uploadUrl, !0), o.setRequestHeader("Content-Type", s.mimeType), o.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), o.upload.onprogress = (c) => {
436
+ return await new Promise((i, o) => {
437
+ const r = new XMLHttpRequest();
438
+ r.open("PUT", s.assetResponse.uploadUrl, !0), r.setRequestHeader("Content-Type", s.mimeType), r.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), r.upload.onprogress = (c) => {
439
439
  c.lengthComputable && t(c.loaded * 100 / c.total);
440
- }, o.onload = () => {
440
+ }, r.onload = () => {
441
441
  const c = s.assetResponse.asset;
442
442
  LA.add(s.assetResponse.asset), i(c);
443
- }, o.onerror = r, o.send(A.blob);
443
+ }, r.onerror = o, r.send(A.blob);
444
444
  }), s.assetResponse.asset;
445
445
  }
446
446
  async uploadFile(A, e) {
@@ -453,7 +453,7 @@ class $t {
453
453
  name: A.name,
454
454
  blob: new Blob([A], { type: A.type })
455
455
  };
456
- return await T.uploadAssetWithProgress(n, a, e, !0);
456
+ return await b.uploadAssetWithProgress(n, a, e, !0);
457
457
  }
458
458
  }
459
459
  removePersistedAsset(A) {
@@ -502,31 +502,31 @@ class LA {
502
502
  }
503
503
  const e = /* @__PURE__ */ new Map();
504
504
  e.set(A.key || "", A.fileLink);
505
- const t = x.getMap(sA);
505
+ const t = S.getMap(sA);
506
506
  t && t.forEach((a, n) => {
507
507
  e.set(n, a);
508
- }), x.setMap(sA, e);
508
+ }), S.setMap(sA, e);
509
509
  }
510
510
  /**
511
511
  * Remove an existing asset from persistence. Noop if the asset doesn't exist.
512
512
  * @param assetKey The key to remove.
513
513
  */
514
514
  static remove(A) {
515
- const e = x.getMap(sA);
515
+ const e = S.getMap(sA);
516
516
  if (!e)
517
517
  return;
518
518
  const t = Array.from(e.entries()).find((a) => a[0] === A);
519
- t && (e.delete(t[0]), x.setMap(sA, e));
519
+ t && (e.delete(t[0]), S.setMap(sA, e));
520
520
  }
521
521
  /**
522
522
  * Get a list of all persisted assets.
523
523
  */
524
524
  static list() {
525
- const A = x.getMap(sA);
525
+ const A = S.getMap(sA);
526
526
  return A ? Array.from(A.entries()).map((e) => ({ assetKey: e[0], src: e[1] })) : [];
527
527
  }
528
528
  }
529
- const T = new $t();
529
+ const b = new $t();
530
530
  class _t {
531
531
  constructor() {
532
532
  this.cache = {};
@@ -546,7 +546,7 @@ class _t {
546
546
  return this.cache[t] = e, e;
547
547
  }
548
548
  }
549
- const BA = new _t(), je = y`
549
+ const BA = new _t(), je = M`
550
550
  fragment OptionFields on Option {
551
551
  id
552
552
  name
@@ -586,7 +586,7 @@ const BA = new _t(), je = y`
586
586
  ...AssetFields
587
587
  }
588
588
  }
589
- `, Aa = y`
589
+ `, Aa = M`
590
590
  ${kA(!1)}
591
591
  ${se}
592
592
  ${je}
@@ -596,7 +596,7 @@ const BA = new _t(), je = y`
596
596
  }
597
597
  }
598
598
  `, ea = async (g) => {
599
- const A = await N.getShadowGraphqlClient().query({
599
+ const A = await x.getShadowGraphqlClient().query({
600
600
  query: Aa,
601
601
  errorPolicy: "all",
602
602
  fetchPolicy: "no-cache",
@@ -606,8 +606,8 @@ const BA = new _t(), je = y`
606
606
  });
607
607
  return A.data.options.forEach((e) => {
608
608
  var t, a;
609
- (t = e.defaultVariant) != null && t.asset && T.cacheAsset(e.defaultVariant.asset), e.colorProfile && T.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
610
- n.asset && T.cacheAsset(n.asset), n.displayImage && T.cacheAsset(n.displayImage), n.thumbnail && T.cacheAsset(n.thumbnail), n.material && T.cacheMaterial(n.material);
609
+ (t = e.defaultVariant) != null && t.asset && b.cacheAsset(e.defaultVariant.asset), e.colorProfile && b.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
610
+ n.asset && b.cacheAsset(n.asset), n.displayImage && b.cacheAsset(n.displayImage), n.thumbnail && b.cacheAsset(n.thumbnail), n.material && b.cacheMaterial(n.material);
611
611
  });
612
612
  }), A.data.options;
613
613
  }, ta = async (g, A) => (await A).find((t) => t.id === g), aa = async (g) => {
@@ -649,12 +649,12 @@ class na {
649
649
  var a, n;
650
650
  const e = A.thumbnail;
651
651
  if (e) {
652
- const s = (a = e.versions) == null ? void 0 : a.find((r) => r.name === "thumbnail"), i = e.fileLink;
652
+ const s = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
653
653
  return (s == null ? void 0 : s.link) || i;
654
654
  }
655
655
  const t = A.asset;
656
656
  if (t) {
657
- const s = (n = t.versions) == null ? void 0 : n.find((r) => r.name === "thumbnail"), i = t.fileLink;
657
+ const s = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), i = t.fileLink;
658
658
  return (s == null ? void 0 : s.link) || i;
659
659
  }
660
660
  return A.material ? A.material.id : "";
@@ -674,7 +674,7 @@ class na {
674
674
  }
675
675
  const z = new na();
676
676
  var sa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(sa || {}), ia = /* @__PURE__ */ ((g) => (g.PerVariation = "PerVariation", g.BaseProduct = "BaseProduct", g))(ia || {}), oa = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(oa || {}), ra = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(ra || {}), NA = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(NA || {});
677
- const ue = y`
677
+ const ue = M`
678
678
  mutation CreateTransaction(
679
679
  $integrationProductId: String
680
680
  $externalIntegrationId: String
@@ -768,7 +768,7 @@ const ue = y`
768
768
  }
769
769
  }
770
770
  }
771
- `, ca = y`
771
+ `, ca = M`
772
772
  mutation CreateTransactions($inputs: [TransactionCreateInput]!) {
773
773
  transactionCreateMany(inputs: $inputs) {
774
774
  id
@@ -848,7 +848,7 @@ const ue = y`
848
848
  }
849
849
  }
850
850
  }
851
- `, ga = y`
851
+ `, ga = M`
852
852
  mutation ClaimTransaction($id: String!) {
853
853
  transactionClaim(id: $id) {
854
854
  id
@@ -928,7 +928,7 @@ const ue = y`
928
928
  }
929
929
  }
930
930
  }
931
- `, EA = y`
931
+ `, EA = M`
932
932
  query ReadTransactions($ids: [String]!) {
933
933
  transactions(ids: $ids) {
934
934
  bulk
@@ -1015,26 +1015,26 @@ const ue = y`
1015
1015
  }
1016
1016
  }
1017
1017
  }
1018
- `, la = y`
1018
+ `, la = M`
1019
1019
  mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
1020
1020
  transactionUpdate(id: $id, workflowState: $workflowState) {
1021
1021
  id
1022
1022
  }
1023
1023
  }
1024
- `, Ba = y`
1024
+ `, Ba = M`
1025
1025
  mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
1026
1026
  transactionUpdate(id: $id, workflowId: $workflowId) {
1027
1027
  id
1028
1028
  }
1029
1029
  }
1030
- `, da = y`
1030
+ `, da = M`
1031
1031
  mutation UpdateVariationRecords($transactionId: String!, $updates: [VariationRecordUpdateInput]!) {
1032
1032
  variationRecordsUpdate(transactionId: $transactionId, updates: $updates) {
1033
1033
  recordNumber
1034
1034
  }
1035
1035
  }
1036
1036
  `;
1037
- y`
1037
+ M`
1038
1038
  query ReadTransactionForDesignCreation($id: String!) {
1039
1039
  transactions(ids: [$id]) {
1040
1040
  id
@@ -1087,7 +1087,7 @@ y`
1087
1087
  }
1088
1088
  }
1089
1089
  `;
1090
- const Ve = y`
1090
+ const Ve = M`
1091
1091
  query ReadWorkflowStates($ids: [String]!) {
1092
1092
  transactions(ids: $ids) {
1093
1093
  id
@@ -1202,66 +1202,65 @@ const Ve = y`
1202
1202
  });
1203
1203
  for (const n of g.steps) {
1204
1204
  if (A.bulkScene) {
1205
- let r = !1;
1205
+ let i = !1;
1206
1206
  switch (n.type) {
1207
1207
  case I.DigitalContent:
1208
- n.data.varyUpload && (r = !0);
1208
+ n.data.varyUpload && (i = !0);
1209
1209
  break;
1210
1210
  case I.Frame:
1211
1211
  {
1212
1212
  const o = n.data;
1213
- o.varyUpload && (o.varySelection || !n.option) && (r = !0);
1213
+ o.varyUpload && (o.varySelection || !n.option) && (i = !0);
1214
1214
  }
1215
1215
  break;
1216
1216
  case I.Illustration:
1217
1217
  {
1218
1218
  const o = n.data;
1219
- (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (r = !0);
1219
+ (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
1220
1220
  }
1221
1221
  break;
1222
1222
  case I.Material:
1223
- n.data.varySelection && (r = !0);
1223
+ n.data.varySelection && (i = !0);
1224
1224
  break;
1225
1225
  case I.Model:
1226
- n.data.varySelection && (r = !0);
1226
+ n.data.varySelection && (i = !0);
1227
1227
  break;
1228
1228
  case I.Picture:
1229
- n.data.varySelection && (r = !0);
1229
+ n.data.varySelection && (i = !0);
1230
1230
  break;
1231
1231
  case I.Question:
1232
- n.data.varySelections && (r = !0);
1232
+ n.data.varySelections && (i = !0);
1233
1233
  break;
1234
1234
  case I.Shape:
1235
- n.data.varySelection && (r = !0);
1235
+ n.data.varySelection && (i = !0);
1236
1236
  break;
1237
1237
  case I.Text:
1238
1238
  {
1239
1239
  const o = n.data;
1240
- (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (r = !0);
1240
+ (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (i = !0);
1241
1241
  }
1242
1242
  break;
1243
1243
  }
1244
- if (r)
1244
+ if (i)
1245
1245
  continue;
1246
1246
  }
1247
1247
  const s = Ea(n.stepName, g.stepGroups);
1248
- if (!n.silent)
1249
- if (!s)
1250
- t.push({
1251
- name: n.stepName,
1252
- title: n.stepTitle,
1253
- renderableSteps: iA.includes(n.type) ? [] : [n],
1254
- silentSteps: iA.includes(n.type) ? [n] : []
1255
- });
1256
- else {
1257
- const r = t.find((o) => o.name === s.name);
1258
- r ? iA.includes(n.type) ? r.silentSteps.push(n) : r.renderableSteps.push(n) : t.push({
1259
- name: s.name,
1260
- title: s.name,
1261
- renderableSteps: iA.includes(n.type) ? [] : [n],
1262
- silentSteps: iA.includes(n.type) ? [n] : []
1263
- });
1264
- }
1248
+ if (!s)
1249
+ t.push({
1250
+ name: n.stepName,
1251
+ title: n.stepTitle,
1252
+ renderableSteps: iA.includes(n.type) ? [] : [n],
1253
+ silentSteps: iA.includes(n.type) ? [n] : []
1254
+ });
1255
+ else {
1256
+ const i = t.find((o) => o.name === s.name);
1257
+ i ? iA.includes(n.type) ? i.silentSteps.push(n) : i.renderableSteps.push(n) : t.push({
1258
+ name: s.name,
1259
+ title: s.name,
1260
+ renderableSteps: iA.includes(n.type) ? [] : [n],
1261
+ silentSteps: iA.includes(n.type) ? [n] : []
1262
+ });
1263
+ }
1265
1264
  }
1266
1265
  if (A.bulkScene) {
1267
1266
  const n = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
@@ -1314,28 +1313,28 @@ const Ve = y`
1314
1313
  const e = {
1315
1314
  name: g.name,
1316
1315
  title: g.title,
1317
- renderableSteps: g.renderableSteps.filter(
1318
- (t) => nA(t, A) && !t.silent
1319
- ),
1316
+ renderableSteps: g.renderableSteps.filter((t) => nA(t, A)),
1320
1317
  silentSteps: g.silentSteps.filter((t) => nA(t, A))
1321
1318
  };
1322
1319
  return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
1323
- }, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A, e = !1) => {
1324
- var s;
1325
- const t = aA(g, A), a = [];
1326
- for (const i of t)
1327
- for (const r of i.renderableSteps) {
1328
- const o = (((s = r.option) == null ? void 0 : s.variants) || []).length;
1329
- r.type === I.Model || r.type === I.Material || r.type === I.Picture || r.type === I.Shape ? (o > 1 || e) && a.push(r.stepName) : a.push(r.stepName);
1330
- }
1331
- const n = t.filter((i) => i.renderableSteps.filter(
1332
- (o) => a.includes(o.stepName)
1320
+ }, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A) => {
1321
+ var n;
1322
+ const e = aA(g, A), t = [];
1323
+ for (const s of e)
1324
+ for (const i of s.renderableSteps)
1325
+ if (i.type === I.Model || i.type === I.Material || i.type === I.Picture || i.type === I.Shape) {
1326
+ const o = (((n = i.option) == null ? void 0 : n.variants) || []).length;
1327
+ o && o > 1 && t.push(i.stepName);
1328
+ } else
1329
+ t.push(i.stepName);
1330
+ const a = e.filter((s) => s.renderableSteps.filter(
1331
+ (o) => t.includes(o.stepName)
1333
1332
  ).length > 0);
1334
- for (const i of n)
1335
- i.renderableSteps = i.renderableSteps.filter(
1336
- (r) => a.includes(r.stepName)
1333
+ for (const s of a)
1334
+ s.renderableSteps = s.renderableSteps.filter(
1335
+ (i) => t.includes(i.stepName)
1337
1336
  );
1338
- return n;
1337
+ return a;
1339
1338
  };
1340
1339
  class Xe {
1341
1340
  constructor() {
@@ -1404,10 +1403,10 @@ class qe {
1404
1403
  function Qa(g, A, e, t) {
1405
1404
  const a = e.width * g.zoom, n = e.height * g.zoom;
1406
1405
  if (t) {
1407
- const i = g, r = Math.max(A.width / e.width, A.height / e.height);
1408
- i.zoom = Math.max(r, g.zoom);
1409
- const o = e.width * i.zoom, c = e.height * i.zoom;
1410
- return i.x = hA(g.x, A.width - o, 0), i.y = hA(g.y, A.height - c, 0), i;
1406
+ const i = g, o = Math.max(A.width / e.width, A.height / e.height);
1407
+ i.zoom = Math.max(o, g.zoom);
1408
+ const r = e.width * i.zoom, c = e.height * i.zoom;
1409
+ return i.x = hA(g.x, A.width - r, 0), i.y = hA(g.y, A.height - c, 0), i;
1411
1410
  }
1412
1411
  const s = g;
1413
1412
  return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
@@ -1432,8 +1431,8 @@ class ua {
1432
1431
  if (a.currentFrameSources) {
1433
1432
  let n = !1;
1434
1433
  for (let s = 0; s < a.currentFrameSources.length; s++) {
1435
- const i = a.currentFrameSources[s], r = await Ae(i);
1436
- ke(r, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = r, n = !0);
1434
+ const i = a.currentFrameSources[s], o = await Ae(i);
1435
+ ke(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = o, n = !0);
1437
1436
  }
1438
1437
  n && (this.onFrameDataChangeListeners.forEach(
1439
1438
  (s) => s(this.frameData)
@@ -1502,7 +1501,7 @@ class ua {
1502
1501
  if (this.imageData && this.offsets && this.frameData) {
1503
1502
  (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
1504
1503
  const n = this.frameData.map((s, i) => {
1505
- const r = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, o = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, c = e[i] - r * A[i], B = t[i] - o * A[i];
1504
+ const o = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, r = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, c = e[i] - o * A[i], B = t[i] - r * A[i];
1506
1505
  return {
1507
1506
  x: c,
1508
1507
  y: B,
@@ -1566,8 +1565,8 @@ class ua {
1566
1565
  if (!this.workflowManager)
1567
1566
  throw new v("No workflow manager set, cannot update offsets.");
1568
1567
  const s = this.workflowManager.getCommandDispatcher();
1569
- a.forEach((i, r) => {
1570
- s(new Me(i, e, A[r]));
1568
+ a.forEach((i, o) => {
1569
+ s(new Me(i, e, A[o]));
1571
1570
  }), this.stepName && this.workflowManager.updateStorage(this.stepName, {
1572
1571
  frameOffsetsList: A
1573
1572
  }), n && n();
@@ -1592,19 +1591,19 @@ class ua {
1592
1591
  class me {
1593
1592
  constructor(A, e, t) {
1594
1593
  this.processRegion = async (a) => {
1595
- var r, o, c, B;
1594
+ var o, r, c, B;
1596
1595
  const n = this.layouts.find((l) => l.panelId === a.panelId);
1597
1596
  if (!n)
1598
- throw new L(a);
1597
+ throw new T(a);
1599
1598
  let s = "";
1600
1599
  if (this.configuration.type === I.ProductOverlay) {
1601
1600
  let l = "";
1602
- if ((r = this.product) != null && r.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
1601
+ if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
1603
1602
  throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
1604
1603
  }
1605
1604
  const i = this.evaluateAssetType();
1606
- if (i === H.Image) {
1607
- const l = this.configuration.type === I.SilentIllustration ? (o = this.configuration.data.asset) == null ? void 0 : o.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
1605
+ if (i === U.Image) {
1606
+ const l = this.configuration.type === I.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
1608
1607
  if (!l)
1609
1608
  throw new Error("Undefined raster silent step source");
1610
1609
  const d = {
@@ -1637,10 +1636,10 @@ class me {
1637
1636
  Q("Undefined vector silent step source");
1638
1637
  return;
1639
1638
  }
1640
- Z(l, !0).then((h) => {
1641
- w(h);
1642
- }).catch((h) => console.error(h));
1643
- }))()), C = {
1639
+ Z(l, !0).then((C) => {
1640
+ w(C);
1641
+ }).catch((C) => console.error(C));
1642
+ }))()), h = {
1644
1643
  stepName: this.configuration.stepName,
1645
1644
  id: k(),
1646
1645
  cachedObjectURL: await FA(E.svg),
@@ -1661,10 +1660,10 @@ class me {
1661
1660
  };
1662
1661
  return {
1663
1662
  regionElement: {
1664
- id: C.id,
1663
+ id: h.id,
1665
1664
  region: a
1666
1665
  },
1667
- command: new J(C, n)
1666
+ command: new J(h, n)
1668
1667
  };
1669
1668
  }
1670
1669
  }, this.configuration = A, this.layouts = e, this.product = t || void 0;
@@ -1679,7 +1678,7 @@ class me {
1679
1678
  return this.configuration.type === I.ProductOverlay ? Promise.all(
1680
1679
  this.configuration.data.regions.map((A) => {
1681
1680
  if (!this.layouts.find((t) => A.panelId === t.panelId))
1682
- throw new L(A);
1681
+ throw new T(A);
1683
1682
  return this.processRegion(A);
1684
1683
  })
1685
1684
  ) : Promise.reject("Unknown silent step. This is a bug");
@@ -1687,7 +1686,7 @@ class me {
1687
1686
  evaluateAssetType() {
1688
1687
  var e, t, a;
1689
1688
  const A = this.configuration.type === I.ProductOverlay && ((e = this.product) != null && e.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (a = (t = this.configuration.data.asset) == null ? void 0 : t.fileLink) == null ? void 0 : a.toLowerCase().split("?")[0];
1690
- return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ? H.Image : A != null && A.endsWith(".svg") || A != null && A.startsWith("image/svg+xml") ? H.Illustration : H.Illustration;
1689
+ return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ? U.Image : A != null && A.endsWith(".svg") || A != null && A.startsWith("image/svg+xml") ? U.Illustration : U.Illustration;
1691
1690
  }
1692
1691
  }
1693
1692
  const ma = async (g) => {
@@ -1735,32 +1734,32 @@ class pa {
1735
1734
  const a = e.getSerializedStep(
1736
1735
  A.stepName,
1737
1736
  t.serializableWorkflow.steps
1738
- ), r = Object.values(t.layouts).map((o) => o.elements).flat().filter((o) => o.stepName === A.stepName).map((o) => ({ id: o.id, region: o.stepRegion }));
1739
- await e.setSelectionsAndElements(A.stepName, [], r, async () => {
1737
+ ), o = Object.values(t.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === A.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
1738
+ await e.setSelectionsAndElements(A.stepName, [], o, async () => {
1740
1739
  var B, l;
1741
- const o = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (l = a == null ? void 0 : a.storage) == null ? void 0 : l.videoUrl;
1740
+ const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (l = a == null ? void 0 : a.storage) == null ? void 0 : l.videoUrl;
1742
1741
  e.updateStorage(A.stepName, {
1743
- videoShortUrl: o,
1742
+ videoShortUrl: r,
1744
1743
  videoUrl: c
1745
1744
  });
1746
1745
  });
1747
1746
  }
1748
- async regenerateQRCode(A, e, t, a, n, s, i, r, o) {
1747
+ async regenerateQRCode(A, e, t, a, n, s, i, o, r) {
1749
1748
  if (!e && t !== "" && a === "") {
1750
1749
  const c = async () => {
1751
- var f, p;
1752
- const h = (await Ke([t]))[0], u = (p = (f = h == null ? void 0 : h.versions) == null ? void 0 : f.find((D) => D.name === "mpeg4")) == null ? void 0 : p.link;
1753
- return { asset: h, link: u };
1754
- }, B = await new Promise((h, u) => {
1750
+ var D, p;
1751
+ const C = (await Ke([t]))[0], u = (p = (D = C == null ? void 0 : C.versions) == null ? void 0 : D.find((f) => f.name === "mpeg4")) == null ? void 0 : p.link;
1752
+ return { asset: C, link: u };
1753
+ }, B = await new Promise((C, u) => {
1755
1754
  new Ze(
1756
1755
  async () => !!(await c()).link,
1757
1756
  async () => {
1758
- const f = await c();
1759
- if (!f.link || !f.link)
1760
- throw new lA(f.asset);
1761
- h({
1757
+ const D = await c();
1758
+ if (!D.link || !D.link)
1759
+ throw new lA(D.asset);
1760
+ C({
1762
1761
  rel: "mpeg4",
1763
- href: f.link
1762
+ href: D.link
1764
1763
  });
1765
1764
  },
1766
1765
  () => {
@@ -1770,34 +1769,34 @@ class pa {
1770
1769
  40
1771
1770
  );
1772
1771
  });
1773
- A.forEach((h) => r(new $(h.id)));
1772
+ A.forEach((C) => o(new $(C.id)));
1774
1773
  const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
1775
1774
  d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
1776
1775
  const E = d.toString();
1777
1776
  if (E.length >= 2e3)
1778
1777
  throw new vA("Cannot create QR code, URL too long.");
1779
- const C = await ma(E);
1780
- if (i(C), !s.data || !s.data.regions)
1778
+ const h = await ma(E);
1779
+ if (i(h), !s.data || !s.data.regions)
1781
1780
  throw new SA(s, "Missing regions.");
1782
- const w = await this.regionElements(s), Q = await this.command(C, w, n, s.stepName);
1781
+ const w = await this.regionElements(s), Q = await this.command(h, w, n, s.stepName);
1783
1782
  Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
1784
1783
  n.updateStorage(s.stepName, {
1785
- videoShortUrl: C,
1784
+ videoShortUrl: h,
1786
1785
  videoUrl: a
1787
- }), o(!1);
1786
+ }), r(!1);
1788
1787
  });
1789
1788
  } else
1790
- o(!1);
1789
+ r(!1);
1791
1790
  }
1792
1791
  async regionElements(A) {
1793
1792
  const e = (t) => ({ id: k(), region: t });
1794
1793
  return A.data.regions.map(e);
1795
1794
  }
1796
1795
  async command(A, e, t, a) {
1797
- const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await be(A, { type: "svg" }))}`, r = e.map((o) => {
1798
- const c = o.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
1796
+ const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await Je(A, { type: "svg" }))}`, o = e.map((r) => {
1797
+ const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
1799
1798
  if (!B && c)
1800
- throw new L(c);
1799
+ throw new T(c);
1801
1800
  if (B && !c)
1802
1801
  throw new Error("Region not found");
1803
1802
  if (!B || !c)
@@ -1806,9 +1805,9 @@ class pa {
1806
1805
  {
1807
1806
  stepRegion: c,
1808
1807
  stepName: a,
1809
- id: o.id,
1808
+ id: r.id,
1810
1809
  src: i,
1811
- type: H.Image,
1810
+ type: U.Image,
1812
1811
  y: c.top,
1813
1812
  x: c.left,
1814
1813
  width: c.width,
@@ -1818,7 +1817,7 @@ class pa {
1818
1817
  B
1819
1818
  );
1820
1819
  });
1821
- return { command: new G(r), followup: async () => {
1820
+ return { command: new G(o), followup: async () => {
1822
1821
  } };
1823
1822
  }
1824
1823
  }
@@ -1861,11 +1860,11 @@ class Da {
1861
1860
  );
1862
1861
  }
1863
1862
  async reload(A, e, t) {
1864
- var o;
1863
+ var r;
1865
1864
  const a = e.getSerializedStep(
1866
1865
  A.stepName,
1867
1866
  t.serializableWorkflow.steps
1868
- ), r = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName).map((c) => ({ id: c.id, region: c.stepRegion }));
1867
+ ), o = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName).map((c) => ({ id: c.id, region: c.stepRegion }));
1869
1868
  if (!A.option || (A.option.variants || []).length === 0) {
1870
1869
  const c = A.data.regions.map((B) => Be(B));
1871
1870
  e.updateStorage(A.stepName, {
@@ -1874,13 +1873,13 @@ class Da {
1874
1873
  }
1875
1874
  if (a) {
1876
1875
  const c = async () => {
1877
- var d, E, C, w;
1876
+ var d, E, h, w;
1878
1877
  const B = (d = a.storage) == null ? void 0 : d.framePatternSrc, l = (E = a.storage) == null ? void 0 : E.frameOffsetsList;
1879
1878
  if (e.updateMetadata(A.stepName, {
1880
1879
  frameOffsetsList: l,
1881
1880
  framePatternSrc: B
1882
1881
  }), B) {
1883
- const Q = (C = e.getStepSpecificServices(A.stepName)) == null ? void 0 : C.frameService;
1882
+ const Q = (h = e.getStepSpecificServices(A.stepName)) == null ? void 0 : h.frameService;
1884
1883
  if (!Q)
1885
1884
  throw new Error("Frame service unavailable, cannot load pattern!");
1886
1885
  await this.loadPatternFromString(B, Q), e.updateMetadata(A.stepName, { image: B }), e.updateStorage(A.stepName, {
@@ -1898,11 +1897,11 @@ class Da {
1898
1897
  if (a.selectedVariants && a.selectedVariants.length > 0) {
1899
1898
  const B = a.selectedVariants[0].id;
1900
1899
  if (A.option && B) {
1901
- const l = (o = A.option.variants) == null ? void 0 : o.find((d) => d.id === B);
1900
+ const l = (r = A.option.variants) == null ? void 0 : r.find((d) => d.id === B);
1902
1901
  l && await e.setSelectionsAndElements(
1903
1902
  A.stepName,
1904
1903
  [l],
1905
- r,
1904
+ o,
1906
1905
  async () => {
1907
1906
  const d = await Promise.all(
1908
1907
  A.data.regions.map((E) => this.frameSourceSvg(l, E))
@@ -1912,19 +1911,19 @@ class Da {
1912
1911
  );
1913
1912
  }
1914
1913
  } else
1915
- await e.setSelectionsAndElements(A.stepName, [], r, c);
1914
+ await e.setSelectionsAndElements(A.stepName, [], o, c);
1916
1915
  }
1917
1916
  }
1918
1917
  selectImage(A, e, t) {
1919
1918
  t.setEditedStatus(A.stepName, !0), (e.fileLink || "").endsWith("pdf") ? t.addPoller(
1920
1919
  new Ze(
1921
1920
  async () => {
1922
- var r;
1923
- const s = (r = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : r.find((o) => o.name === "svg");
1921
+ var o;
1922
+ const s = (o = (await b.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1924
1923
  return s ? (await fetch(s.link)).status === 200 : !1;
1925
1924
  },
1926
1925
  () => {
1927
- T.getLocalOrFromServer(e.key || "").then((n) => {
1926
+ b.getLocalOrFromServer(e.key || "").then((n) => {
1928
1927
  this.loadPatternFromAsset(n, A, t);
1929
1928
  });
1930
1929
  },
@@ -1948,7 +1947,7 @@ class Da {
1948
1947
  return new J(
1949
1948
  {
1950
1949
  id: A,
1951
- type: H.Frame,
1950
+ type: U.Frame,
1952
1951
  x: e.left,
1953
1952
  y: e.top,
1954
1953
  width: e.width,
@@ -1997,28 +1996,28 @@ class Da {
1997
1996
  const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
1998
1997
  if (!i)
1999
1998
  throw new Error("Frame service unavailable, cannot load pattern!");
2000
- const r = await Promise.all(
1999
+ const o = await Promise.all(
2001
2000
  A.data.regions.map((d) => this.frameSourceSvg(e, d))
2002
2001
  );
2003
2002
  n && n(!0);
2004
- const o = await Promise.all(
2003
+ const r = await Promise.all(
2005
2004
  A.data.regions.map(async (d, E) => {
2006
- const C = await Ae(r[E]), w = i.getImageData(), Q = t.map((m) => new $(m.id)), h = w ? ee(w, C) : void 0, u = w ? {
2005
+ const h = await Ae(o[E]), w = i.getImageData(), Q = t.map((m) => new $(m.id)), C = w ? ee(w, h) : void 0, u = w ? {
2007
2006
  id: k(),
2008
2007
  src: w.src,
2009
- x: (h == null ? void 0 : h.x) || 0,
2010
- y: (h == null ? void 0 : h.y) || 0,
2008
+ x: (C == null ? void 0 : C.x) || 0,
2009
+ y: (C == null ? void 0 : C.y) || 0,
2011
2010
  width: w.width,
2012
2011
  height: w.height,
2013
- scaleX: (h == null ? void 0 : h.zoom) || 1,
2014
- scaleY: (h == null ? void 0 : h.zoom) || 1,
2012
+ scaleX: (C == null ? void 0 : C.zoom) || 1,
2013
+ scaleY: (C == null ? void 0 : C.zoom) || 1,
2015
2014
  rotation: 0
2016
- } : void 0, f = k(), D = a.getLayouts().find((m) => m.panelId === d.panelId);
2017
- if (!D)
2018
- throw new L(d);
2015
+ } : void 0, D = k(), f = a.getLayouts().find((m) => m.panelId === d.panelId);
2016
+ if (!f)
2017
+ throw new T(d);
2019
2018
  return {
2020
- command: this.getCreateElementCommand(f, d, D, {
2021
- frameData: C,
2019
+ command: this.getCreateElementCommand(D, d, f, {
2020
+ frameData: h,
2022
2021
  pattern: u,
2023
2022
  disablePlaceholder: A.data.disablePlaceholder,
2024
2023
  focalBlur: A.data.focalBlur,
@@ -2027,23 +2026,23 @@ class Da {
2027
2026
  stepName: A.stepName
2028
2027
  }),
2029
2028
  regionEl: {
2030
- id: f,
2029
+ id: D,
2031
2030
  region: d
2032
2031
  },
2033
2032
  removeExistingCommands: Q
2034
2033
  };
2035
2034
  })
2036
- ), c = o.map((d) => d.command), B = o.map((d) => d.removeExistingCommands).flat();
2035
+ ), c = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
2037
2036
  return {
2038
2037
  command: new G([...c, ...B]),
2039
2038
  followup: async () => {
2040
2039
  n && n(!1), await a.setSelectionsAndElements(
2041
2040
  A.stepName,
2042
2041
  e ? [e] : [],
2043
- [...o.map((d) => d.regionEl)],
2042
+ [...r.map((d) => d.regionEl)],
2044
2043
  async () => {
2045
2044
  var d;
2046
- if (a.updateStorage(A.stepName, { currentFrameSources: r }), s) {
2045
+ if (a.updateStorage(A.stepName, { currentFrameSources: o }), s) {
2047
2046
  const E = (d = a.getStepSpecificServices(
2048
2047
  A.stepName
2049
2048
  )) == null ? void 0 : d.frameService;
@@ -2098,7 +2097,7 @@ class fa {
2098
2097
  src: a.src,
2099
2098
  svg: a.svg.svg,
2100
2099
  cachedObjectURL: a.objectURL,
2101
- type: H.Illustration,
2100
+ type: U.Illustration,
2102
2101
  y: e.top,
2103
2102
  x: e.left,
2104
2103
  rotation: e.rotation,
@@ -2139,15 +2138,15 @@ class fa {
2139
2138
  return null;
2140
2139
  }
2141
2140
  async reload(A, e, t) {
2142
- var o;
2141
+ var r;
2143
2142
  const a = e.getSerializedStep(
2144
2143
  A.stepName,
2145
2144
  t.serializableWorkflow.steps
2146
- ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
2145
+ ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
2147
2146
  if (a != null && a.selectedVariants) {
2148
2147
  const c = a.selectedVariants[0].id;
2149
- if (r && c) {
2150
- const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
2148
+ if (o && c) {
2149
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
2151
2150
  if (B) {
2152
2151
  const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2153
2152
  await e.setSelectionsAndElements(
@@ -2181,13 +2180,13 @@ class fa {
2181
2180
  const s = {};
2182
2181
  for (const [B, l] of n.entries())
2183
2182
  s[B] = { browserValue: l, spotColor: (c = s[B]) == null ? void 0 : c.spotColor };
2184
- const i = ft(A, e, t, s), r = await FA(i), o = [];
2183
+ const i = ft(A, e, t, s), o = await FA(i), r = [];
2185
2184
  for (const B of a) {
2186
2185
  for (const [l, d] of n.entries())
2187
- o.push(new jA(B, l, d));
2188
- o.push(new Ft(B, i, r));
2186
+ r.push(new jA(B, l, d));
2187
+ r.push(new Ft(B, i, o));
2189
2188
  }
2190
- return new G(o);
2189
+ return new G(r);
2191
2190
  }
2192
2191
  async changeColors(A, e, t, a, n) {
2193
2192
  var d, E;
@@ -2195,36 +2194,36 @@ class fa {
2195
2194
  return;
2196
2195
  const s = MA(
2197
2196
  e[0].id,
2198
- a().map((C) => C.layoutState)
2199
- ), i = { ...s.colors }, r = {};
2200
- Object.entries(i).forEach(([C, w]) => {
2201
- const Q = { browserValue: w.browserValue }, h = w.spotColor;
2202
- h && (Q.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), r[C] = Q;
2197
+ a().map((h) => h.layoutState)
2198
+ ), i = { ...s.colors }, o = {};
2199
+ Object.entries(i).forEach(([h, w]) => {
2200
+ const Q = { browserValue: w.browserValue }, C = w.spotColor;
2201
+ C && (Q.spotColor = { profileName: C.profileName, namedColor: C.namedColor }), o[h] = Q;
2203
2202
  });
2204
- for (const [C, w] of n.entries())
2205
- i[C] = { browserValue: w, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, r[C] = { browserValue: w };
2206
- let o = Array.from(Object.values(i)).map((C) => C.browserValue);
2203
+ for (const [h, w] of n.entries())
2204
+ i[h] = { browserValue: w, spotColor: (d = i[h]) == null ? void 0 : d.spotColor }, o[h] = { browserValue: w };
2205
+ let r = Array.from(Object.values(i)).map((h) => h.browserValue);
2207
2206
  const c = A.data.colorOption;
2208
- c && ((E = c.variants) == null || E.forEach((C) => {
2209
- o = o.map((w) => {
2207
+ c && ((E = c.variants) == null || E.forEach((h) => {
2208
+ r = r.map((w) => {
2210
2209
  var Q;
2211
- return w.toLowerCase() === ((Q = C.color) == null ? void 0 : Q.toLowerCase()) ? C.name : w;
2210
+ return w.toLowerCase() === ((Q = h.color) == null ? void 0 : Q.toLowerCase()) ? h.name : w;
2212
2211
  });
2213
- })), t.updateMetadata(A.stepName, { colors: o });
2212
+ })), t.updateMetadata(A.stepName, { colors: r });
2214
2213
  const B = /* @__PURE__ */ new Map();
2215
- if (Object.entries(i).forEach(([C, w]) => {
2216
- B.set(C, w.browserValue);
2214
+ if (Object.entries(i).forEach(([h, w]) => {
2215
+ B.set(h, w.browserValue);
2217
2216
  }), !s.svg)
2218
2217
  throw new Error("Colors changed before SVG loaded. This should never happen!");
2219
2218
  const l = await this.changeColorsCommand(
2220
2219
  s.svg,
2221
2220
  s.width,
2222
2221
  s.height,
2223
- e.map((C) => C.id),
2222
+ e.map((h) => h.id),
2224
2223
  B
2225
2224
  );
2226
2225
  t.updateStorage(A.stepName, {
2227
- colors: r
2226
+ colors: o
2228
2227
  }), t.getCommandDispatcher()(l);
2229
2228
  }
2230
2229
  async selectVariant(A, e, t, a, n) {
@@ -2236,43 +2235,43 @@ class fa {
2236
2235
  if (!A.data || !A.data.regions)
2237
2236
  throw new SA(A, "Missing regions.");
2238
2237
  a(!0);
2239
- const s = t.map((h) => new $(h.id));
2238
+ const s = t.map((C) => new $(C.id));
2240
2239
  n.setMandatoryFulfilled(A.stepName, !1);
2241
2240
  const i = e.asset;
2242
2241
  if (!i)
2243
2242
  throw new _(e);
2244
- const r = i.fileLink;
2245
- if (!r)
2243
+ const o = i.fileLink;
2244
+ if (!o)
2246
2245
  throw new lA(i);
2247
- const o = await ye(await this.getIllustrationBody(r)), c = await FA(o.svg), B = (h) => {
2248
- const u = n.getLayouts().find((p) => p.panelId === h.panelId);
2246
+ const r = await ye(await this.getIllustrationBody(o)), c = await FA(r.svg), B = (C) => {
2247
+ const u = n.getLayouts().find((p) => p.panelId === C.panelId);
2249
2248
  if (!u)
2250
- throw new L(h);
2251
- const f = k();
2249
+ throw new T(C);
2250
+ const D = k();
2252
2251
  return {
2253
- regionElement: { id: f, region: h },
2254
- command: this.getCreateElementCommand(f, h, u, {
2252
+ regionElement: { id: D, region: C },
2253
+ command: this.getCreateElementCommand(D, C, u, {
2255
2254
  stepName: A.stepName,
2256
- src: r,
2255
+ src: o,
2257
2256
  objectURL: c,
2258
- svg: o
2257
+ svg: r
2259
2258
  })
2260
2259
  };
2261
- }, l = A.data.regions.map(B), E = [...l.map((h) => h.command), ...s];
2262
- let C = Array.from(Object.values(o.colors)).map((h) => h.browserValue);
2260
+ }, l = A.data.regions.map(B), E = [...l.map((C) => C.command), ...s];
2261
+ let h = Array.from(Object.values(r.colors)).map((C) => C.browserValue);
2263
2262
  const w = A.data.colorOption;
2264
- return w && ((Q = w.variants) == null || Q.forEach((h) => {
2265
- C = C.map((u) => {
2266
- var f;
2267
- return u.toLowerCase() === ((f = h.color) == null ? void 0 : f.toLowerCase()) ? h.name : u;
2263
+ return w && ((Q = w.variants) == null || Q.forEach((C) => {
2264
+ h = h.map((u) => {
2265
+ var D;
2266
+ return u.toLowerCase() === ((D = C.color) == null ? void 0 : D.toLowerCase()) ? C.name : u;
2268
2267
  });
2269
- })), n.updateMetadata(A.stepName, { colors: C }), {
2268
+ })), n.updateMetadata(A.stepName, { colors: h }), {
2270
2269
  command: new G(E),
2271
2270
  followup: async () => {
2272
2271
  await n.setSelectionsAndElements(
2273
2272
  A.stepName,
2274
2273
  [e],
2275
- l.map((h) => h.regionElement),
2274
+ l.map((C) => C.regionElement),
2276
2275
  async () => {
2277
2276
  n.setMandatoryFulfilled(A.stepName, !0), a(!1);
2278
2277
  }
@@ -2298,17 +2297,17 @@ class Fa {
2298
2297
  return null;
2299
2298
  }
2300
2299
  async reload(A, e, t) {
2301
- var o;
2300
+ var r;
2302
2301
  const a = e.getSerializedStep(
2303
2302
  A.stepName,
2304
2303
  t.serializableWorkflow.steps
2305
- ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
2306
- if (!r)
2304
+ ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
2305
+ if (!o)
2307
2306
  throw new YA(A);
2308
2307
  if (a != null && a.selectedVariants) {
2309
2308
  const c = a.selectedVariants[0].id;
2310
2309
  if (c) {
2311
- const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
2310
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
2312
2311
  if (B) {
2313
2312
  const l = B.material, d = i.map((E) => ({ id: E.id, region: E.stepRegion }));
2314
2313
  await e.setSelectionsAndElements(
@@ -2318,8 +2317,8 @@ class Fa {
2318
2317
  async () => {
2319
2318
  const E = e.getModelContainer();
2320
2319
  if (E) {
2321
- const C = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, r.id || "", l || {}));
2322
- Promise.all(C).then(
2320
+ const h = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, o.id || "", l || {}));
2321
+ Promise.all(h).then(
2323
2322
  () => e.setMandatoryFulfilled(A.stepName, !0)
2324
2323
  );
2325
2324
  }
@@ -2372,15 +2371,15 @@ class Ma {
2372
2371
  return null;
2373
2372
  }
2374
2373
  async reload(A, e, t) {
2375
- var o;
2374
+ var r;
2376
2375
  const a = e.getSerializedStep(
2377
2376
  A.stepName,
2378
2377
  t.serializableWorkflow.steps
2379
- ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
2378
+ ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
2380
2379
  if (a != null && a.selectedVariants) {
2381
2380
  const c = a.selectedVariants[0].id;
2382
- if (r && c) {
2383
- const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
2381
+ if (o && c) {
2382
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
2384
2383
  if (B) {
2385
2384
  const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2386
2385
  await e.setSelectionsAndElements(
@@ -2391,13 +2390,13 @@ class Ma {
2391
2390
  var E;
2392
2391
  const d = e.getModelContainer();
2393
2392
  if (d && A.option) {
2394
- const C = (E = B.asset) == null ? void 0 : E.fileLink;
2395
- if (!C)
2393
+ const h = (E = B.asset) == null ? void 0 : E.fileLink;
2394
+ if (!h)
2396
2395
  throw new _(B);
2397
2396
  await d.applyModelVariant(
2398
2397
  A.stepName || "",
2399
2398
  {
2400
- model: C,
2399
+ model: h,
2401
2400
  contextService: e.getLayoutPreviewService()
2402
2401
  },
2403
2402
  A.data.replaceProductModel || !1
@@ -2455,10 +2454,10 @@ class ya {
2455
2454
  const a = e.getSerializedStep(
2456
2455
  A.stepName,
2457
2456
  t.serializableWorkflow.steps
2458
- ), r = Object.values(t.layouts).map((o) => o.elements).flat().filter((o) => o.stepName === A.stepName).map((o) => ({ id: o.id, region: o.stepRegion }));
2459
- await e.setSelectionsAndElements(A.stepName, [], r, async () => {
2460
- var o, c;
2461
- e.updateStorage(A.stepName, { text: (o = a == null ? void 0 : a.storage) == null ? void 0 : o.text }), e.setMandatoryFulfilled(A.stepName, ((c = a == null ? void 0 : a.storage) == null ? void 0 : c.text) !== "");
2457
+ ), o = Object.values(t.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === A.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
2458
+ await e.setSelectionsAndElements(A.stepName, [], o, async () => {
2459
+ var r, c;
2460
+ e.updateStorage(A.stepName, { text: (r = a == null ? void 0 : a.storage) == null ? void 0 : r.text }), e.setMandatoryFulfilled(A.stepName, ((c = a == null ? void 0 : a.storage) == null ? void 0 : c.text) !== "");
2462
2461
  });
2463
2462
  }
2464
2463
  async changeText(A, e, t, a, n) {
@@ -2470,14 +2469,14 @@ class ya {
2470
2469
  const s = t.getRegionElements(A.stepName), i = (c = t.getStepSpecificServices(A.stepName)) == null ? void 0 : c.module;
2471
2470
  if (!i)
2472
2471
  return console.error("Missing module."), null;
2473
- const r = t.getProfanities();
2474
- if (!this.validateInput(A, e, r, n))
2472
+ const o = t.getProfanities();
2473
+ if (!this.validateInput(A, e, o, n))
2475
2474
  return t.setMandatoryFulfilled(A.stepName, !1), console.error(a), null;
2476
2475
  if (t.setMandatoryFulfilled(A.stepName, e !== ""), !A.data || !A.data.regions || A.data.regions.length <= 0)
2477
2476
  return console.error("Missing configuration."), null;
2478
2477
  t.updateStorage(A.stepName, { text: e });
2479
- const o = (B, l, d) => {
2480
- const E = d || k(), w = t.getLayouts().find((h) => h.panelId === l.panelId);
2478
+ const r = (B, l, d) => {
2479
+ const E = d || k(), w = t.getLayouts().find((C) => C.panelId === l.panelId);
2481
2480
  if (!w)
2482
2481
  return console.error(`Can not find layout for region: ${l.panelId}`), null;
2483
2482
  const Q = [];
@@ -2489,7 +2488,7 @@ class ya {
2489
2488
  colors: {},
2490
2489
  id: E,
2491
2490
  svg: B,
2492
- type: H.Illustration,
2491
+ type: U.Illustration,
2493
2492
  y: l.top,
2494
2493
  x: l.left,
2495
2494
  rotation: l.rotation,
@@ -2512,7 +2511,7 @@ class ya {
2512
2511
  if (!d.region)
2513
2512
  return null;
2514
2513
  const E = i.svgPrint(e, d.region);
2515
- return o(E, d.region, d.id);
2514
+ return r(E, d.region, d.id);
2516
2515
  }).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
2517
2516
  return {
2518
2517
  command: new G(l),
@@ -2521,7 +2520,7 @@ class ya {
2521
2520
  };
2522
2521
  } else {
2523
2522
  const B = A.data.regions.map(
2524
- (d) => o(i.svgPrint(e, d), d)
2523
+ (d) => r(i.svgPrint(e, d), d)
2525
2524
  ), l = B.filter((d) => !!d).map((d) => d && d.command);
2526
2525
  return {
2527
2526
  command: new G(l),
@@ -2547,8 +2546,8 @@ class ya {
2547
2546
  const n = XA(e.toLowerCase());
2548
2547
  for (const s of n)
2549
2548
  for (const i in t) {
2550
- const r = t[i].toLowerCase().replace(/\s/g, "");
2551
- if (s === r)
2549
+ const o = t[i].toLowerCase().replace(/\s/g, "");
2550
+ if (s === o)
2552
2551
  return a("Blocked profanity."), !1;
2553
2552
  }
2554
2553
  return a(""), !0;
@@ -2568,15 +2567,15 @@ class Sa {
2568
2567
  return e.markStepsAsInitialised([A.stepName]), null;
2569
2568
  }
2570
2569
  async reload(A, e, t) {
2571
- var o;
2570
+ var r;
2572
2571
  const a = e.getSerializedStep(
2573
2572
  A.stepName,
2574
2573
  t.serializableWorkflow.steps
2575
- ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
2574
+ ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
2576
2575
  if (a != null && a.selectedVariants) {
2577
2576
  const c = a.selectedVariants[0].id;
2578
- if (r && c) {
2579
- const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
2577
+ if (o && c) {
2578
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
2580
2579
  if (B) {
2581
2580
  const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2582
2581
  await e.setSelectionsAndElements(
@@ -2603,10 +2602,10 @@ class Sa {
2603
2602
  if (!s)
2604
2603
  return console.error("No URL for picture!"), null;
2605
2604
  a(!0), t.setMandatoryFulfilled(A.stepName, !1);
2606
- const r = t.getRegionElements(A.stepName).map((B) => new $(B.id)), o = (B) => {
2607
- const d = t.getLayouts().find((C) => C.panelId === B.panelId);
2605
+ const o = t.getRegionElements(A.stepName).map((B) => new $(B.id)), r = (B) => {
2606
+ const d = t.getLayouts().find((h) => h.panelId === B.panelId);
2608
2607
  if (!d)
2609
- throw new L(B);
2608
+ throw new T(B);
2610
2609
  const E = k();
2611
2610
  return {
2612
2611
  regionElement: { id: E, region: B },
@@ -2616,7 +2615,7 @@ class Sa {
2616
2615
  stepRegion: B,
2617
2616
  id: E,
2618
2617
  src: s,
2619
- type: H.Image,
2618
+ type: U.Image,
2620
2619
  y: B.top,
2621
2620
  x: B.left,
2622
2621
  rotation: B.rotation,
@@ -2630,9 +2629,9 @@ class Sa {
2630
2629
  d
2631
2630
  )
2632
2631
  };
2633
- }, c = A.data.regions.map(o);
2632
+ }, c = A.data.regions.map(r);
2634
2633
  return {
2635
- command: new G([...r, ...c.map((B) => B.command)]),
2634
+ command: new G([...o, ...c.map((B) => B.command)]),
2636
2635
  followup: async () => {
2637
2636
  await t.setSelectionsAndElements(
2638
2637
  A.stepName,
@@ -2657,9 +2656,9 @@ class xa {
2657
2656
  else {
2658
2657
  const n = a.variants;
2659
2658
  if (z.getDefaultVariant(a)) {
2660
- const i = n == null ? void 0 : n.find((r) => {
2661
- var o;
2662
- return r.id === ((o = a.defaultVariant) == null ? void 0 : o.id);
2659
+ const i = n == null ? void 0 : n.find((o) => {
2660
+ var r;
2661
+ return o.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
2663
2662
  });
2664
2663
  return this.selectVariantLambda(A, (i == null ? void 0 : i.id) || "", e);
2665
2664
  }
@@ -2675,8 +2674,8 @@ class xa {
2675
2674
  if (a != null && a.selectedVariants) {
2676
2675
  const i = a.selectedVariants[0].id;
2677
2676
  if (n && i) {
2678
- const r = (s = n.variants) == null ? void 0 : s.find((o) => o.id === i);
2679
- r && await e.setSelectionsAndElements(A.stepName, [r], []);
2677
+ const o = (s = n.variants) == null ? void 0 : s.find((r) => r.id === i);
2678
+ o && await e.setSelectionsAndElements(A.stepName, [o], []);
2680
2679
  }
2681
2680
  }
2682
2681
  }
@@ -2722,9 +2721,9 @@ class Na {
2722
2721
  }
2723
2722
  setCustomColor(A, e, t) {
2724
2723
  const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
2725
- const r = i.region;
2726
- if (!a.find((c) => c.panelId === (r == null ? void 0 : r.panelId)))
2727
- throw new L(r);
2724
+ const o = i.region;
2725
+ if (!a.find((c) => c.panelId === (o == null ? void 0 : o.panelId)))
2726
+ throw new T(o);
2728
2727
  return new jA(i.id, this.shapeFillId, A);
2729
2728
  }).filter((i) => !!i);
2730
2729
  t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
@@ -2755,15 +2754,15 @@ class Na {
2755
2754
  n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
2756
2755
  }
2757
2756
  async reload(A, e, t) {
2758
- var o;
2757
+ var r;
2759
2758
  const a = e.getSerializedStep(
2760
2759
  A.stepName,
2761
2760
  t.serializableWorkflow.steps
2762
- ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), r = A.option;
2761
+ ), i = Object.values(t.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === A.stepName), o = A.option;
2763
2762
  if (a != null && a.selectedVariants) {
2764
2763
  const c = a.selectedVariants[0].id;
2765
- if (r && c) {
2766
- const B = (o = r.variants) == null ? void 0 : o.find((l) => l.id === c);
2764
+ if (o && c) {
2765
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
2767
2766
  if (B) {
2768
2767
  const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2769
2768
  await e.setSelectionsAndElements(
@@ -2782,23 +2781,23 @@ class Na {
2782
2781
  }
2783
2782
  }
2784
2783
  async selectVariantCommand(A, e, t, a) {
2785
- var r;
2786
- const n = a.getLayouts(), s = (r = a.getStepStorage(A.stepName)) == null ? void 0 : r.colour, i = () => {
2787
- var o, c;
2788
- if (((o = e.variant) == null ? void 0 : o.color) === "#custom")
2784
+ var o;
2785
+ const n = a.getLayouts(), s = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
2786
+ var r, c;
2787
+ if (((r = e.variant) == null ? void 0 : r.color) === "#custom")
2789
2788
  return s || "#FFFFFF";
2790
2789
  if ((c = e.variant) != null && c.color)
2791
2790
  return e.variant.color;
2792
2791
  throw new Error("Failed to resolve color for shape step.");
2793
2792
  };
2794
2793
  if (t.length > 0) {
2795
- const o = (B) => {
2794
+ const r = (B) => {
2796
2795
  const l = B.region;
2797
- if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2798
- throw new L(l);
2796
+ if (!n.find((h) => h.panelId === (l == null ? void 0 : l.panelId)))
2797
+ throw new T(l);
2799
2798
  const E = i();
2800
2799
  return new jA(B.id, this.shapeFillId, E);
2801
- }, c = t.map(o).filter((B) => !!B);
2800
+ }, c = t.map(r).filter((B) => !!B);
2802
2801
  return {
2803
2802
  command: new G(c),
2804
2803
  followup: async () => {
@@ -2810,11 +2809,11 @@ class Na {
2810
2809
  }
2811
2810
  };
2812
2811
  } else {
2813
- const o = (d) => {
2812
+ const r = (d) => {
2814
2813
  const E = n.find((u) => u.panelId === d.panelId);
2815
2814
  if (!E)
2816
- throw new L(d);
2817
- const C = i(), w = `
2815
+ throw new T(d);
2816
+ const h = i(), w = `
2818
2817
  <svg
2819
2818
  xmlns="http://www.w3.org/2000/svg"
2820
2819
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -2831,23 +2830,23 @@ class Na {
2831
2830
  width="1"
2832
2831
  height="1"
2833
2832
  class="${this.shapeFillId}"
2834
- fill="${C}"
2833
+ fill="${h}"
2835
2834
  />
2836
2835
  </svg>
2837
2836
  `, Q = {};
2838
- Q[this.shapeFillId] = { browserValue: C };
2839
- const h = k();
2837
+ Q[this.shapeFillId] = { browserValue: h };
2838
+ const C = k();
2840
2839
  return {
2841
- id: h,
2840
+ id: C,
2842
2841
  region: d,
2843
2842
  command: new J(
2844
2843
  {
2845
2844
  stepRegion: d,
2846
2845
  stepName: A.stepName,
2847
2846
  colors: Q,
2848
- id: h,
2847
+ id: C,
2849
2848
  svg: w,
2850
- type: H.Illustration,
2849
+ type: U.Illustration,
2851
2850
  y: d.top,
2852
2851
  x: d.left,
2853
2852
  rotation: d.rotation,
@@ -2861,7 +2860,7 @@ class Na {
2861
2860
  E
2862
2861
  )
2863
2862
  };
2864
- }, c = A.data.regions.map(o), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
2863
+ }, c = A.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
2865
2864
  return {
2866
2865
  command: new G(B),
2867
2866
  followup: async () => {
@@ -2923,9 +2922,9 @@ class Ua {
2923
2922
  );
2924
2923
  const a = [], n = e ? Mt(e.assetUrl) : void 0;
2925
2924
  if (n) {
2926
- const s = t.split("").filter((r) => !Ha.includes(r)).join(""), i = s.split("").map((r) => n.getFont().charToGlyph(r));
2927
- for (let r = 0; r < i.length; r++)
2928
- i[r].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(r)));
2925
+ const s = t.split("").filter((o) => !Ha.includes(o)).join(""), i = s.split("").map((o) => n.getFont().charToGlyph(o));
2926
+ for (let o = 0; o < i.length; o++)
2927
+ i[o].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(o)));
2929
2928
  }
2930
2929
  for (let s = 0; s < a.length; s++)
2931
2930
  t = t.replaceAll(a[s], "");
@@ -2934,10 +2933,10 @@ class Ua {
2934
2933
  const a = [];
2935
2934
  e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
2936
2935
  const n = t.getProfanities(), s = XA(A.toLowerCase());
2937
- for (const r of s)
2938
- for (const o in n) {
2939
- const c = n[o].toLowerCase().replace(/\s/g, "");
2940
- if (r === c) {
2936
+ for (const o of s)
2937
+ for (const r in n) {
2938
+ const c = n[r].toLowerCase().replace(/\s/g, "");
2939
+ if (o === c) {
2941
2940
  a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
2942
2941
  break;
2943
2942
  }
@@ -2954,7 +2953,7 @@ class Ua {
2954
2953
  if (t)
2955
2954
  await this.reload(A, e, t);
2956
2955
  else {
2957
- const r = this.getDefaultImageFillVariant(A.data), o = (n = r == null ? void 0 : r.asset) == null ? void 0 : n.fileLink, c = o ? await VA(o) : void 0, B = c ? {
2956
+ const o = this.getDefaultImageFillVariant(A.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, c = r ? await VA(r) : void 0, B = c ? {
2958
2957
  src: c.src,
2959
2958
  height: c.height,
2960
2959
  width: c.width,
@@ -2967,7 +2966,7 @@ class Ua {
2967
2966
  }), e.updateMetadata(A.stepName, {
2968
2967
  text: A.data.defaultText || "",
2969
2968
  color: ((i = await this.getDefaultColorVariant(A.data)) == null ? void 0 : i.name) || await this.getDefaultColor(A.data),
2970
- fillImage: r == null ? void 0 : r.name
2969
+ fillImage: o == null ? void 0 : o.name
2971
2970
  });
2972
2971
  const l = z.getDefaultVariant(a);
2973
2972
  if (l)
@@ -3011,7 +3010,7 @@ class Ua {
3011
3010
  return [];
3012
3011
  }
3013
3012
  async changeFillColor(A, e, t, a) {
3014
- var r;
3013
+ var o;
3015
3014
  if (!A.data || !A.data.regions)
3016
3015
  return;
3017
3016
  const n = a.getCommandDispatcher();
@@ -3019,14 +3018,14 @@ class Ua {
3019
3018
  const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
3020
3019
  s ? a.updateStorage(A.stepName, {
3021
3020
  color: e.fill,
3022
- colorProfileAssetKey: (r = s.colorProfile) == null ? void 0 : r.key
3021
+ colorProfileAssetKey: (o = s.colorProfile) == null ? void 0 : o.key
3023
3022
  }) : a.updateStorage(A.stepName, {
3024
3023
  color: e.fill
3025
3024
  });
3026
- for (const o of t) {
3025
+ for (const r of t) {
3027
3026
  if (!e.fill)
3028
3027
  throw new Error("Fill not set on new color selection!");
3029
- const c = new yt(o.id, e.fill, i);
3028
+ const c = new yt(r.id, e.fill, i);
3030
3029
  n(c);
3031
3030
  }
3032
3031
  }
@@ -3053,18 +3052,18 @@ class Ua {
3053
3052
  return Promise.resolve([]);
3054
3053
  }
3055
3054
  async changeFillImage(A, e, t, a) {
3056
- var i, r;
3055
+ var i, o;
3057
3056
  if (!A.data || !A.data.regions)
3058
3057
  return;
3059
- const n = a.getCommandDispatcher(), s = (r = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : r.find((o) => {
3058
+ const n = a.getCommandDispatcher(), s = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((r) => {
3060
3059
  var c;
3061
- return ((c = o.asset) == null ? void 0 : c.fileLink) === e.src;
3060
+ return ((c = r.asset) == null ? void 0 : c.fileLink) === e.src;
3062
3061
  });
3063
3062
  a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
3064
3063
  fillImage: e
3065
3064
  });
3066
- for (const o of t) {
3067
- const c = new JA(o.id, e);
3065
+ for (const r of t) {
3066
+ const c = new bA(r.id, e);
3068
3067
  n(c);
3069
3068
  }
3070
3069
  }
@@ -3083,27 +3082,27 @@ class Ua {
3083
3082
  };
3084
3083
  if (i.errors.length > 0)
3085
3084
  return i.helperText = i.errors[0].localizationKey, i;
3086
- const r = (t.data.maxLength - s.length).toString();
3087
- i.helperText = `${r} characters remaining`;
3088
- const o = a.getTransaction().bulk && t.data.varyText || !1, c = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
3085
+ const o = (t.data.maxLength - s.length).toString();
3086
+ i.helperText = `${o} characters remaining`;
3087
+ const r = a.getTransaction().bulk && t.data.varyText || !1, c = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
3089
3088
  for (const d of e) {
3090
3089
  if (!d.fontData)
3091
3090
  throw new v("Failed to resolve font data for text.");
3092
- const [E, C] = IA(
3091
+ const [E, h] = IA(
3093
3092
  d.fontSize,
3094
3093
  d.fontData,
3095
3094
  { left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
3096
3095
  [s],
3097
3096
  { size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
3098
3097
  );
3099
- B.set(d.id, E), l.set(d.id, C);
3100
- const w = t.data.curved ? s : (C || []).join(`
3098
+ B.set(d.id, E), l.set(d.id, h);
3099
+ const w = t.data.curved ? s : (h || []).join(`
3101
3100
  `);
3102
- c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, o));
3101
+ c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, r));
3103
3102
  }
3104
3103
  return !t.data.curved && e.length > 0 && !Array.from(l.values()).every((E) => E) ? (i.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), i) : (a.updateStorage(t.stepName, { text: A }), a.updateMetadata(t.stepName, {
3105
3104
  text: s
3106
- }), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying = o, i);
3105
+ }), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(c), i.command.varying = r, i);
3107
3106
  }
3108
3107
  async selectVariant(A, e, t, a, n) {
3109
3108
  const s = await this.selectVariantCommand(
@@ -3130,34 +3129,34 @@ class Ua {
3130
3129
  }
3131
3130
  }
3132
3131
  async reload(A, e, t) {
3133
- var o, c, B;
3132
+ var r, c, B;
3134
3133
  const a = e.getSerializedStep(
3135
3134
  A.stepName,
3136
3135
  t.serializableWorkflow.steps
3137
- ), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), r = A.option;
3136
+ ), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), o = A.option;
3138
3137
  if (a != null && a.selectedVariants) {
3139
3138
  const l = a.selectedVariants[0].id;
3140
- if (r && l) {
3141
- const d = (o = r.variants) == null ? void 0 : o.find((E) => E.id === l);
3139
+ if (o && l) {
3140
+ const d = (r = o.variants) == null ? void 0 : r.find((E) => E.id === l);
3142
3141
  if (d) {
3143
- const E = await this.fontDataFromVariant(d), C = i.map((u) => ({ id: u.id, region: u.stepRegion })), w = (c = a.storage) == null ? void 0 : c.color, Q = (B = a.storage) == null ? void 0 : B.text;
3142
+ const E = await this.fontDataFromVariant(d), h = i.map((u) => ({ id: u.id, region: u.stepRegion })), w = (c = a.storage) == null ? void 0 : c.color, Q = (B = a.storage) == null ? void 0 : B.text;
3144
3143
  await e.setSelectionsAndElements(
3145
3144
  A.stepName,
3146
3145
  [d],
3147
- C,
3146
+ h,
3148
3147
  async () => {
3149
3148
  e.updateMetadata(A.stepName, { color: w, text: Q }), e.updateStorage(A.stepName, { text: Q, inputText: Q });
3150
- const u = i.map((p) => new we(p.id, E)), f = new G(u);
3151
- e.getCommandDispatcher()(f), e.setMandatoryFulfilled(A.stepName, !0);
3149
+ const u = i.map((p) => new we(p.id, E)), D = new G(u);
3150
+ e.getCommandDispatcher()(D), e.setMandatoryFulfilled(A.stepName, !0);
3152
3151
  }
3153
3152
  );
3154
- const { command: h } = K.updateInputText(
3153
+ const { command: C } = K.updateInputText(
3155
3154
  Q || "",
3156
3155
  i,
3157
3156
  A,
3158
3157
  e
3159
3158
  );
3160
- h && e.getCommandDispatcher()(h);
3159
+ C && e.getCommandDispatcher()(C);
3161
3160
  }
3162
3161
  }
3163
3162
  }
@@ -3192,14 +3191,14 @@ class Ua {
3192
3191
  name: a.names.fullName.en
3193
3192
  };
3194
3193
  }
3195
- async selectVariantCommand(A, e, t, a, n, s, i, r) {
3194
+ async selectVariantCommand(A, e, t, a, n, s, i, o) {
3196
3195
  var B;
3197
- const o = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
3196
+ const r = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
3198
3197
  if (a.length > 0) {
3199
- const l = a.map((C) => new we(C.id, c));
3200
- if (r) {
3201
- const C = a.map((w) => new JA(w.id, r));
3202
- l.push(...C);
3198
+ const l = a.map((h) => new we(h.id, c));
3199
+ if (o) {
3200
+ const h = a.map((w) => new bA(w.id, o));
3201
+ l.push(...h);
3203
3202
  }
3204
3203
  const d = await this.changeInputTextWithRegion(
3205
3204
  A,
@@ -3215,7 +3214,7 @@ class Ua {
3215
3214
  return d && l.push(d), {
3216
3215
  command: new G(l),
3217
3216
  followup: async () => {
3218
- n.markUpdateCompleted(o), await n.setSelectionsAndElements(A.stepName, [e], a);
3217
+ n.markUpdateCompleted(r), await n.setSelectionsAndElements(A.stepName, [e], a);
3219
3218
  }
3220
3219
  };
3221
3220
  } else {
@@ -3237,16 +3236,16 @@ class Ua {
3237
3236
  s,
3238
3237
  i
3239
3238
  ), E = l.flatMap((w) => w.commands);
3240
- if (r) {
3239
+ if (o) {
3241
3240
  const w = l.map(
3242
- (Q) => new JA(Q.regionElement.id, r)
3241
+ (Q) => new bA(Q.regionElement.id, o)
3243
3242
  );
3244
3243
  E.push(...w);
3245
3244
  }
3246
3245
  return d && E.push(d), {
3247
3246
  command: new G(E),
3248
3247
  followup: async () => {
3249
- n.markUpdateCompleted(o);
3248
+ n.markUpdateCompleted(r);
3250
3249
  }
3251
3250
  };
3252
3251
  }
@@ -3262,37 +3261,37 @@ class Ua {
3262
3261
  async createTextboxRegions(A, e, t, a, n, s) {
3263
3262
  if (!t || !t.regions)
3264
3263
  throw new Error("Step data not supplied");
3265
- const i = s.getTransaction().bulk && t.varyText || !1, r = i ? "" : n.text || t.defaultText || "", o = this.getProcessedInput(r, t, !1), c = async (l) => {
3264
+ const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", r = this.getProcessedInput(o, t, !1), c = async (l) => {
3266
3265
  var w;
3267
- const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), C = k();
3266
+ const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), h = k();
3268
3267
  try {
3269
3268
  if (!E)
3270
3269
  throw new PA("Failed to find layout for region: " + l.panelId);
3271
3270
  const Q = t.colorOption;
3272
- let h;
3271
+ let C;
3273
3272
  if (Q && Q.variants) {
3274
- const b = Q.variants.find((V) => {
3273
+ const L = Q.variants.find((V) => {
3275
3274
  var W;
3276
3275
  return V.id === ((W = Q.defaultVariant) == null ? void 0 : W.id);
3277
3276
  }) || Q.variants[0];
3278
- h = this.createTextFillSpotColor(Q, b), s.updateStorage(A, {
3277
+ C = this.createTextFillSpotColor(Q, L), s.updateStorage(A, {
3279
3278
  colorProfileAssetKey: (w = Q.colorProfile) == null ? void 0 : w.key
3280
3279
  });
3281
3280
  }
3282
- const u = await this.getDefaultColor(t), f = u || "#000000", p = {
3281
+ const u = await this.getDefaultColor(t), D = u || "#000000", p = {
3283
3282
  stepRegion: l,
3284
3283
  stepName: A,
3285
3284
  align: this.textAlign(t),
3286
- fill: n.color ? n.color : f,
3285
+ fill: n.color ? n.color : D,
3287
3286
  fontSize: t.size || OA,
3288
3287
  fontData: a,
3289
- id: C,
3288
+ id: h,
3290
3289
  layer: l.layer,
3291
3290
  layerIndex: l.layerIndex,
3292
3291
  rotation: l.rotation,
3293
- text: o,
3294
- input: r,
3295
- type: H.Textbox,
3292
+ text: r,
3293
+ input: o,
3294
+ type: U.Textbox,
3296
3295
  vertical: t.vertical,
3297
3296
  x: l.left,
3298
3297
  y: l.top,
@@ -3302,8 +3301,8 @@ class Ua {
3302
3301
  verticalAlign: t.verticalAlign || "middle",
3303
3302
  curved: t.curved,
3304
3303
  paths: t.paths,
3305
- fillSpotColorDefinition: h
3306
- }, D = [], m = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map();
3304
+ fillSpotColorDefinition: C
3305
+ }, f = [], m = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map();
3307
3306
  if (!p.fontData)
3308
3307
  throw new v("Failed to resolve font data for text.");
3309
3308
  const [Y, F] = IA(
@@ -3317,19 +3316,19 @@ class Ua {
3317
3316
  rotation: p.rotation,
3318
3317
  panelId: ""
3319
3318
  },
3320
- [o],
3319
+ [r],
3321
3320
  { size: t.size, minSize: t.minSize, maxSize: t.maxSize }
3322
3321
  );
3323
- m.set(p.id, Y), M.set(p.id, F);
3324
- const U = t.curved || t.vertical ? o : (F || []).join(`
3322
+ m.set(p.id, Y), y.set(p.id, F);
3323
+ const R = t.curved || t.vertical ? r : (F || []).join(`
3325
3324
  `);
3326
- D.push(
3327
- this.generateTextChangeCommandsForRegion(Y, t, p.id, U, i)
3325
+ f.push(
3326
+ this.generateTextChangeCommandsForRegion(Y, t, p.id, R, i)
3328
3327
  );
3329
- const S = new J(p, E);
3330
- return S.varying = i, {
3331
- regionElement: { id: C, region: l },
3332
- commands: [S, ...D],
3328
+ const N = new J(p, E);
3329
+ return N.varying = i, {
3330
+ regionElement: { id: h, region: l },
3331
+ commands: [N, ...f],
3333
3332
  newElement: p,
3334
3333
  fontData: a
3335
3334
  };
@@ -3345,9 +3344,9 @@ class Ua {
3345
3344
  B.map((l) => l.regionElement),
3346
3345
  async () => {
3347
3346
  s.updateMetadata(A, {
3348
- text: r
3347
+ text: o
3349
3348
  }), s.updateStorage(A, {
3350
- text: r
3349
+ text: o
3351
3350
  });
3352
3351
  }
3353
3352
  ), B;
@@ -3355,68 +3354,68 @@ class Ua {
3355
3354
  generateTextChangeCommandsForRegion(A, e, t, a, n) {
3356
3355
  const s = [], i = new Yt(t, a);
3357
3356
  if (i.varying = n, s.push(i), !e.size) {
3358
- const o = new St(t, A);
3359
- o.varying = n, s.push(o);
3357
+ const r = new St(t, A);
3358
+ r.varying = n, s.push(r);
3360
3359
  }
3361
- const r = new G(s);
3362
- return r.varying = n, r;
3360
+ const o = new G(s);
3361
+ return o.varying = n, o;
3363
3362
  }
3364
3363
  /**
3365
3364
  * @deprecated
3366
3365
  */
3367
- async changeInputTextWithRegion(A, e, t, a, n, s, i, r, o, c) {
3368
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
3366
+ async changeInputTextWithRegion(A, e, t, a, n, s, i, o, r, c) {
3367
+ const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
3369
3368
  for (const p of d)
3370
3369
  if (p.region) {
3371
- const [D, m] = IA(
3370
+ const [f, m] = IA(
3372
3371
  e,
3373
3372
  t,
3374
3373
  p.region,
3375
3374
  [l],
3376
3375
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
3377
3376
  );
3378
- E.set(p.id, D), C.set(p.id, m);
3377
+ E.set(p.id, f), h.set(p.id, m);
3379
3378
  }
3380
3379
  const Q = (() => {
3381
3380
  if (A.data && A.data.maxLength && l.length > A.data.maxLength)
3382
3381
  return c && c(!0), { info: "0" };
3383
- const p = s.getProfanities(), D = XA(l.toLowerCase());
3384
- for (const m of D)
3385
- for (const M in p) {
3386
- const Y = p[M].toLowerCase().replace(/\s/g, "");
3382
+ const p = s.getProfanities(), f = XA(l.toLowerCase());
3383
+ for (const m of f)
3384
+ for (const y in p) {
3385
+ const Y = p[y].toLowerCase().replace(/\s/g, "");
3387
3386
  if (m === Y)
3388
- return r(!0), { error: "Blocked profanity." };
3387
+ return o(!0), { error: "Blocked profanity." };
3389
3388
  }
3390
3389
  return !A.data.vertical && !A.data.allowNewlines && (l.includes(`
3391
- `) || l.includes("\r")) ? (r(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(C.values()).every((M) => M) ? (r(!0), { error: "Does not fit." }) : (r(!1), { info: (A.data.maxLength - l.length).toString() });
3390
+ `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(h.values()).every((y) => y) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (A.data.maxLength - l.length).toString() });
3392
3391
  })();
3393
3392
  if (Q.error) {
3394
- o(Q.error);
3393
+ r(Q.error);
3395
3394
  return;
3396
3395
  }
3397
- if (o(`${Q.info} characters remaining` || ""), c)
3396
+ if (r(`${Q.info} characters remaining` || ""), c)
3398
3397
  return;
3399
3398
  s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
3400
3399
  text: this.injectReplaceableText(B, A.data)
3401
3400
  });
3402
- const h = s.getTransaction().bulk && A.data.varyText || !1;
3401
+ const C = s.getTransaction().bulk && A.data.varyText || !1;
3403
3402
  n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
3404
3403
  const u = [];
3405
3404
  for (const p of d) {
3406
- const D = A.data.curved ? l : (C.get(p.id) || []).join(`
3405
+ const f = A.data.curved ? l : (h.get(p.id) || []).join(`
3407
3406
  `);
3408
3407
  u.push(
3409
3408
  this.generateTextChangeCommandsForRegion(
3410
3409
  E.get(p.id) || 1,
3411
3410
  A.data,
3412
3411
  p.id,
3413
- D,
3414
- h
3412
+ f,
3413
+ C
3415
3414
  )
3416
3415
  );
3417
3416
  }
3418
- const f = new G(u);
3419
- return f.varying = h, f;
3417
+ const D = new G(u);
3418
+ return D.varying = C, D;
3420
3419
  }
3421
3420
  }
3422
3421
  const K = new Ua();
@@ -4683,27 +4682,27 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
4683
4682
  </g>
4684
4683
  </svg>
4685
4684
 
4686
- `, R = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
4687
- const e = R("rect");
4685
+ `, P = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
4686
+ const e = P("rect");
4688
4687
  return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
4689
4688
  }, ka = () => {
4690
- const g = R("svg");
4689
+ const g = P("svg");
4691
4690
  return g.setAttribute("xmlns", "http://www.w3.org/2000/svg"), g.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), g.setAttribute("version", "1.1"), g;
4692
- }, ba = (g) => {
4693
- const A = R("use");
4691
+ }, Ja = (g) => {
4692
+ const A = P("use");
4694
4693
  return A.setAttribute("xlink:href", g), A.setAttribute("href", g), A;
4695
4694
  };
4696
4695
  function tt(g) {
4697
4696
  const A = ka(), e = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], t = parseFloat(e[1]), a = parseFloat(e[2]);
4698
4697
  return A.setAttribute("height", `${a}`), A.setAttribute("width", `${t}`), [A, a, t];
4699
4698
  }
4700
- const Ja = (g, A, e) => {
4701
- const t = R("g");
4699
+ const ba = (g, A, e) => {
4700
+ const t = P("g");
4702
4701
  g.appendChild(t), t.setAttribute("id", e), t.innerHTML = A;
4703
4702
  };
4704
4703
  function at(g, A, e) {
4705
4704
  const t = k();
4706
- Ja(A, e, `bgdef-${t}`), g.appendChild(ba(`#bgdef-${t}`));
4705
+ ba(A, e, `bgdef-${t}`), g.appendChild(Ja(`#bgdef-${t}`));
4707
4706
  }
4708
4707
  const nt = (g, A, e, t) => {
4709
4708
  const a = wA("filter");
@@ -4719,16 +4718,16 @@ const nt = (g, A, e, t) => {
4719
4718
  return A = A.replace(/feoffset/gi, "feOffset"), A = A.replace(/fegaussianblur/gi, "feGaussianBlur"), A = A.replace(/feblend/gi, "feBlend"), A = A.replace(/lineargradient/gi, "linearGradient"), A = A.replace(/stddeviation/gi, "stdDeviation"), A;
4720
4719
  };
4721
4720
  function re(g, A, e, t, a, n) {
4722
- const s = a || 1, i = n || 1, r = {
4721
+ const s = a || 1, i = n || 1, o = {
4723
4722
  x: A[0],
4724
4723
  y: A[1],
4725
4724
  width: A[2] - A[0],
4726
4725
  height: A[3] - A[1]
4727
4726
  };
4728
- if (r.width <= 0)
4727
+ if (o.width <= 0)
4729
4728
  return;
4730
- const o = Ta(r.height, r.width, e * s, t * i), c = (t - o * r.width) / 2 - o * r.x, B = (e - o * r.height) / 2 - o * r.y;
4731
- g.setAttribute("transform", `translate(${c} ${B}) scale(${o} ${o})`);
4729
+ const r = Ta(o.height, o.width, e * s, t * i), c = (t - r * o.width) / 2 - r * o.x, B = (e - r * o.height) / 2 - r * o.y;
4730
+ g.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
4732
4731
  }
4733
4732
  function Ta(g, A, e, t) {
4734
4733
  const a = e / g, n = t / A;
@@ -4763,10 +4762,10 @@ class ce {
4763
4762
  let e = "";
4764
4763
  const a = (n) => {
4765
4764
  const s = [], i = n.relative ? n.type : n.type.toUpperCase();
4766
- let r = e !== i;
4767
- const o = pe[n.type];
4768
- r && (s.push(i), e = i);
4769
- for (const c of o) {
4765
+ let o = e !== i;
4766
+ const r = pe[n.type];
4767
+ o && (s.push(i), e = i);
4768
+ for (const c of r) {
4770
4769
  const B = n[c];
4771
4770
  let l;
4772
4771
  switch (typeof B) {
@@ -4779,7 +4778,7 @@ class ce {
4779
4778
  default:
4780
4779
  throw new rA("Failed to encode path.");
4781
4780
  }
4782
- r || s.push(" "), s.push(l), r = !1;
4781
+ o || s.push(" "), s.push(l), o = !1;
4783
4782
  }
4784
4783
  return s.join("");
4785
4784
  };
@@ -4789,24 +4788,24 @@ class ce {
4789
4788
  const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
4790
4789
  let n;
4791
4790
  for (e.lastIndex = 0; n = e.exec(A); ) {
4792
- const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), r = s === n[1], o = pe[s];
4793
- if (i.length < o.length)
4791
+ const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), o = s === n[1], r = pe[s];
4792
+ if (i.length < r.length)
4794
4793
  throw new rA(
4795
- `Path type "${s}" given ${i.length} arguments, expected ${o.length}.`
4794
+ `Path type "${s}" given ${i.length} arguments, expected ${r.length}.`
4796
4795
  );
4797
- if (o.length > 0) {
4798
- if (i.length % o.length !== 0)
4796
+ if (r.length > 0) {
4797
+ if (i.length % r.length !== 0)
4799
4798
  throw new rA(
4800
- `Path type "${s}" given ${i.length} arguments, not divisible by ${o.length}`
4799
+ `Path type "${s}" given ${i.length} arguments, not divisible by ${r.length}`
4801
4800
  );
4802
- for (let c = 0; c < i.length / o.length; c++) {
4803
- const B = { type: s, relative: r };
4804
- for (let l = 0; l < o.length; l++)
4805
- B[o[l]] = i[c * o.length + l];
4801
+ for (let c = 0; c < i.length / r.length; c++) {
4802
+ const B = { type: s, relative: o };
4803
+ for (let l = 0; l < r.length; l++)
4804
+ B[r[l]] = i[c * r.length + l];
4806
4805
  a.push(B);
4807
4806
  }
4808
4807
  } else
4809
- a.push({ type: s, relative: r });
4808
+ a.push({ type: s, relative: o });
4810
4809
  }
4811
4810
  return a;
4812
4811
  }
@@ -4817,12 +4816,12 @@ class ce {
4817
4816
  ["x", "y"]
4818
4817
  ], a = (n) => {
4819
4818
  for (let s = 0; s < t.length; s++) {
4820
- const [i, r] = t[s];
4821
- if (i in n && r in n) {
4822
- const o = [n[i], n[r]], c = e(o);
4819
+ const [i, o] = t[s];
4820
+ if (i in n && o in n) {
4821
+ const r = [n[i], n[o]], c = e(r);
4823
4822
  if (c.length < 2)
4824
4823
  throw new rA("Transformer must return at least 2 points.");
4825
- n[i] = c[0], n[r] = c[1];
4824
+ n[i] = c[0], n[o] = c[1];
4826
4825
  }
4827
4826
  }
4828
4827
  return n;
@@ -4860,31 +4859,31 @@ class La extends ie {
4860
4859
  }
4861
4860
  brandSvg(A, e) {
4862
4861
  const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
4863
- const p = R("g"), D = R("defs");
4864
- p.appendChild(D), D.appendChild(nt(3, 7, 4, "shadow"));
4865
- const m = R("g");
4862
+ const p = P("g"), f = P("defs");
4863
+ p.appendChild(f), f.appendChild(nt(3, 7, 4, "shadow"));
4864
+ const m = P("g");
4866
4865
  p.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = t;
4867
- const M = R("g");
4868
- p.appendChild(M), M.setAttribute("fill", "red"), M.setAttribute("stroke", "red"), M.setAttribute("stroke-width", "9"), M.innerHTML = t;
4869
- const Y = R("g");
4866
+ const y = P("g");
4867
+ p.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = t;
4868
+ const Y = P("g");
4870
4869
  p.appendChild(Y), Y.setAttribute("fill", "#9d2621"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = t;
4871
- const F = R("g");
4872
- return p.appendChild(F), F.setAttribute("fill", "yellow"), F.innerHTML = t, new ce(p).transform(([S, b]) => [S, b + (n / 2 - S) ** 2 / (n * 2.9)]), p;
4873
- }, [r, o, c] = tt(e);
4874
- if (!r)
4870
+ const F = P("g");
4871
+ return p.appendChild(F), F.setAttribute("fill", "yellow"), F.innerHTML = t, new ce(p).transform(([N, L]) => [N, L + (n / 2 - N) ** 2 / (n * 2.9)]), p;
4872
+ }, [o, r, c] = tt(e);
4873
+ if (!o)
4875
4874
  return "";
4876
- const B = R("defs");
4877
- r.appendChild(B), at(r, B, e);
4878
- const l = o * 0.23, d = c * 0.94, E = c * 0.04, C = o * 0.53, w = R("g");
4879
- r.appendChild(w), w.setAttribute("transform", `translate(${E} ${C}) rotate(-21)`);
4875
+ const B = P("defs");
4876
+ o.appendChild(B), at(o, B, e);
4877
+ const l = r * 0.23, d = c * 0.94, E = c * 0.04, h = r * 0.53, w = P("g");
4878
+ o.appendChild(w), w.setAttribute("transform", `translate(${E} ${h}) rotate(-21)`);
4880
4879
  const Q = oe(l, d);
4881
4880
  Q.setAttribute("opacity", "0"), w.appendChild(Q);
4882
- const h = R("g");
4883
- w.appendChild(h);
4881
+ const C = P("g");
4882
+ w.appendChild(C);
4884
4883
  const u = i();
4885
- h.appendChild(u);
4886
- const f = ne(s);
4887
- return re(h, f, l, d), st(r.outerHTML);
4884
+ C.appendChild(u);
4885
+ const D = ne(s);
4886
+ return re(C, D, l, d), st(o.outerHTML);
4888
4887
  }
4889
4888
  }
4890
4889
  const Oa = "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==";
@@ -4899,39 +4898,39 @@ class za extends ie {
4899
4898
  return this.svg(A);
4900
4899
  }
4901
4900
  svg(A) {
4902
- const e = ae(Oa), a = A !== "" ? ((r) => r.charAt(0).toUpperCase() + r.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), s = A.length < this.shortLength, i = s ? this.backgroundShortSvg : this.backgroundSvg;
4901
+ const e = ae(Oa), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), s = A.length < this.shortLength, i = s ? this.backgroundShortSvg : this.backgroundSvg;
4903
4902
  return this.brandSvg(n, i, s);
4904
4903
  }
4905
4904
  brandSvg(A, e, t) {
4906
- const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, r = A.toPathData(3), o = () => {
4907
- const m = R("g"), M = R("g");
4908
- m.appendChild(M), M.setAttribute("stroke", "#5C1A0D"), M.setAttribute("stroke-width", "4"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
4909
- const Y = R("g");
4905
+ const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), r = () => {
4906
+ const m = P("g"), y = P("g");
4907
+ m.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
4908
+ const Y = P("g");
4910
4909
  m.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
4911
- const F = R("g");
4910
+ const F = P("g");
4912
4911
  m.appendChild(F), F.setAttribute("fill", "white"), F.innerHTML = a;
4913
- const U = new ce(m);
4914
- return U.transform(([S, b]) => [S, b + ((i - S) * b) ** 2 / (i * 5e4)]), U.transform(([S, b]) => [
4915
- S,
4916
- b + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
4917
- ]), U.transform(([S, b]) => [S - (s - b) * (i - S) / 800, b]), m;
4912
+ const R = new ce(m);
4913
+ return R.transform(([N, L]) => [N, L + ((i - N) * L) ** 2 / (i * 5e4)]), R.transform(([N, L]) => [
4914
+ N,
4915
+ L + (i / 3 - N) ** 2 / i * this.indicator(N < i / 3)
4916
+ ]), R.transform(([N, L]) => [N - (s - L) * (i - N) / 800, L]), m;
4918
4917
  }, [c, B, l] = tt(e);
4919
4918
  if (!c)
4920
4919
  return "";
4921
- const d = R("defs");
4920
+ const d = P("defs");
4922
4921
  c.appendChild(d), at(c, d, e);
4923
- let E, C, w, Q;
4924
- t ? (E = B * 0.25 * (1 + 0.1), C = l / 2 * (1 + 0.1), w = l * 0.22, Q = B * 0.32) : (E = B * 0.22 * (1 + 0.1), C = l * 0.8, w = l * 0.067, Q = B * 0.33);
4925
- const h = R("g");
4926
- c.appendChild(h), h.setAttribute("transform", `translate(${w} ${Q}) rotate(-10)`);
4927
- const u = oe(E, C);
4928
- u.setAttribute("opacity", "0"), h.appendChild(u);
4929
- const f = R("g");
4930
- h.appendChild(f);
4931
- const p = o();
4932
- f.appendChild(p);
4933
- const D = ne(r);
4934
- return re(f, D, E, C), c.outerHTML;
4922
+ let E, h, w, Q;
4923
+ t ? (E = B * 0.25 * (1 + 0.1), h = l / 2 * (1 + 0.1), w = l * 0.22, Q = B * 0.32) : (E = B * 0.22 * (1 + 0.1), h = l * 0.8, w = l * 0.067, Q = B * 0.33);
4924
+ const C = P("g");
4925
+ c.appendChild(C), C.setAttribute("transform", `translate(${w} ${Q}) rotate(-10)`);
4926
+ const u = oe(E, h);
4927
+ u.setAttribute("opacity", "0"), C.appendChild(u);
4928
+ const D = P("g");
4929
+ C.appendChild(D);
4930
+ const p = r();
4931
+ D.appendChild(p);
4932
+ const f = ne(o);
4933
+ return re(D, f, E, h), c.outerHTML;
4935
4934
  }
4936
4935
  // 1 if true, 0 if false.
4937
4936
  }
@@ -4947,35 +4946,35 @@ class ja extends ie {
4947
4946
  return this.svgElement(A, e);
4948
4947
  }
4949
4948
  svgElement(A, e) {
4950
- const t = ae(Ka), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), r = s.getBoundingBox(), o = r.x2 - r.x1, c = s.toPathData(3), B = () => {
4951
- const u = R("g");
4949
+ const t = ae(Ka), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), r = o.x2 - o.x1, c = s.toPathData(3), B = () => {
4950
+ const u = P("g");
4952
4951
  u.classList.add("module-text-group");
4953
- const f = R("defs");
4954
- u.appendChild(f), f.appendChild(nt(0, 2, 2, "shadow"));
4955
- const p = R("path");
4956
- p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), f.appendChild(p);
4957
- const D = R("g");
4958
- D.classList.add("module-layer0"), u.appendChild(D), D.setAttribute("filter", "url(#shadow)"), D.innerHTML = p.outerHTML;
4959
- const m = R("g");
4952
+ const D = P("defs");
4953
+ u.appendChild(D), D.appendChild(nt(0, 2, 2, "shadow"));
4954
+ const p = P("path");
4955
+ p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), D.appendChild(p);
4956
+ const f = P("g");
4957
+ f.classList.add("module-layer0"), u.appendChild(f), f.setAttribute("filter", "url(#shadow)"), f.innerHTML = p.outerHTML;
4958
+ const m = P("g");
4960
4959
  m.classList.add("module-layer1"), u.appendChild(m), m.setAttribute("stroke-width", "3"), m.setAttribute("stroke", "rgb(45,41,38)"), m.setAttribute("fill", "rgb(45,41,38)"), m.setAttribute("transform", "translate(0.5,0)"), m.innerHTML = i;
4961
- const M = R("g");
4962
- M.classList.add("module-layer2"), u.appendChild(M), M.setAttribute("fill", "rgb(255,209,0)"), M.setAttribute("transform", "translate(1,-0.1)"), M.innerHTML = i;
4963
- const Y = R("g");
4964
- return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([U, S]) => [U, S + (o / 2 - U) ** 2 / (o * 6)]), u;
4965
- }, l = R("g");
4960
+ const y = P("g");
4961
+ y.classList.add("module-layer2"), u.appendChild(y), y.setAttribute("fill", "rgb(255,209,0)"), y.setAttribute("transform", "translate(1,-0.1)"), y.innerHTML = i;
4962
+ const Y = P("g");
4963
+ return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([R, N]) => [R, N + (r / 2 - R) ** 2 / (r * 6)]), u;
4964
+ }, l = P("g");
4966
4965
  l.classList.add("module-root");
4967
- const d = R("defs");
4966
+ const d = P("defs");
4968
4967
  l.appendChild(d);
4969
- const E = R("g");
4968
+ const E = P("g");
4970
4969
  E.classList.add("module-bounds"), l.appendChild(E);
4971
- const C = oe(e.height, e.width);
4972
- C.setAttribute("opacity", "0"), E.appendChild(C);
4973
- const w = R("g");
4970
+ const h = oe(e.height, e.width);
4971
+ h.setAttribute("opacity", "0"), E.appendChild(h);
4972
+ const w = P("g");
4974
4973
  w.classList.add("module-text-enclosure"), l.appendChild(w);
4975
4974
  const Q = B();
4976
4975
  w.appendChild(Q);
4977
- const h = ne(c);
4978
- return re(w, h, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
4976
+ const C = ne(c);
4977
+ return re(w, C, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
4979
4978
  }
4980
4979
  }
4981
4980
  async function it(g) {
@@ -5004,24 +5003,25 @@ class Ie extends Xe {
5004
5003
  }
5005
5004
  }
5006
5005
  class Wa {
5007
- constructor(A, e, t, a, n, s, i, r, o, c, B = !1, l, d = !1, E = !1) {
5008
- this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
5009
- var Q;
5006
+ // True when the transaction is being reloaded, rather than newly created.
5007
+ constructor(A, e, t, a, n, s, i, o, r, c, B = !1, l, d = !1) {
5008
+ this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.renderLayouts = () => {
5009
+ var w;
5010
5010
  if (!this.previewService)
5011
5011
  return;
5012
- const C = this.getCommandContext().getAllLayouts(), w = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
5013
- if (w)
5014
- for (const [, h] of w)
5015
- h.render(
5012
+ const E = this.getCommandContext().getAllLayouts(), h = (w = this.getLayoutPreviewService()) == null ? void 0 : w.getAll();
5013
+ if (h)
5014
+ for (const [, Q] of h)
5015
+ Q.render(
5016
5016
  this.getWorkflow(),
5017
- C,
5017
+ E,
5018
5018
  this.getCurrentVariationRecord() || null,
5019
5019
  this.getProduct().overlayImageUrl
5020
5020
  );
5021
- }, this.updateTransaction = n, this.commandContext = a, this.reloadedState = c, this.transaction = s, this.readOnly = B, this.singleVariantsRenderable = E, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = r, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = o, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
5021
+ }, this.updateTransaction = n, this.commandContext = a, this.reloadedState = c, this.transaction = s, this.readOnly = B, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = o, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = r, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
5022
5022
  this.initialized = !0;
5023
- }), this.initializationPromise.catch((C) => {
5024
- throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
5023
+ }), this.initializationPromise.catch((E) => {
5024
+ throw console.error(E), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
5025
5025
  }), this.initializationPromise.finally(
5026
5026
  () => this.getCommandContext().registerStateCallback(() => {
5027
5027
  this.updateStateWithServer(), this.renderLayouts();
@@ -5031,14 +5031,14 @@ class Wa {
5031
5031
  async initializeDefaultWorkflowState(A, e) {
5032
5032
  const t = () => {
5033
5033
  var B, l;
5034
- const r = this.workflow.finalizeStepConfig;
5035
- if (!r)
5034
+ const o = this.workflow.finalizeStepConfig;
5035
+ if (!o)
5036
5036
  return;
5037
- const o = r.lookAtAnimation, c = r.modelAnimation;
5038
- o && ((B = this.previewService) == null || B.executeCameraAnimation(o)), c && ((l = this.modelContainer) == null || l.executeAnimation(c));
5037
+ const r = o.lookAtAnimation, c = o.modelAnimation;
5038
+ r && ((B = this.previewService) == null || B.executeCameraAnimation(r)), c && ((l = this.modelContainer) == null || l.executeAnimation(c));
5039
5039
  };
5040
- this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((r) => {
5041
- this.storage[r.stepName] = r.storage || {};
5040
+ this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((o) => {
5041
+ this.storage[o.stepName] = o.storage || {};
5042
5042
  }), this.allScenes = await wa(
5043
5043
  A,
5044
5044
  {
@@ -5050,7 +5050,7 @@ class Wa {
5050
5050
  },
5051
5051
  e
5052
5052
  );
5053
- const n = aA(this.allScenes, this.stepSelections).map((r) => r.silentSteps).flat(), { stepElements: s, commands: i } = await this.stepElementsForIntroducedSilentSteps(n, !!this.reloadedState);
5053
+ const n = aA(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: s, commands: i } = await this.stepElementsForIntroducedSilentSteps(n, !!this.reloadedState);
5054
5054
  this.commandContext.apply(new G(i), !0), this.stepElements = { ...this.stepElements, ...s }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
5055
5055
  }
5056
5056
  getProduct() {
@@ -5243,12 +5243,12 @@ class Wa {
5243
5243
  contextService: this.getLayoutPreviewService()
5244
5244
  }).getInitializationPromise();
5245
5245
  this.setModelContainer(e), aA(this.allScenes, this.stepSelections).filter((n) => n).map((n) => n.renderableSteps).flat().filter((n) => n.type === I.Model || n.type === I.Material).forEach((n) => {
5246
- var r, o, c;
5247
- if (!((r = n.option) != null && r.id)) {
5246
+ var o, r, c;
5247
+ if (!((o = n.option) != null && o.id)) {
5248
5248
  console.error(`Failed to read option id from step: ${n.stepName}`);
5249
5249
  return;
5250
5250
  }
5251
- const s = ((o = this.stepSelections[n.stepName]) == null ? void 0 : o.selectedVariants) || [];
5251
+ const s = ((r = this.stepSelections[n.stepName]) == null ? void 0 : r.selectedVariants) || [];
5252
5252
  if (s.length === 0)
5253
5253
  return;
5254
5254
  const i = s[0];
@@ -5377,9 +5377,9 @@ class Wa {
5377
5377
  removeElements(A) {
5378
5378
  const e = (t, a) => Object.keys(t).reduce((n, s) => {
5379
5379
  const i = [...t[s] || []];
5380
- return a.forEach((r) => {
5381
- const o = i.findIndex((c) => c.id === r.id);
5382
- o > -1 && i.splice(o, 1);
5380
+ return a.forEach((o) => {
5381
+ const r = i.findIndex((c) => c.id === o.id);
5382
+ r > -1 && i.splice(r, 1);
5383
5383
  }), n[s] = i, n;
5384
5384
  }, {});
5385
5385
  this.stepElements = e(this.stepElements, A);
@@ -5396,30 +5396,30 @@ class Wa {
5396
5396
  const t = this.product;
5397
5397
  if (!t)
5398
5398
  return Promise.resolve({ stepElements: {}, commands: [] });
5399
- const a = async (o, c, B) => {
5400
- if (o.type === I.SilentIllustration) {
5401
- const l = await new me(o, c).trigger();
5402
- return { step: o, results: l };
5403
- } else if (o.type === I.ProductOverlay) {
5399
+ const a = async (r, c, B) => {
5400
+ if (r.type === I.SilentIllustration) {
5401
+ const l = await new me(r, c).trigger();
5402
+ return { step: r, results: l };
5403
+ } else if (r.type === I.ProductOverlay) {
5404
5404
  const l = await new me(
5405
- o,
5405
+ r,
5406
5406
  c,
5407
5407
  B
5408
5408
  ).trigger();
5409
- return { step: o, results: l };
5409
+ return { step: r, results: l };
5410
5410
  }
5411
5411
  return Promise.reject("Unknown silent step. This is a bug");
5412
5412
  }, n = A.filter(
5413
- (o) => !this.stepInitialised[o.stepName]
5413
+ (r) => !this.stepInitialised[r.stepName]
5414
5414
  ), s = {
5415
5415
  stepElements: {},
5416
5416
  commands: []
5417
5417
  }, i = [];
5418
- for (const o of n)
5419
- this.markStepsAsInitialised([o.stepName]), e || i.push(a(o, this.layouts, t));
5420
- const r = await Promise.all(i);
5421
- for (const o of r)
5422
- s.stepElements[o.step.stepName] = o.results.map((c) => c.regionElement), s.commands = [...s.commands, ...o.results.map((c) => c.command)];
5418
+ for (const r of n)
5419
+ this.markStepsAsInitialised([r.stepName]), e || i.push(a(r, this.layouts, t));
5420
+ const o = await Promise.all(i);
5421
+ for (const r of o)
5422
+ s.stepElements[r.step.stepName] = r.results.map((c) => c.regionElement), s.commands = [...s.commands, ...r.results.map((c) => c.command)];
5423
5423
  return s;
5424
5424
  }
5425
5425
  getStepStorage(A) {
@@ -5456,14 +5456,14 @@ class Wa {
5456
5456
  this.stepSelections = {
5457
5457
  ...this.stepSelections,
5458
5458
  [A]: { selectedVariants: e }
5459
- }, this.selectionCost = Object.values(this.stepSelections).reduce((D, m) => D + m.selectedVariants.map((M) => M.priceModifier || 0).reduce((M, Y) => M + Y, 0), 0), this.workflow.steps.forEach((D) => {
5460
- nA(D, this.stepSelections) || (this.stepInitialised[D.stepName] = !1, delete this.stepMetadata[D.stepName], delete this.stepSelections[D.stepName], delete this.storage[D.stepName]);
5459
+ }, this.selectionCost = Object.values(this.stepSelections).reduce((f, m) => f + m.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, Y) => y + Y, 0), 0), this.workflow.steps.forEach((f) => {
5460
+ nA(f, this.stepSelections) || (this.stepInitialised[f.stepName] = !1, delete this.stepMetadata[f.stepName], delete this.stepSelections[f.stepName], delete this.storage[f.stepName]);
5461
5461
  });
5462
- const s = this.allScenes, i = aA(s, n), r = aA(s, this.stepSelections), o = i.map((D) => D.silentSteps).flat(), B = r.map((D) => D.silentSteps).flat().filter(
5463
- (D) => !o.some((m) => m.stepName === D.stepName)
5462
+ const s = this.allScenes, i = aA(s, n), o = aA(s, this.stepSelections), r = i.map((f) => f.silentSteps).flat(), B = o.map((f) => f.silentSteps).flat().filter(
5463
+ (f) => !r.some((m) => m.stepName === f.stepName)
5464
5464
  );
5465
- o.forEach((D) => {
5466
- nA(D, this.stepSelections) || (this.stepInitialised[D.stepName] = !1);
5465
+ r.forEach((f) => {
5466
+ nA(f, this.stepSelections) || (this.stepInitialised[f.stepName] = !1);
5467
5467
  });
5468
5468
  const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: E } = await this.stepElementsForIntroducedSilentSteps(B, !1);
5469
5469
  this.stepElements = {
@@ -5471,17 +5471,17 @@ class Wa {
5471
5471
  ...d,
5472
5472
  [A]: t
5473
5473
  }, this.removeElements(l);
5474
- const C = this.workflow.steps.find((D) => D.stepName === A);
5475
- if ((C == null ? void 0 : C.type) === I.Frame) {
5476
- const D = this.getStepSpecificServices(A);
5477
- (p = D == null ? void 0 : D.frameService) == null || p.setTargetElements(t.map((m) => m.id));
5478
- }
5479
- const w = l.map((D) => new $(D.id)), Q = new Ee(this.constructSerializableWorkflow()), h = [...E, ...w, Q];
5480
- h.length > 0 && this.commandContext.apply(new G(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
5481
- const u = this.getInvalidModelVariants(), f = this.modelContainer;
5482
- if (f) {
5483
- const D = u.map(
5484
- (m) => f.applyModelVariant(
5474
+ const h = this.workflow.steps.find((f) => f.stepName === A);
5475
+ if ((h == null ? void 0 : h.type) === I.Frame) {
5476
+ const f = this.getStepSpecificServices(A);
5477
+ (p = f == null ? void 0 : f.frameService) == null || p.setTargetElements(t.map((m) => m.id));
5478
+ }
5479
+ const w = l.map((f) => new $(f.id)), Q = new Ee(this.constructSerializableWorkflow()), C = [...E, ...w, Q];
5480
+ C.length > 0 && this.commandContext.apply(new G(C), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
5481
+ const u = this.getInvalidModelVariants(), D = this.modelContainer;
5482
+ if (D) {
5483
+ const f = u.map(
5484
+ (m) => D.applyModelVariant(
5485
5485
  m,
5486
5486
  {
5487
5487
  contextService: this.getLayoutPreviewService()
@@ -5489,12 +5489,12 @@ class Wa {
5489
5489
  !1
5490
5490
  )
5491
5491
  );
5492
- await Promise.all(D);
5492
+ await Promise.all(f);
5493
5493
  }
5494
5494
  await this.onSelectionChange(), a && await a();
5495
5495
  }
5496
5496
  async ensureStepsAreLoaded() {
5497
- var r, o;
5497
+ var o, r;
5498
5498
  const e = aA(this.allScenes, this.stepSelections).map((c) => c.renderableSteps), t = [], a = e.flat();
5499
5499
  for (const c of a)
5500
5500
  if (!this.stepInitialised[c.stepName])
@@ -5502,7 +5502,7 @@ class Wa {
5502
5502
  case I.Bulk:
5503
5503
  this.updateStorage(
5504
5504
  "Bulk",
5505
- ((o = (r = this.reloadedState) == null ? void 0 : r.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : o.storage) || {}
5505
+ ((r = (o = this.reloadedState) == null ? void 0 : o.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : r.storage) || {}
5506
5506
  );
5507
5507
  break;
5508
5508
  case I.DigitalContent:
@@ -5809,7 +5809,7 @@ const ot = class ZA {
5809
5809
  };
5810
5810
  ot.updateState = /* @__PURE__ */ new Map();
5811
5811
  let j = ot;
5812
- const rt = y`
5812
+ const rt = M`
5813
5813
  mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
5814
5814
  transactionAddStakeholder(id: $id, details: $details, type: $type) {
5815
5815
  id
@@ -5823,7 +5823,7 @@ const rt = y`
5823
5823
  }
5824
5824
  }
5825
5825
  }
5826
- `, Xa = y`
5826
+ `, Xa = M`
5827
5827
  mutation UpdateDesignName($transactionId: String!, $designName: String!) {
5828
5828
  transactionUpdate(id: $transactionId, designName: $designName) {
5829
5829
  id
@@ -5838,7 +5838,7 @@ class qa extends j {
5838
5838
  throw new Error("Bulk step does not support variants.");
5839
5839
  }
5840
5840
  async setDesignName(A) {
5841
- await N.getShadowGraphqlClient().mutate({
5841
+ await x.getShadowGraphqlClient().mutate({
5842
5842
  mutation: Xa,
5843
5843
  variables: {
5844
5844
  transactionId: this.manager.getTransaction().id,
@@ -5865,7 +5865,7 @@ class qa extends j {
5865
5865
  window.open(this.transaction.bulkSourceUrl, "_blank");
5866
5866
  }
5867
5867
  async sendGoogleSheetLinkToEmail(A) {
5868
- await N.getShadowGraphqlClient().mutate({
5868
+ await x.getShadowGraphqlClient().mutate({
5869
5869
  mutation: rt,
5870
5870
  variables: { id: this.transaction.id, details: { emailAddress: A }, type: "Owner" }
5871
5871
  }), this.openBulkSourceUrl();
@@ -6161,14 +6161,14 @@ class an extends j {
6161
6161
  text: a
6162
6162
  }), s)
6163
6163
  return e;
6164
- const { command: r, errors: o, helperText: c } = K.updateInputText(
6164
+ const { command: o, errors: r, helperText: c } = K.updateInputText(
6165
6165
  a,
6166
6166
  t,
6167
6167
  this.step,
6168
6168
  this.manager
6169
6169
  );
6170
- r && this.manager.getCommandDispatcher()(r);
6171
- const B = this.manager.getInformationResults(), l = (E = o[0]) == null ? void 0 : E.localizationKey;
6170
+ o && this.manager.getCommandDispatcher()(o);
6171
+ const B = this.manager.getInformationResults(), l = (E = r[0]) == null ? void 0 : E.localizationKey;
6172
6172
  if (l)
6173
6173
  this.manager.setInformationResults([
6174
6174
  ...B,
@@ -6179,8 +6179,8 @@ class an extends j {
6179
6179
  }
6180
6180
  ]);
6181
6181
  else {
6182
- const C = B.filter((w) => w.stepID !== this.step.stepName);
6183
- this.manager.setInformationResults(C);
6182
+ const h = B.filter((w) => w.stepID !== this.step.stepName);
6183
+ this.manager.setInformationResults(h);
6184
6184
  }
6185
6185
  return e.helperText = l || c, e.errorText = l, e;
6186
6186
  }
@@ -6282,7 +6282,7 @@ class oA {
6282
6282
  }
6283
6283
  }
6284
6284
  }
6285
- const ct = y`
6285
+ const ct = M`
6286
6286
  fragment CreateDesignTransaction on Transaction {
6287
6287
  id
6288
6288
  bulk
@@ -6299,7 +6299,7 @@ const ct = y`
6299
6299
  workflowViewerLink
6300
6300
  workflowViewerReadOnlyLink
6301
6301
  }
6302
- `, sn = y`
6302
+ `, sn = M`
6303
6303
  ${ct}
6304
6304
  mutation CreateDesign(
6305
6305
  $name: String!
@@ -6331,7 +6331,7 @@ const ct = y`
6331
6331
  }
6332
6332
  }
6333
6333
  }
6334
- `, on = y`
6334
+ `, on = M`
6335
6335
  ${ct}
6336
6336
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
6337
6337
  designCreateMany(inputs: $inputs) {
@@ -6347,7 +6347,7 @@ const ct = y`
6347
6347
  }
6348
6348
  `, rn = async (g) => {
6349
6349
  var e;
6350
- return (e = (await N.getShadowGraphqlClient().mutate({
6350
+ return (e = (await x.getShadowGraphqlClient().mutate({
6351
6351
  mutation: sn,
6352
6352
  errorPolicy: "all",
6353
6353
  fetchPolicy: "no-cache",
@@ -6364,7 +6364,7 @@ const ct = y`
6364
6364
  })).data) == null ? void 0 : e.designCreate;
6365
6365
  }, cn = async (g) => {
6366
6366
  var e;
6367
- return (e = (await N.getShadowGraphqlClient().mutate({
6367
+ return (e = (await x.getShadowGraphqlClient().mutate({
6368
6368
  mutation: on,
6369
6369
  errorPolicy: "all",
6370
6370
  fetchPolicy: "no-cache",
@@ -6385,23 +6385,23 @@ const ct = y`
6385
6385
  const t = (n) => {
6386
6386
  const s = {};
6387
6387
  if (n.type === "Frame") {
6388
- const i = g[n.stepName], r = n.data;
6389
- if (!i || !i.image || r.hideImageInCart && e)
6388
+ const i = g[n.stepName], o = n.data;
6389
+ if (!i || !i.image || o.hideImageInCart && e)
6390
6390
  return s;
6391
6391
  s[`${n.stepTitle} image`] = i.image;
6392
6392
  }
6393
6393
  if (n.type === "Illustration") {
6394
- const i = g[n.stepName], r = n.data;
6395
- if (!i || r.hideColorsInCart && e || !i.colors)
6394
+ const i = g[n.stepName], o = n.data;
6395
+ if (!i || o.hideColorsInCart && e || !i.colors)
6396
6396
  return s;
6397
6397
  if (i.colors.length > 0) {
6398
- const o = i.colors.join(", ").toUpperCase();
6399
- s[`${n.stepTitle} colors`] = o;
6398
+ const r = i.colors.join(", ").toUpperCase();
6399
+ s[`${n.stepTitle} colors`] = r;
6400
6400
  }
6401
6401
  }
6402
6402
  if (n.type === "Module") {
6403
- const i = g[n.stepName], r = n.data;
6404
- if (!i || i.text === void 0 || i.text === null || r.hideTextInCart && e)
6403
+ const i = g[n.stepName], o = n.data;
6404
+ if (!i || i.text === void 0 || i.text === null || o.hideTextInCart && e)
6405
6405
  return s;
6406
6406
  s[`${n.stepTitle} text`] = i.text;
6407
6407
  }
@@ -6409,8 +6409,8 @@ const ct = y`
6409
6409
  const i = g[n.stepName];
6410
6410
  if (!i)
6411
6411
  return s;
6412
- const r = n.data;
6413
- (!r.hideTextInCart || !e && i.text !== void 0 && i.text !== null) && (s[`${n.stepTitle} text`] = i.text), i.color && (!r.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
6412
+ const o = n.data;
6413
+ (!o.hideTextInCart || !e && i.text !== void 0 && i.text !== null) && (s[`${n.stepTitle} text`] = i.text), i.color && (!o.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
6414
6414
  }
6415
6415
  return s;
6416
6416
  }, a = {};
@@ -6436,22 +6436,22 @@ const ct = y`
6436
6436
  };
6437
6437
  }
6438
6438
  for (const s of Object.keys(g)) {
6439
- const i = g[s], r = A.steps.find((o) => o.stepTitle === s);
6439
+ const i = g[s], o = A.steps.find((r) => r.stepTitle === s);
6440
6440
  if (i.length === 1)
6441
- a[`${r == null ? void 0 : r.stepTitle} selection`] = {
6441
+ a[`${o == null ? void 0 : o.stepTitle} selection`] = {
6442
6442
  value: i[0].name,
6443
6443
  priceModifier: i[0].priceModifier
6444
6444
  };
6445
6445
  else if (i.length > 1)
6446
- for (let o = 0; o < i.length; o++)
6447
- a[`${r == null ? void 0 : r.stepTitle} selection ${o + 1}`] = {
6448
- value: i[o].name,
6449
- priceModifier: i[o].priceModifier
6446
+ for (let r = 0; r < i.length; r++)
6447
+ a[`${o == null ? void 0 : o.stepTitle} selection ${r + 1}`] = {
6448
+ value: i[r].name,
6449
+ priceModifier: i[r].priceModifier
6450
6450
  };
6451
6451
  }
6452
6452
  return a;
6453
- }, gt = (g, A, e, t, a, n, s, i, r, o) => {
6454
- const B = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6453
+ }, gt = (g, A, e, t, a, n, s, i, o, r) => {
6454
+ const B = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6455
6455
  baseCost: e,
6456
6456
  designProductId: g.externalDesignProductId,
6457
6457
  designProductVariantId: g.externalDesignProductVariantId,
@@ -6461,14 +6461,14 @@ const ct = y`
6461
6461
  externalCartProductVariantId: g.externalCartProductVariantId,
6462
6462
  lineItemImageUrl: s || "",
6463
6463
  optionsCost: t,
6464
- processExecutionId: o,
6464
+ processExecutionId: r,
6465
6465
  transactionId: g.id,
6466
6466
  transactionOwnerId: B,
6467
6467
  weight: A.weight,
6468
6468
  workflowViewerLink: g.workflowViewerLink || "",
6469
6469
  workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
6470
6470
  };
6471
- return a && (l.metadata = a), i && (l.selectedVariants = i), r && (l.sku = r), l;
6471
+ return a && (l.metadata = a), i && (l.selectedVariants = i), o && (l.sku = o), l;
6472
6472
  }, ln = (g, A, e, t) => {
6473
6473
  const a = (A.basePrice || 0) * (g.variationsCount || 0), n = g.priceModifierTotal || 0, s = {
6474
6474
  items: {
@@ -6489,12 +6489,12 @@ const ct = y`
6489
6489
  t
6490
6490
  );
6491
6491
  }, lt = async (g, A, e, t, a, n, s, i) => {
6492
- const r = A.basePrice || 0, o = g.priceModifierTotal || 0, c = gn(t, e, void 0, n);
6492
+ const o = A.basePrice || 0, r = g.priceModifierTotal || 0, c = gn(t, e, void 0, n);
6493
6493
  return gt(
6494
6494
  g,
6495
6495
  A,
6496
- r,
6497
6496
  o,
6497
+ r,
6498
6498
  n,
6499
6499
  c,
6500
6500
  s,
@@ -6502,38 +6502,38 @@ const ct = y`
6502
6502
  a,
6503
6503
  i
6504
6504
  );
6505
- }, Bt = async (g, A, e, t, a, n, s, i, r, o) => {
6506
- var M;
6505
+ }, Bt = async (g, A, e, t, a, n, s, i, o, r) => {
6506
+ var y;
6507
6507
  await (async () => {
6508
- var S;
6509
- if (o !== void 0)
6510
- return o;
6508
+ var N;
6509
+ if (r !== void 0)
6510
+ return r;
6511
6511
  await g.outstandingRequestsPromise();
6512
- const F = await N.getShadowGraphqlClient().query({
6512
+ const F = await x.getShadowGraphqlClient().query({
6513
6513
  query: Ve,
6514
6514
  variables: { ids: [a.id] },
6515
6515
  fetchPolicy: "no-cache",
6516
6516
  errorPolicy: "all"
6517
- }), U = (S = F.data) == null ? void 0 : S.transactions[0].workflowState;
6518
- return F.errors ? (F.errors.forEach((b) => {
6519
- F.errors && console.log("Server Error:", b.message);
6520
- }), null) : U ?? null;
6517
+ }), R = (N = F.data) == null ? void 0 : N.transactions[0].workflowState;
6518
+ return F.errors ? (F.errors.forEach((L) => {
6519
+ F.errors && console.log("Server Error:", L.message);
6520
+ }), null) : R ?? null;
6521
6521
  })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(t())), await g.updateStateWithServerImmediate(t), console.log("Server state is undefined @ Workflow completion"));
6522
- const l = g.getPreviewService(), d = (M = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : M.lookAtAnimation, E = l && A.showModelOnFinishStep && !!d, C = r && $A(r, A, !0), w = r && $A(r, A, !1), Q = async (Y) => {
6522
+ const l = g.getPreviewService(), d = (y = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, E = l && A.showModelOnFinishStep && !!d, h = o && $A(o, A, !0), w = o && $A(o, A, !1), Q = async (Y) => {
6523
6523
  const F = {};
6524
- let U = 0;
6524
+ let R = 0;
6525
6525
  if (Object.keys(n).length > 0)
6526
- for (const S of Object.keys(n)) {
6527
- const b = n[S], V = A.steps.find((W) => W.stepName === S);
6528
- for (let W = 0; W < b.selections.length; ++W) {
6529
- const q = b.selections[W];
6526
+ for (const N of Object.keys(n)) {
6527
+ const L = n[N], V = A.steps.find((W) => W.stepName === N);
6528
+ for (let W = 0; W < L.selections.length; ++W) {
6529
+ const q = L.selections[W];
6530
6530
  if (V && (!Y || V.option && (V.option.variants || []).length > 1 && !V.data.hideSelectionInCart && !V.data.hideSelectionsInCart)) {
6531
- const bA = V.stepTitle;
6532
- F[bA] ? F[bA].push({
6531
+ const JA = V.stepTitle;
6532
+ F[JA] ? F[JA].push({
6533
6533
  id: q.id || "",
6534
6534
  name: q.name,
6535
6535
  priceModifier: q.priceModifier
6536
- }) : F[bA] = [
6536
+ }) : F[JA] = [
6537
6537
  {
6538
6538
  id: q.id || "",
6539
6539
  name: q.name,
@@ -6541,18 +6541,18 @@ const ct = y`
6541
6541
  }
6542
6542
  ];
6543
6543
  }
6544
- U += q.priceModifier;
6544
+ R += q.priceModifier;
6545
6545
  }
6546
6546
  }
6547
- return [F, U];
6548
- }, [h] = await Q(!0), u = Object.fromEntries(
6549
- Object.keys(h).map((Y) => [Y, h[Y].map((F) => F.id)])
6550
- ), [f] = await Q(!1), p = Object.fromEntries(
6551
- Object.keys(f).map((Y) => [
6547
+ return [F, R];
6548
+ }, [C] = await Q(!0), u = Object.fromEntries(
6549
+ Object.keys(C).map((Y) => [Y, C[Y].map((F) => F.id)])
6550
+ ), [D] = await Q(!1), p = Object.fromEntries(
6551
+ Object.keys(D).map((Y) => [
6552
6552
  Y,
6553
- f[Y].map((F) => F.id)
6553
+ D[Y].map((F) => F.id)
6554
6554
  ])
6555
- ), D = await i(E);
6555
+ ), f = await i(E);
6556
6556
  return {
6557
6557
  designDetails: (() => {
6558
6558
  const Y = {
@@ -6564,29 +6564,29 @@ const ct = y`
6564
6564
  workflowId: A.id,
6565
6565
  transactionId: a.id,
6566
6566
  useThreeDimPreview: !!E,
6567
- previewImage: D
6567
+ previewImage: f
6568
6568
  };
6569
6569
  if (w) {
6570
6570
  const F = [];
6571
- for (const [U, S] of Object.entries(w))
6572
- F.push({ key: U, value: S });
6571
+ for (const [R, N] of Object.entries(w))
6572
+ F.push({ key: R, value: N });
6573
6573
  Y.metadata = F;
6574
6574
  }
6575
6575
  if (u) {
6576
6576
  const F = [];
6577
- for (const [U, S] of Object.entries(p))
6578
- F.push({ key: U, ids: S });
6577
+ for (const [R, N] of Object.entries(p))
6578
+ F.push({ key: R, ids: N });
6579
6579
  Y.selectedVariants = F;
6580
6580
  }
6581
6581
  return Y;
6582
6582
  })(),
6583
- cartSelectionsWithPrices: h,
6584
- cartMetadata: C
6583
+ cartSelectionsWithPrices: C,
6584
+ cartMetadata: h
6585
6585
  };
6586
- }, Bn = async (g, A, e, t, a, n, s, i, r, o, c, B, l) => {
6587
- var u, f, p;
6588
- r("workflow.steps.finish.finalize.buildingLayouts");
6589
- const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await Bt(
6586
+ }, Bn = async (g, A, e, t, a, n, s, i, o, r, c, B, l) => {
6587
+ var u, D, p;
6588
+ o("workflow.steps.finish.finalize.buildingLayouts");
6589
+ const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: h } = await Bt(
6590
6590
  g,
6591
6591
  A,
6592
6592
  e,
@@ -6597,24 +6597,24 @@ const ct = y`
6597
6597
  B,
6598
6598
  l
6599
6599
  );
6600
- r("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await o(c);
6600
+ o("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await r(c);
6601
6601
  const w = await rn(d), Q = (u = w == null ? void 0 : w.transaction) == null ? void 0 : u.previewImageLink;
6602
6602
  if (!(w != null && w.transaction))
6603
6603
  throw new Error("Failed to create design");
6604
- r("workflow.steps.finish.finalize.updatingTransaction");
6605
- const h = w.transaction;
6604
+ o("workflow.steps.finish.finalize.updatingTransaction");
6605
+ const C = w.transaction;
6606
6606
  return n.bulk ? ln(
6607
- h,
6607
+ C,
6608
6608
  a,
6609
6609
  Q,
6610
- (f = w == null ? void 0 : w.processExecution) == null ? void 0 : f.id
6610
+ (D = w == null ? void 0 : w.processExecution) == null ? void 0 : D.id
6611
6611
  ) : await lt(
6612
- h,
6612
+ C,
6613
6613
  a,
6614
6614
  A,
6615
6615
  E,
6616
6616
  w == null ? void 0 : w.sku,
6617
- C,
6617
+ h,
6618
6618
  Q,
6619
6619
  (p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
6620
6620
  );
@@ -6625,16 +6625,16 @@ const ct = y`
6625
6625
  })
6626
6626
  );
6627
6627
  const t = await (async () => {
6628
- var r;
6629
- const i = await N.getShadowGraphqlClient().query({
6628
+ var o;
6629
+ const i = await x.getShadowGraphqlClient().query({
6630
6630
  query: Ve,
6631
- variables: { ids: g.map((o) => o.transaction.id) },
6631
+ variables: { ids: g.map((r) => r.transaction.id) },
6632
6632
  fetchPolicy: "no-cache",
6633
6633
  errorPolicy: "all"
6634
6634
  });
6635
- return i.errors ? (i.errors.forEach((o) => {
6636
- i.errors && console.log("Server Error:", o.message);
6637
- }), null) : (r = i.data) != null && r.transactions ? i.data.transactions.map((o) => o.workflowState ?? null) : null;
6635
+ return i.errors ? (i.errors.forEach((r) => {
6636
+ i.errors && console.log("Server Error:", r.message);
6637
+ }), null) : (o = i.data) != null && o.transactions ? i.data.transactions.map((r) => r.workflowState ?? null) : null;
6638
6638
  })(), a = await Promise.all(
6639
6639
  g.map(async (s, i) => await Bt(
6640
6640
  s.workflowManager,
@@ -6657,14 +6657,14 @@ const ct = y`
6657
6657
  return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
6658
6658
  n.map(async (s, i) => {
6659
6659
  var B;
6660
- const r = g[i], o = a[i], c = s.transaction;
6660
+ const o = g[i], r = a[i], c = s.transaction;
6661
6661
  return await lt(
6662
6662
  c,
6663
- r.product,
6664
- r.workflow,
6665
- o.cartSelectionsWithPrices,
6663
+ o.product,
6664
+ o.workflow,
6665
+ r.cartSelectionsWithPrices,
6666
6666
  s.sku,
6667
- o.cartMetadata,
6667
+ r.cartMetadata,
6668
6668
  //lineItemImageLink,
6669
6669
  void 0,
6670
6670
  (B = s.processExecution) == null ? void 0 : B.id
@@ -6693,7 +6693,7 @@ class wn {
6693
6693
  */
6694
6694
  async getSavedDesigns() {
6695
6695
  if (this.storageMethod === "Local") {
6696
- const A = x.get(this.localPersistenceKey);
6696
+ const A = S.get(this.localPersistenceKey);
6697
6697
  return A ? JSON.parse(A) : [];
6698
6698
  }
6699
6699
  throw new v("Unexpected storage method requested");
@@ -6733,7 +6733,7 @@ class wn {
6733
6733
  }
6734
6734
  async setDesigns(A) {
6735
6735
  if (this.storageMethod === "Local") {
6736
- x.set(this.localPersistenceKey, JSON.stringify(A));
6736
+ S.set(this.localPersistenceKey, JSON.stringify(A));
6737
6737
  return;
6738
6738
  }
6739
6739
  throw new v("Unexpected storage method requested");
@@ -6749,14 +6749,14 @@ class CA {
6749
6749
  ) && this.save();
6750
6750
  }, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((s, i) => {
6751
6751
  try {
6752
- n.toBlob((r) => {
6753
- if (r) {
6754
- const o = URL.createObjectURL(r);
6755
- s(o);
6752
+ n.toBlob((o) => {
6753
+ if (o) {
6754
+ const r = URL.createObjectURL(o);
6755
+ s(r);
6756
6756
  }
6757
6757
  });
6758
- } catch (r) {
6759
- i(r);
6758
+ } catch (o) {
6759
+ i(o);
6760
6760
  }
6761
6761
  }), !e.workflow)
6762
6762
  throw new Error("No Workflow ID provided.");
@@ -6785,11 +6785,11 @@ class CA {
6785
6785
  e.isReloadedTransaction
6786
6786
  ), this.workflowManager.addSelectionCallback((n) => {
6787
6787
  const s = n.traversableScenes.map((i) => {
6788
- const r = i.renderableSteps.map((o) => o.stepName);
6788
+ const o = i.renderableSteps.map((r) => r.stepName);
6789
6789
  return {
6790
6790
  id: i.name,
6791
6791
  title: i.title,
6792
- renderableSteps: r
6792
+ renderableSteps: o
6793
6793
  };
6794
6794
  });
6795
6795
  this.renderableScenes = s, this.renderableSceneCallbacks.forEach((i) => i(s));
@@ -6808,7 +6808,7 @@ class CA {
6808
6808
  return this.workflowManager;
6809
6809
  }
6810
6810
  async updateVariationRecords(A) {
6811
- await N.getShadowGraphqlClient().mutate({
6811
+ await x.getShadowGraphqlClient().mutate({
6812
6812
  mutation: da,
6813
6813
  variables: {
6814
6814
  transactionId: this.workflowManager.getTransaction().id,
@@ -6824,8 +6824,8 @@ class CA {
6824
6824
  });
6825
6825
  }
6826
6826
  async createPreviewImage(A, e) {
6827
- var h, u;
6828
- const t = this.workflowManager.getWorkflow(), a = (h = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : h.lookAtAnimation;
6827
+ var C, u;
6828
+ const t = this.workflowManager.getWorkflow(), a = (C = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : C.lookAtAnimation;
6829
6829
  if (A) {
6830
6830
  if (!a)
6831
6831
  throw new Error("Failed to generate cart preview image!");
@@ -6833,9 +6833,9 @@ class CA {
6833
6833
  }
6834
6834
  let n = 2048;
6835
6835
  e && e <= 2048 && (n = e);
6836
- const s = yA(n, n), i = this.commandContext.getAllLayouts(), r = t.defaultPreviewPanelIndex || 0, o = t.panels[r], c = i.find((f) => {
6836
+ const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((D) => {
6837
6837
  var p;
6838
- return ((p = f.layoutState) == null ? void 0 : p.layout.panelId) === (o == null ? void 0 : o.name);
6838
+ return ((p = D.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6839
6839
  }) || i[0], B = c.layoutState.layout.previewRegion ? {
6840
6840
  x: c.layoutState.layout.previewRegion.left,
6841
6841
  y: c.layoutState.layout.previewRegion.top,
@@ -6854,8 +6854,8 @@ class CA {
6854
6854
  purpose: Se.Print,
6855
6855
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
6856
6856
  }
6857
- }), C = xe(E);
6858
- await (await Ge.from(d, C, {
6857
+ }), h = xe(E);
6858
+ await (await Ge.from(d, h, {
6859
6859
  anonymousCrossOrigin: !0,
6860
6860
  ignoreDimensions: !1,
6861
6861
  createCanvas: yA,
@@ -6931,7 +6931,7 @@ class CA {
6931
6931
  }
6932
6932
  async assignCustomerDetails(A) {
6933
6933
  var a, n, s;
6934
- const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
6934
+ const t = (s = (n = (a = (await x.getShadowGraphqlClient().mutate({
6935
6935
  mutation: rt,
6936
6936
  variables: {
6937
6937
  id: this.getWorkflowManager().getTransaction().id,
@@ -6940,14 +6940,14 @@ class CA {
6940
6940
  }
6941
6941
  })).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : n.stakeholders) == null ? void 0 : s.find(
6942
6942
  (i) => {
6943
- var r;
6944
- return ((r = i.customer) == null ? void 0 : r.emailAddress) === A.emailAddress;
6943
+ var o;
6944
+ return ((o = i.customer) == null ? void 0 : o.emailAddress) === A.emailAddress;
6945
6945
  }
6946
6946
  );
6947
6947
  if (t != null && t.customer) {
6948
6948
  this.getWorkflowManager().setTransactionCustomer(t.customer);
6949
- const i = x.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6950
- i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), x.setMap("transactionCustomerIds", i);
6949
+ const i = S.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6950
+ i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), S.setMap("transactionCustomerIds", i);
6951
6951
  }
6952
6952
  }
6953
6953
  attachRenderableSceneListener(A) {
@@ -6961,10 +6961,10 @@ class CA {
6961
6961
  throw new v("State undefined!");
6962
6962
  const a = {
6963
6963
  title: await (async () => {
6964
- var r;
6964
+ var o;
6965
6965
  if (A)
6966
6966
  return A;
6967
- const n = this.getWorkflowManager().getTransaction().id, i = (r = (await zA.getSavedDesigns()).find((o) => o.transactionId === n)) == null ? void 0 : r.title;
6967
+ const n = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
6968
6968
  return i || "My design";
6969
6969
  })(),
6970
6970
  thumbnail: await this.createPreviewImage(!1, 256),
@@ -7017,13 +7017,13 @@ class CA {
7017
7017
  var a;
7018
7018
  const A = /* @__PURE__ */ new Map(), e = this.getWorkflowManager().getWorkflowMetadata(), t = this.getWorkflowManager().getWorkflowSelections();
7019
7019
  return Object.keys(e).forEach((n) => {
7020
- const s = this.workflowManager.getWorkflow().steps.find((r) => r.stepName === n);
7020
+ const s = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
7021
7021
  if (!s)
7022
7022
  return;
7023
7023
  A.has(s.stepTitle) || A.set(s.stepTitle, {});
7024
7024
  const i = e[n];
7025
- Object.keys(i).forEach((r) => {
7026
- A.get(s.stepTitle)[r] = i[r];
7025
+ Object.keys(i).forEach((o) => {
7026
+ A.get(s.stepTitle)[o] = i[o];
7027
7027
  });
7028
7028
  }), (a = Object.keys(t)) == null || a.forEach((n) => {
7029
7029
  const s = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === n);
@@ -7046,16 +7046,16 @@ const En = [
7046
7046
  ], hn = async (g, A, e) => {
7047
7047
  const t = A.data, a = e.data.baseUrl, n = t.assetUrl.replace("localhost", "localstack"), s = a.slice(0, 4) === "http" ? "" : "https://", i = new URL(s + a);
7048
7048
  i.searchParams.append("video", he(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
7049
- const r = i.toString(), c = `data:image/svg+xml;base64,${he(await be(r, { type: "svg" }))}`, B = (d) => {
7049
+ const o = i.toString(), c = `data:image/svg+xml;base64,${he(await Je(o, { type: "svg" }))}`, B = (d) => {
7050
7050
  const E = g.find((w) => w.panelId === d.panelId);
7051
7051
  if (!E)
7052
- throw new L(d);
7053
- const C = k();
7052
+ throw new T(d);
7053
+ const h = k();
7054
7054
  return new J(
7055
7055
  {
7056
- id: C,
7056
+ id: h,
7057
7057
  src: c,
7058
- type: H.Image,
7058
+ type: U.Image,
7059
7059
  y: d.top,
7060
7060
  x: d.left,
7061
7061
  width: d.width,
@@ -7075,17 +7075,17 @@ const En = [
7075
7075
  try {
7076
7076
  const i = Rt(a, t.option);
7077
7077
  i && (A[t.stepName] = { selectedVariants: [i] });
7078
- const r = async (o) => {
7079
- var C;
7078
+ const o = async (r) => {
7079
+ var h;
7080
7080
  const c = await Pt(
7081
- o || {
7081
+ r || {
7082
7082
  width: 1,
7083
7083
  height: 1
7084
7084
  },
7085
- (C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
7086
- ), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === o.panelId);
7085
+ (h = i == null ? void 0 : i.asset) == null ? void 0 : h.fileLink
7086
+ ), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === r.panelId);
7087
7087
  if (!d)
7088
- throw new L(o);
7088
+ throw new T(r);
7089
7089
  const E = ee(s, B, {
7090
7090
  scale: a.scale,
7091
7091
  left: a.x,
@@ -7098,20 +7098,20 @@ const En = [
7098
7098
  path: B.path,
7099
7099
  dataWidth: B.width,
7100
7100
  dataHeight: B.height,
7101
- type: H.Frame,
7101
+ type: U.Frame,
7102
7102
  focalBlur: t.data.focalBlur,
7103
7103
  focalBlurStrength: t.data.focalBlurStrength,
7104
7104
  focalBlurRadius: t.data.focalBlurRadius,
7105
7105
  forceImageCover: t.data.forceImageCover,
7106
- x: o.left,
7107
- y: o.top,
7108
- width: o.width,
7109
- height: o.height,
7110
- layer: o.layer,
7111
- layerIndex: o.layerIndex,
7112
- rotation: o.rotation,
7113
- scaleX: o.width / B.width,
7114
- scaleY: o.height / B.height,
7106
+ x: r.left,
7107
+ y: r.top,
7108
+ width: r.width,
7109
+ height: r.height,
7110
+ layer: r.layer,
7111
+ layerIndex: r.layerIndex,
7112
+ rotation: r.rotation,
7113
+ scaleX: r.width / B.width,
7114
+ scaleY: r.height / B.height,
7115
7115
  pattern: void 0
7116
7116
  },
7117
7117
  d
@@ -7119,12 +7119,12 @@ const En = [
7119
7119
  new Me(l, s, E)
7120
7120
  ];
7121
7121
  };
7122
- return (await Promise.all(t.data.regions.map((o) => r(o)))).flat();
7122
+ return (await Promise.all(t.data.regions.map((r) => o(r)))).flat();
7123
7123
  } catch (i) {
7124
7124
  return console.error(i), [];
7125
7125
  }
7126
7126
  }, Qn = async (g, A, e, t) => {
7127
- var p, D;
7127
+ var p, f;
7128
7128
  const a = e.data, n = t.option;
7129
7129
  if (!n)
7130
7130
  return console.error(`No option for step ${t.stepName}.`), [];
@@ -7134,47 +7134,47 @@ const En = [
7134
7134
  if (!s.asset)
7135
7135
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
7136
7136
  A[t.stepName] = { selectedVariants: [s] };
7137
- const i = (D = s.asset) == null ? void 0 : D.fileLink;
7137
+ const i = (f = s.asset) == null ? void 0 : f.fileLink;
7138
7138
  if (!i)
7139
7139
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7140
- const r = await Z(i, !0), o = /<svg.*?<\/svg>/s, c = r.match(o) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", E = Pe().parseFromString(B, "image/svg+xml").firstElementChild;
7140
+ const o = await Z(i, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", E = Pe().parseFromString(B, "image/svg+xml").firstElementChild;
7141
7141
  if (!E)
7142
7142
  return console.error("Failed to read SVG."), [];
7143
7143
  He(E);
7144
- const C = {};
7144
+ const h = {};
7145
7145
  Ht(E, (m) => {
7146
7146
  En.includes(m.tagName) && !m.attributes.getNamedItem("fill") && m.setAttribute("fill", "#000000");
7147
- const M = m.attributes.getNamedItem("fill");
7148
- if (M && M.value !== "none") {
7149
- const F = M.value, S = `spiff-fill-${F.replace(/\W/g, "")}`;
7150
- m.classList.add(S), C[S] = { browserValue: F };
7147
+ const y = m.attributes.getNamedItem("fill");
7148
+ if (y && y.value !== "none") {
7149
+ const F = y.value, N = `spiff-fill-${F.replace(/\W/g, "")}`;
7150
+ m.classList.add(N), h[N] = { browserValue: F };
7151
7151
  }
7152
7152
  const Y = m.attributes.getNamedItem("stroke");
7153
7153
  if (Y && Y.value !== "none") {
7154
- const F = Y.value, S = `spiff-stroke-${F.replace(/\W/g, "")}`;
7155
- m.classList.add(S), C[S] = { browserValue: F };
7154
+ const F = Y.value, N = `spiff-stroke-${F.replace(/\W/g, "")}`;
7155
+ m.classList.add(N), h[N] = { browserValue: F };
7156
7156
  }
7157
7157
  });
7158
- const Q = Ue().serializeToString(E), h = a.colors;
7159
- if (h) {
7160
- for (const [m, M] of Object.entries(C))
7161
- for (const Y of Object.keys(h))
7162
- if (M.browserValue === Y) {
7163
- C[m] = { browserValue: h[Y] };
7158
+ const Q = Ue().serializeToString(E), C = a.colors;
7159
+ if (C) {
7160
+ for (const [m, y] of Object.entries(h))
7161
+ for (const Y of Object.keys(C))
7162
+ if (y.browserValue === Y) {
7163
+ h[m] = { browserValue: C[Y] };
7164
7164
  break;
7165
7165
  }
7166
7166
  }
7167
7167
  const u = (m) => {
7168
- const M = g.find((F) => F.panelId === m.panelId);
7169
- if (!M)
7170
- throw new L(m);
7168
+ const y = g.find((F) => F.panelId === m.panelId);
7169
+ if (!y)
7170
+ throw new T(m);
7171
7171
  const Y = k();
7172
7172
  return new J(
7173
7173
  {
7174
- colors: C,
7174
+ colors: h,
7175
7175
  id: Y,
7176
7176
  svg: Q,
7177
- type: H.Illustration,
7177
+ type: U.Illustration,
7178
7178
  y: m.top,
7179
7179
  x: m.left,
7180
7180
  rotation: m.rotation,
@@ -7184,35 +7184,35 @@ const En = [
7184
7184
  layerIndex: m.layerIndex,
7185
7185
  immutable: m.immutable
7186
7186
  },
7187
- M
7187
+ y
7188
7188
  );
7189
- }, f = t.data.regions;
7189
+ }, D = t.data.regions;
7190
7190
  try {
7191
- return f.map(u);
7191
+ return D.map(u);
7192
7192
  } catch (m) {
7193
7193
  return console.error(m), [];
7194
7194
  }
7195
7195
  }, un = async (g, A, e) => {
7196
- const t = await it(e.data.module), a = A.data, n = (i, r) => {
7197
- const o = g.find((B) => B.panelId === r.panelId);
7198
- if (!o)
7199
- throw new L(r);
7196
+ const t = await it(e.data.module), a = A.data, n = (i, o) => {
7197
+ const r = g.find((B) => B.panelId === o.panelId);
7198
+ if (!r)
7199
+ throw new T(o);
7200
7200
  const c = k();
7201
7201
  return new J(
7202
7202
  {
7203
7203
  colors: {},
7204
7204
  id: c,
7205
7205
  svg: i,
7206
- type: H.Illustration,
7207
- y: r.top,
7208
- x: r.left,
7209
- rotation: r.rotation,
7210
- width: r.width,
7211
- height: r.height,
7212
- layer: r.layer,
7213
- layerIndex: r.layerIndex
7206
+ type: U.Illustration,
7207
+ y: o.top,
7208
+ x: o.left,
7209
+ rotation: o.rotation,
7210
+ width: o.width,
7211
+ height: o.height,
7212
+ layer: o.layer,
7213
+ layerIndex: o.layerIndex
7214
7214
  },
7215
- o
7215
+ r
7216
7216
  );
7217
7217
  }, s = e.data.regions;
7218
7218
  try {
@@ -7236,16 +7236,16 @@ const En = [
7236
7236
  const i = (B = s.asset) == null ? void 0 : B.fileLink;
7237
7237
  if (!i)
7238
7238
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
7239
- const r = (l) => {
7240
- const d = g.find((C) => C.panelId === l.panelId);
7239
+ const o = (l) => {
7240
+ const d = g.find((h) => h.panelId === l.panelId);
7241
7241
  if (!d)
7242
- throw new L(l);
7242
+ throw new T(l);
7243
7243
  const E = k();
7244
7244
  return new J(
7245
7245
  {
7246
7246
  id: E,
7247
7247
  src: i,
7248
- type: H.Image,
7248
+ type: U.Image,
7249
7249
  y: l.top,
7250
7250
  x: l.left,
7251
7251
  rotation: l.rotation,
@@ -7258,25 +7258,25 @@ const En = [
7258
7258
  },
7259
7259
  d
7260
7260
  );
7261
- }, o = t.data.regions;
7261
+ }, r = t.data.regions;
7262
7262
  try {
7263
- return o.map(r);
7263
+ return r.map(o);
7264
7264
  } catch (l) {
7265
7265
  return console.error(l), [];
7266
7266
  }
7267
7267
  }, pn = async (g, A, e, t) => {
7268
- var o;
7268
+ var r;
7269
7269
  const a = e.data, n = t.option;
7270
7270
  if (!n)
7271
7271
  return console.error(`No option for step ${t.stepName}.`), [];
7272
- const s = ((o = n.variants) == null ? void 0 : o.find((c) => c.id === a.colorVariantId)) || UA(n);
7272
+ const s = ((r = n.variants) == null ? void 0 : r.find((c) => c.id === a.colorVariantId)) || UA(n);
7273
7273
  if (!s)
7274
7274
  return console.error(`No variant with ID: ${a.colorVariantId}`), [];
7275
7275
  A[t.stepName] = { selectedVariants: [s] };
7276
7276
  const i = (c) => {
7277
7277
  const B = g.find((w) => w.panelId === c.panelId);
7278
7278
  if (!B)
7279
- throw new L(c);
7279
+ throw new T(c);
7280
7280
  const l = `
7281
7281
  <svg
7282
7282
  xmlns="http://www.w3.org/2000/svg"
@@ -7297,13 +7297,13 @@ const En = [
7297
7297
  fill="${s == null ? void 0 : s.color}"
7298
7298
  />
7299
7299
  </svg>
7300
- `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = k();
7300
+ `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, h = k();
7301
7301
  return new J(
7302
7302
  {
7303
7303
  colors: E,
7304
- id: C,
7304
+ id: h,
7305
7305
  svg: l,
7306
- type: H.Illustration,
7306
+ type: U.Illustration,
7307
7307
  y: c.top,
7308
7308
  x: c.left,
7309
7309
  rotation: c.rotation,
@@ -7315,61 +7315,61 @@ const En = [
7315
7315
  },
7316
7316
  B
7317
7317
  );
7318
- }, r = t.data.regions;
7318
+ }, o = t.data.regions;
7319
7319
  try {
7320
- return r.map(i);
7320
+ return o.map(i);
7321
7321
  } catch (c) {
7322
7322
  return console.error(c), [];
7323
7323
  }
7324
7324
  }, In = async (g, A, e) => {
7325
7325
  const t = [], n = (() => {
7326
- var o, c;
7327
- return A.type === I.ProductOverlay ? e || ((o = A.data.asset) == null ? void 0 : o.fileLink) || "" : ((c = A.data.asset) == null ? void 0 : c.fileLink) || "";
7328
- })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), r = A.data.regions;
7326
+ var r, c;
7327
+ return A.type === I.ProductOverlay ? e || ((r = A.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = A.data.asset) == null ? void 0 : c.fileLink) || "";
7328
+ })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? U.Image : n.endsWith(".svg") ? U.Illustration : U.Illustration)(), o = A.data.regions;
7329
7329
  if (i === "image")
7330
7330
  try {
7331
- r.forEach((o) => {
7332
- const c = g.find((l) => l.panelId === o.panelId);
7331
+ o.forEach((r) => {
7332
+ const c = g.find((l) => l.panelId === r.panelId);
7333
7333
  if (!c)
7334
- throw new L(o);
7334
+ throw new T(r);
7335
7335
  const B = {
7336
7336
  id: k(),
7337
7337
  src: n,
7338
7338
  type: i,
7339
- y: o.top,
7340
- x: o.left,
7341
- width: o.width,
7342
- height: o.height,
7343
- layer: o.layer,
7344
- layerIndex: o.layerIndex,
7339
+ y: r.top,
7340
+ x: r.left,
7341
+ width: r.width,
7342
+ height: r.height,
7343
+ layer: r.layer,
7344
+ layerIndex: r.layerIndex,
7345
7345
  productOverlay: A.type === I.ProductOverlay ? !0 : void 0,
7346
7346
  scaleX: 1,
7347
7347
  scaleY: 1,
7348
- rotation: o.rotation,
7348
+ rotation: r.rotation,
7349
7349
  excludeFromExport: A.data.excludeFromPrint,
7350
7350
  preserveAspectRatio: "none"
7351
7351
  };
7352
7352
  t.push(new J(B, c));
7353
7353
  });
7354
- } catch (o) {
7355
- console.error(o);
7354
+ } catch (r) {
7355
+ console.error(r);
7356
7356
  }
7357
7357
  else {
7358
- const o = await Z(n, !0), c = (B) => {
7358
+ const r = await Z(n, !0), c = (B) => {
7359
7359
  const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], E = (d == null ? void 0 : d.length) > 0 ? d[0] : "", Q = Pe().parseFromString(E, "image/svg+xml").firstElementChild;
7360
7360
  if (!Q)
7361
7361
  throw new rA("Failed to read SVG.");
7362
7362
  return He(Q), Ue().serializeToString(Q);
7363
7363
  };
7364
- r.forEach((B) => {
7364
+ o.forEach((B) => {
7365
7365
  const l = g.find((E) => E.panelId === B.panelId);
7366
7366
  if (!l)
7367
- throw new L(B);
7367
+ throw new T(B);
7368
7368
  const d = {
7369
7369
  id: k(),
7370
7370
  src: n,
7371
7371
  asset_key: n,
7372
- svg: c(o),
7372
+ svg: c(r),
7373
7373
  colors: {},
7374
7374
  type: i,
7375
7375
  y: B.top,
@@ -7389,20 +7389,20 @@ const En = [
7389
7389
  }
7390
7390
  return t;
7391
7391
  }, Dn = async (g, A, e, t) => {
7392
- const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", r = () => {
7392
+ const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", o = () => {
7393
7393
  var u;
7394
7394
  const w = t.option;
7395
7395
  if (!w)
7396
7396
  return;
7397
- const Q = ((u = w.variants) == null ? void 0 : u.find((f) => f.id === n.fontVariantId)) || UA(w);
7397
+ const Q = ((u = w.variants) == null ? void 0 : u.find((D) => D.id === n.fontVariantId)) || UA(w);
7398
7398
  if (!Q || !Q.asset)
7399
7399
  return;
7400
7400
  A[t.stepName] = { selectedVariants: [Q] };
7401
- const h = Q.asset.fileLink;
7402
- if (h)
7403
- return h;
7401
+ const C = Q.asset.fileLink;
7402
+ if (C)
7403
+ return C;
7404
7404
  }, c = await (async () => {
7405
- const w = r();
7405
+ const w = o();
7406
7406
  if (!w)
7407
7407
  return;
7408
7408
  const Q = await te(w);
@@ -7417,14 +7417,14 @@ const En = [
7417
7417
  const Q = w.colorOption;
7418
7418
  if (!Q)
7419
7419
  return;
7420
- const h = z.getDefaultVariant(Q);
7421
- return h == null ? void 0 : h.color;
7422
- }, E = n.color || await d(t.data), C = t.data.regions;
7423
- for (const w of C) {
7420
+ const C = z.getDefaultVariant(Q);
7421
+ return C == null ? void 0 : C.color;
7422
+ }, E = n.color || await d(t.data), h = t.data.regions;
7423
+ for (const w of h) {
7424
7424
  const Q = g.find((u) => u.panelId === w.panelId);
7425
7425
  if (!Q)
7426
7426
  continue;
7427
- const h = {
7427
+ const C = {
7428
7428
  stepName: e.name,
7429
7429
  id: k(),
7430
7430
  align: i(t.data),
@@ -7438,7 +7438,7 @@ const En = [
7438
7438
  paths: t.data.paths,
7439
7439
  rotation: w.rotation,
7440
7440
  text: l,
7441
- type: H.Textbox,
7441
+ type: U.Textbox,
7442
7442
  vertical: t.data.vertical,
7443
7443
  verticalAlign: t.data.verticalAlign || "middle",
7444
7444
  width: w.width,
@@ -7446,7 +7446,7 @@ const En = [
7446
7446
  y: w.top
7447
7447
  };
7448
7448
  if (c) {
7449
- const [u, f] = IA(
7449
+ const [u, D] = IA(
7450
7450
  t.data.size || s,
7451
7451
  c,
7452
7452
  w,
@@ -7465,16 +7465,16 @@ const En = [
7465
7465
  a.push(
7466
7466
  new J(
7467
7467
  {
7468
- ...h,
7468
+ ...C,
7469
7469
  fontSize: u,
7470
- text: h.curved ? h.text : (f || []).join(`
7470
+ text: C.curved ? C.text : (D || []).join(`
7471
7471
  `)
7472
7472
  },
7473
7473
  Q
7474
7474
  )
7475
7475
  );
7476
7476
  } else
7477
- a.push(new J(h, Q));
7477
+ a.push(new J(C, Q));
7478
7478
  }
7479
7479
  return a;
7480
7480
  }, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
@@ -7489,7 +7489,7 @@ const En = [
7489
7489
  }) : !0, Fn = async (g, A, e, t) => {
7490
7490
  const a = [], n = {};
7491
7491
  for (const s of g) {
7492
- const i = A.steps.find((r) => r.stepName === s.name);
7492
+ const i = A.steps.find((o) => o.stepName === s.name);
7493
7493
  if (i)
7494
7494
  switch (i.type) {
7495
7495
  case I.DigitalContent:
@@ -7637,8 +7637,8 @@ class yn {
7637
7637
  }
7638
7638
  }
7639
7639
  class Yn extends Xe {
7640
- constructor(A, e, t, a, n, s, i, r) {
7641
- super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.variationRecord = i, this.productOverlayImageUrl = r;
7640
+ constructor(A, e, t, a, n, s, i, o) {
7641
+ super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.variationRecord = i, this.productOverlayImageUrl = o;
7642
7642
  }
7643
7643
  /**
7644
7644
  * Returns the resolution expected for generated textures.
@@ -7678,33 +7678,33 @@ class Yn extends Xe {
7678
7678
  return;
7679
7679
  const e = A.layoutState.elements || [];
7680
7680
  if (this.variationRecord) {
7681
- const l = this.variationRecord.values.map((C) => ({
7682
- stepName: C.stepName,
7683
- stepAspectType: C.aspect,
7684
- value: C.value
7681
+ const l = this.variationRecord.values.map((h) => ({
7682
+ stepName: h.stepName,
7683
+ stepAspectType: h.aspect,
7684
+ value: h.value
7685
7685
  })), d = await xn(
7686
7686
  Sn(l, this.workflow),
7687
7687
  this.workflow,
7688
- this.layouts.map((C) => C.layoutState.layout),
7688
+ this.layouts.map((h) => h.layoutState.layout),
7689
7689
  this.productOverlayImageUrl
7690
7690
  ), E = d == null ? void 0 : d.layouts[A.layoutState.layout.id];
7691
- ((E == null ? void 0 : E.elements) || []).forEach((C) => {
7692
- const w = e.find((Q) => Q.stepName === C.stepName);
7693
- w && w.type === H.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
7691
+ ((E == null ? void 0 : E.elements) || []).forEach((h) => {
7692
+ const w = e.find((Q) => Q.stepName === h.stepName);
7693
+ w && w.type === U.Textbox ? (w.text = h.text, w.fontSize = h.fontSize) : e.push(h);
7694
7694
  }), Gt(e);
7695
7695
  }
7696
7696
  const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
7697
- let i, r;
7697
+ let i, o;
7698
7698
  if (this.nonPOTSupport) {
7699
7699
  const l = n / s;
7700
- t / a < l ? (i = n, r = a * (n / t)) : (i = t * (s / a), r = s);
7701
- const E = this.resizeFit({ width: i, height: r });
7702
- i = E.width, r = E.height;
7700
+ t / a < l ? (i = n, o = a * (n / t)) : (i = t * (s / a), o = s);
7701
+ const E = this.resizeFit({ width: i, height: o });
7702
+ i = E.width, o = E.height;
7703
7703
  } else
7704
- i = this.getDynamicTextureResolution().width, r = this.getDynamicTextureResolution().height;
7705
- const o = Ye(A.layoutState.layout, e, {
7704
+ i = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
7705
+ const r = Ye(A.layoutState.layout, e, {
7706
7706
  renderingConfiguration: { purpose: Se.ThreeD }
7707
- }), c = xe(o), B = await Ge.from(this.ctx, c, {
7707
+ }), c = xe(r), B = await Ge.from(this.ctx, c, {
7708
7708
  anonymousCrossOrigin: !0,
7709
7709
  ignoreDimensions: !this.nonPOTSupport,
7710
7710
  ignoreAnimation: !0,
@@ -7716,7 +7716,7 @@ class Yn extends Xe {
7716
7716
  DOMParser: Re(),
7717
7717
  fetch: _A
7718
7718
  });
7719
- B.resize(i, r), await B.render(), this.onRender();
7719
+ B.resize(i, o), await B.render(), this.onRender();
7720
7720
  }
7721
7721
  }
7722
7722
  const Sn = (g, A) => {
@@ -7735,10 +7735,10 @@ const Sn = (g, A) => {
7735
7735
  serializableWorkflow: { steps: [] },
7736
7736
  layouts: {}
7737
7737
  };
7738
- a = new G(e.map((r) => new Ut(r))).apply(a);
7738
+ a = new G(e.map((o) => new Ut(o))).apply(a);
7739
7739
  const s = await Fn(g, A, e, t);
7740
7740
  return new G(s).apply(a);
7741
- }, Nn = y`
7741
+ }, Nn = M`
7742
7742
  fragment ProductFields on Product {
7743
7743
  id
7744
7744
  basePrice
@@ -7773,7 +7773,7 @@ const Sn = (g, A) => {
7773
7773
  name
7774
7774
  }
7775
7775
  }
7776
- `, Rn = y`
7776
+ `, Rn = M`
7777
7777
  ${Nn}
7778
7778
  fragment ProductCollectionProductFields on ProductCollectionProduct {
7779
7779
  id
@@ -7783,7 +7783,7 @@ const Sn = (g, A) => {
7783
7783
  ...ProductFields
7784
7784
  }
7785
7785
  }
7786
- `, dt = y`
7786
+ `, dt = M`
7787
7787
  ${Rn}
7788
7788
  fragment ProductCollectionFields on ProductCollection {
7789
7789
  id
@@ -7830,7 +7830,7 @@ const Sn = (g, A) => {
7830
7830
  }
7831
7831
  }
7832
7832
  }
7833
- `, Pn = y`
7833
+ `, Pn = M`
7834
7834
  ${dt}
7835
7835
  query GetBundle($id: String!) {
7836
7836
  bundles(ids: [$id]) {
@@ -7852,7 +7852,7 @@ const Sn = (g, A) => {
7852
7852
  }
7853
7853
  }
7854
7854
  }
7855
- `, Hn = y`
7855
+ `, Hn = M`
7856
7856
  query GetBundleStakeholders($id: String!) {
7857
7857
  bundles(ids: [$id]) {
7858
7858
  id
@@ -7872,7 +7872,7 @@ const Sn = (g, A) => {
7872
7872
  }
7873
7873
  }
7874
7874
  }
7875
- `, Un = y`
7875
+ `, Un = M`
7876
7876
  query GetBundlesForCustomer($id: String!) {
7877
7877
  customers(ids: [$id]) {
7878
7878
  bundleStakeholders {
@@ -7893,7 +7893,7 @@ const Sn = (g, A) => {
7893
7893
  }
7894
7894
  }
7895
7895
  }
7896
- `, Gn = y`
7896
+ `, Gn = M`
7897
7897
  ${dt}
7898
7898
  mutation CreateBundle($collectionId: String) {
7899
7899
  bundleCreate(collectionId: $collectionId) {
@@ -7912,25 +7912,25 @@ const Sn = (g, A) => {
7912
7912
  }
7913
7913
  }
7914
7914
  }
7915
- `, vn = y`
7915
+ `, vn = M`
7916
7916
  mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
7917
7917
  bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
7918
7918
  id
7919
7919
  }
7920
7920
  }
7921
- `, kn = y`
7921
+ `, kn = M`
7922
7922
  mutation BundleAddTransaction($id: String!, $transactionId: String!) {
7923
7923
  bundleAddTransaction(id: $id, transactionId: $transactionId) {
7924
7924
  id
7925
7925
  }
7926
7926
  }
7927
- `, bn = y`
7927
+ `, Jn = M`
7928
7928
  mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
7929
7929
  bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
7930
7930
  id
7931
7931
  }
7932
7932
  }
7933
- `, Jn = y`
7933
+ `, bn = M`
7934
7934
  mutation BundleRemoveTransaction(
7935
7935
  $id: String!
7936
7936
  $transactionId: String!
@@ -7945,7 +7945,7 @@ const Sn = (g, A) => {
7945
7945
  id
7946
7946
  }
7947
7947
  }
7948
- `, Tn = y`
7948
+ `, Tn = M`
7949
7949
  mutation BundleRemoveTransactions(
7950
7950
  $id: String!
7951
7951
  $transactionIds: [String!]!
@@ -7960,7 +7960,7 @@ const Sn = (g, A) => {
7960
7960
  id
7961
7961
  }
7962
7962
  }
7963
- `, Ln = y`
7963
+ `, Ln = M`
7964
7964
  mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
7965
7965
  bundleAddStakeholder(id: $id, details: $details, type: $type) {
7966
7966
  id
@@ -7980,7 +7980,7 @@ const Sn = (g, A) => {
7980
7980
  }
7981
7981
  }
7982
7982
  }
7983
- `, On = y`
7983
+ `, On = M`
7984
7984
  mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
7985
7985
  bundleUpdateStakeholders(id: $id, input: $input) {
7986
7986
  id
@@ -8000,7 +8000,7 @@ const Sn = (g, A) => {
8000
8000
  }
8001
8001
  }
8002
8002
  }
8003
- `, zn = y`
8003
+ `, zn = M`
8004
8004
  mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
8005
8005
  bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
8006
8006
  id
@@ -8105,8 +8105,8 @@ class ge {
8105
8105
  var s;
8106
8106
  return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
8107
8107
  (i) => {
8108
- var r, o;
8109
- return i.globalPropertyConfigurationId === ((o = (r = this.bundle.getProductCollection()) == null ? void 0 : r.getResource().globalPropertyConfiguration) == null ? void 0 : o.id) && i.aspectName === this.property.name;
8108
+ var o, r;
8109
+ return i.globalPropertyConfigurationId === ((r = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : r.id) && i.aspectName === this.property.name;
8110
8110
  }
8111
8111
  );
8112
8112
  })
@@ -8132,7 +8132,7 @@ class jn extends ge {
8132
8132
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8133
8133
  if (!e)
8134
8134
  return Promise.resolve();
8135
- const t = await T.getLocalOrFromServer(e);
8135
+ const t = await b.getLocalOrFromServer(e);
8136
8136
  return t ? this.applyImageSelection(t, A) : Promise.resolve();
8137
8137
  }
8138
8138
  async applyImageSelection(A, e) {
@@ -8252,7 +8252,7 @@ class Wn extends wt {
8252
8252
  return this.getSharedSteps()[0].getCustomColor();
8253
8253
  }
8254
8254
  }
8255
- const Xn = y`
8255
+ const Xn = M`
8256
8256
  mutation CreateGlobalPropertyState($bundleId: String!) {
8257
8257
  globalPropertyStateCreate(bundleId: $bundleId) {
8258
8258
  id
@@ -8262,7 +8262,7 @@ const Xn = y`
8262
8262
  }
8263
8263
  }
8264
8264
  }
8265
- `, qn = y`
8265
+ `, qn = M`
8266
8266
  mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
8267
8267
  globalPropertyStateUpdate(id: $id, aspects: $aspects) {
8268
8268
  id
@@ -8272,7 +8272,7 @@ const Xn = y`
8272
8272
  }
8273
8273
  }
8274
8274
  }
8275
- `, Zn = y`
8275
+ `, Zn = M`
8276
8276
  query GetGlobalPropertyState($bundleId: String!) {
8277
8277
  globalPropertyState(bundleId: $bundleId) {
8278
8278
  id
@@ -8312,7 +8312,7 @@ class $n {
8312
8312
  var e;
8313
8313
  if (!this.globalPropertyState)
8314
8314
  throw new Error("Global property state not initialized");
8315
- const A = await N.getShadowGraphqlClient().mutate({
8315
+ const A = await x.getShadowGraphqlClient().mutate({
8316
8316
  mutation: qn,
8317
8317
  variables: {
8318
8318
  id: this.globalPropertyState.id,
@@ -8326,7 +8326,7 @@ class $n {
8326
8326
  }
8327
8327
  async getOrCreateGlobalPropertyState() {
8328
8328
  var t;
8329
- const A = await N.getShadowGraphqlClient().query({
8329
+ const A = await x.getShadowGraphqlClient().query({
8330
8330
  query: Zn,
8331
8331
  errorPolicy: "all",
8332
8332
  fetchPolicy: "no-cache",
@@ -8336,7 +8336,7 @@ class $n {
8336
8336
  });
8337
8337
  if (A.data.globalPropertyState && A.data.globalPropertyState.id)
8338
8338
  return A.data.globalPropertyState;
8339
- const e = await N.getShadowGraphqlClient().mutate({
8339
+ const e = await x.getShadowGraphqlClient().mutate({
8340
8340
  mutation: Xn,
8341
8341
  variables: {
8342
8342
  bundleId: this.bundleId
@@ -8382,7 +8382,7 @@ class _n {
8382
8382
  this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
8383
8383
  transactions: []
8384
8384
  };
8385
- const s = this.state.transactions.find((r) => r.transactionId === n);
8385
+ const s = this.state.transactions.find((o) => o.transactionId === n);
8386
8386
  s ? s.transform = e : this.state.transactions.push({
8387
8387
  transactionId: n,
8388
8388
  transform: e
@@ -8471,18 +8471,20 @@ class es {
8471
8471
  /**
8472
8472
  * A helper function for getting integrations
8473
8473
  * @param type The type of integration you want.
8474
+ * @param externalId An external integration ID to further filter by. Otherwise we return the first encountered.
8474
8475
  * @returns The integration if found. Throws an error if not found as this data is typically a neccesity.
8475
8476
  */
8476
- getIntegrationByType(A) {
8477
- const t = (this.product.integrationProducts || []).find((a) => {
8478
- var n, s;
8479
- return !!((n = a.integration) != null && n.type) && ((s = a.integration) == null ? void 0 : s.type) === A;
8477
+ getIntegrationByType(A, e) {
8478
+ const a = (this.product.integrationProducts || []).find((n) => {
8479
+ var r, c, B;
8480
+ const s = (r = n.integration) == null ? void 0 : r.type, i = ((c = n.integration) == null ? void 0 : c.type) === A, o = e ? ((B = n.integration) == null ? void 0 : B.externalIntegrationId) === e : !0;
8481
+ return s && i && o;
8480
8482
  });
8481
- if (!t)
8483
+ if (!a)
8482
8484
  throw new Error(
8483
8485
  "Failed to find requested integration type on product. This is generally due to a configuration error"
8484
8486
  );
8485
- return t;
8487
+ return a;
8486
8488
  }
8487
8489
  /**
8488
8490
  * A helper function for pulling the default workflow.
@@ -8490,7 +8492,7 @@ class es {
8490
8492
  getDefaultWorkflow() {
8491
8493
  const A = this.product.workflows || [];
8492
8494
  if (A.length === 0)
8493
- throw new P(
8495
+ throw new H(
8494
8496
  "No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
8495
8497
  );
8496
8498
  const e = this.productResource.workflowId;
@@ -8592,11 +8594,11 @@ class as {
8592
8594
  class fe {
8593
8595
  constructor(A, e, t, a) {
8594
8596
  var n, s, i;
8595
- this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((r) => [r.key, r.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new _n(e.bundleStateData), this.globalConfiguration = (s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration, this.globalPropertyStateManager = new $n(
8597
+ this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((o) => [o.key, o.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new _n(e.bundleStateData), this.globalConfiguration = (s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration, this.globalPropertyStateManager = new $n(
8596
8598
  this.id,
8597
8599
  this.checkConditionalHandlesChanged.bind(this)
8598
8600
  ), this.globalPropertyHandleService = new Kn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
8599
- ((i = e.transactions) == null ? void 0 : i.map((r) => r.id)) || [],
8601
+ ((i = e.transactions) == null ? void 0 : i.map((o) => o.id)) || [],
8600
8602
  a
8601
8603
  );
8602
8604
  }
@@ -8668,9 +8670,9 @@ class fe {
8668
8670
  throw new Error(
8669
8671
  "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8670
8672
  );
8671
- const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8672
- await N.getShadowGraphqlClient().mutate({
8673
- mutation: bn,
8673
+ const a = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8674
+ await x.getShadowGraphqlClient().mutate({
8675
+ mutation: Jn,
8674
8676
  variables: {
8675
8677
  id: this.id,
8676
8678
  transactionIds: e,
@@ -8694,8 +8696,8 @@ class fe {
8694
8696
  (i) => i.getWorkflowManager().getTransaction().id === t
8695
8697
  ))
8696
8698
  throw new Error("Unable to add transaction to bundle - Already Exists!");
8697
- const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8698
- await N.getShadowGraphqlClient().mutate({
8699
+ const s = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8700
+ await x.getShadowGraphqlClient().mutate({
8699
8701
  mutation: kn,
8700
8702
  variables: {
8701
8703
  id: this.id,
@@ -8727,8 +8729,8 @@ class fe {
8727
8729
  const a = this.workflowExperiences.find(
8728
8730
  (n) => n.getWorkflowManager().getTransaction().id === e.id
8729
8731
  );
8730
- this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
8731
- mutation: Jn,
8732
+ this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await x.getShadowGraphqlClient().mutate({
8733
+ mutation: bn,
8732
8734
  variables: {
8733
8735
  id: this.id,
8734
8736
  transactionId: e.id,
@@ -8754,7 +8756,7 @@ class fe {
8754
8756
  1
8755
8757
  )[0]
8756
8758
  );
8757
- this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
8759
+ this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
8758
8760
  mutation: Tn,
8759
8761
  variables: {
8760
8762
  id: this.id,
@@ -8812,7 +8814,7 @@ class fe {
8812
8814
  }
8813
8815
  async addStakeholder(A, e) {
8814
8816
  var n;
8815
- const t = await N.getShadowGraphqlClient().mutate({
8817
+ const t = await x.getShadowGraphqlClient().mutate({
8816
8818
  mutation: Ln,
8817
8819
  variables: {
8818
8820
  id: this.id,
@@ -8827,7 +8829,7 @@ class fe {
8827
8829
  }
8828
8830
  async updateStakeholders(A) {
8829
8831
  var a;
8830
- const e = await N.getShadowGraphqlClient().mutate({
8832
+ const e = await x.getShadowGraphqlClient().mutate({
8831
8833
  mutation: On,
8832
8834
  variables: {
8833
8835
  id: this.id,
@@ -8840,7 +8842,7 @@ class fe {
8840
8842
  this.storeStakeholderCustomers(t);
8841
8843
  }
8842
8844
  async getAllStakeholders() {
8843
- const A = await N.getShadowGraphqlClient().query({
8845
+ const A = await x.getShadowGraphqlClient().query({
8844
8846
  query: Hn,
8845
8847
  errorPolicy: "all",
8846
8848
  variables: {
@@ -8928,7 +8930,7 @@ class fe {
8928
8930
  }
8929
8931
  async updateBundle() {
8930
8932
  var e;
8931
- if (!((e = (await N.getShadowGraphqlClient().mutate({
8933
+ if (!((e = (await x.getShadowGraphqlClient().mutate({
8932
8934
  mutation: vn,
8933
8935
  variables: {
8934
8936
  id: this.id,
@@ -8940,7 +8942,7 @@ class fe {
8940
8942
  throw new Error("Bundle not found!");
8941
8943
  }
8942
8944
  async updateTransactionOrder() {
8943
- await N.getShadowGraphqlClient().mutate({
8945
+ await x.getShadowGraphqlClient().mutate({
8944
8946
  mutation: zn,
8945
8947
  variables: {
8946
8948
  id: this.id,
@@ -8971,7 +8973,7 @@ class fe {
8971
8973
  );
8972
8974
  }
8973
8975
  }
8974
- const ns = y`
8976
+ const ns = M`
8975
8977
  mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
8976
8978
  processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
8977
8979
  id
@@ -8988,7 +8990,7 @@ class ss {
8988
8990
  */
8989
8991
  async execute(A, e, t) {
8990
8992
  var B, l, d;
8991
- const n = (l = (B = (await N.getShadowGraphqlClient().mutate({
8993
+ const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
8992
8994
  mutation: ns,
8993
8995
  variables: {
8994
8996
  processFlowId: A,
@@ -8998,14 +9000,14 @@ class ss {
8998
9000
  if (!n)
8999
9001
  throw new Error("Failed to create process execution.");
9000
9002
  function s(E) {
9001
- return new Promise((C) => {
9002
- setTimeout(C, E);
9003
+ return new Promise((h) => {
9004
+ setTimeout(h, E);
9003
9005
  });
9004
9006
  }
9005
- let i = !1, r = 0, o, c;
9007
+ let i = !1, o = 0, r, c;
9006
9008
  for (; !i; ) {
9007
- o = await N.getShadowGraphqlClient().query({
9008
- query: y`
9009
+ r = await x.getShadowGraphqlClient().query({
9010
+ query: M`
9009
9011
  query getProcessFlowExecution($ids: [String]!) {
9010
9012
  processExecutions(ids: $ids) {
9011
9013
  id
@@ -9023,8 +9025,8 @@ class ss {
9023
9025
  ids: [n]
9024
9026
  }
9025
9027
  });
9026
- const E = (d = o.data) == null ? void 0 : d.processExecutions[0];
9027
- if (!o || !E)
9028
+ const E = (d = r.data) == null ? void 0 : d.processExecutions[0];
9029
+ if (!r || !E)
9028
9030
  throw new Error("Failed to retrieve server response for execution.");
9029
9031
  if (E.failedAt)
9030
9032
  throw new Error(
@@ -9034,9 +9036,9 @@ class ss {
9034
9036
  i = !0, c = new is(E);
9035
9037
  break;
9036
9038
  }
9037
- r += 1;
9038
- const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9039
- if (r >= C)
9039
+ o += 1;
9040
+ const h = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9041
+ if (o >= h)
9040
9042
  throw new Error("Maximum wait time exceeded for execution result.");
9041
9043
  await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
9042
9044
  }
@@ -9141,7 +9143,7 @@ class Et extends os {
9141
9143
  return A.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
9142
9144
  }
9143
9145
  }
9144
- const cs = y`
9146
+ const cs = M`
9145
9147
  fragment RegionFields on Region {
9146
9148
  width
9147
9149
  top
@@ -9159,7 +9161,7 @@ const cs = y`
9159
9161
  height
9160
9162
  }
9161
9163
  }
9162
- `, gs = y`
9164
+ `, gs = M`
9163
9165
  fragment LookAtAnimationFields on LookAtAnimation {
9164
9166
  latDeg
9165
9167
  lonDeg
@@ -9170,7 +9172,7 @@ const cs = y`
9170
9172
  z
9171
9173
  }
9172
9174
  }
9173
- `, ls = y`
9175
+ `, ls = M`
9174
9176
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
9175
9177
  antiAliasing {
9176
9178
  samples
@@ -9254,14 +9256,14 @@ const cs = y`
9254
9256
  weight
9255
9257
  }
9256
9258
  }
9257
- `, Bs = y`
9259
+ `, Bs = M`
9258
9260
  fragment ModelAnimationFields on ModelAnimation {
9259
9261
  from
9260
9262
  to
9261
9263
  loop
9262
9264
  name
9263
9265
  }
9264
- `, ds = (g) => y`
9266
+ `, ds = (g) => M`
9265
9267
  ${kA(g)}
9266
9268
  ${se}
9267
9269
  ${je}
@@ -9363,7 +9365,6 @@ const cs = y`
9363
9365
  stepTitle
9364
9366
  helpText
9365
9367
  mandatory
9366
- silent
9367
9368
  conditions {
9368
9369
  requiredVariantSelections
9369
9370
  targetStepName
@@ -9657,7 +9658,7 @@ const cs = y`
9657
9658
  }
9658
9659
  }
9659
9660
  }
9660
- `, ws = y`
9661
+ `, ws = M`
9661
9662
  query GetTransactionForPartner($id: String!) {
9662
9663
  transactions(ids: [$id]) {
9663
9664
  id
@@ -9674,7 +9675,7 @@ const cs = y`
9674
9675
  }
9675
9676
  }
9676
9677
  }
9677
- `, Es = y`
9678
+ `, Es = M`
9678
9679
  ${kA(!1)}
9679
9680
  query GetWorkflowForTheme($id: String!) {
9680
9681
  workflow(id: $id) {
@@ -9696,7 +9697,7 @@ const cs = y`
9696
9697
  }
9697
9698
  }
9698
9699
  }
9699
- `, hs = y`
9700
+ `, hs = M`
9700
9701
  query GetCustomer($emailAddress: String!) {
9701
9702
  customer(emailAddress: $emailAddress) {
9702
9703
  id
@@ -9706,7 +9707,7 @@ const cs = y`
9706
9707
  }
9707
9708
  }
9708
9709
  }
9709
- `, Cs = y`
9710
+ `, Cs = M`
9710
9711
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9711
9712
  customerCreate(details: $details) {
9712
9713
  id
@@ -9716,7 +9717,7 @@ const cs = y`
9716
9717
  }
9717
9718
  }
9718
9719
  }
9719
- `, Qs = y`
9720
+ `, Qs = M`
9720
9721
  mutation CustomerAuthenticate($loginToken: String!) {
9721
9722
  customerAuthenticate(loginToken: $loginToken) {
9722
9723
  id
@@ -9743,11 +9744,11 @@ const cs = y`
9743
9744
  }
9744
9745
  }
9745
9746
  }
9746
- `, us = y`
9747
+ `, us = M`
9747
9748
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9748
9749
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9749
9750
  }
9750
- `, ms = y`
9751
+ `, ms = M`
9751
9752
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9752
9753
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9753
9754
  id
@@ -9779,13 +9780,13 @@ const cs = y`
9779
9780
  var A;
9780
9781
  for (const e in g.layouts) {
9781
9782
  const t = g.layouts[e].elements.filter(
9782
- (n) => n.type === H.Illustration
9783
+ (n) => n.type === U.Illustration
9783
9784
  );
9784
9785
  for (let n = 0; n < t.length; ++n) {
9785
9786
  const s = t[n];
9786
9787
  s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
9787
9788
  }
9788
- const a = g.layouts[e].elements.filter((n) => n.type === H.Textbox);
9789
+ const a = g.layouts[e].elements.filter((n) => n.type === U.Textbox);
9789
9790
  for (let n = 0; n < a.length; ++n) {
9790
9791
  const s = a[n];
9791
9792
  (A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
@@ -9793,7 +9794,7 @@ const cs = y`
9793
9794
  }
9794
9795
  }, ps = async (g, A) => {
9795
9796
  var a;
9796
- const e = await N.getShadowGraphqlClient().query({
9797
+ const e = await x.getShadowGraphqlClient().query({
9797
9798
  query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9798
9799
  errorPolicy: "all",
9799
9800
  fetchPolicy: "no-cache",
@@ -9805,9 +9806,9 @@ const cs = y`
9805
9806
  throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
9806
9807
  return t.forEach((n) => {
9807
9808
  n.steps.forEach((s) => {
9808
- var i, r, o;
9809
- delete s.data.__typename, (i = s.option) != null && i.id && ((r = s.option.defaultVariant) != null && r.asset && T.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && T.cacheAsset(s.option.colorProfile), (o = s.option.variants) == null || o.forEach((c) => {
9810
- c.asset && T.cacheAsset(c.asset), c.displayImage && T.cacheAsset(c.displayImage), c.thumbnail && T.cacheAsset(c.thumbnail), c.material && T.cacheMaterial(c.material);
9809
+ var i, o, r;
9810
+ delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && b.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && b.cacheAsset(s.option.colorProfile), (r = s.option.variants) == null || r.forEach((c) => {
9811
+ c.asset && b.cacheAsset(c.asset), c.displayImage && b.cacheAsset(c.displayImage), c.thumbnail && b.cacheAsset(c.thumbnail), c.material && b.cacheMaterial(c.material);
9811
9812
  }), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
9812
9813
  });
9813
9814
  }), t;
@@ -9817,7 +9818,7 @@ const cs = y`
9817
9818
  throw new Error(`Workflow not found: ${g}`);
9818
9819
  return t;
9819
9820
  }, ht = async (g, A) => {
9820
- const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, r) => e[r] === void 0);
9821
+ const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, o) => e[o] === void 0);
9821
9822
  if (t.length === 0)
9822
9823
  return Promise.all(e);
9823
9824
  const a = ps(t, A), n = t.map(
@@ -9845,12 +9846,12 @@ class fs {
9845
9846
  constructor(A) {
9846
9847
  this.updateTransactionState = async (e) => {
9847
9848
  try {
9848
- return N.getShadowGraphqlClient().mutate({
9849
+ return x.getShadowGraphqlClient().mutate({
9849
9850
  ...e,
9850
9851
  mutation: la
9851
9852
  });
9852
9853
  } catch (t) {
9853
- throw console.error(t), new P("Critical - Unable to synchronize workflow state with server.");
9854
+ throw console.error(t), new H("Critical - Unable to synchronize workflow state with server.");
9854
9855
  }
9855
9856
  }, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
9856
9857
  }
@@ -9859,7 +9860,7 @@ class fs {
9859
9860
  * and the Spiff Commerce platform.
9860
9861
  */
9861
9862
  getAssetManager() {
9862
- return T;
9863
+ return b;
9863
9864
  }
9864
9865
  getCurrencyCode() {
9865
9866
  if (this.currencyCode === void 0)
@@ -9879,15 +9880,15 @@ class fs {
9879
9880
  */
9880
9881
  async authenticateBundleFromLocalStorage(A) {
9881
9882
  var a, n;
9882
- const e = x.getMap("bundleOwnerIds");
9883
+ const e = S.getMap("bundleOwnerIds");
9883
9884
  if (e != null && e.has(A)) {
9884
9885
  const s = e.get(A);
9885
9886
  return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9886
9887
  }
9887
- const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9888
+ const t = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9888
9889
  if (t.has(A)) {
9889
- const s = t.get(A), r = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9890
- if (r && await this.authenticateCustomerId(r)) {
9890
+ const s = t.get(A), o = (S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9891
+ if (o && await this.authenticateCustomerId(o)) {
9891
9892
  const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9892
9893
  (B) => {
9893
9894
  var l;
@@ -9914,8 +9915,8 @@ class fs {
9914
9915
  * @throws An error if the transaction is not found.
9915
9916
  */
9916
9917
  async authenticateTransactionFromLocalStorage(A) {
9917
- var c, B, l, d, E, C;
9918
- const e = N.getShadowGraphqlClient(), t = await e.query({
9918
+ var c, B, l, d, E, h;
9919
+ const e = x.getShadowGraphqlClient(), t = await e.query({
9919
9920
  query: ws,
9920
9921
  errorPolicy: "all",
9921
9922
  fetchPolicy: "no-cache",
@@ -9930,45 +9931,45 @@ class fs {
9930
9931
  throw new Error(`Unable to read transaction: ${A}`);
9931
9932
  if (a.isOrdered)
9932
9933
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9933
- const s = x.getMap("transactionOwnerIds");
9934
+ const s = S.getMap("transactionOwnerIds");
9934
9935
  if (s != null && s.has(A)) {
9935
9936
  const w = s.get(A);
9936
9937
  return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9937
9938
  }
9938
- const i = x.getMap("transactionCustomerIds");
9939
+ const i = S.getMap("transactionCustomerIds");
9939
9940
  if (i != null && i.has(A)) {
9940
9941
  const w = i.get(A);
9941
9942
  if (w && await this.authenticateCustomerId(w)) {
9942
- const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9943
+ const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9943
9944
  (u) => {
9944
- var f, p;
9945
- return (p = (f = u.bundle) == null ? void 0 : f.transactions) == null ? void 0 : p.some((D) => D.id === A);
9945
+ var D, p;
9946
+ return (p = (D = u.bundle) == null ? void 0 : D.transactions) == null ? void 0 : p.some((f) => f.id === A);
9946
9947
  }
9947
- )) || ((C = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : C.find(
9948
+ )) || ((h = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : h.find(
9948
9949
  (u) => {
9949
- var f;
9950
- return ((f = u.transaction) == null ? void 0 : f.id) === A;
9950
+ var D;
9951
+ return ((D = u.transaction) == null ? void 0 : D.id) === A;
9951
9952
  }
9952
9953
  ));
9953
- if (h)
9954
+ if (C)
9954
9955
  return Promise.resolve({
9955
9956
  success: !0,
9956
- stakeholderType: h.type
9957
+ stakeholderType: C.type
9957
9958
  });
9958
9959
  }
9959
9960
  }
9960
- const o = (await e.query({
9961
+ const r = (await e.query({
9961
9962
  query: Es,
9962
9963
  errorPolicy: "all",
9963
9964
  variables: {
9964
9965
  id: a.workflowId
9965
9966
  }
9966
9967
  })).data.workflow;
9967
- if (!o)
9968
+ if (!r)
9968
9969
  throw new Error(`Unable to read workflow: ${a.workflowId}`);
9969
9970
  return Promise.resolve({
9970
9971
  success: !1,
9971
- theme: o.overrideTheme,
9972
+ theme: r.overrideTheme,
9972
9973
  customLogoLink: a.customLogoLink
9973
9974
  });
9974
9975
  }
@@ -9976,8 +9977,8 @@ class fs {
9976
9977
  this.customer = void 0;
9977
9978
  }
9978
9979
  clearCustomerForTransaction(A) {
9979
- const e = x.getMap("transactionCustomerIds");
9980
- e != null && e.has(A) && (e.delete(A), x.setMap("transactionCustomerIds", e));
9980
+ const e = S.getMap("transactionCustomerIds");
9981
+ e != null && e.has(A) && (e.delete(A), S.setMap("transactionCustomerIds", e));
9981
9982
  }
9982
9983
  getStakeholderTypeForTransaction(A) {
9983
9984
  var t, a;
@@ -9993,7 +9994,7 @@ class fs {
9993
9994
  async getOrCreateCustomer(A) {
9994
9995
  var s;
9995
9996
  this.customer = void 0;
9996
- const e = N.getShadowGraphqlClient(), a = (await e.query({
9997
+ const e = x.getShadowGraphqlClient(), a = (await e.query({
9997
9998
  query: hs,
9998
9999
  errorPolicy: "all",
9999
10000
  fetchPolicy: "no-cache",
@@ -10002,7 +10003,7 @@ class fs {
10002
10003
  }
10003
10004
  })).data.customer;
10004
10005
  if (!a.id) {
10005
- const r = (s = (await e.mutate({
10006
+ const o = (s = (await e.mutate({
10006
10007
  mutation: Cs,
10007
10008
  errorPolicy: "all",
10008
10009
  fetchPolicy: "no-cache",
@@ -10012,10 +10013,10 @@ class fs {
10012
10013
  }
10013
10014
  }
10014
10015
  })).data) == null ? void 0 : s.customerCreate;
10015
- if (!r)
10016
+ if (!o)
10016
10017
  throw new Error("Unable to create customer.");
10017
- return this.storeCustomer(r), this.customer = r, {
10018
- customer: r,
10018
+ return this.storeCustomer(o), this.customer = o, {
10019
+ customer: o,
10019
10020
  isAuthenticated: !1
10020
10021
  };
10021
10022
  }
@@ -10028,7 +10029,7 @@ class fs {
10028
10029
  }
10029
10030
  async authenticateCustomerId(A) {
10030
10031
  var i;
10031
- const e = N.getShadowGraphqlClient(), t = x.getMap("customerTokens");
10032
+ const e = x.getShadowGraphqlClient(), t = S.getMap("customerTokens");
10032
10033
  if (!(t != null && t.has(A)))
10033
10034
  return !1;
10034
10035
  const a = t.get(A);
@@ -10049,7 +10050,7 @@ class fs {
10049
10050
  * @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
10050
10051
  */
10051
10052
  async generateVerificationCode(A) {
10052
- await N.getShadowGraphqlClient().mutate({
10053
+ await x.getShadowGraphqlClient().mutate({
10053
10054
  mutation: us,
10054
10055
  variables: {
10055
10056
  emailAddress: A
@@ -10064,7 +10065,7 @@ class fs {
10064
10065
  */
10065
10066
  async verifyCode(A, e) {
10066
10067
  var n, s;
10067
- const a = (n = (await N.getShadowGraphqlClient().mutate({
10068
+ const a = (n = (await x.getShadowGraphqlClient().mutate({
10068
10069
  mutation: ms,
10069
10070
  errorPolicy: "all",
10070
10071
  fetchPolicy: "no-cache",
@@ -10076,8 +10077,8 @@ class fs {
10076
10077
  if (a != null && a.loginToken) {
10077
10078
  if (!((s = a.partner) != null && s.id))
10078
10079
  throw new Error(`Unable to find customer: ${A}`);
10079
- const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
10080
- return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10080
+ const i = S.getMap("customerTokens") || /* @__PURE__ */ new Map();
10081
+ return i.set(a.id, a.loginToken), S.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10081
10082
  ...a,
10082
10083
  loginToken: void 0
10083
10084
  }, !0;
@@ -10090,7 +10091,7 @@ class fs {
10090
10091
  */
10091
10092
  async getNewBundle(A) {
10092
10093
  var s;
10093
- const t = (s = (await N.getShadowGraphqlClient().mutate({
10094
+ const t = (s = (await x.getShadowGraphqlClient().mutate({
10094
10095
  mutation: Gn,
10095
10096
  variables: {
10096
10097
  collectionId: A
@@ -10099,10 +10100,10 @@ class fs {
10099
10100
  })).data) == null ? void 0 : s.bundleCreate;
10100
10101
  if (!(t != null && t.id))
10101
10102
  throw new Error("Unable to create bundle");
10102
- const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10103
- a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10104
- const n = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10105
- return n.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", n), new fe(this, t);
10103
+ const a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10104
+ a.set(t.id, t.partner.id), S.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10105
+ const n = S.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10106
+ return n.set(t.id, t.bundleOwnerId), S.setMap("bundleOwnerIds", n), new fe(this, t);
10106
10107
  }
10107
10108
  /**
10108
10109
  * Retrieves an existing bundle from the API, by id.
@@ -10113,9 +10114,9 @@ class fs {
10113
10114
  */
10114
10115
  async getExistingBundle(A, e, t) {
10115
10116
  var c, B, l, d;
10116
- const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10117
+ const a = S.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10117
10118
  n && TA(n);
10118
- const s = await N.getShadowGraphqlClient().query({
10119
+ const s = await x.getShadowGraphqlClient().query({
10119
10120
  query: Pn,
10120
10121
  variables: {
10121
10122
  id: A
@@ -10124,10 +10125,10 @@ class fs {
10124
10125
  });
10125
10126
  if (!((c = s.data) != null && c.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
10126
10127
  throw new Error(`Unable to find bundle: ${A}`);
10127
- const i = (d = s.data) == null ? void 0 : d.bundles[0], r = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10128
- r.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", r);
10129
- const o = new fe(this, i, e, t);
10130
- return await o.getInitializationPromise(), o;
10128
+ const i = (d = s.data) == null ? void 0 : d.bundles[0], o = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10129
+ o.set(i.id, i.partner.id), S.setMap("bundlePartnerIds", o);
10130
+ const r = new fe(this, i, e, t);
10131
+ return await r.getInitializationPromise(), r;
10131
10132
  }
10132
10133
  /**
10133
10134
  * Retrieves all existing bundle stakeholders from the API, for the currently authenticated customer.
@@ -10137,7 +10138,7 @@ class fs {
10137
10138
  var n;
10138
10139
  if (!this.customer)
10139
10140
  throw new Error("Customer not authenticated.");
10140
- const A = await N.getShadowGraphqlClient().query({
10141
+ const A = await x.getShadowGraphqlClient().query({
10141
10142
  query: Un,
10142
10143
  variables: {
10143
10144
  id: this.customer.id
@@ -10146,11 +10147,11 @@ class fs {
10146
10147
  });
10147
10148
  if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
10148
10149
  throw new Error("Unable to find customer.");
10149
- const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10150
+ const t = A.data.customers[0].bundleStakeholders || [], a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10150
10151
  return t.forEach((s) => {
10151
- var i, r;
10152
- (i = s.bundle) != null && i.id && ((r = s.bundle.partner) != null && r.id) && a.set(s.bundle.id, s.bundle.partner.id);
10153
- }), x.setMap("bundlePartnerIds", a), t;
10152
+ var i, o;
10153
+ (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
10154
+ }), S.setMap("bundlePartnerIds", a), t;
10154
10155
  }
10155
10156
  /**
10156
10157
  * Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
@@ -10161,40 +10162,40 @@ class fs {
10161
10162
  * @returns A workflow experience configured as requested.
10162
10163
  */
10163
10164
  async getWorkflowExperience(A, e, t, a) {
10164
- var B, l, d, E, C;
10165
+ var B, l, d, E;
10165
10166
  if (!a)
10166
10167
  return await this.getWorkflowExperienceDeprecated(A, e, t);
10167
10168
  const n = async () => {
10168
- var Q, h;
10169
- const w = N.getShadowGraphqlClient();
10169
+ var w, Q;
10170
+ const h = x.getShadowGraphqlClient();
10170
10171
  if (a.type === "transaction") {
10171
- const { transactionId: u, readOnly: f } = a, p = await w.query({
10172
+ const { transactionId: C, readOnly: u } = a, D = await h.query({
10172
10173
  query: EA,
10173
10174
  variables: {
10174
- ids: [u]
10175
+ ids: [C]
10175
10176
  },
10176
10177
  errorPolicy: "all",
10177
10178
  fetchPolicy: "no-cache"
10178
10179
  });
10179
- if (!((Q = p.data) != null && Q.transactions) || p.data.transactions.length === 0)
10180
- throw new P("Existing transaction not found.");
10181
- const D = (h = p.data) == null ? void 0 : h.transactions[0];
10182
- if (!D.workflowId)
10183
- throw new P("Existing transaction has no workflow ID.");
10184
- const m = await pA(D.workflowId);
10185
- if (!D.product)
10186
- throw new P("Failed to load transaction, product not available.");
10187
- return { transaction: D, workflow: m, readOnly: f };
10180
+ if (!((w = D.data) != null && w.transactions) || D.data.transactions.length === 0)
10181
+ throw new H("Existing transaction not found.");
10182
+ const p = (Q = D.data) == null ? void 0 : Q.transactions[0];
10183
+ if (!p.workflowId)
10184
+ throw new H("Existing transaction has no workflow ID.");
10185
+ const f = await pA(p.workflowId);
10186
+ if (!p.product)
10187
+ throw new H("Failed to load transaction, product not available.");
10188
+ return { transaction: p, workflow: f, readOnly: u };
10188
10189
  }
10189
10190
  if (a.type === "integration" || a.type === "external") {
10190
- const u = async () => {
10191
- const m = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10191
+ const C = async () => {
10192
+ const f = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10192
10193
  externalIntegrationId: a.externalIntegrationId,
10193
10194
  externalProductId: a.externalProductId
10194
- }, M = await w.mutate({
10195
+ }, m = await h.mutate({
10195
10196
  mutation: ue,
10196
10197
  variables: {
10197
- ...m,
10198
+ ...f,
10198
10199
  bulk: a.bulk,
10199
10200
  workflowId: a.workflowId,
10200
10201
  claim: !0
@@ -10204,60 +10205,59 @@ class fs {
10204
10205
  // TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
10205
10206
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10206
10207
  });
10207
- if (!M.data || !M.data.transactionCreate)
10208
- throw new P("Failed to create transaction!");
10209
- const Y = M.data.transactionCreate;
10210
- if (!Y.product)
10211
- throw new P("Failed to create transaction, product not available.");
10212
- return Y;
10213
- }, f = pA(a.workflowId, a == null ? void 0 : a.graphql), [p, D] = await Promise.all([u(), f]);
10214
- return { transaction: p, workflow: D };
10208
+ if (!m.data || !m.data.transactionCreate)
10209
+ throw new H("Failed to create transaction!");
10210
+ const y = m.data.transactionCreate;
10211
+ if (!y.product)
10212
+ throw new H("Failed to create transaction, product not available.");
10213
+ return y;
10214
+ }, u = pA(a.workflowId, a == null ? void 0 : a.graphql), [D, p] = await Promise.all([C(), u]);
10215
+ return { transaction: D, workflow: p };
10215
10216
  }
10216
- throw new P("No workflow ID provided.");
10217
- }, { transaction: s, workflow: i, readOnly: r } = await n();
10217
+ throw new H("No workflow ID provided.");
10218
+ }, { transaction: s, workflow: i, readOnly: o } = await n();
10218
10219
  this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
10219
- const o = {
10220
+ const r = {
10220
10221
  product: s.product,
10221
10222
  transaction: s,
10222
10223
  layouts: [],
10223
- singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
10224
- stateMutationFunc: r ? async () => {
10224
+ stateMutationFunc: o ? async () => {
10225
10225
  throw new v("State mutation is forbidden in read only mode!");
10226
- } : async (w) => {
10227
- const h = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10228
- return this.updateTransactionState({ ...w, context: { transactionOwnerId: h } });
10226
+ } : async (h) => {
10227
+ const Q = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10228
+ return this.updateTransactionState({ ...h, context: { transactionOwnerId: Q } });
10229
10229
  },
10230
- readOnly: r,
10230
+ readOnly: o,
10231
10231
  workflow: i
10232
10232
  };
10233
10233
  if (a.type === "transaction" && s.workflowState) {
10234
- const w = JSON.parse(s.workflowState);
10235
- o.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), o.reloadedState = w;
10236
- } else if (!r && a.workflowState) {
10237
- const w = JSON.parse(a.workflowState);
10238
- o.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), o.reloadedState = w;
10234
+ const h = JSON.parse(s.workflowState);
10235
+ r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10236
+ } else if (!o && a.workflowState) {
10237
+ const h = JSON.parse(a.workflowState);
10238
+ r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10239
10239
  } else
10240
- o.layouts = KA(
10241
- o.transaction,
10242
- o.workflow
10240
+ r.layouts = KA(
10241
+ r.transaction,
10242
+ r.workflow
10243
10243
  );
10244
- if (o.renderableContextService = new QA(
10245
- o.layouts
10246
- ), a.previewService ? (o.previewService = a.previewService, (d = o.product) != null && d.modelUrl && (o.modelContainer = o.previewService.loadModel({
10247
- model: o.product.modelUrl,
10248
- contextService: o.renderableContextService
10249
- }))) : (o.previewService = t && t(i), (E = o.product) != null && E.modelUrl && (o.modelContainer = (C = o.previewService) == null ? void 0 : C.loadModel({
10250
- model: o.product.modelUrl,
10251
- contextService: o.renderableContextService
10244
+ if (r.renderableContextService = new QA(
10245
+ r.layouts
10246
+ ), a.previewService ? (r.previewService = a.previewService, (l = r.product) != null && l.modelUrl && (r.modelContainer = r.previewService.loadModel({
10247
+ model: r.product.modelUrl,
10248
+ contextService: r.renderableContextService
10249
+ }))) : (r.previewService = t && t(i), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
10250
+ model: r.product.modelUrl,
10251
+ contextService: r.renderableContextService
10252
10252
  }))), a.type !== "transaction") {
10253
- const w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10254
- w.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), x.setMap("transactionOwnerIds", w);
10253
+ const h = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10254
+ h.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), S.setMap("transactionOwnerIds", h);
10255
10255
  } else {
10256
- const Q = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10257
- Q && eA(Q), o.isReloadedTransaction = !0;
10256
+ const w = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10257
+ w && eA(w), r.isReloadedTransaction = !0;
10258
10258
  }
10259
- this.initialized = !0, this.experienceOptions = o;
10260
- const c = new CA(this, o);
10259
+ this.initialized = !0, this.experienceOptions = r;
10260
+ const c = new CA(this, r);
10261
10261
  return await c.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await c.attachCustomerDetails({ email: this.customer.emailAddress }), c;
10262
10262
  }
10263
10263
  /**
@@ -10269,39 +10269,39 @@ class fs {
10269
10269
  */
10270
10270
  async getWorkflowExperiences(A, e) {
10271
10271
  if (A.length === 0)
10272
- throw new P("No options provided!");
10273
- const t = N.getShadowGraphqlClient(), a = A.map((h, u) => ({ option: h, index: u })), n = a.filter((h) => h.option.type === "transaction"), s = a.filter(
10274
- (h) => h.option.type === "integration" || h.option.type === "external"
10272
+ throw new H("No options provided!");
10273
+ const t = x.getShadowGraphqlClient(), a = A.map((C, u) => ({ option: C, index: u })), n = a.filter((C) => C.option.type === "transaction"), s = a.filter(
10274
+ (C) => C.option.type === "integration" || C.option.type === "external"
10275
10275
  ), i = async () => {
10276
- var p, D;
10276
+ var p, f;
10277
10277
  if (n.length === 0)
10278
10278
  return [];
10279
- const h = n.map((m) => m.option.transactionId), u = await t.query({
10279
+ const C = n.map((m) => m.option.transactionId), u = await t.query({
10280
10280
  query: EA,
10281
10281
  variables: {
10282
- ids: h
10282
+ ids: C
10283
10283
  },
10284
10284
  errorPolicy: "all",
10285
10285
  fetchPolicy: "no-cache"
10286
- }), f = u.data.transactions;
10287
- if (f.length !== n.length) {
10288
- const m = ((D = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
10289
- throw new P(`Not all transactions were found: ${m}`);
10286
+ }), D = u.data.transactions;
10287
+ if (D.length !== n.length) {
10288
+ const m = ((f = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10289
+ throw new H(`Not all transactions were found: ${m}`);
10290
10290
  }
10291
- return f.map((m, M) => {
10291
+ return D.map((m, y) => {
10292
10292
  var Y;
10293
10293
  return {
10294
10294
  transaction: m,
10295
10295
  workflowId: m.workflowId,
10296
10296
  readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10297
- index: n[M].index
10297
+ index: n[y].index
10298
10298
  };
10299
10299
  });
10300
- }, r = async () => {
10301
- var f, p, D;
10300
+ }, o = async () => {
10301
+ var D, p, f;
10302
10302
  if (s.length === 0)
10303
10303
  return [];
10304
- const h = await t.mutate({
10304
+ const C = await t.mutate({
10305
10305
  mutation: ca,
10306
10306
  variables: {
10307
10307
  inputs: s.map((m) => ({
@@ -10315,39 +10315,37 @@ class fs {
10315
10315
  },
10316
10316
  errorPolicy: "all",
10317
10317
  fetchPolicy: "no-cache"
10318
- }), u = (f = h.data) == null ? void 0 : f.transactionCreateMany;
10318
+ }), u = (D = C.data) == null ? void 0 : D.transactionCreateMany;
10319
10319
  if (!u || u.length === 0) {
10320
- const m = ((D = (p = h.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
10321
- throw new P(`Failed to create transactions: ${m}`);
10320
+ const m = ((f = (p = C.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10321
+ throw new H(`Failed to create transactions: ${m}`);
10322
10322
  }
10323
- return u.map((m, M) => ({
10323
+ return u.map((m, y) => ({
10324
10324
  transaction: m,
10325
10325
  workflowId: m.workflowId,
10326
10326
  readOnly: !1,
10327
- index: s[M].index
10327
+ index: s[y].index
10328
10328
  }));
10329
- }, o = (await Promise.all([i(), r()])).flat(), c = [...new Set(o.map((h) => h.workflowId))], B = await ht(c, e), l = new Map(B.map((h) => [h.id, h])), d = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = o.map(async (h) => {
10330
- var U;
10331
- const { transaction: u, workflowId: f, readOnly: p, index: D } = h, m = l.get(f), M = A[D];
10329
+ }, r = (await Promise.all([i(), o()])).flat(), c = [...new Set(r.map((C) => C.workflowId))], B = await ht(c, e), l = new Map(B.map((C) => [C.id, C])), d = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = r.map(async (C) => {
10330
+ const { transaction: u, workflowId: D, readOnly: p, index: f } = C, m = l.get(D), y = A[f];
10332
10331
  !d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
10333
10332
  const Y = d.get(u.id) || void 0, F = {
10334
10333
  product: u.product,
10335
10334
  transaction: u,
10336
10335
  layouts: [],
10337
- singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
10338
10336
  stateMutationFunc: p ? async () => {
10339
10337
  throw new v("State mutation is forbidden in read only mode!");
10340
- } : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
10338
+ } : async (R) => this.updateTransactionState({ ...R, context: { transactionOwnerId: Y } }),
10341
10339
  readOnly: p,
10342
10340
  workflow: m,
10343
- isReloadedTransaction: M.type === "transaction"
10341
+ isReloadedTransaction: y.type === "transaction"
10344
10342
  };
10345
- if (M.type === "transaction" && u.workflowState) {
10346
- const S = JSON.parse(u.workflowState);
10347
- F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
10348
- } else if (!p && M.workflowState) {
10349
- const S = JSON.parse(M.workflowState);
10350
- F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
10343
+ if (y.type === "transaction" && u.workflowState) {
10344
+ const R = JSON.parse(u.workflowState);
10345
+ F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10346
+ } else if (!p && y.workflowState) {
10347
+ const R = JSON.parse(y.workflowState);
10348
+ F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10351
10349
  } else
10352
10350
  F.layouts = KA(
10353
10351
  F.transaction,
@@ -10355,12 +10353,12 @@ class fs {
10355
10353
  );
10356
10354
  return F.renderableContextService = new QA(
10357
10355
  F.layouts
10358
- ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: D, options: M };
10356
+ ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: f, options: y };
10359
10357
  });
10360
- x.setMap("transactionOwnerIds", d);
10361
- const Q = (await Promise.all(E)).sort((h, u) => h.index - u.index).map(async (h) => {
10362
- const { experienceOptions: u, options: f } = h, p = new CA(this, u);
10363
- return await p.getWorkflowManager().getInitializationPromise(), f.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10358
+ S.setMap("transactionOwnerIds", d);
10359
+ const Q = (await Promise.all(E)).sort((C, u) => C.index - u.index).map(async (C) => {
10360
+ const { experienceOptions: u, options: D } = C, p = new CA(this, u);
10361
+ return await p.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10364
10362
  });
10365
10363
  return await Promise.all(Q);
10366
10364
  }
@@ -10372,8 +10370,8 @@ class fs {
10372
10370
  async initFromIntegrationProduct(A) {
10373
10371
  var s;
10374
10372
  if (A === "")
10375
- throw new P("No integration product ID provided.");
10376
- const t = await N.getShadowGraphqlClient().mutate({
10373
+ throw new H("No integration product ID provided.");
10374
+ const t = await x.getShadowGraphqlClient().mutate({
10377
10375
  mutation: ue,
10378
10376
  variables: {
10379
10377
  integrationProductId: A,
@@ -10386,13 +10384,13 @@ class fs {
10386
10384
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10387
10385
  });
10388
10386
  if (!t.data || !t.data.transactionCreate)
10389
- throw new P("Failed to create transaction!");
10387
+ throw new H("Failed to create transaction!");
10390
10388
  const a = t.data.transactionCreate;
10391
10389
  if (!a.product)
10392
- throw new P("Failed to create transaction, product not available.");
10390
+ throw new H("Failed to create transaction, product not available.");
10393
10391
  this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
10394
- const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10395
- n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
10392
+ const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10393
+ n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), S.setMap("transactionOwnerIds", n), this.experienceOptions = {
10396
10394
  product: a.product,
10397
10395
  transaction: a,
10398
10396
  layouts: [],
@@ -10406,10 +10404,10 @@ class fs {
10406
10404
  * @deprecated Use getWorkflowExperience to initialize the experience.
10407
10405
  */
10408
10406
  async initFromTransaction(A, e = !1) {
10409
- var i, r, o, c;
10407
+ var i, o, r, c;
10410
10408
  if (A === "")
10411
- throw new P("No transaction ID provided.");
10412
- const t = N.getShadowGraphqlClient(), a = async () => {
10409
+ throw new H("No transaction ID provided.");
10410
+ const t = x.getShadowGraphqlClient(), a = async () => {
10413
10411
  var d, E;
10414
10412
  const l = (d = (await t.query({
10415
10413
  query: EA,
@@ -10418,9 +10416,9 @@ class fs {
10418
10416
  errorPolicy: "all"
10419
10417
  })).data) == null ? void 0 : d.transactions[0];
10420
10418
  if (!l)
10421
- throw new P("Failed to read transaction.");
10419
+ throw new H("Failed to read transaction.");
10422
10420
  if (!l.product)
10423
- throw new P("Failed to load transaction, product not available.");
10421
+ throw new H("Failed to load transaction, product not available.");
10424
10422
  this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
10425
10423
  product: l.product,
10426
10424
  transaction: l,
@@ -10433,7 +10431,7 @@ class fs {
10433
10431
  };
10434
10432
  if (e)
10435
10433
  return await a();
10436
- const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10434
+ const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10437
10435
  if (s) {
10438
10436
  eA(s);
10439
10437
  const l = (i = (await t.query({
@@ -10444,10 +10442,10 @@ class fs {
10444
10442
  errorPolicy: "all"
10445
10443
  })).data) == null ? void 0 : i.transactions[0];
10446
10444
  if (!l)
10447
- throw new P("Failed to read transaction.");
10445
+ throw new H("Failed to read transaction.");
10448
10446
  if (!l.product)
10449
- throw new P("Failed to load transaction, product not available.");
10450
- this.currencyCode = (r = l.product.partner) == null ? void 0 : r.currencyCode, this.experienceOptions = {
10447
+ throw new H("Failed to load transaction, product not available.");
10448
+ this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
10451
10449
  product: l.product,
10452
10450
  transaction: l,
10453
10451
  layouts: [],
@@ -10457,16 +10455,16 @@ class fs {
10457
10455
  return;
10458
10456
  }
10459
10457
  try {
10460
- const l = (o = (await t.mutate({
10458
+ const l = (r = (await t.mutate({
10461
10459
  mutation: ga,
10462
10460
  variables: { id: A },
10463
10461
  errorPolicy: "all"
10464
- })).data) == null ? void 0 : o.transactionClaim;
10462
+ })).data) == null ? void 0 : r.transactionClaim;
10465
10463
  if (!l)
10466
- throw new P("Failed to read transaction.");
10464
+ throw new H("Failed to read transaction.");
10467
10465
  if (!l.product)
10468
- throw new P("Failed to load transaction, product not available.");
10469
- this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), x.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10466
+ throw new H("Failed to load transaction, product not available.");
10467
+ this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), S.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10470
10468
  product: l.product,
10471
10469
  transaction: l,
10472
10470
  layouts: [],
@@ -10474,7 +10472,7 @@ class fs {
10474
10472
  readOnly: e
10475
10473
  }, this.initialized = !0;
10476
10474
  } catch {
10477
- throw new P("Attempted to access a transaction that isn't available.");
10475
+ throw new H("Attempted to access a transaction that isn't available.");
10478
10476
  }
10479
10477
  }
10480
10478
  /**
@@ -10483,29 +10481,29 @@ class fs {
10483
10481
  async getWorkflowExperienceDeprecated(A, e, t) {
10484
10482
  var a, n, s, i;
10485
10483
  if (!this.initialized || !this.experienceOptions)
10486
- throw new P("Cannot launch experience: Not initialized.");
10484
+ throw new H("Cannot launch experience: Not initialized.");
10487
10485
  if (this.experienceOptions.transaction.workflowId) {
10488
- const r = await pA(this.experienceOptions.transaction.workflowId);
10489
- if (this.experienceOptions.workflow = r, this.experienceOptions.transaction.workflowState) {
10486
+ const o = await pA(this.experienceOptions.transaction.workflowId);
10487
+ if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
10490
10488
  const c = JSON.parse(this.experienceOptions.transaction.workflowState);
10491
10489
  this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await AA(c), await tA(c), this.experienceOptions.reloadedState = c;
10492
10490
  }
10493
- this.experienceOptions.previewService = t && t(r), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
10491
+ this.experienceOptions.previewService = t && t(o), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
10494
10492
  model: this.experienceOptions.product.modelUrl,
10495
10493
  contextService: this.experienceOptions.renderableContextService
10496
10494
  }));
10497
- const o = new CA(this, this.experienceOptions);
10498
- return await o.getWorkflowManager().getInitializationPromise(), o;
10495
+ const r = new CA(this, this.experienceOptions);
10496
+ return await r.getWorkflowManager().getInitializationPromise(), r;
10499
10497
  }
10500
10498
  if (A) {
10501
- const r = N.getShadowGraphqlClient().mutate({
10499
+ const o = x.getShadowGraphqlClient().mutate({
10502
10500
  mutation: Ba,
10503
10501
  variables: {
10504
10502
  workflowId: A,
10505
10503
  id: this.experienceOptions.transaction.id
10506
10504
  }
10507
- }), o = pA(A);
10508
- if (await Promise.all([r, o]), this.experienceOptions.workflow = await o, e) {
10505
+ }), r = pA(A);
10506
+ if (await Promise.all([o, r]), this.experienceOptions.workflow = await r, e) {
10509
10507
  const B = JSON.parse(e);
10510
10508
  this.experienceOptions.layouts = Object.values(B.layouts).map((l) => l.layout), await AA(B), await tA(B), this.experienceOptions.reloadedState = B;
10511
10509
  } else
@@ -10513,14 +10511,14 @@ class fs {
10513
10511
  this.experienceOptions.transaction,
10514
10512
  this.experienceOptions.workflow
10515
10513
  );
10516
- this.experienceOptions.previewService = t && t(await o), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (s = this.experienceOptions.product) != null && s.modelUrl && (this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.loadModel({
10514
+ this.experienceOptions.previewService = t && t(await r), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (s = this.experienceOptions.product) != null && s.modelUrl && (this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.loadModel({
10517
10515
  model: this.experienceOptions.product.modelUrl,
10518
10516
  contextService: this.experienceOptions.renderableContextService
10519
10517
  }));
10520
10518
  const c = new CA(this, this.experienceOptions);
10521
10519
  return await c.getWorkflowManager().getInitializationPromise(), c;
10522
10520
  }
10523
- throw new P("No workflow ID provided.");
10521
+ throw new H("No workflow ID provided.");
10524
10522
  }
10525
10523
  /**
10526
10524
  * @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
@@ -10536,7 +10534,7 @@ class fs {
10536
10534
  */
10537
10535
  getProduct() {
10538
10536
  if (!this.initialized || !this.experienceOptions)
10539
- throw new P("Cannot get product: Not initialized.");
10537
+ throw new H("Cannot get product: Not initialized.");
10540
10538
  return this.experienceOptions.product;
10541
10539
  }
10542
10540
  /**
@@ -10545,12 +10543,12 @@ class fs {
10545
10543
  */
10546
10544
  getTransaction() {
10547
10545
  if (!this.initialized || !this.experienceOptions)
10548
- throw new P("Cannot get transaction: Not initialized.");
10546
+ throw new H("Cannot get transaction: Not initialized.");
10549
10547
  return this.experienceOptions.transaction;
10550
10548
  }
10551
10549
  storeCustomer(A) {
10552
- const e = x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10553
- e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10550
+ const e = S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10551
+ e.set(A.partner.id, A.id), S.setMap("partnerCustomerIds", e);
10554
10552
  }
10555
10553
  }
10556
10554
  class ks {
@@ -10779,7 +10777,7 @@ export {
10779
10777
  nn as InformationStepHandle,
10780
10778
  ei as LayoutElementFactory,
10781
10779
  ti as LayoutElementType,
10782
- L as LayoutNotFoundError,
10780
+ T as LayoutNotFoundError,
10783
10781
  $a as MaterialStepHandle,
10784
10782
  SA as MisconfigurationError,
10785
10783
  ks as MockWorkflowManager,
@@ -10814,7 +10812,7 @@ export {
10814
10812
  gi as UnitOfMeasurement,
10815
10813
  X as Variant,
10816
10814
  CA as WorkflowExperienceImpl,
10817
- T as assetService,
10815
+ b as assetService,
10818
10816
  Bn as createDesign,
10819
10817
  li as dataUrlFromExternalUrl,
10820
10818
  zA as designService,
@@ -10835,7 +10833,7 @@ export {
10835
10833
  mi as getSvgElement,
10836
10834
  pA as getWorkflow,
10837
10835
  ht as getWorkflows,
10838
- N as graphQlManager,
10836
+ x as graphQlManager,
10839
10837
  fA as illustrationStepService,
10840
10838
  pi as loadFont,
10841
10839
  $e as materialStepService,
@@ -10843,7 +10841,7 @@ export {
10843
10841
  Ya as moduleStepService,
10844
10842
  z as optionService,
10845
10843
  Ii as patternImageDataCache,
10846
- x as persistenceService,
10844
+ S as persistenceService,
10847
10845
  At as pictureStepService,
10848
10846
  et as questionStepService,
10849
10847
  Di as registerFetchImplementation,