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