@spiffcommerce/core 16.5.1-alpha.0 → 16.7.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,8 +190,8 @@ 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), {
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, C = 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), C && (r.customerToken = C), w && (r["X-Application-Key"] = w), Q && (r.bundleOwnerId = Q), {
195
195
  headers: r
196
196
  };
197
197
  }), t = kt(({ operation: s, graphQLErrors: i, networkError: o }) => {
@@ -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",
@@ -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) => {
@@ -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
@@ -1317,24 +1317,22 @@ const Ve = M`
1317
1317
  silentSteps: g.silentSteps.filter((t) => nA(t, A))
1318
1318
  };
1319
1319
  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)
1320
+ }, aA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A, e = !1) => {
1321
+ var s;
1322
+ const t = aA(g, A), a = [];
1323
+ for (const i of t)
1324
+ for (const o of i.renderableSteps) {
1325
+ const r = (((s = o.option) == null ? void 0 : s.variants) || []).length;
1326
+ o.silent || (o.type === I.Model || o.type === I.Material || o.type === I.Picture || o.type === I.Shape ? (r > 1 || e) && a.push(o.stepName) : a.push(o.stepName));
1327
+ }
1328
+ const n = t.filter((i) => i.renderableSteps.filter(
1329
+ (r) => a.includes(r.stepName)
1332
1330
  ).length > 0);
1333
- for (const s of a)
1334
- s.renderableSteps = s.renderableSteps.filter(
1335
- (i) => t.includes(i.stepName)
1331
+ for (const i of n)
1332
+ i.renderableSteps = i.renderableSteps.filter(
1333
+ (o) => a.includes(o.stepName)
1336
1334
  );
1337
- return a;
1335
+ return n;
1338
1336
  };
1339
1337
  class Xe {
1340
1338
  constructor() {
@@ -1594,7 +1592,7 @@ class me {
1594
1592
  var o, r, c, B;
1595
1593
  const n = this.layouts.find((l) => l.panelId === a.panelId);
1596
1594
  if (!n)
1597
- throw new T(a);
1595
+ throw new L(a);
1598
1596
  let s = "";
1599
1597
  if (this.configuration.type === I.ProductOverlay) {
1600
1598
  let l = "";
@@ -1602,7 +1600,7 @@ class me {
1602
1600
  throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
1603
1601
  }
1604
1602
  const i = this.evaluateAssetType();
1605
- if (i === U.Image) {
1603
+ if (i === H.Image) {
1606
1604
  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;
1607
1605
  if (!l)
1608
1606
  throw new Error("Undefined raster silent step source");
@@ -1636,10 +1634,10 @@ class me {
1636
1634
  Q("Undefined vector silent step source");
1637
1635
  return;
1638
1636
  }
1639
- Z(l, !0).then((C) => {
1640
- w(C);
1641
- }).catch((C) => console.error(C));
1642
- }))()), h = {
1637
+ Z(l, !0).then((h) => {
1638
+ w(h);
1639
+ }).catch((h) => console.error(h));
1640
+ }))()), C = {
1643
1641
  stepName: this.configuration.stepName,
1644
1642
  id: k(),
1645
1643
  cachedObjectURL: await FA(E.svg),
@@ -1660,10 +1658,10 @@ class me {
1660
1658
  };
1661
1659
  return {
1662
1660
  regionElement: {
1663
- id: h.id,
1661
+ id: C.id,
1664
1662
  region: a
1665
1663
  },
1666
- command: new J(h, n)
1664
+ command: new J(C, n)
1667
1665
  };
1668
1666
  }
1669
1667
  }, this.configuration = A, this.layouts = e, this.product = t || void 0;
@@ -1678,7 +1676,7 @@ class me {
1678
1676
  return this.configuration.type === I.ProductOverlay ? Promise.all(
1679
1677
  this.configuration.data.regions.map((A) => {
1680
1678
  if (!this.layouts.find((t) => A.panelId === t.panelId))
1681
- throw new T(A);
1679
+ throw new L(A);
1682
1680
  return this.processRegion(A);
1683
1681
  })
1684
1682
  ) : Promise.reject("Unknown silent step. This is a bug");
@@ -1686,7 +1684,7 @@ class me {
1686
1684
  evaluateAssetType() {
1687
1685
  var e, t, a;
1688
1686
  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;
1687
+ 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
1688
  }
1691
1689
  }
1692
1690
  const ma = async (g) => {
@@ -1747,19 +1745,19 @@ class pa {
1747
1745
  async regenerateQRCode(A, e, t, a, n, s, i, o, r) {
1748
1746
  if (!e && t !== "" && a === "") {
1749
1747
  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) => {
1748
+ var f, p;
1749
+ 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;
1750
+ return { asset: h, link: u };
1751
+ }, B = await new Promise((h, u) => {
1754
1752
  new Ze(
1755
1753
  async () => !!(await c()).link,
1756
1754
  async () => {
1757
- const D = await c();
1758
- if (!D.link || !D.link)
1759
- throw new lA(D.asset);
1760
- C({
1755
+ const f = await c();
1756
+ if (!f.link || !f.link)
1757
+ throw new lA(f.asset);
1758
+ h({
1761
1759
  rel: "mpeg4",
1762
- href: D.link
1760
+ href: f.link
1763
1761
  });
1764
1762
  },
1765
1763
  () => {
@@ -1769,19 +1767,19 @@ class pa {
1769
1767
  40
1770
1768
  );
1771
1769
  });
1772
- A.forEach((C) => o(new $(C.id)));
1770
+ A.forEach((h) => o(new $(h.id)));
1773
1771
  const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
1774
1772
  d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
1775
1773
  const E = d.toString();
1776
1774
  if (E.length >= 2e3)
1777
1775
  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)
1776
+ const C = await ma(E);
1777
+ if (i(C), !s.data || !s.data.regions)
1780
1778
  throw new SA(s, "Missing regions.");
1781
- const w = await this.regionElements(s), Q = await this.command(h, w, n, s.stepName);
1779
+ const w = await this.regionElements(s), Q = await this.command(C, w, n, s.stepName);
1782
1780
  Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
1783
1781
  n.updateStorage(s.stepName, {
1784
- videoShortUrl: h,
1782
+ videoShortUrl: C,
1785
1783
  videoUrl: a
1786
1784
  }), r(!1);
1787
1785
  });
@@ -1793,10 +1791,10 @@ class pa {
1793
1791
  return A.data.regions.map(e);
1794
1792
  }
1795
1793
  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) => {
1794
+ const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await be(A, { type: "svg" }))}`, o = e.map((r) => {
1797
1795
  const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
1798
1796
  if (!B && c)
1799
- throw new T(c);
1797
+ throw new L(c);
1800
1798
  if (B && !c)
1801
1799
  throw new Error("Region not found");
1802
1800
  if (!B || !c)
@@ -1807,7 +1805,7 @@ class pa {
1807
1805
  stepName: a,
1808
1806
  id: r.id,
1809
1807
  src: i,
1810
- type: U.Image,
1808
+ type: H.Image,
1811
1809
  y: c.top,
1812
1810
  x: c.left,
1813
1811
  width: c.width,
@@ -1873,13 +1871,13 @@ class Da {
1873
1871
  }
1874
1872
  if (a) {
1875
1873
  const c = async () => {
1876
- var d, E, h, w;
1874
+ var d, E, C, w;
1877
1875
  const B = (d = a.storage) == null ? void 0 : d.framePatternSrc, l = (E = a.storage) == null ? void 0 : E.frameOffsetsList;
1878
1876
  if (e.updateMetadata(A.stepName, {
1879
1877
  frameOffsetsList: l,
1880
1878
  framePatternSrc: B
1881
1879
  }), B) {
1882
- const Q = (h = e.getStepSpecificServices(A.stepName)) == null ? void 0 : h.frameService;
1880
+ const Q = (C = e.getStepSpecificServices(A.stepName)) == null ? void 0 : C.frameService;
1883
1881
  if (!Q)
1884
1882
  throw new Error("Frame service unavailable, cannot load pattern!");
1885
1883
  await this.loadPatternFromString(B, Q), e.updateMetadata(A.stepName, { image: B }), e.updateStorage(A.stepName, {
@@ -1919,11 +1917,11 @@ class Da {
1919
1917
  new Ze(
1920
1918
  async () => {
1921
1919
  var o;
1922
- const s = (o = (await b.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1920
+ const s = (o = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1923
1921
  return s ? (await fetch(s.link)).status === 200 : !1;
1924
1922
  },
1925
1923
  () => {
1926
- b.getLocalOrFromServer(e.key || "").then((n) => {
1924
+ T.getLocalOrFromServer(e.key || "").then((n) => {
1927
1925
  this.loadPatternFromAsset(n, A, t);
1928
1926
  });
1929
1927
  },
@@ -1947,7 +1945,7 @@ class Da {
1947
1945
  return new J(
1948
1946
  {
1949
1947
  id: A,
1950
- type: U.Frame,
1948
+ type: H.Frame,
1951
1949
  x: e.left,
1952
1950
  y: e.top,
1953
1951
  width: e.width,
@@ -2002,22 +2000,22 @@ class Da {
2002
2000
  n && n(!0);
2003
2001
  const r = await Promise.all(
2004
2002
  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 ? {
2003
+ const C = await Ae(o[E]), w = i.getImageData(), Q = t.map((m) => new $(m.id)), h = w ? ee(w, C) : void 0, u = w ? {
2006
2004
  id: k(),
2007
2005
  src: w.src,
2008
- x: (C == null ? void 0 : C.x) || 0,
2009
- y: (C == null ? void 0 : C.y) || 0,
2006
+ x: (h == null ? void 0 : h.x) || 0,
2007
+ y: (h == null ? void 0 : h.y) || 0,
2010
2008
  width: w.width,
2011
2009
  height: w.height,
2012
- scaleX: (C == null ? void 0 : C.zoom) || 1,
2013
- scaleY: (C == null ? void 0 : C.zoom) || 1,
2010
+ scaleX: (h == null ? void 0 : h.zoom) || 1,
2011
+ scaleY: (h == null ? void 0 : h.zoom) || 1,
2014
2012
  rotation: 0
2015
- } : void 0, D = k(), f = a.getLayouts().find((m) => m.panelId === d.panelId);
2016
- if (!f)
2017
- throw new T(d);
2013
+ } : void 0, f = k(), D = a.getLayouts().find((m) => m.panelId === d.panelId);
2014
+ if (!D)
2015
+ throw new L(d);
2018
2016
  return {
2019
- command: this.getCreateElementCommand(D, d, f, {
2020
- frameData: h,
2017
+ command: this.getCreateElementCommand(f, d, D, {
2018
+ frameData: C,
2021
2019
  pattern: u,
2022
2020
  disablePlaceholder: A.data.disablePlaceholder,
2023
2021
  focalBlur: A.data.focalBlur,
@@ -2026,7 +2024,7 @@ class Da {
2026
2024
  stepName: A.stepName
2027
2025
  }),
2028
2026
  regionEl: {
2029
- id: D,
2027
+ id: f,
2030
2028
  region: d
2031
2029
  },
2032
2030
  removeExistingCommands: Q
@@ -2097,7 +2095,7 @@ class fa {
2097
2095
  src: a.src,
2098
2096
  svg: a.svg.svg,
2099
2097
  cachedObjectURL: a.objectURL,
2100
- type: U.Illustration,
2098
+ type: H.Illustration,
2101
2099
  y: e.top,
2102
2100
  x: e.left,
2103
2101
  rotation: e.rotation,
@@ -2194,32 +2192,32 @@ class fa {
2194
2192
  return;
2195
2193
  const s = MA(
2196
2194
  e[0].id,
2197
- a().map((h) => h.layoutState)
2195
+ a().map((C) => C.layoutState)
2198
2196
  ), 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;
2197
+ Object.entries(i).forEach(([C, w]) => {
2198
+ const Q = { browserValue: w.browserValue }, h = w.spotColor;
2199
+ h && (Q.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), o[C] = Q;
2202
2200
  });
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);
2201
+ for (const [C, w] of n.entries())
2202
+ i[C] = { browserValue: w, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, o[C] = { browserValue: w };
2203
+ let r = Array.from(Object.values(i)).map((C) => C.browserValue);
2206
2204
  const c = A.data.colorOption;
2207
- c && ((E = c.variants) == null || E.forEach((h) => {
2205
+ c && ((E = c.variants) == null || E.forEach((C) => {
2208
2206
  r = r.map((w) => {
2209
2207
  var Q;
2210
- return w.toLowerCase() === ((Q = h.color) == null ? void 0 : Q.toLowerCase()) ? h.name : w;
2208
+ return w.toLowerCase() === ((Q = C.color) == null ? void 0 : Q.toLowerCase()) ? C.name : w;
2211
2209
  });
2212
2210
  })), t.updateMetadata(A.stepName, { colors: r });
2213
2211
  const B = /* @__PURE__ */ new Map();
2214
- if (Object.entries(i).forEach(([h, w]) => {
2215
- B.set(h, w.browserValue);
2212
+ if (Object.entries(i).forEach(([C, w]) => {
2213
+ B.set(C, w.browserValue);
2216
2214
  }), !s.svg)
2217
2215
  throw new Error("Colors changed before SVG loaded. This should never happen!");
2218
2216
  const l = await this.changeColorsCommand(
2219
2217
  s.svg,
2220
2218
  s.width,
2221
2219
  s.height,
2222
- e.map((h) => h.id),
2220
+ e.map((C) => C.id),
2223
2221
  B
2224
2222
  );
2225
2223
  t.updateStorage(A.stepName, {
@@ -2235,7 +2233,7 @@ class fa {
2235
2233
  if (!A.data || !A.data.regions)
2236
2234
  throw new SA(A, "Missing regions.");
2237
2235
  a(!0);
2238
- const s = t.map((C) => new $(C.id));
2236
+ const s = t.map((h) => new $(h.id));
2239
2237
  n.setMandatoryFulfilled(A.stepName, !1);
2240
2238
  const i = e.asset;
2241
2239
  if (!i)
@@ -2243,35 +2241,35 @@ class fa {
2243
2241
  const o = i.fileLink;
2244
2242
  if (!o)
2245
2243
  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);
2244
+ const r = await ye(await this.getIllustrationBody(o)), c = await FA(r.svg), B = (h) => {
2245
+ const u = n.getLayouts().find((p) => p.panelId === h.panelId);
2248
2246
  if (!u)
2249
- throw new T(C);
2250
- const D = k();
2247
+ throw new L(h);
2248
+ const f = k();
2251
2249
  return {
2252
- regionElement: { id: D, region: C },
2253
- command: this.getCreateElementCommand(D, C, u, {
2250
+ regionElement: { id: f, region: h },
2251
+ command: this.getCreateElementCommand(f, h, u, {
2254
2252
  stepName: A.stepName,
2255
2253
  src: o,
2256
2254
  objectURL: c,
2257
2255
  svg: r
2258
2256
  })
2259
2257
  };
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);
2258
+ }, l = A.data.regions.map(B), E = [...l.map((h) => h.command), ...s];
2259
+ let C = Array.from(Object.values(r.colors)).map((h) => h.browserValue);
2262
2260
  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;
2261
+ return w && ((Q = w.variants) == null || Q.forEach((h) => {
2262
+ C = C.map((u) => {
2263
+ var f;
2264
+ return u.toLowerCase() === ((f = h.color) == null ? void 0 : f.toLowerCase()) ? h.name : u;
2267
2265
  });
2268
- })), n.updateMetadata(A.stepName, { colors: h }), {
2266
+ })), n.updateMetadata(A.stepName, { colors: C }), {
2269
2267
  command: new G(E),
2270
2268
  followup: async () => {
2271
2269
  await n.setSelectionsAndElements(
2272
2270
  A.stepName,
2273
2271
  [e],
2274
- l.map((C) => C.regionElement),
2272
+ l.map((h) => h.regionElement),
2275
2273
  async () => {
2276
2274
  n.setMandatoryFulfilled(A.stepName, !0), a(!1);
2277
2275
  }
@@ -2317,8 +2315,8 @@ class Fa {
2317
2315
  async () => {
2318
2316
  const E = e.getModelContainer();
2319
2317
  if (E) {
2320
- const h = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, o.id || "", l || {}));
2321
- Promise.all(h).then(
2318
+ const C = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, o.id || "", l || {}));
2319
+ Promise.all(C).then(
2322
2320
  () => e.setMandatoryFulfilled(A.stepName, !0)
2323
2321
  );
2324
2322
  }
@@ -2390,13 +2388,13 @@ class Ma {
2390
2388
  var E;
2391
2389
  const d = e.getModelContainer();
2392
2390
  if (d && A.option) {
2393
- const h = (E = B.asset) == null ? void 0 : E.fileLink;
2394
- if (!h)
2391
+ const C = (E = B.asset) == null ? void 0 : E.fileLink;
2392
+ if (!C)
2395
2393
  throw new _(B);
2396
2394
  await d.applyModelVariant(
2397
2395
  A.stepName || "",
2398
2396
  {
2399
- model: h,
2397
+ model: C,
2400
2398
  contextService: e.getLayoutPreviewService()
2401
2399
  },
2402
2400
  A.data.replaceProductModel || !1
@@ -2476,7 +2474,7 @@ class ya {
2476
2474
  return console.error("Missing configuration."), null;
2477
2475
  t.updateStorage(A.stepName, { text: e });
2478
2476
  const r = (B, l, d) => {
2479
- const E = d || k(), w = t.getLayouts().find((C) => C.panelId === l.panelId);
2477
+ const E = d || k(), w = t.getLayouts().find((h) => h.panelId === l.panelId);
2480
2478
  if (!w)
2481
2479
  return console.error(`Can not find layout for region: ${l.panelId}`), null;
2482
2480
  const Q = [];
@@ -2488,7 +2486,7 @@ class ya {
2488
2486
  colors: {},
2489
2487
  id: E,
2490
2488
  svg: B,
2491
- type: U.Illustration,
2489
+ type: H.Illustration,
2492
2490
  y: l.top,
2493
2491
  x: l.left,
2494
2492
  rotation: l.rotation,
@@ -2603,9 +2601,9 @@ class Sa {
2603
2601
  return console.error("No URL for picture!"), null;
2604
2602
  a(!0), t.setMandatoryFulfilled(A.stepName, !1);
2605
2603
  const o = t.getRegionElements(A.stepName).map((B) => new $(B.id)), r = (B) => {
2606
- const d = t.getLayouts().find((h) => h.panelId === B.panelId);
2604
+ const d = t.getLayouts().find((C) => C.panelId === B.panelId);
2607
2605
  if (!d)
2608
- throw new T(B);
2606
+ throw new L(B);
2609
2607
  const E = k();
2610
2608
  return {
2611
2609
  regionElement: { id: E, region: B },
@@ -2615,7 +2613,7 @@ class Sa {
2615
2613
  stepRegion: B,
2616
2614
  id: E,
2617
2615
  src: s,
2618
- type: U.Image,
2616
+ type: H.Image,
2619
2617
  y: B.top,
2620
2618
  x: B.left,
2621
2619
  rotation: B.rotation,
@@ -2723,7 +2721,7 @@ class Na {
2723
2721
  const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
2724
2722
  const o = i.region;
2725
2723
  if (!a.find((c) => c.panelId === (o == null ? void 0 : o.panelId)))
2726
- throw new T(o);
2724
+ throw new L(o);
2727
2725
  return new jA(i.id, this.shapeFillId, A);
2728
2726
  }).filter((i) => !!i);
2729
2727
  t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
@@ -2793,8 +2791,8 @@ class Na {
2793
2791
  if (t.length > 0) {
2794
2792
  const r = (B) => {
2795
2793
  const l = B.region;
2796
- if (!n.find((h) => h.panelId === (l == null ? void 0 : l.panelId)))
2797
- throw new T(l);
2794
+ if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2795
+ throw new L(l);
2798
2796
  const E = i();
2799
2797
  return new jA(B.id, this.shapeFillId, E);
2800
2798
  }, c = t.map(r).filter((B) => !!B);
@@ -2812,8 +2810,8 @@ class Na {
2812
2810
  const r = (d) => {
2813
2811
  const E = n.find((u) => u.panelId === d.panelId);
2814
2812
  if (!E)
2815
- throw new T(d);
2816
- const h = i(), w = `
2813
+ throw new L(d);
2814
+ const C = i(), w = `
2817
2815
  <svg
2818
2816
  xmlns="http://www.w3.org/2000/svg"
2819
2817
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -2830,23 +2828,23 @@ class Na {
2830
2828
  width="1"
2831
2829
  height="1"
2832
2830
  class="${this.shapeFillId}"
2833
- fill="${h}"
2831
+ fill="${C}"
2834
2832
  />
2835
2833
  </svg>
2836
2834
  `, Q = {};
2837
- Q[this.shapeFillId] = { browserValue: h };
2838
- const C = k();
2835
+ Q[this.shapeFillId] = { browserValue: C };
2836
+ const h = k();
2839
2837
  return {
2840
- id: C,
2838
+ id: h,
2841
2839
  region: d,
2842
2840
  command: new J(
2843
2841
  {
2844
2842
  stepRegion: d,
2845
2843
  stepName: A.stepName,
2846
2844
  colors: Q,
2847
- id: C,
2845
+ id: h,
2848
2846
  svg: w,
2849
- type: U.Illustration,
2847
+ type: H.Illustration,
2850
2848
  y: d.top,
2851
2849
  x: d.left,
2852
2850
  rotation: d.rotation,
@@ -3063,7 +3061,7 @@ class Ua {
3063
3061
  fillImage: e
3064
3062
  });
3065
3063
  for (const r of t) {
3066
- const c = new bA(r.id, e);
3064
+ const c = new JA(r.id, e);
3067
3065
  n(c);
3068
3066
  }
3069
3067
  }
@@ -3088,15 +3086,15 @@ class Ua {
3088
3086
  for (const d of e) {
3089
3087
  if (!d.fontData)
3090
3088
  throw new v("Failed to resolve font data for text.");
3091
- const [E, h] = IA(
3089
+ const [E, C] = IA(
3092
3090
  d.fontSize,
3093
3091
  d.fontData,
3094
3092
  { left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
3095
3093
  [s],
3096
3094
  { size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
3097
3095
  );
3098
- B.set(d.id, E), l.set(d.id, h);
3099
- const w = t.data.curved ? s : (h || []).join(`
3096
+ B.set(d.id, E), l.set(d.id, C);
3097
+ const w = t.data.curved ? s : (C || []).join(`
3100
3098
  `);
3101
3099
  c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, r));
3102
3100
  }
@@ -3139,24 +3137,24 @@ class Ua {
3139
3137
  if (o && l) {
3140
3138
  const d = (r = o.variants) == null ? void 0 : r.find((E) => E.id === l);
3141
3139
  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;
3140
+ 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
3141
  await e.setSelectionsAndElements(
3144
3142
  A.stepName,
3145
3143
  [d],
3146
- h,
3144
+ C,
3147
3145
  async () => {
3148
3146
  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);
3147
+ const u = i.map((p) => new we(p.id, E)), f = new G(u);
3148
+ e.getCommandDispatcher()(f), e.setMandatoryFulfilled(A.stepName, !0);
3151
3149
  }
3152
3150
  );
3153
- const { command: C } = K.updateInputText(
3151
+ const { command: h } = K.updateInputText(
3154
3152
  Q || "",
3155
3153
  i,
3156
3154
  A,
3157
3155
  e
3158
3156
  );
3159
- C && e.getCommandDispatcher()(C);
3157
+ h && e.getCommandDispatcher()(h);
3160
3158
  }
3161
3159
  }
3162
3160
  }
@@ -3195,10 +3193,10 @@ class Ua {
3195
3193
  var B;
3196
3194
  const r = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
3197
3195
  if (a.length > 0) {
3198
- const l = a.map((h) => new we(h.id, c));
3196
+ const l = a.map((C) => new we(C.id, c));
3199
3197
  if (o) {
3200
- const h = a.map((w) => new bA(w.id, o));
3201
- l.push(...h);
3198
+ const C = a.map((w) => new JA(w.id, o));
3199
+ l.push(...C);
3202
3200
  }
3203
3201
  const d = await this.changeInputTextWithRegion(
3204
3202
  A,
@@ -3238,7 +3236,7 @@ class Ua {
3238
3236
  ), E = l.flatMap((w) => w.commands);
3239
3237
  if (o) {
3240
3238
  const w = l.map(
3241
- (Q) => new bA(Q.regionElement.id, o)
3239
+ (Q) => new JA(Q.regionElement.id, o)
3242
3240
  );
3243
3241
  E.push(...w);
3244
3242
  }
@@ -3263,35 +3261,35 @@ class Ua {
3263
3261
  throw new Error("Step data not supplied");
3264
3262
  const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", r = this.getProcessedInput(o, t, !1), c = async (l) => {
3265
3263
  var w;
3266
- const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), h = k();
3264
+ const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), C = k();
3267
3265
  try {
3268
3266
  if (!E)
3269
3267
  throw new PA("Failed to find layout for region: " + l.panelId);
3270
3268
  const Q = t.colorOption;
3271
- let C;
3269
+ let h;
3272
3270
  if (Q && Q.variants) {
3273
- const L = Q.variants.find((V) => {
3271
+ const b = Q.variants.find((V) => {
3274
3272
  var W;
3275
3273
  return V.id === ((W = Q.defaultVariant) == null ? void 0 : W.id);
3276
3274
  }) || Q.variants[0];
3277
- C = this.createTextFillSpotColor(Q, L), s.updateStorage(A, {
3275
+ h = this.createTextFillSpotColor(Q, b), s.updateStorage(A, {
3278
3276
  colorProfileAssetKey: (w = Q.colorProfile) == null ? void 0 : w.key
3279
3277
  });
3280
3278
  }
3281
- const u = await this.getDefaultColor(t), D = u || "#000000", p = {
3279
+ const u = await this.getDefaultColor(t), f = u || "#000000", p = {
3282
3280
  stepRegion: l,
3283
3281
  stepName: A,
3284
3282
  align: this.textAlign(t),
3285
- fill: n.color ? n.color : D,
3283
+ fill: n.color ? n.color : f,
3286
3284
  fontSize: t.size || OA,
3287
3285
  fontData: a,
3288
- id: h,
3286
+ id: C,
3289
3287
  layer: l.layer,
3290
3288
  layerIndex: l.layerIndex,
3291
3289
  rotation: l.rotation,
3292
3290
  text: r,
3293
3291
  input: o,
3294
- type: U.Textbox,
3292
+ type: H.Textbox,
3295
3293
  vertical: t.vertical,
3296
3294
  x: l.left,
3297
3295
  y: l.top,
@@ -3301,8 +3299,8 @@ class Ua {
3301
3299
  verticalAlign: t.verticalAlign || "middle",
3302
3300
  curved: t.curved,
3303
3301
  paths: t.paths,
3304
- fillSpotColorDefinition: C
3305
- }, f = [], m = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map();
3302
+ fillSpotColorDefinition: h
3303
+ }, D = [], m = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map();
3306
3304
  if (!p.fontData)
3307
3305
  throw new v("Failed to resolve font data for text.");
3308
3306
  const [Y, F] = IA(
@@ -3319,16 +3317,16 @@ class Ua {
3319
3317
  [r],
3320
3318
  { size: t.size, minSize: t.minSize, maxSize: t.maxSize }
3321
3319
  );
3322
- m.set(p.id, Y), y.set(p.id, F);
3323
- const R = t.curved || t.vertical ? r : (F || []).join(`
3320
+ m.set(p.id, Y), M.set(p.id, F);
3321
+ const U = t.curved || t.vertical ? r : (F || []).join(`
3324
3322
  `);
3325
- f.push(
3326
- this.generateTextChangeCommandsForRegion(Y, t, p.id, R, i)
3323
+ D.push(
3324
+ this.generateTextChangeCommandsForRegion(Y, t, p.id, U, i)
3327
3325
  );
3328
- const N = new J(p, E);
3329
- return N.varying = i, {
3330
- regionElement: { id: h, region: l },
3331
- commands: [N, ...f],
3326
+ const S = new J(p, E);
3327
+ return S.varying = i, {
3328
+ regionElement: { id: C, region: l },
3329
+ commands: [S, ...D],
3332
3330
  newElement: p,
3333
3331
  fontData: a
3334
3332
  };
@@ -3364,30 +3362,30 @@ class Ua {
3364
3362
  * @deprecated
3365
3363
  */
3366
3364
  async changeInputTextWithRegion(A, e, t, a, n, s, i, o, r, c) {
3367
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
3365
+ 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
3366
  for (const p of d)
3369
3367
  if (p.region) {
3370
- const [f, m] = IA(
3368
+ const [D, m] = IA(
3371
3369
  e,
3372
3370
  t,
3373
3371
  p.region,
3374
3372
  [l],
3375
3373
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
3376
3374
  );
3377
- E.set(p.id, f), h.set(p.id, m);
3375
+ E.set(p.id, D), C.set(p.id, m);
3378
3376
  }
3379
3377
  const Q = (() => {
3380
3378
  if (A.data && A.data.maxLength && l.length > A.data.maxLength)
3381
3379
  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, "");
3380
+ const p = s.getProfanities(), D = XA(l.toLowerCase());
3381
+ for (const m of D)
3382
+ for (const M in p) {
3383
+ const Y = p[M].toLowerCase().replace(/\s/g, "");
3386
3384
  if (m === Y)
3387
3385
  return o(!0), { error: "Blocked profanity." };
3388
3386
  }
3389
3387
  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() });
3388
+ `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(C.values()).every((M) => M) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (A.data.maxLength - l.length).toString() });
3391
3389
  })();
3392
3390
  if (Q.error) {
3393
3391
  r(Q.error);
@@ -3398,24 +3396,24 @@ class Ua {
3398
3396
  s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
3399
3397
  text: this.injectReplaceableText(B, A.data)
3400
3398
  });
3401
- const C = s.getTransaction().bulk && A.data.varyText || !1;
3399
+ const h = s.getTransaction().bulk && A.data.varyText || !1;
3402
3400
  n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
3403
3401
  const u = [];
3404
3402
  for (const p of d) {
3405
- const f = A.data.curved ? l : (h.get(p.id) || []).join(`
3403
+ const D = A.data.curved ? l : (C.get(p.id) || []).join(`
3406
3404
  `);
3407
3405
  u.push(
3408
3406
  this.generateTextChangeCommandsForRegion(
3409
3407
  E.get(p.id) || 1,
3410
3408
  A.data,
3411
3409
  p.id,
3412
- f,
3413
- C
3410
+ D,
3411
+ h
3414
3412
  )
3415
3413
  );
3416
3414
  }
3417
- const D = new G(u);
3418
- return D.varying = C, D;
3415
+ const f = new G(u);
3416
+ return f.varying = h, f;
3419
3417
  }
3420
3418
  }
3421
3419
  const K = new Ua();
@@ -4682,27 +4680,27 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
4682
4680
  </g>
4683
4681
  </svg>
4684
4682
 
4685
- `, P = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
4686
- const e = P("rect");
4683
+ `, R = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
4684
+ const e = R("rect");
4687
4685
  return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
4688
4686
  }, ka = () => {
4689
- const g = P("svg");
4687
+ const g = R("svg");
4690
4688
  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");
4689
+ }, ba = (g) => {
4690
+ const A = R("use");
4693
4691
  return A.setAttribute("xlink:href", g), A.setAttribute("href", g), A;
4694
4692
  };
4695
4693
  function tt(g) {
4696
4694
  const A = ka(), e = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], t = parseFloat(e[1]), a = parseFloat(e[2]);
4697
4695
  return A.setAttribute("height", `${a}`), A.setAttribute("width", `${t}`), [A, a, t];
4698
4696
  }
4699
- const ba = (g, A, e) => {
4700
- const t = P("g");
4697
+ const Ja = (g, A, e) => {
4698
+ const t = R("g");
4701
4699
  g.appendChild(t), t.setAttribute("id", e), t.innerHTML = A;
4702
4700
  };
4703
4701
  function at(g, A, e) {
4704
4702
  const t = k();
4705
- ba(A, e, `bgdef-${t}`), g.appendChild(Ja(`#bgdef-${t}`));
4703
+ Ja(A, e, `bgdef-${t}`), g.appendChild(ba(`#bgdef-${t}`));
4706
4704
  }
4707
4705
  const nt = (g, A, e, t) => {
4708
4706
  const a = wA("filter");
@@ -4859,31 +4857,31 @@ class La extends ie {
4859
4857
  }
4860
4858
  brandSvg(A, e) {
4861
4859
  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");
4860
+ const p = R("g"), D = R("defs");
4861
+ p.appendChild(D), D.appendChild(nt(3, 7, 4, "shadow"));
4862
+ const m = R("g");
4865
4863
  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");
4864
+ const M = R("g");
4865
+ p.appendChild(M), M.setAttribute("fill", "red"), M.setAttribute("stroke", "red"), M.setAttribute("stroke-width", "9"), M.innerHTML = t;
4866
+ const Y = R("g");
4869
4867
  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;
4868
+ const F = R("g");
4869
+ 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;
4872
4870
  }, [o, r, c] = tt(e);
4873
4871
  if (!o)
4874
4872
  return "";
4875
- const B = P("defs");
4873
+ const B = R("defs");
4876
4874
  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)`);
4875
+ const l = r * 0.23, d = c * 0.94, E = c * 0.04, C = r * 0.53, w = R("g");
4876
+ o.appendChild(w), w.setAttribute("transform", `translate(${E} ${C}) rotate(-21)`);
4879
4877
  const Q = oe(l, d);
4880
4878
  Q.setAttribute("opacity", "0"), w.appendChild(Q);
4881
- const C = P("g");
4882
- w.appendChild(C);
4879
+ const h = R("g");
4880
+ w.appendChild(h);
4883
4881
  const u = i();
4884
- C.appendChild(u);
4885
- const D = ne(s);
4886
- return re(C, D, l, d), st(o.outerHTML);
4882
+ h.appendChild(u);
4883
+ const f = ne(s);
4884
+ return re(h, f, l, d), st(o.outerHTML);
4887
4885
  }
4888
4886
  }
4889
4887
  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==";
@@ -4903,34 +4901,34 @@ class za extends ie {
4903
4901
  }
4904
4902
  brandSvg(A, e, t) {
4905
4903
  const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), r = () => {
4906
- const m = P("g"), y = P("g");
4907
- m.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
4908
- const Y = P("g");
4904
+ const m = R("g"), M = R("g");
4905
+ m.appendChild(M), M.setAttribute("stroke", "#5C1A0D"), M.setAttribute("stroke-width", "4"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
4906
+ const Y = R("g");
4909
4907
  m.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
4910
- const F = P("g");
4908
+ const F = R("g");
4911
4909
  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;
4910
+ const U = new ce(m);
4911
+ return U.transform(([S, b]) => [S, b + ((i - S) * b) ** 2 / (i * 5e4)]), U.transform(([S, b]) => [
4912
+ S,
4913
+ b + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
4914
+ ]), U.transform(([S, b]) => [S - (s - b) * (i - S) / 800, b]), m;
4917
4915
  }, [c, B, l] = tt(e);
4918
4916
  if (!c)
4919
4917
  return "";
4920
- const d = P("defs");
4918
+ const d = R("defs");
4921
4919
  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);
4920
+ let E, C, w, Q;
4921
+ 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);
4922
+ const h = R("g");
4923
+ c.appendChild(h), h.setAttribute("transform", `translate(${w} ${Q}) rotate(-10)`);
4924
+ const u = oe(E, C);
4925
+ u.setAttribute("opacity", "0"), h.appendChild(u);
4926
+ const f = R("g");
4927
+ h.appendChild(f);
4930
4928
  const p = r();
4931
- D.appendChild(p);
4932
- const f = ne(o);
4933
- return re(D, f, E, h), c.outerHTML;
4929
+ f.appendChild(p);
4930
+ const D = ne(o);
4931
+ return re(f, D, E, C), c.outerHTML;
4934
4932
  }
4935
4933
  // 1 if true, 0 if false.
4936
4934
  }
@@ -4947,34 +4945,34 @@ class ja extends ie {
4947
4945
  }
4948
4946
  svgElement(A, e) {
4949
4947
  const t = ae(Ka), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), r = o.x2 - o.x1, c = s.toPathData(3), B = () => {
4950
- const u = P("g");
4948
+ const u = R("g");
4951
4949
  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");
4950
+ const f = R("defs");
4951
+ u.appendChild(f), f.appendChild(nt(0, 2, 2, "shadow"));
4952
+ const p = R("path");
4953
+ p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), f.appendChild(p);
4954
+ const D = R("g");
4955
+ D.classList.add("module-layer0"), u.appendChild(D), D.setAttribute("filter", "url(#shadow)"), D.innerHTML = p.outerHTML;
4956
+ const m = R("g");
4959
4957
  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");
4958
+ const M = R("g");
4959
+ 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;
4960
+ const Y = R("g");
4961
+ return Y.classList.add("module-layer3"), u.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ce(u).transform(([U, S]) => [U, S + (r / 2 - U) ** 2 / (r * 6)]), u;
4962
+ }, l = R("g");
4965
4963
  l.classList.add("module-root");
4966
- const d = P("defs");
4964
+ const d = R("defs");
4967
4965
  l.appendChild(d);
4968
- const E = P("g");
4966
+ const E = R("g");
4969
4967
  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");
4968
+ const C = oe(e.height, e.width);
4969
+ C.setAttribute("opacity", "0"), E.appendChild(C);
4970
+ const w = R("g");
4973
4971
  w.classList.add("module-text-enclosure"), l.appendChild(w);
4974
4972
  const Q = B();
4975
4973
  w.appendChild(Q);
4976
- const C = ne(c);
4977
- return re(w, C, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
4974
+ const h = ne(c);
4975
+ return re(w, h, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
4978
4976
  }
4979
4977
  }
4980
4978
  async function it(g) {
@@ -5003,25 +5001,24 @@ class Ie extends Xe {
5003
5001
  }
5004
5002
  }
5005
5003
  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;
5004
+ constructor(A, e, t, a, n, s, i, o, r, c, B = !1, l, d = !1, E = !1) {
5005
+ this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
5006
+ var Q;
5010
5007
  if (!this.previewService)
5011
5008
  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(
5009
+ const C = this.getCommandContext().getAllLayouts(), w = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
5010
+ if (w)
5011
+ for (const [, h] of w)
5012
+ h.render(
5016
5013
  this.getWorkflow(),
5017
- E,
5014
+ C,
5018
5015
  this.getCurrentVariationRecord() || null,
5019
5016
  this.getProduct().overlayImageUrl
5020
5017
  );
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(() => {
5018
+ }, 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 = o, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = r, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
5022
5019
  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.");
5020
+ }), this.initializationPromise.catch((C) => {
5021
+ throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
5025
5022
  }), this.initializationPromise.finally(
5026
5023
  () => this.getCommandContext().registerStateCallback(() => {
5027
5024
  this.updateStateWithServer(), this.renderLayouts();
@@ -5456,14 +5453,14 @@ class Wa {
5456
5453
  this.stepSelections = {
5457
5454
  ...this.stepSelections,
5458
5455
  [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]);
5456
+ }, 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) => {
5457
+ 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
5458
  });
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)
5459
+ const s = this.allScenes, i = aA(s, n), o = aA(s, this.stepSelections), r = i.map((D) => D.silentSteps).flat(), B = o.map((D) => D.silentSteps).flat().filter(
5460
+ (D) => !r.some((m) => m.stepName === D.stepName)
5464
5461
  );
5465
- r.forEach((f) => {
5466
- nA(f, this.stepSelections) || (this.stepInitialised[f.stepName] = !1);
5462
+ r.forEach((D) => {
5463
+ nA(D, this.stepSelections) || (this.stepInitialised[D.stepName] = !1);
5467
5464
  });
5468
5465
  const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: E } = await this.stepElementsForIntroducedSilentSteps(B, !1);
5469
5466
  this.stepElements = {
@@ -5471,17 +5468,17 @@ class Wa {
5471
5468
  ...d,
5472
5469
  [A]: t
5473
5470
  }, 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(
5471
+ const C = this.workflow.steps.find((D) => D.stepName === A);
5472
+ if ((C == null ? void 0 : C.type) === I.Frame) {
5473
+ const D = this.getStepSpecificServices(A);
5474
+ (p = D == null ? void 0 : D.frameService) == null || p.setTargetElements(t.map((m) => m.id));
5475
+ }
5476
+ const w = l.map((D) => new $(D.id)), Q = new Ee(this.constructSerializableWorkflow()), h = [...E, ...w, Q];
5477
+ h.length > 0 && this.commandContext.apply(new G(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
5478
+ const u = this.getInvalidModelVariants(), f = this.modelContainer;
5479
+ if (f) {
5480
+ const D = u.map(
5481
+ (m) => f.applyModelVariant(
5485
5482
  m,
5486
5483
  {
5487
5484
  contextService: this.getLayoutPreviewService()
@@ -5489,7 +5486,7 @@ class Wa {
5489
5486
  !1
5490
5487
  )
5491
5488
  );
5492
- await Promise.all(f);
5489
+ await Promise.all(D);
5493
5490
  }
5494
5491
  await this.onSelectionChange(), a && await a();
5495
5492
  }
@@ -5626,7 +5623,7 @@ class Wa {
5626
5623
  }), this.renderLayouts();
5627
5624
  }
5628
5625
  traversableScenes() {
5629
- return Ca(this.allScenes, this.stepSelections);
5626
+ return Ca(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
5630
5627
  }
5631
5628
  }
5632
5629
  class X {
@@ -5809,7 +5806,7 @@ const ot = class ZA {
5809
5806
  };
5810
5807
  ot.updateState = /* @__PURE__ */ new Map();
5811
5808
  let j = ot;
5812
- const rt = M`
5809
+ const rt = y`
5813
5810
  mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
5814
5811
  transactionAddStakeholder(id: $id, details: $details, type: $type) {
5815
5812
  id
@@ -5823,7 +5820,7 @@ const rt = M`
5823
5820
  }
5824
5821
  }
5825
5822
  }
5826
- `, Xa = M`
5823
+ `, Xa = y`
5827
5824
  mutation UpdateDesignName($transactionId: String!, $designName: String!) {
5828
5825
  transactionUpdate(id: $transactionId, designName: $designName) {
5829
5826
  id
@@ -5838,7 +5835,7 @@ class qa extends j {
5838
5835
  throw new Error("Bulk step does not support variants.");
5839
5836
  }
5840
5837
  async setDesignName(A) {
5841
- await x.getShadowGraphqlClient().mutate({
5838
+ await N.getShadowGraphqlClient().mutate({
5842
5839
  mutation: Xa,
5843
5840
  variables: {
5844
5841
  transactionId: this.manager.getTransaction().id,
@@ -5865,7 +5862,7 @@ class qa extends j {
5865
5862
  window.open(this.transaction.bulkSourceUrl, "_blank");
5866
5863
  }
5867
5864
  async sendGoogleSheetLinkToEmail(A) {
5868
- await x.getShadowGraphqlClient().mutate({
5865
+ await N.getShadowGraphqlClient().mutate({
5869
5866
  mutation: rt,
5870
5867
  variables: { id: this.transaction.id, details: { emailAddress: A }, type: "Owner" }
5871
5868
  }), this.openBulkSourceUrl();
@@ -6179,8 +6176,8 @@ class an extends j {
6179
6176
  }
6180
6177
  ]);
6181
6178
  else {
6182
- const h = B.filter((w) => w.stepID !== this.step.stepName);
6183
- this.manager.setInformationResults(h);
6179
+ const C = B.filter((w) => w.stepID !== this.step.stepName);
6180
+ this.manager.setInformationResults(C);
6184
6181
  }
6185
6182
  return e.helperText = l || c, e.errorText = l, e;
6186
6183
  }
@@ -6282,7 +6279,7 @@ class oA {
6282
6279
  }
6283
6280
  }
6284
6281
  }
6285
- const ct = M`
6282
+ const ct = y`
6286
6283
  fragment CreateDesignTransaction on Transaction {
6287
6284
  id
6288
6285
  bulk
@@ -6299,7 +6296,7 @@ const ct = M`
6299
6296
  workflowViewerLink
6300
6297
  workflowViewerReadOnlyLink
6301
6298
  }
6302
- `, sn = M`
6299
+ `, sn = y`
6303
6300
  ${ct}
6304
6301
  mutation CreateDesign(
6305
6302
  $name: String!
@@ -6331,7 +6328,7 @@ const ct = M`
6331
6328
  }
6332
6329
  }
6333
6330
  }
6334
- `, on = M`
6331
+ `, on = y`
6335
6332
  ${ct}
6336
6333
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
6337
6334
  designCreateMany(inputs: $inputs) {
@@ -6347,7 +6344,7 @@ const ct = M`
6347
6344
  }
6348
6345
  `, rn = async (g) => {
6349
6346
  var e;
6350
- return (e = (await x.getShadowGraphqlClient().mutate({
6347
+ return (e = (await N.getShadowGraphqlClient().mutate({
6351
6348
  mutation: sn,
6352
6349
  errorPolicy: "all",
6353
6350
  fetchPolicy: "no-cache",
@@ -6364,7 +6361,7 @@ const ct = M`
6364
6361
  })).data) == null ? void 0 : e.designCreate;
6365
6362
  }, cn = async (g) => {
6366
6363
  var e;
6367
- return (e = (await x.getShadowGraphqlClient().mutate({
6364
+ return (e = (await N.getShadowGraphqlClient().mutate({
6368
6365
  mutation: on,
6369
6366
  errorPolicy: "all",
6370
6367
  fetchPolicy: "no-cache",
@@ -6451,7 +6448,7 @@ const ct = M`
6451
6448
  }
6452
6449
  return a;
6453
6450
  }, gt = (g, A, e, t, a, n, s, i, o, r) => {
6454
- const B = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6451
+ const B = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6455
6452
  baseCost: e,
6456
6453
  designProductId: g.externalDesignProductId,
6457
6454
  designProductVariantId: g.externalDesignProductVariantId,
@@ -6503,37 +6500,37 @@ const ct = M`
6503
6500
  i
6504
6501
  );
6505
6502
  }, Bt = async (g, A, e, t, a, n, s, i, o, r) => {
6506
- var y;
6503
+ var M;
6507
6504
  await (async () => {
6508
- var N;
6505
+ var S;
6509
6506
  if (r !== void 0)
6510
6507
  return r;
6511
6508
  await g.outstandingRequestsPromise();
6512
- const F = await x.getShadowGraphqlClient().query({
6509
+ const F = await N.getShadowGraphqlClient().query({
6513
6510
  query: Ve,
6514
6511
  variables: { ids: [a.id] },
6515
6512
  fetchPolicy: "no-cache",
6516
6513
  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;
6514
+ }), U = (S = F.data) == null ? void 0 : S.transactions[0].workflowState;
6515
+ return F.errors ? (F.errors.forEach((b) => {
6516
+ F.errors && console.log("Server Error:", b.message);
6517
+ }), null) : U ?? null;
6521
6518
  })() || (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) => {
6519
+ const l = g.getPreviewService(), d = (M = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : M.lookAtAnimation, E = l && A.showModelOnFinishStep && !!d, C = o && $A(o, A, !0), w = o && $A(o, A, !1), Q = async (Y) => {
6523
6520
  const F = {};
6524
- let R = 0;
6521
+ let U = 0;
6525
6522
  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];
6523
+ for (const S of Object.keys(n)) {
6524
+ const b = n[S], V = A.steps.find((W) => W.stepName === S);
6525
+ for (let W = 0; W < b.selections.length; ++W) {
6526
+ const q = b.selections[W];
6530
6527
  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({
6528
+ const bA = V.stepTitle;
6529
+ F[bA] ? F[bA].push({
6533
6530
  id: q.id || "",
6534
6531
  name: q.name,
6535
6532
  priceModifier: q.priceModifier
6536
- }) : F[JA] = [
6533
+ }) : F[bA] = [
6537
6534
  {
6538
6535
  id: q.id || "",
6539
6536
  name: q.name,
@@ -6541,18 +6538,18 @@ const ct = M`
6541
6538
  }
6542
6539
  ];
6543
6540
  }
6544
- R += q.priceModifier;
6541
+ U += q.priceModifier;
6545
6542
  }
6546
6543
  }
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) => [
6544
+ return [F, U];
6545
+ }, [h] = await Q(!0), u = Object.fromEntries(
6546
+ Object.keys(h).map((Y) => [Y, h[Y].map((F) => F.id)])
6547
+ ), [f] = await Q(!1), p = Object.fromEntries(
6548
+ Object.keys(f).map((Y) => [
6552
6549
  Y,
6553
- D[Y].map((F) => F.id)
6550
+ f[Y].map((F) => F.id)
6554
6551
  ])
6555
- ), f = await i(E);
6552
+ ), D = await i(E);
6556
6553
  return {
6557
6554
  designDetails: (() => {
6558
6555
  const Y = {
@@ -6564,29 +6561,29 @@ const ct = M`
6564
6561
  workflowId: A.id,
6565
6562
  transactionId: a.id,
6566
6563
  useThreeDimPreview: !!E,
6567
- previewImage: f
6564
+ previewImage: D
6568
6565
  };
6569
6566
  if (w) {
6570
6567
  const F = [];
6571
- for (const [R, N] of Object.entries(w))
6572
- F.push({ key: R, value: N });
6568
+ for (const [U, S] of Object.entries(w))
6569
+ F.push({ key: U, value: S });
6573
6570
  Y.metadata = F;
6574
6571
  }
6575
6572
  if (u) {
6576
6573
  const F = [];
6577
- for (const [R, N] of Object.entries(p))
6578
- F.push({ key: R, ids: N });
6574
+ for (const [U, S] of Object.entries(p))
6575
+ F.push({ key: U, ids: S });
6579
6576
  Y.selectedVariants = F;
6580
6577
  }
6581
6578
  return Y;
6582
6579
  })(),
6583
- cartSelectionsWithPrices: C,
6584
- cartMetadata: h
6580
+ cartSelectionsWithPrices: h,
6581
+ cartMetadata: C
6585
6582
  };
6586
6583
  }, Bn = async (g, A, e, t, a, n, s, i, o, r, c, B, l) => {
6587
- var u, D, p;
6584
+ var u, f, p;
6588
6585
  o("workflow.steps.finish.finalize.buildingLayouts");
6589
- const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: h } = await Bt(
6586
+ const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await Bt(
6590
6587
  g,
6591
6588
  A,
6592
6589
  e,
@@ -6602,19 +6599,19 @@ const ct = M`
6602
6599
  if (!(w != null && w.transaction))
6603
6600
  throw new Error("Failed to create design");
6604
6601
  o("workflow.steps.finish.finalize.updatingTransaction");
6605
- const C = w.transaction;
6602
+ const h = w.transaction;
6606
6603
  return n.bulk ? ln(
6607
- C,
6604
+ h,
6608
6605
  a,
6609
6606
  Q,
6610
- (D = w == null ? void 0 : w.processExecution) == null ? void 0 : D.id
6607
+ (f = w == null ? void 0 : w.processExecution) == null ? void 0 : f.id
6611
6608
  ) : await lt(
6612
- C,
6609
+ h,
6613
6610
  a,
6614
6611
  A,
6615
6612
  E,
6616
6613
  w == null ? void 0 : w.sku,
6617
- h,
6614
+ C,
6618
6615
  Q,
6619
6616
  (p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
6620
6617
  );
@@ -6626,7 +6623,7 @@ const ct = M`
6626
6623
  );
6627
6624
  const t = await (async () => {
6628
6625
  var o;
6629
- const i = await x.getShadowGraphqlClient().query({
6626
+ const i = await N.getShadowGraphqlClient().query({
6630
6627
  query: Ve,
6631
6628
  variables: { ids: g.map((r) => r.transaction.id) },
6632
6629
  fetchPolicy: "no-cache",
@@ -6693,7 +6690,7 @@ class wn {
6693
6690
  */
6694
6691
  async getSavedDesigns() {
6695
6692
  if (this.storageMethod === "Local") {
6696
- const A = S.get(this.localPersistenceKey);
6693
+ const A = x.get(this.localPersistenceKey);
6697
6694
  return A ? JSON.parse(A) : [];
6698
6695
  }
6699
6696
  throw new v("Unexpected storage method requested");
@@ -6733,7 +6730,7 @@ class wn {
6733
6730
  }
6734
6731
  async setDesigns(A) {
6735
6732
  if (this.storageMethod === "Local") {
6736
- S.set(this.localPersistenceKey, JSON.stringify(A));
6733
+ x.set(this.localPersistenceKey, JSON.stringify(A));
6737
6734
  return;
6738
6735
  }
6739
6736
  throw new v("Unexpected storage method requested");
@@ -6782,7 +6779,8 @@ class CA {
6782
6779
  e.reloadedState,
6783
6780
  e.readOnly,
6784
6781
  e.modelContainer,
6785
- e.isReloadedTransaction
6782
+ e.isReloadedTransaction,
6783
+ e.singleVariantsRenderable
6786
6784
  ), this.workflowManager.addSelectionCallback((n) => {
6787
6785
  const s = n.traversableScenes.map((i) => {
6788
6786
  const o = i.renderableSteps.map((r) => r.stepName);
@@ -6808,7 +6806,7 @@ class CA {
6808
6806
  return this.workflowManager;
6809
6807
  }
6810
6808
  async updateVariationRecords(A) {
6811
- await x.getShadowGraphqlClient().mutate({
6809
+ await N.getShadowGraphqlClient().mutate({
6812
6810
  mutation: da,
6813
6811
  variables: {
6814
6812
  transactionId: this.workflowManager.getTransaction().id,
@@ -6824,8 +6822,8 @@ class CA {
6824
6822
  });
6825
6823
  }
6826
6824
  async createPreviewImage(A, e) {
6827
- var C, u;
6828
- const t = this.workflowManager.getWorkflow(), a = (C = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : C.lookAtAnimation;
6825
+ var h, u;
6826
+ const t = this.workflowManager.getWorkflow(), a = (h = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : h.lookAtAnimation;
6829
6827
  if (A) {
6830
6828
  if (!a)
6831
6829
  throw new Error("Failed to generate cart preview image!");
@@ -6833,9 +6831,9 @@ class CA {
6833
6831
  }
6834
6832
  let n = 2048;
6835
6833
  e && e <= 2048 && (n = e);
6836
- const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((D) => {
6834
+ const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((f) => {
6837
6835
  var p;
6838
- return ((p = D.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6836
+ return ((p = f.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6839
6837
  }) || i[0], B = c.layoutState.layout.previewRegion ? {
6840
6838
  x: c.layoutState.layout.previewRegion.left,
6841
6839
  y: c.layoutState.layout.previewRegion.top,
@@ -6854,8 +6852,8 @@ class CA {
6854
6852
  purpose: Se.Print,
6855
6853
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
6856
6854
  }
6857
- }), h = xe(E);
6858
- await (await Ge.from(d, h, {
6855
+ }), C = xe(E);
6856
+ await (await Ge.from(d, C, {
6859
6857
  anonymousCrossOrigin: !0,
6860
6858
  ignoreDimensions: !1,
6861
6859
  createCanvas: yA,
@@ -6931,7 +6929,7 @@ class CA {
6931
6929
  }
6932
6930
  async assignCustomerDetails(A) {
6933
6931
  var a, n, s;
6934
- const t = (s = (n = (a = (await x.getShadowGraphqlClient().mutate({
6932
+ const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
6935
6933
  mutation: rt,
6936
6934
  variables: {
6937
6935
  id: this.getWorkflowManager().getTransaction().id,
@@ -6946,8 +6944,8 @@ class CA {
6946
6944
  );
6947
6945
  if (t != null && t.customer) {
6948
6946
  this.getWorkflowManager().setTransactionCustomer(t.customer);
6949
- const i = S.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6950
- i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), S.setMap("transactionCustomerIds", i);
6947
+ const i = x.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6948
+ i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), x.setMap("transactionCustomerIds", i);
6951
6949
  }
6952
6950
  }
6953
6951
  attachRenderableSceneListener(A) {
@@ -7046,16 +7044,16 @@ const En = [
7046
7044
  ], hn = async (g, A, e) => {
7047
7045
  const t = A.data, a = e.data.baseUrl, n = t.assetUrl.replace("localhost", "localstack"), s = a.slice(0, 4) === "http" ? "" : "https://", i = new URL(s + a);
7048
7046
  i.searchParams.append("video", he(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
7049
- const o = i.toString(), c = `data:image/svg+xml;base64,${he(await Je(o, { type: "svg" }))}`, B = (d) => {
7047
+ const o = i.toString(), c = `data:image/svg+xml;base64,${he(await be(o, { type: "svg" }))}`, B = (d) => {
7050
7048
  const E = g.find((w) => w.panelId === d.panelId);
7051
7049
  if (!E)
7052
- throw new T(d);
7053
- const h = k();
7050
+ throw new L(d);
7051
+ const C = k();
7054
7052
  return new J(
7055
7053
  {
7056
- id: h,
7054
+ id: C,
7057
7055
  src: c,
7058
- type: U.Image,
7056
+ type: H.Image,
7059
7057
  y: d.top,
7060
7058
  x: d.left,
7061
7059
  width: d.width,
@@ -7076,16 +7074,16 @@ const En = [
7076
7074
  const i = Rt(a, t.option);
7077
7075
  i && (A[t.stepName] = { selectedVariants: [i] });
7078
7076
  const o = async (r) => {
7079
- var h;
7077
+ var C;
7080
7078
  const c = await Pt(
7081
7079
  r || {
7082
7080
  width: 1,
7083
7081
  height: 1
7084
7082
  },
7085
- (h = i == null ? void 0 : i.asset) == null ? void 0 : h.fileLink
7083
+ (C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
7086
7084
  ), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === r.panelId);
7087
7085
  if (!d)
7088
- throw new T(r);
7086
+ throw new L(r);
7089
7087
  const E = ee(s, B, {
7090
7088
  scale: a.scale,
7091
7089
  left: a.x,
@@ -7098,7 +7096,7 @@ const En = [
7098
7096
  path: B.path,
7099
7097
  dataWidth: B.width,
7100
7098
  dataHeight: B.height,
7101
- type: U.Frame,
7099
+ type: H.Frame,
7102
7100
  focalBlur: t.data.focalBlur,
7103
7101
  focalBlurStrength: t.data.focalBlurStrength,
7104
7102
  focalBlurRadius: t.data.focalBlurRadius,
@@ -7124,7 +7122,7 @@ const En = [
7124
7122
  return console.error(i), [];
7125
7123
  }
7126
7124
  }, Qn = async (g, A, e, t) => {
7127
- var p, f;
7125
+ var p, D;
7128
7126
  const a = e.data, n = t.option;
7129
7127
  if (!n)
7130
7128
  return console.error(`No option for step ${t.stepName}.`), [];
@@ -7134,47 +7132,47 @@ const En = [
7134
7132
  if (!s.asset)
7135
7133
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
7136
7134
  A[t.stepName] = { selectedVariants: [s] };
7137
- const i = (f = s.asset) == null ? void 0 : f.fileLink;
7135
+ const i = (D = s.asset) == null ? void 0 : D.fileLink;
7138
7136
  if (!i)
7139
7137
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7140
7138
  const o = await Z(i, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", E = Pe().parseFromString(B, "image/svg+xml").firstElementChild;
7141
7139
  if (!E)
7142
7140
  return console.error("Failed to read SVG."), [];
7143
7141
  He(E);
7144
- const h = {};
7142
+ const C = {};
7145
7143
  Ht(E, (m) => {
7146
7144
  En.includes(m.tagName) && !m.attributes.getNamedItem("fill") && m.setAttribute("fill", "#000000");
7147
- const y = m.attributes.getNamedItem("fill");
7148
- if (y && y.value !== "none") {
7149
- const F = y.value, N = `spiff-fill-${F.replace(/\W/g, "")}`;
7150
- m.classList.add(N), h[N] = { browserValue: F };
7145
+ const M = m.attributes.getNamedItem("fill");
7146
+ if (M && M.value !== "none") {
7147
+ const F = M.value, S = `spiff-fill-${F.replace(/\W/g, "")}`;
7148
+ m.classList.add(S), C[S] = { browserValue: F };
7151
7149
  }
7152
7150
  const Y = m.attributes.getNamedItem("stroke");
7153
7151
  if (Y && Y.value !== "none") {
7154
- const F = Y.value, N = `spiff-stroke-${F.replace(/\W/g, "")}`;
7155
- m.classList.add(N), h[N] = { browserValue: F };
7152
+ const F = Y.value, S = `spiff-stroke-${F.replace(/\W/g, "")}`;
7153
+ m.classList.add(S), C[S] = { browserValue: F };
7156
7154
  }
7157
7155
  });
7158
- const Q = Ue().serializeToString(E), C = a.colors;
7159
- if (C) {
7160
- for (const [m, y] of Object.entries(h))
7161
- for (const Y of Object.keys(C))
7162
- if (y.browserValue === Y) {
7163
- h[m] = { browserValue: C[Y] };
7156
+ const Q = Ue().serializeToString(E), h = a.colors;
7157
+ if (h) {
7158
+ for (const [m, M] of Object.entries(C))
7159
+ for (const Y of Object.keys(h))
7160
+ if (M.browserValue === Y) {
7161
+ C[m] = { browserValue: h[Y] };
7164
7162
  break;
7165
7163
  }
7166
7164
  }
7167
7165
  const u = (m) => {
7168
- const y = g.find((F) => F.panelId === m.panelId);
7169
- if (!y)
7170
- throw new T(m);
7166
+ const M = g.find((F) => F.panelId === m.panelId);
7167
+ if (!M)
7168
+ throw new L(m);
7171
7169
  const Y = k();
7172
7170
  return new J(
7173
7171
  {
7174
- colors: h,
7172
+ colors: C,
7175
7173
  id: Y,
7176
7174
  svg: Q,
7177
- type: U.Illustration,
7175
+ type: H.Illustration,
7178
7176
  y: m.top,
7179
7177
  x: m.left,
7180
7178
  rotation: m.rotation,
@@ -7184,11 +7182,11 @@ const En = [
7184
7182
  layerIndex: m.layerIndex,
7185
7183
  immutable: m.immutable
7186
7184
  },
7187
- y
7185
+ M
7188
7186
  );
7189
- }, D = t.data.regions;
7187
+ }, f = t.data.regions;
7190
7188
  try {
7191
- return D.map(u);
7189
+ return f.map(u);
7192
7190
  } catch (m) {
7193
7191
  return console.error(m), [];
7194
7192
  }
@@ -7196,14 +7194,14 @@ const En = [
7196
7194
  const t = await it(e.data.module), a = A.data, n = (i, o) => {
7197
7195
  const r = g.find((B) => B.panelId === o.panelId);
7198
7196
  if (!r)
7199
- throw new T(o);
7197
+ throw new L(o);
7200
7198
  const c = k();
7201
7199
  return new J(
7202
7200
  {
7203
7201
  colors: {},
7204
7202
  id: c,
7205
7203
  svg: i,
7206
- type: U.Illustration,
7204
+ type: H.Illustration,
7207
7205
  y: o.top,
7208
7206
  x: o.left,
7209
7207
  rotation: o.rotation,
@@ -7237,15 +7235,15 @@ const En = [
7237
7235
  if (!i)
7238
7236
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
7239
7237
  const o = (l) => {
7240
- const d = g.find((h) => h.panelId === l.panelId);
7238
+ const d = g.find((C) => C.panelId === l.panelId);
7241
7239
  if (!d)
7242
- throw new T(l);
7240
+ throw new L(l);
7243
7241
  const E = k();
7244
7242
  return new J(
7245
7243
  {
7246
7244
  id: E,
7247
7245
  src: i,
7248
- type: U.Image,
7246
+ type: H.Image,
7249
7247
  y: l.top,
7250
7248
  x: l.left,
7251
7249
  rotation: l.rotation,
@@ -7276,7 +7274,7 @@ const En = [
7276
7274
  const i = (c) => {
7277
7275
  const B = g.find((w) => w.panelId === c.panelId);
7278
7276
  if (!B)
7279
- throw new T(c);
7277
+ throw new L(c);
7280
7278
  const l = `
7281
7279
  <svg
7282
7280
  xmlns="http://www.w3.org/2000/svg"
@@ -7297,13 +7295,13 @@ const En = [
7297
7295
  fill="${s == null ? void 0 : s.color}"
7298
7296
  />
7299
7297
  </svg>
7300
- `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, h = k();
7298
+ `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = k();
7301
7299
  return new J(
7302
7300
  {
7303
7301
  colors: E,
7304
- id: h,
7302
+ id: C,
7305
7303
  svg: l,
7306
- type: U.Illustration,
7304
+ type: H.Illustration,
7307
7305
  y: c.top,
7308
7306
  x: c.left,
7309
7307
  rotation: c.rotation,
@@ -7325,13 +7323,13 @@ const En = [
7325
7323
  const t = [], n = (() => {
7326
7324
  var r, c;
7327
7325
  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
+ })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), o = A.data.regions;
7329
7327
  if (i === "image")
7330
7328
  try {
7331
7329
  o.forEach((r) => {
7332
7330
  const c = g.find((l) => l.panelId === r.panelId);
7333
7331
  if (!c)
7334
- throw new T(r);
7332
+ throw new L(r);
7335
7333
  const B = {
7336
7334
  id: k(),
7337
7335
  src: n,
@@ -7364,7 +7362,7 @@ const En = [
7364
7362
  o.forEach((B) => {
7365
7363
  const l = g.find((E) => E.panelId === B.panelId);
7366
7364
  if (!l)
7367
- throw new T(B);
7365
+ throw new L(B);
7368
7366
  const d = {
7369
7367
  id: k(),
7370
7368
  src: n,
@@ -7394,13 +7392,13 @@ const En = [
7394
7392
  const w = t.option;
7395
7393
  if (!w)
7396
7394
  return;
7397
- const Q = ((u = w.variants) == null ? void 0 : u.find((D) => D.id === n.fontVariantId)) || UA(w);
7395
+ const Q = ((u = w.variants) == null ? void 0 : u.find((f) => f.id === n.fontVariantId)) || UA(w);
7398
7396
  if (!Q || !Q.asset)
7399
7397
  return;
7400
7398
  A[t.stepName] = { selectedVariants: [Q] };
7401
- const C = Q.asset.fileLink;
7402
- if (C)
7403
- return C;
7399
+ const h = Q.asset.fileLink;
7400
+ if (h)
7401
+ return h;
7404
7402
  }, c = await (async () => {
7405
7403
  const w = o();
7406
7404
  if (!w)
@@ -7417,14 +7415,14 @@ const En = [
7417
7415
  const Q = w.colorOption;
7418
7416
  if (!Q)
7419
7417
  return;
7420
- const C = z.getDefaultVariant(Q);
7421
- return C == null ? void 0 : C.color;
7422
- }, E = n.color || await d(t.data), h = t.data.regions;
7423
- for (const w of h) {
7418
+ const h = z.getDefaultVariant(Q);
7419
+ return h == null ? void 0 : h.color;
7420
+ }, E = n.color || await d(t.data), C = t.data.regions;
7421
+ for (const w of C) {
7424
7422
  const Q = g.find((u) => u.panelId === w.panelId);
7425
7423
  if (!Q)
7426
7424
  continue;
7427
- const C = {
7425
+ const h = {
7428
7426
  stepName: e.name,
7429
7427
  id: k(),
7430
7428
  align: i(t.data),
@@ -7438,7 +7436,7 @@ const En = [
7438
7436
  paths: t.data.paths,
7439
7437
  rotation: w.rotation,
7440
7438
  text: l,
7441
- type: U.Textbox,
7439
+ type: H.Textbox,
7442
7440
  vertical: t.data.vertical,
7443
7441
  verticalAlign: t.data.verticalAlign || "middle",
7444
7442
  width: w.width,
@@ -7446,7 +7444,7 @@ const En = [
7446
7444
  y: w.top
7447
7445
  };
7448
7446
  if (c) {
7449
- const [u, D] = IA(
7447
+ const [u, f] = IA(
7450
7448
  t.data.size || s,
7451
7449
  c,
7452
7450
  w,
@@ -7465,16 +7463,16 @@ const En = [
7465
7463
  a.push(
7466
7464
  new J(
7467
7465
  {
7468
- ...C,
7466
+ ...h,
7469
7467
  fontSize: u,
7470
- text: C.curved ? C.text : (D || []).join(`
7468
+ text: h.curved ? h.text : (f || []).join(`
7471
7469
  `)
7472
7470
  },
7473
7471
  Q
7474
7472
  )
7475
7473
  );
7476
7474
  } else
7477
- a.push(new J(C, Q));
7475
+ a.push(new J(h, Q));
7478
7476
  }
7479
7477
  return a;
7480
7478
  }, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
@@ -7678,19 +7676,19 @@ class Yn extends Xe {
7678
7676
  return;
7679
7677
  const e = A.layoutState.elements || [];
7680
7678
  if (this.variationRecord) {
7681
- const l = this.variationRecord.values.map((h) => ({
7682
- stepName: h.stepName,
7683
- stepAspectType: h.aspect,
7684
- value: h.value
7679
+ const l = this.variationRecord.values.map((C) => ({
7680
+ stepName: C.stepName,
7681
+ stepAspectType: C.aspect,
7682
+ value: C.value
7685
7683
  })), d = await xn(
7686
7684
  Sn(l, this.workflow),
7687
7685
  this.workflow,
7688
- this.layouts.map((h) => h.layoutState.layout),
7686
+ this.layouts.map((C) => C.layoutState.layout),
7689
7687
  this.productOverlayImageUrl
7690
7688
  ), E = d == null ? void 0 : d.layouts[A.layoutState.layout.id];
7691
- ((E == null ? void 0 : E.elements) || []).forEach((h) => {
7692
- const w = e.find((Q) => Q.stepName === h.stepName);
7693
- w && w.type === U.Textbox ? (w.text = h.text, w.fontSize = h.fontSize) : e.push(h);
7689
+ ((E == null ? void 0 : E.elements) || []).forEach((C) => {
7690
+ const w = e.find((Q) => Q.stepName === C.stepName);
7691
+ w && w.type === H.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
7694
7692
  }), Gt(e);
7695
7693
  }
7696
7694
  const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
@@ -7738,7 +7736,7 @@ const Sn = (g, A) => {
7738
7736
  a = new G(e.map((o) => new Ut(o))).apply(a);
7739
7737
  const s = await Fn(g, A, e, t);
7740
7738
  return new G(s).apply(a);
7741
- }, Nn = M`
7739
+ }, Nn = y`
7742
7740
  fragment ProductFields on Product {
7743
7741
  id
7744
7742
  basePrice
@@ -7773,7 +7771,7 @@ const Sn = (g, A) => {
7773
7771
  name
7774
7772
  }
7775
7773
  }
7776
- `, Rn = M`
7774
+ `, Rn = y`
7777
7775
  ${Nn}
7778
7776
  fragment ProductCollectionProductFields on ProductCollectionProduct {
7779
7777
  id
@@ -7783,7 +7781,7 @@ const Sn = (g, A) => {
7783
7781
  ...ProductFields
7784
7782
  }
7785
7783
  }
7786
- `, dt = M`
7784
+ `, dt = y`
7787
7785
  ${Rn}
7788
7786
  fragment ProductCollectionFields on ProductCollection {
7789
7787
  id
@@ -7830,7 +7828,7 @@ const Sn = (g, A) => {
7830
7828
  }
7831
7829
  }
7832
7830
  }
7833
- `, Pn = M`
7831
+ `, Pn = y`
7834
7832
  ${dt}
7835
7833
  query GetBundle($id: String!) {
7836
7834
  bundles(ids: [$id]) {
@@ -7852,7 +7850,7 @@ const Sn = (g, A) => {
7852
7850
  }
7853
7851
  }
7854
7852
  }
7855
- `, Hn = M`
7853
+ `, Hn = y`
7856
7854
  query GetBundleStakeholders($id: String!) {
7857
7855
  bundles(ids: [$id]) {
7858
7856
  id
@@ -7872,7 +7870,7 @@ const Sn = (g, A) => {
7872
7870
  }
7873
7871
  }
7874
7872
  }
7875
- `, Un = M`
7873
+ `, Un = y`
7876
7874
  query GetBundlesForCustomer($id: String!) {
7877
7875
  customers(ids: [$id]) {
7878
7876
  bundleStakeholders {
@@ -7893,7 +7891,7 @@ const Sn = (g, A) => {
7893
7891
  }
7894
7892
  }
7895
7893
  }
7896
- `, Gn = M`
7894
+ `, Gn = y`
7897
7895
  ${dt}
7898
7896
  mutation CreateBundle($collectionId: String) {
7899
7897
  bundleCreate(collectionId: $collectionId) {
@@ -7912,25 +7910,25 @@ const Sn = (g, A) => {
7912
7910
  }
7913
7911
  }
7914
7912
  }
7915
- `, vn = M`
7913
+ `, vn = y`
7916
7914
  mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
7917
7915
  bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
7918
7916
  id
7919
7917
  }
7920
7918
  }
7921
- `, kn = M`
7919
+ `, kn = y`
7922
7920
  mutation BundleAddTransaction($id: String!, $transactionId: String!) {
7923
7921
  bundleAddTransaction(id: $id, transactionId: $transactionId) {
7924
7922
  id
7925
7923
  }
7926
7924
  }
7927
- `, Jn = M`
7925
+ `, bn = y`
7928
7926
  mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
7929
7927
  bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
7930
7928
  id
7931
7929
  }
7932
7930
  }
7933
- `, bn = M`
7931
+ `, Jn = y`
7934
7932
  mutation BundleRemoveTransaction(
7935
7933
  $id: String!
7936
7934
  $transactionId: String!
@@ -7945,7 +7943,7 @@ const Sn = (g, A) => {
7945
7943
  id
7946
7944
  }
7947
7945
  }
7948
- `, Tn = M`
7946
+ `, Tn = y`
7949
7947
  mutation BundleRemoveTransactions(
7950
7948
  $id: String!
7951
7949
  $transactionIds: [String!]!
@@ -7960,7 +7958,7 @@ const Sn = (g, A) => {
7960
7958
  id
7961
7959
  }
7962
7960
  }
7963
- `, Ln = M`
7961
+ `, Ln = y`
7964
7962
  mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
7965
7963
  bundleAddStakeholder(id: $id, details: $details, type: $type) {
7966
7964
  id
@@ -7980,7 +7978,7 @@ const Sn = (g, A) => {
7980
7978
  }
7981
7979
  }
7982
7980
  }
7983
- `, On = M`
7981
+ `, On = y`
7984
7982
  mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
7985
7983
  bundleUpdateStakeholders(id: $id, input: $input) {
7986
7984
  id
@@ -8000,7 +7998,7 @@ const Sn = (g, A) => {
8000
7998
  }
8001
7999
  }
8002
8000
  }
8003
- `, zn = M`
8001
+ `, zn = y`
8004
8002
  mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
8005
8003
  bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
8006
8004
  id
@@ -8132,7 +8130,7 @@ class jn extends ge {
8132
8130
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8133
8131
  if (!e)
8134
8132
  return Promise.resolve();
8135
- const t = await b.getLocalOrFromServer(e);
8133
+ const t = await T.getLocalOrFromServer(e);
8136
8134
  return t ? this.applyImageSelection(t, A) : Promise.resolve();
8137
8135
  }
8138
8136
  async applyImageSelection(A, e) {
@@ -8252,7 +8250,7 @@ class Wn extends wt {
8252
8250
  return this.getSharedSteps()[0].getCustomColor();
8253
8251
  }
8254
8252
  }
8255
- const Xn = M`
8253
+ const Xn = y`
8256
8254
  mutation CreateGlobalPropertyState($bundleId: String!) {
8257
8255
  globalPropertyStateCreate(bundleId: $bundleId) {
8258
8256
  id
@@ -8262,7 +8260,7 @@ const Xn = M`
8262
8260
  }
8263
8261
  }
8264
8262
  }
8265
- `, qn = M`
8263
+ `, qn = y`
8266
8264
  mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
8267
8265
  globalPropertyStateUpdate(id: $id, aspects: $aspects) {
8268
8266
  id
@@ -8272,7 +8270,7 @@ const Xn = M`
8272
8270
  }
8273
8271
  }
8274
8272
  }
8275
- `, Zn = M`
8273
+ `, Zn = y`
8276
8274
  query GetGlobalPropertyState($bundleId: String!) {
8277
8275
  globalPropertyState(bundleId: $bundleId) {
8278
8276
  id
@@ -8312,7 +8310,7 @@ class $n {
8312
8310
  var e;
8313
8311
  if (!this.globalPropertyState)
8314
8312
  throw new Error("Global property state not initialized");
8315
- const A = await x.getShadowGraphqlClient().mutate({
8313
+ const A = await N.getShadowGraphqlClient().mutate({
8316
8314
  mutation: qn,
8317
8315
  variables: {
8318
8316
  id: this.globalPropertyState.id,
@@ -8326,7 +8324,7 @@ class $n {
8326
8324
  }
8327
8325
  async getOrCreateGlobalPropertyState() {
8328
8326
  var t;
8329
- const A = await x.getShadowGraphqlClient().query({
8327
+ const A = await N.getShadowGraphqlClient().query({
8330
8328
  query: Zn,
8331
8329
  errorPolicy: "all",
8332
8330
  fetchPolicy: "no-cache",
@@ -8336,7 +8334,7 @@ class $n {
8336
8334
  });
8337
8335
  if (A.data.globalPropertyState && A.data.globalPropertyState.id)
8338
8336
  return A.data.globalPropertyState;
8339
- const e = await x.getShadowGraphqlClient().mutate({
8337
+ const e = await N.getShadowGraphqlClient().mutate({
8340
8338
  mutation: Xn,
8341
8339
  variables: {
8342
8340
  bundleId: this.bundleId
@@ -8492,7 +8490,7 @@ class es {
8492
8490
  getDefaultWorkflow() {
8493
8491
  const A = this.product.workflows || [];
8494
8492
  if (A.length === 0)
8495
- throw new H(
8493
+ throw new P(
8496
8494
  "No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
8497
8495
  );
8498
8496
  const e = this.productResource.workflowId;
@@ -8670,9 +8668,9 @@ class fe {
8670
8668
  throw new Error(
8671
8669
  "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8672
8670
  );
8673
- const a = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8674
- await x.getShadowGraphqlClient().mutate({
8675
- mutation: Jn,
8671
+ const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8672
+ await N.getShadowGraphqlClient().mutate({
8673
+ mutation: bn,
8676
8674
  variables: {
8677
8675
  id: this.id,
8678
8676
  transactionIds: e,
@@ -8696,8 +8694,8 @@ class fe {
8696
8694
  (i) => i.getWorkflowManager().getTransaction().id === t
8697
8695
  ))
8698
8696
  throw new Error("Unable to add transaction to bundle - Already Exists!");
8699
- const s = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8700
- await x.getShadowGraphqlClient().mutate({
8697
+ const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8698
+ await N.getShadowGraphqlClient().mutate({
8701
8699
  mutation: kn,
8702
8700
  variables: {
8703
8701
  id: this.id,
@@ -8729,8 +8727,8 @@ class fe {
8729
8727
  const a = this.workflowExperiences.find(
8730
8728
  (n) => n.getWorkflowManager().getTransaction().id === e.id
8731
8729
  );
8732
- this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await x.getShadowGraphqlClient().mutate({
8733
- mutation: bn,
8730
+ this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
8731
+ mutation: Jn,
8734
8732
  variables: {
8735
8733
  id: this.id,
8736
8734
  transactionId: e.id,
@@ -8756,7 +8754,7 @@ class fe {
8756
8754
  1
8757
8755
  )[0]
8758
8756
  );
8759
- this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
8757
+ this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
8760
8758
  mutation: Tn,
8761
8759
  variables: {
8762
8760
  id: this.id,
@@ -8814,7 +8812,7 @@ class fe {
8814
8812
  }
8815
8813
  async addStakeholder(A, e) {
8816
8814
  var n;
8817
- const t = await x.getShadowGraphqlClient().mutate({
8815
+ const t = await N.getShadowGraphqlClient().mutate({
8818
8816
  mutation: Ln,
8819
8817
  variables: {
8820
8818
  id: this.id,
@@ -8829,7 +8827,7 @@ class fe {
8829
8827
  }
8830
8828
  async updateStakeholders(A) {
8831
8829
  var a;
8832
- const e = await x.getShadowGraphqlClient().mutate({
8830
+ const e = await N.getShadowGraphqlClient().mutate({
8833
8831
  mutation: On,
8834
8832
  variables: {
8835
8833
  id: this.id,
@@ -8842,7 +8840,7 @@ class fe {
8842
8840
  this.storeStakeholderCustomers(t);
8843
8841
  }
8844
8842
  async getAllStakeholders() {
8845
- const A = await x.getShadowGraphqlClient().query({
8843
+ const A = await N.getShadowGraphqlClient().query({
8846
8844
  query: Hn,
8847
8845
  errorPolicy: "all",
8848
8846
  variables: {
@@ -8930,7 +8928,7 @@ class fe {
8930
8928
  }
8931
8929
  async updateBundle() {
8932
8930
  var e;
8933
- if (!((e = (await x.getShadowGraphqlClient().mutate({
8931
+ if (!((e = (await N.getShadowGraphqlClient().mutate({
8934
8932
  mutation: vn,
8935
8933
  variables: {
8936
8934
  id: this.id,
@@ -8942,7 +8940,7 @@ class fe {
8942
8940
  throw new Error("Bundle not found!");
8943
8941
  }
8944
8942
  async updateTransactionOrder() {
8945
- await x.getShadowGraphqlClient().mutate({
8943
+ await N.getShadowGraphqlClient().mutate({
8946
8944
  mutation: zn,
8947
8945
  variables: {
8948
8946
  id: this.id,
@@ -8973,7 +8971,7 @@ class fe {
8973
8971
  );
8974
8972
  }
8975
8973
  }
8976
- const ns = M`
8974
+ const ns = y`
8977
8975
  mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
8978
8976
  processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
8979
8977
  id
@@ -8990,7 +8988,7 @@ class ss {
8990
8988
  */
8991
8989
  async execute(A, e, t) {
8992
8990
  var B, l, d;
8993
- const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
8991
+ const n = (l = (B = (await N.getShadowGraphqlClient().mutate({
8994
8992
  mutation: ns,
8995
8993
  variables: {
8996
8994
  processFlowId: A,
@@ -9000,14 +8998,14 @@ class ss {
9000
8998
  if (!n)
9001
8999
  throw new Error("Failed to create process execution.");
9002
9000
  function s(E) {
9003
- return new Promise((h) => {
9004
- setTimeout(h, E);
9001
+ return new Promise((C) => {
9002
+ setTimeout(C, E);
9005
9003
  });
9006
9004
  }
9007
9005
  let i = !1, o = 0, r, c;
9008
9006
  for (; !i; ) {
9009
- r = await x.getShadowGraphqlClient().query({
9010
- query: M`
9007
+ r = await N.getShadowGraphqlClient().query({
9008
+ query: y`
9011
9009
  query getProcessFlowExecution($ids: [String]!) {
9012
9010
  processExecutions(ids: $ids) {
9013
9011
  id
@@ -9037,8 +9035,8 @@ class ss {
9037
9035
  break;
9038
9036
  }
9039
9037
  o += 1;
9040
- const h = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9041
- if (o >= h)
9038
+ const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9039
+ if (o >= C)
9042
9040
  throw new Error("Maximum wait time exceeded for execution result.");
9043
9041
  await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
9044
9042
  }
@@ -9143,7 +9141,7 @@ class Et extends os {
9143
9141
  return A.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
9144
9142
  }
9145
9143
  }
9146
- const cs = M`
9144
+ const cs = y`
9147
9145
  fragment RegionFields on Region {
9148
9146
  width
9149
9147
  top
@@ -9161,7 +9159,7 @@ const cs = M`
9161
9159
  height
9162
9160
  }
9163
9161
  }
9164
- `, gs = M`
9162
+ `, gs = y`
9165
9163
  fragment LookAtAnimationFields on LookAtAnimation {
9166
9164
  latDeg
9167
9165
  lonDeg
@@ -9172,7 +9170,7 @@ const cs = M`
9172
9170
  z
9173
9171
  }
9174
9172
  }
9175
- `, ls = M`
9173
+ `, ls = y`
9176
9174
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
9177
9175
  antiAliasing {
9178
9176
  samples
@@ -9256,14 +9254,14 @@ const cs = M`
9256
9254
  weight
9257
9255
  }
9258
9256
  }
9259
- `, Bs = M`
9257
+ `, Bs = y`
9260
9258
  fragment ModelAnimationFields on ModelAnimation {
9261
9259
  from
9262
9260
  to
9263
9261
  loop
9264
9262
  name
9265
9263
  }
9266
- `, ds = (g) => M`
9264
+ `, ds = (g) => y`
9267
9265
  ${kA(g)}
9268
9266
  ${se}
9269
9267
  ${je}
@@ -9367,6 +9365,7 @@ const cs = M`
9367
9365
  stepTitle
9368
9366
  helpText
9369
9367
  mandatory
9368
+ silent
9370
9369
  conditions {
9371
9370
  requiredVariantSelections
9372
9371
  targetStepName
@@ -9660,7 +9659,7 @@ const cs = M`
9660
9659
  }
9661
9660
  }
9662
9661
  }
9663
- `, ws = M`
9662
+ `, ws = y`
9664
9663
  query GetTransactionForPartner($id: String!) {
9665
9664
  transactions(ids: [$id]) {
9666
9665
  id
@@ -9677,7 +9676,7 @@ const cs = M`
9677
9676
  }
9678
9677
  }
9679
9678
  }
9680
- `, Es = M`
9679
+ `, Es = y`
9681
9680
  ${kA(!1)}
9682
9681
  query GetWorkflowForTheme($id: String!) {
9683
9682
  workflow(id: $id) {
@@ -9699,7 +9698,7 @@ const cs = M`
9699
9698
  }
9700
9699
  }
9701
9700
  }
9702
- `, hs = M`
9701
+ `, hs = y`
9703
9702
  query GetCustomer($emailAddress: String!) {
9704
9703
  customer(emailAddress: $emailAddress) {
9705
9704
  id
@@ -9709,7 +9708,7 @@ const cs = M`
9709
9708
  }
9710
9709
  }
9711
9710
  }
9712
- `, Cs = M`
9711
+ `, Cs = y`
9713
9712
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9714
9713
  customerCreate(details: $details) {
9715
9714
  id
@@ -9719,7 +9718,7 @@ const cs = M`
9719
9718
  }
9720
9719
  }
9721
9720
  }
9722
- `, Qs = M`
9721
+ `, Qs = y`
9723
9722
  mutation CustomerAuthenticate($loginToken: String!) {
9724
9723
  customerAuthenticate(loginToken: $loginToken) {
9725
9724
  id
@@ -9746,11 +9745,11 @@ const cs = M`
9746
9745
  }
9747
9746
  }
9748
9747
  }
9749
- `, us = M`
9748
+ `, us = y`
9750
9749
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9751
9750
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9752
9751
  }
9753
- `, ms = M`
9752
+ `, ms = y`
9754
9753
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9755
9754
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9756
9755
  id
@@ -9782,13 +9781,13 @@ const cs = M`
9782
9781
  var A;
9783
9782
  for (const e in g.layouts) {
9784
9783
  const t = g.layouts[e].elements.filter(
9785
- (n) => n.type === U.Illustration
9784
+ (n) => n.type === H.Illustration
9786
9785
  );
9787
9786
  for (let n = 0; n < t.length; ++n) {
9788
9787
  const s = t[n];
9789
9788
  s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
9790
9789
  }
9791
- const a = g.layouts[e].elements.filter((n) => n.type === U.Textbox);
9790
+ const a = g.layouts[e].elements.filter((n) => n.type === H.Textbox);
9792
9791
  for (let n = 0; n < a.length; ++n) {
9793
9792
  const s = a[n];
9794
9793
  (A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
@@ -9796,7 +9795,7 @@ const cs = M`
9796
9795
  }
9797
9796
  }, ps = async (g, A) => {
9798
9797
  var a;
9799
- const e = await x.getShadowGraphqlClient().query({
9798
+ const e = await N.getShadowGraphqlClient().query({
9800
9799
  query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9801
9800
  errorPolicy: "all",
9802
9801
  fetchPolicy: "no-cache",
@@ -9809,8 +9808,8 @@ const cs = M`
9809
9808
  return t.forEach((n) => {
9810
9809
  n.steps.forEach((s) => {
9811
9810
  var i, o, r;
9812
- 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) => {
9813
- c.asset && b.cacheAsset(c.asset), c.displayImage && b.cacheAsset(c.displayImage), c.thumbnail && b.cacheAsset(c.thumbnail), c.material && b.cacheMaterial(c.material);
9811
+ delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && T.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && T.cacheAsset(s.option.colorProfile), (r = s.option.variants) == null || r.forEach((c) => {
9812
+ c.asset && T.cacheAsset(c.asset), c.displayImage && T.cacheAsset(c.displayImage), c.thumbnail && T.cacheAsset(c.thumbnail), c.material && T.cacheMaterial(c.material);
9814
9813
  }), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
9815
9814
  });
9816
9815
  }), t;
@@ -9848,12 +9847,12 @@ class fs {
9848
9847
  constructor(A) {
9849
9848
  this.updateTransactionState = async (e) => {
9850
9849
  try {
9851
- return x.getShadowGraphqlClient().mutate({
9850
+ return N.getShadowGraphqlClient().mutate({
9852
9851
  ...e,
9853
9852
  mutation: la
9854
9853
  });
9855
9854
  } catch (t) {
9856
- throw console.error(t), new H("Critical - Unable to synchronize workflow state with server.");
9855
+ throw console.error(t), new P("Critical - Unable to synchronize workflow state with server.");
9857
9856
  }
9858
9857
  }, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
9859
9858
  }
@@ -9862,7 +9861,7 @@ class fs {
9862
9861
  * and the Spiff Commerce platform.
9863
9862
  */
9864
9863
  getAssetManager() {
9865
- return b;
9864
+ return T;
9866
9865
  }
9867
9866
  getCurrencyCode() {
9868
9867
  if (this.currencyCode === void 0)
@@ -9882,14 +9881,14 @@ class fs {
9882
9881
  */
9883
9882
  async authenticateBundleFromLocalStorage(A) {
9884
9883
  var a, n;
9885
- const e = S.getMap("bundleOwnerIds");
9884
+ const e = x.getMap("bundleOwnerIds");
9886
9885
  if (e != null && e.has(A)) {
9887
9886
  const s = e.get(A);
9888
9887
  return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9889
9888
  }
9890
- const t = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9889
+ const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9891
9890
  if (t.has(A)) {
9892
- const s = t.get(A), o = (S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9891
+ const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9893
9892
  if (o && await this.authenticateCustomerId(o)) {
9894
9893
  const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9895
9894
  (B) => {
@@ -9917,8 +9916,8 @@ class fs {
9917
9916
  * @throws An error if the transaction is not found.
9918
9917
  */
9919
9918
  async authenticateTransactionFromLocalStorage(A) {
9920
- var c, B, l, d, E, h;
9921
- const e = x.getShadowGraphqlClient(), t = await e.query({
9919
+ var c, B, l, d, E, C;
9920
+ const e = N.getShadowGraphqlClient(), t = await e.query({
9922
9921
  query: ws,
9923
9922
  errorPolicy: "all",
9924
9923
  fetchPolicy: "no-cache",
@@ -9933,30 +9932,30 @@ class fs {
9933
9932
  throw new Error(`Unable to read transaction: ${A}`);
9934
9933
  if (a.isOrdered)
9935
9934
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9936
- const s = S.getMap("transactionOwnerIds");
9935
+ const s = x.getMap("transactionOwnerIds");
9937
9936
  if (s != null && s.has(A)) {
9938
9937
  const w = s.get(A);
9939
9938
  return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9940
9939
  }
9941
- const i = S.getMap("transactionCustomerIds");
9940
+ const i = x.getMap("transactionCustomerIds");
9942
9941
  if (i != null && i.has(A)) {
9943
9942
  const w = i.get(A);
9944
9943
  if (w && await this.authenticateCustomerId(w)) {
9945
- const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9944
+ const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9946
9945
  (u) => {
9947
- var D, p;
9948
- return (p = (D = u.bundle) == null ? void 0 : D.transactions) == null ? void 0 : p.some((f) => f.id === A);
9946
+ var f, p;
9947
+ return (p = (f = u.bundle) == null ? void 0 : f.transactions) == null ? void 0 : p.some((D) => D.id === A);
9949
9948
  }
9950
- )) || ((h = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : h.find(
9949
+ )) || ((C = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : C.find(
9951
9950
  (u) => {
9952
- var D;
9953
- return ((D = u.transaction) == null ? void 0 : D.id) === A;
9951
+ var f;
9952
+ return ((f = u.transaction) == null ? void 0 : f.id) === A;
9954
9953
  }
9955
9954
  ));
9956
- if (C)
9955
+ if (h)
9957
9956
  return Promise.resolve({
9958
9957
  success: !0,
9959
- stakeholderType: C.type
9958
+ stakeholderType: h.type
9960
9959
  });
9961
9960
  }
9962
9961
  }
@@ -9979,8 +9978,8 @@ class fs {
9979
9978
  this.customer = void 0;
9980
9979
  }
9981
9980
  clearCustomerForTransaction(A) {
9982
- const e = S.getMap("transactionCustomerIds");
9983
- e != null && e.has(A) && (e.delete(A), S.setMap("transactionCustomerIds", e));
9981
+ const e = x.getMap("transactionCustomerIds");
9982
+ e != null && e.has(A) && (e.delete(A), x.setMap("transactionCustomerIds", e));
9984
9983
  }
9985
9984
  getStakeholderTypeForTransaction(A) {
9986
9985
  var t, a;
@@ -9996,7 +9995,7 @@ class fs {
9996
9995
  async getOrCreateCustomer(A) {
9997
9996
  var s;
9998
9997
  this.customer = void 0;
9999
- const e = x.getShadowGraphqlClient(), a = (await e.query({
9998
+ const e = N.getShadowGraphqlClient(), a = (await e.query({
10000
9999
  query: hs,
10001
10000
  errorPolicy: "all",
10002
10001
  fetchPolicy: "no-cache",
@@ -10031,7 +10030,7 @@ class fs {
10031
10030
  }
10032
10031
  async authenticateCustomerId(A) {
10033
10032
  var i;
10034
- const e = x.getShadowGraphqlClient(), t = S.getMap("customerTokens");
10033
+ const e = N.getShadowGraphqlClient(), t = x.getMap("customerTokens");
10035
10034
  if (!(t != null && t.has(A)))
10036
10035
  return !1;
10037
10036
  const a = t.get(A);
@@ -10052,7 +10051,7 @@ class fs {
10052
10051
  * @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
10053
10052
  */
10054
10053
  async generateVerificationCode(A) {
10055
- await x.getShadowGraphqlClient().mutate({
10054
+ await N.getShadowGraphqlClient().mutate({
10056
10055
  mutation: us,
10057
10056
  variables: {
10058
10057
  emailAddress: A
@@ -10067,7 +10066,7 @@ class fs {
10067
10066
  */
10068
10067
  async verifyCode(A, e) {
10069
10068
  var n, s;
10070
- const a = (n = (await x.getShadowGraphqlClient().mutate({
10069
+ const a = (n = (await N.getShadowGraphqlClient().mutate({
10071
10070
  mutation: ms,
10072
10071
  errorPolicy: "all",
10073
10072
  fetchPolicy: "no-cache",
@@ -10079,8 +10078,8 @@ class fs {
10079
10078
  if (a != null && a.loginToken) {
10080
10079
  if (!((s = a.partner) != null && s.id))
10081
10080
  throw new Error(`Unable to find customer: ${A}`);
10082
- const i = S.getMap("customerTokens") || /* @__PURE__ */ new Map();
10083
- return i.set(a.id, a.loginToken), S.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10081
+ const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
10082
+ return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10084
10083
  ...a,
10085
10084
  loginToken: void 0
10086
10085
  }, !0;
@@ -10093,7 +10092,7 @@ class fs {
10093
10092
  */
10094
10093
  async getNewBundle(A) {
10095
10094
  var s;
10096
- const t = (s = (await x.getShadowGraphqlClient().mutate({
10095
+ const t = (s = (await N.getShadowGraphqlClient().mutate({
10097
10096
  mutation: Gn,
10098
10097
  variables: {
10099
10098
  collectionId: A
@@ -10102,10 +10101,10 @@ class fs {
10102
10101
  })).data) == null ? void 0 : s.bundleCreate;
10103
10102
  if (!(t != null && t.id))
10104
10103
  throw new Error("Unable to create bundle");
10105
- const a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10106
- a.set(t.id, t.partner.id), S.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10107
- const n = S.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10108
- return n.set(t.id, t.bundleOwnerId), S.setMap("bundleOwnerIds", n), new fe(this, t);
10104
+ const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10105
+ a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10106
+ const n = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10107
+ return n.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", n), new fe(this, t);
10109
10108
  }
10110
10109
  /**
10111
10110
  * Retrieves an existing bundle from the API, by id.
@@ -10116,9 +10115,9 @@ class fs {
10116
10115
  */
10117
10116
  async getExistingBundle(A, e, t) {
10118
10117
  var c, B, l, d;
10119
- const a = S.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10118
+ const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10120
10119
  n && TA(n);
10121
- const s = await x.getShadowGraphqlClient().query({
10120
+ const s = await N.getShadowGraphqlClient().query({
10122
10121
  query: Pn,
10123
10122
  variables: {
10124
10123
  id: A
@@ -10127,8 +10126,8 @@ class fs {
10127
10126
  });
10128
10127
  if (!((c = s.data) != null && c.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
10129
10128
  throw new Error(`Unable to find bundle: ${A}`);
10130
- const i = (d = s.data) == null ? void 0 : d.bundles[0], o = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10131
- o.set(i.id, i.partner.id), S.setMap("bundlePartnerIds", o);
10129
+ const i = (d = s.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10130
+ o.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", o);
10132
10131
  const r = new fe(this, i, e, t);
10133
10132
  return await r.getInitializationPromise(), r;
10134
10133
  }
@@ -10140,7 +10139,7 @@ class fs {
10140
10139
  var n;
10141
10140
  if (!this.customer)
10142
10141
  throw new Error("Customer not authenticated.");
10143
- const A = await x.getShadowGraphqlClient().query({
10142
+ const A = await N.getShadowGraphqlClient().query({
10144
10143
  query: Un,
10145
10144
  variables: {
10146
10145
  id: this.customer.id
@@ -10149,11 +10148,11 @@ class fs {
10149
10148
  });
10150
10149
  if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
10151
10150
  throw new Error("Unable to find customer.");
10152
- const t = A.data.customers[0].bundleStakeholders || [], a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10151
+ const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10153
10152
  return t.forEach((s) => {
10154
10153
  var i, o;
10155
10154
  (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
10156
- }), S.setMap("bundlePartnerIds", a), t;
10155
+ }), x.setMap("bundlePartnerIds", a), t;
10157
10156
  }
10158
10157
  /**
10159
10158
  * Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
@@ -10164,40 +10163,40 @@ class fs {
10164
10163
  * @returns A workflow experience configured as requested.
10165
10164
  */
10166
10165
  async getWorkflowExperience(A, e, t, a) {
10167
- var B, l, d, E;
10166
+ var B, l, d, E, C;
10168
10167
  if (!a)
10169
10168
  return await this.getWorkflowExperienceDeprecated(A, e, t);
10170
10169
  const n = async () => {
10171
- var w, Q;
10172
- const h = x.getShadowGraphqlClient();
10170
+ var Q, h;
10171
+ const w = N.getShadowGraphqlClient();
10173
10172
  if (a.type === "transaction") {
10174
- const { transactionId: C, readOnly: u } = a, D = await h.query({
10173
+ const { transactionId: u, readOnly: f } = a, p = await w.query({
10175
10174
  query: EA,
10176
10175
  variables: {
10177
- ids: [C]
10176
+ ids: [u]
10178
10177
  },
10179
10178
  errorPolicy: "all",
10180
10179
  fetchPolicy: "no-cache"
10181
10180
  });
10182
- if (!((w = D.data) != null && w.transactions) || D.data.transactions.length === 0)
10183
- throw new H("Existing transaction not found.");
10184
- const p = (Q = D.data) == null ? void 0 : Q.transactions[0];
10185
- if (!p.workflowId)
10186
- throw new H("Existing transaction has no workflow ID.");
10187
- const f = await pA(p.workflowId);
10188
- if (!p.product)
10189
- throw new H("Failed to load transaction, product not available.");
10190
- return { transaction: p, workflow: f, readOnly: u };
10181
+ if (!((Q = p.data) != null && Q.transactions) || p.data.transactions.length === 0)
10182
+ throw new P("Existing transaction not found.");
10183
+ const D = (h = p.data) == null ? void 0 : h.transactions[0];
10184
+ if (!D.workflowId)
10185
+ throw new P("Existing transaction has no workflow ID.");
10186
+ const m = await pA(D.workflowId);
10187
+ if (!D.product)
10188
+ throw new P("Failed to load transaction, product not available.");
10189
+ return { transaction: D, workflow: m, readOnly: f };
10191
10190
  }
10192
10191
  if (a.type === "integration" || a.type === "external") {
10193
- const C = async () => {
10194
- const f = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10192
+ const u = async () => {
10193
+ const m = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10195
10194
  externalIntegrationId: a.externalIntegrationId,
10196
10195
  externalProductId: a.externalProductId
10197
- }, m = await h.mutate({
10196
+ }, M = await w.mutate({
10198
10197
  mutation: ue,
10199
10198
  variables: {
10200
- ...f,
10199
+ ...m,
10201
10200
  bulk: a.bulk,
10202
10201
  workflowId: a.workflowId,
10203
10202
  claim: !0
@@ -10207,37 +10206,38 @@ class fs {
10207
10206
  // TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
10208
10207
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10209
10208
  });
10210
- if (!m.data || !m.data.transactionCreate)
10211
- throw new H("Failed to create transaction!");
10212
- const y = m.data.transactionCreate;
10213
- if (!y.product)
10214
- throw new H("Failed to create transaction, product not available.");
10215
- return y;
10216
- }, u = pA(a.workflowId, a == null ? void 0 : a.graphql), [D, p] = await Promise.all([C(), u]);
10217
- return { transaction: D, workflow: p };
10209
+ if (!M.data || !M.data.transactionCreate)
10210
+ throw new P("Failed to create transaction!");
10211
+ const Y = M.data.transactionCreate;
10212
+ if (!Y.product)
10213
+ throw new P("Failed to create transaction, product not available.");
10214
+ return Y;
10215
+ }, f = pA(a.workflowId, a == null ? void 0 : a.graphql), [p, D] = await Promise.all([u(), f]);
10216
+ return { transaction: p, workflow: D };
10218
10217
  }
10219
- throw new H("No workflow ID provided.");
10218
+ throw new P("No workflow ID provided.");
10220
10219
  }, { transaction: s, workflow: i, readOnly: o } = await n();
10221
10220
  this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
10222
10221
  const r = {
10223
10222
  product: s.product,
10224
10223
  transaction: s,
10225
10224
  layouts: [],
10225
+ singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
10226
10226
  stateMutationFunc: o ? async () => {
10227
10227
  throw new v("State mutation is forbidden in read only mode!");
10228
- } : async (h) => {
10229
- const Q = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10230
- return this.updateTransactionState({ ...h, context: { transactionOwnerId: Q } });
10228
+ } : async (w) => {
10229
+ const h = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10230
+ return this.updateTransactionState({ ...w, context: { transactionOwnerId: h } });
10231
10231
  },
10232
10232
  readOnly: o,
10233
10233
  workflow: i
10234
10234
  };
10235
10235
  if (a.type === "transaction" && s.workflowState) {
10236
- const h = JSON.parse(s.workflowState);
10237
- r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10236
+ const w = JSON.parse(s.workflowState);
10237
+ r.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), r.reloadedState = w;
10238
10238
  } else if (!o && a.workflowState) {
10239
- const h = JSON.parse(a.workflowState);
10240
- r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10239
+ const w = JSON.parse(a.workflowState);
10240
+ r.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), r.reloadedState = w;
10241
10241
  } else
10242
10242
  r.layouts = KA(
10243
10243
  r.transaction,
@@ -10245,18 +10245,18 @@ class fs {
10245
10245
  );
10246
10246
  if (r.renderableContextService = new QA(
10247
10247
  r.layouts
10248
- ), a.previewService ? (r.previewService = a.previewService, (l = r.product) != null && l.modelUrl && (r.modelContainer = r.previewService.loadModel({
10248
+ ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
10249
10249
  model: r.product.modelUrl,
10250
10250
  contextService: r.renderableContextService
10251
- }))) : (r.previewService = t && t(i), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
10251
+ }))) : (r.previewService = t && t(i), (E = r.product) != null && E.modelUrl && (r.modelContainer = (C = r.previewService) == null ? void 0 : C.loadModel({
10252
10252
  model: r.product.modelUrl,
10253
10253
  contextService: r.renderableContextService
10254
10254
  }))), a.type !== "transaction") {
10255
- const h = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10256
- h.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), S.setMap("transactionOwnerIds", h);
10255
+ const w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10256
+ w.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), x.setMap("transactionOwnerIds", w);
10257
10257
  } else {
10258
- const w = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10259
- w && eA(w), r.isReloadedTransaction = !0;
10258
+ const Q = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10259
+ Q && eA(Q), r.isReloadedTransaction = !0;
10260
10260
  }
10261
10261
  this.initialized = !0, this.experienceOptions = r;
10262
10262
  const c = new CA(this, r);
@@ -10271,39 +10271,39 @@ class fs {
10271
10271
  */
10272
10272
  async getWorkflowExperiences(A, e) {
10273
10273
  if (A.length === 0)
10274
- throw new H("No options provided!");
10275
- const t = x.getShadowGraphqlClient(), a = A.map((C, u) => ({ option: C, index: u })), n = a.filter((C) => C.option.type === "transaction"), s = a.filter(
10276
- (C) => C.option.type === "integration" || C.option.type === "external"
10274
+ throw new P("No options provided!");
10275
+ const t = N.getShadowGraphqlClient(), a = A.map((h, u) => ({ option: h, index: u })), n = a.filter((h) => h.option.type === "transaction"), s = a.filter(
10276
+ (h) => h.option.type === "integration" || h.option.type === "external"
10277
10277
  ), i = async () => {
10278
- var p, f;
10278
+ var p, D;
10279
10279
  if (n.length === 0)
10280
10280
  return [];
10281
- const C = n.map((m) => m.option.transactionId), u = await t.query({
10281
+ const h = n.map((m) => m.option.transactionId), u = await t.query({
10282
10282
  query: EA,
10283
10283
  variables: {
10284
- ids: C
10284
+ ids: h
10285
10285
  },
10286
10286
  errorPolicy: "all",
10287
10287
  fetchPolicy: "no-cache"
10288
- }), D = u.data.transactions;
10289
- if (D.length !== n.length) {
10290
- const m = ((f = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10291
- throw new H(`Not all transactions were found: ${m}`);
10288
+ }), f = u.data.transactions;
10289
+ if (f.length !== n.length) {
10290
+ const m = ((D = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
10291
+ throw new P(`Not all transactions were found: ${m}`);
10292
10292
  }
10293
- return D.map((m, y) => {
10293
+ return f.map((m, M) => {
10294
10294
  var Y;
10295
10295
  return {
10296
10296
  transaction: m,
10297
10297
  workflowId: m.workflowId,
10298
10298
  readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10299
- index: n[y].index
10299
+ index: n[M].index
10300
10300
  };
10301
10301
  });
10302
10302
  }, o = async () => {
10303
- var D, p, f;
10303
+ var f, p, D;
10304
10304
  if (s.length === 0)
10305
10305
  return [];
10306
- const C = await t.mutate({
10306
+ const h = await t.mutate({
10307
10307
  mutation: ca,
10308
10308
  variables: {
10309
10309
  inputs: s.map((m) => ({
@@ -10317,37 +10317,39 @@ class fs {
10317
10317
  },
10318
10318
  errorPolicy: "all",
10319
10319
  fetchPolicy: "no-cache"
10320
- }), u = (D = C.data) == null ? void 0 : D.transactionCreateMany;
10320
+ }), u = (f = h.data) == null ? void 0 : f.transactionCreateMany;
10321
10321
  if (!u || u.length === 0) {
10322
- const m = ((f = (p = C.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10323
- throw new H(`Failed to create transactions: ${m}`);
10322
+ const m = ((D = (p = h.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
10323
+ throw new P(`Failed to create transactions: ${m}`);
10324
10324
  }
10325
- return u.map((m, y) => ({
10325
+ return u.map((m, M) => ({
10326
10326
  transaction: m,
10327
10327
  workflowId: m.workflowId,
10328
10328
  readOnly: !1,
10329
- index: s[y].index
10329
+ index: s[M].index
10330
10330
  }));
10331
- }, 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) => {
10332
- const { transaction: u, workflowId: D, readOnly: p, index: f } = C, m = l.get(D), y = A[f];
10331
+ }, r = (await Promise.all([i(), o()])).flat(), c = [...new Set(r.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 = r.map(async (h) => {
10332
+ var U;
10333
+ const { transaction: u, workflowId: f, readOnly: p, index: D } = h, m = l.get(f), M = A[D];
10333
10334
  !d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
10334
10335
  const Y = d.get(u.id) || void 0, F = {
10335
10336
  product: u.product,
10336
10337
  transaction: u,
10337
10338
  layouts: [],
10339
+ singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
10338
10340
  stateMutationFunc: p ? async () => {
10339
10341
  throw new v("State mutation is forbidden in read only mode!");
10340
- } : async (R) => this.updateTransactionState({ ...R, context: { transactionOwnerId: Y } }),
10342
+ } : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
10341
10343
  readOnly: p,
10342
10344
  workflow: m,
10343
- isReloadedTransaction: y.type === "transaction"
10345
+ isReloadedTransaction: M.type === "transaction"
10344
10346
  };
10345
- if (y.type === "transaction" && u.workflowState) {
10346
- const R = JSON.parse(u.workflowState);
10347
- F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10348
- } else if (!p && y.workflowState) {
10349
- const R = JSON.parse(y.workflowState);
10350
- F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10347
+ if (M.type === "transaction" && u.workflowState) {
10348
+ const S = JSON.parse(u.workflowState);
10349
+ F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
10350
+ } else if (!p && M.workflowState) {
10351
+ const S = JSON.parse(M.workflowState);
10352
+ F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
10351
10353
  } else
10352
10354
  F.layouts = KA(
10353
10355
  F.transaction,
@@ -10355,12 +10357,12 @@ class fs {
10355
10357
  );
10356
10358
  return F.renderableContextService = new QA(
10357
10359
  F.layouts
10358
- ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: f, options: y };
10360
+ ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: D, options: M };
10359
10361
  });
10360
- S.setMap("transactionOwnerIds", d);
10361
- const Q = (await Promise.all(E)).sort((C, u) => C.index - u.index).map(async (C) => {
10362
- const { experienceOptions: u, options: D } = C, p = new CA(this, u);
10363
- return await p.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10362
+ x.setMap("transactionOwnerIds", d);
10363
+ const Q = (await Promise.all(E)).sort((h, u) => h.index - u.index).map(async (h) => {
10364
+ const { experienceOptions: u, options: f } = h, p = new CA(this, u);
10365
+ return await p.getWorkflowManager().getInitializationPromise(), f.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10364
10366
  });
10365
10367
  return await Promise.all(Q);
10366
10368
  }
@@ -10372,8 +10374,8 @@ class fs {
10372
10374
  async initFromIntegrationProduct(A) {
10373
10375
  var s;
10374
10376
  if (A === "")
10375
- throw new H("No integration product ID provided.");
10376
- const t = await x.getShadowGraphqlClient().mutate({
10377
+ throw new P("No integration product ID provided.");
10378
+ const t = await N.getShadowGraphqlClient().mutate({
10377
10379
  mutation: ue,
10378
10380
  variables: {
10379
10381
  integrationProductId: A,
@@ -10386,13 +10388,13 @@ class fs {
10386
10388
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10387
10389
  });
10388
10390
  if (!t.data || !t.data.transactionCreate)
10389
- throw new H("Failed to create transaction!");
10391
+ throw new P("Failed to create transaction!");
10390
10392
  const a = t.data.transactionCreate;
10391
10393
  if (!a.product)
10392
- throw new H("Failed to create transaction, product not available.");
10394
+ throw new P("Failed to create transaction, product not available.");
10393
10395
  this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
10394
- const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10395
- n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), S.setMap("transactionOwnerIds", n), this.experienceOptions = {
10396
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10397
+ n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
10396
10398
  product: a.product,
10397
10399
  transaction: a,
10398
10400
  layouts: [],
@@ -10408,8 +10410,8 @@ class fs {
10408
10410
  async initFromTransaction(A, e = !1) {
10409
10411
  var i, o, r, c;
10410
10412
  if (A === "")
10411
- throw new H("No transaction ID provided.");
10412
- const t = x.getShadowGraphqlClient(), a = async () => {
10413
+ throw new P("No transaction ID provided.");
10414
+ const t = N.getShadowGraphqlClient(), a = async () => {
10413
10415
  var d, E;
10414
10416
  const l = (d = (await t.query({
10415
10417
  query: EA,
@@ -10418,9 +10420,9 @@ class fs {
10418
10420
  errorPolicy: "all"
10419
10421
  })).data) == null ? void 0 : d.transactions[0];
10420
10422
  if (!l)
10421
- throw new H("Failed to read transaction.");
10423
+ throw new P("Failed to read transaction.");
10422
10424
  if (!l.product)
10423
- throw new H("Failed to load transaction, product not available.");
10425
+ throw new P("Failed to load transaction, product not available.");
10424
10426
  this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
10425
10427
  product: l.product,
10426
10428
  transaction: l,
@@ -10433,7 +10435,7 @@ class fs {
10433
10435
  };
10434
10436
  if (e)
10435
10437
  return await a();
10436
- const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10438
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10437
10439
  if (s) {
10438
10440
  eA(s);
10439
10441
  const l = (i = (await t.query({
@@ -10444,9 +10446,9 @@ class fs {
10444
10446
  errorPolicy: "all"
10445
10447
  })).data) == null ? void 0 : i.transactions[0];
10446
10448
  if (!l)
10447
- throw new H("Failed to read transaction.");
10449
+ throw new P("Failed to read transaction.");
10448
10450
  if (!l.product)
10449
- throw new H("Failed to load transaction, product not available.");
10451
+ throw new P("Failed to load transaction, product not available.");
10450
10452
  this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
10451
10453
  product: l.product,
10452
10454
  transaction: l,
@@ -10463,10 +10465,10 @@ class fs {
10463
10465
  errorPolicy: "all"
10464
10466
  })).data) == null ? void 0 : r.transactionClaim;
10465
10467
  if (!l)
10466
- throw new H("Failed to read transaction.");
10468
+ throw new P("Failed to read transaction.");
10467
10469
  if (!l.product)
10468
- throw new H("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), S.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10470
+ throw new P("Failed to load transaction, product not available.");
10471
+ 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 = {
10470
10472
  product: l.product,
10471
10473
  transaction: l,
10472
10474
  layouts: [],
@@ -10474,7 +10476,7 @@ class fs {
10474
10476
  readOnly: e
10475
10477
  }, this.initialized = !0;
10476
10478
  } catch {
10477
- throw new H("Attempted to access a transaction that isn't available.");
10479
+ throw new P("Attempted to access a transaction that isn't available.");
10478
10480
  }
10479
10481
  }
10480
10482
  /**
@@ -10483,7 +10485,7 @@ class fs {
10483
10485
  async getWorkflowExperienceDeprecated(A, e, t) {
10484
10486
  var a, n, s, i;
10485
10487
  if (!this.initialized || !this.experienceOptions)
10486
- throw new H("Cannot launch experience: Not initialized.");
10488
+ throw new P("Cannot launch experience: Not initialized.");
10487
10489
  if (this.experienceOptions.transaction.workflowId) {
10488
10490
  const o = await pA(this.experienceOptions.transaction.workflowId);
10489
10491
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
@@ -10498,7 +10500,7 @@ class fs {
10498
10500
  return await r.getWorkflowManager().getInitializationPromise(), r;
10499
10501
  }
10500
10502
  if (A) {
10501
- const o = x.getShadowGraphqlClient().mutate({
10503
+ const o = N.getShadowGraphqlClient().mutate({
10502
10504
  mutation: Ba,
10503
10505
  variables: {
10504
10506
  workflowId: A,
@@ -10520,7 +10522,7 @@ class fs {
10520
10522
  const c = new CA(this, this.experienceOptions);
10521
10523
  return await c.getWorkflowManager().getInitializationPromise(), c;
10522
10524
  }
10523
- throw new H("No workflow ID provided.");
10525
+ throw new P("No workflow ID provided.");
10524
10526
  }
10525
10527
  /**
10526
10528
  * @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
@@ -10536,7 +10538,7 @@ class fs {
10536
10538
  */
10537
10539
  getProduct() {
10538
10540
  if (!this.initialized || !this.experienceOptions)
10539
- throw new H("Cannot get product: Not initialized.");
10541
+ throw new P("Cannot get product: Not initialized.");
10540
10542
  return this.experienceOptions.product;
10541
10543
  }
10542
10544
  /**
@@ -10545,12 +10547,12 @@ class fs {
10545
10547
  */
10546
10548
  getTransaction() {
10547
10549
  if (!this.initialized || !this.experienceOptions)
10548
- throw new H("Cannot get transaction: Not initialized.");
10550
+ throw new P("Cannot get transaction: Not initialized.");
10549
10551
  return this.experienceOptions.transaction;
10550
10552
  }
10551
10553
  storeCustomer(A) {
10552
- const e = S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10553
- e.set(A.partner.id, A.id), S.setMap("partnerCustomerIds", e);
10554
+ const e = x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10555
+ e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10554
10556
  }
10555
10557
  }
10556
10558
  class ks {
@@ -10779,7 +10781,7 @@ export {
10779
10781
  nn as InformationStepHandle,
10780
10782
  ei as LayoutElementFactory,
10781
10783
  ti as LayoutElementType,
10782
- T as LayoutNotFoundError,
10784
+ L as LayoutNotFoundError,
10783
10785
  $a as MaterialStepHandle,
10784
10786
  SA as MisconfigurationError,
10785
10787
  ks as MockWorkflowManager,
@@ -10814,7 +10816,7 @@ export {
10814
10816
  gi as UnitOfMeasurement,
10815
10817
  X as Variant,
10816
10818
  CA as WorkflowExperienceImpl,
10817
- b as assetService,
10819
+ T as assetService,
10818
10820
  Bn as createDesign,
10819
10821
  li as dataUrlFromExternalUrl,
10820
10822
  zA as designService,
@@ -10835,7 +10837,7 @@ export {
10835
10837
  mi as getSvgElement,
10836
10838
  pA as getWorkflow,
10837
10839
  ht as getWorkflows,
10838
- x as graphQlManager,
10840
+ N as graphQlManager,
10839
10841
  fA as illustrationStepService,
10840
10842
  pi as loadFont,
10841
10843
  $e as materialStepService,
@@ -10843,7 +10845,7 @@ export {
10843
10845
  Ya as moduleStepService,
10844
10846
  z as optionService,
10845
10847
  Ii as patternImageDataCache,
10846
- S as persistenceService,
10848
+ x as persistenceService,
10847
10849
  At as pictureStepService,
10848
10850
  et as questionStepService,
10849
10851
  Di as registerFetchImplementation,