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