@spiffcommerce/core 16.5.0 → 16.5.1-1

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");
@@ -6808,7 +6805,7 @@ class CA {
6808
6805
  return this.workflowManager;
6809
6806
  }
6810
6807
  async updateVariationRecords(A) {
6811
- await x.getShadowGraphqlClient().mutate({
6808
+ await N.getShadowGraphqlClient().mutate({
6812
6809
  mutation: da,
6813
6810
  variables: {
6814
6811
  transactionId: this.workflowManager.getTransaction().id,
@@ -6824,8 +6821,8 @@ class CA {
6824
6821
  });
6825
6822
  }
6826
6823
  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;
6824
+ var h, u;
6825
+ const t = this.workflowManager.getWorkflow(), a = (h = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : h.lookAtAnimation;
6829
6826
  if (A) {
6830
6827
  if (!a)
6831
6828
  throw new Error("Failed to generate cart preview image!");
@@ -6833,9 +6830,9 @@ class CA {
6833
6830
  }
6834
6831
  let n = 2048;
6835
6832
  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) => {
6833
+ const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((f) => {
6837
6834
  var p;
6838
- return ((p = D.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6835
+ return ((p = f.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6839
6836
  }) || i[0], B = c.layoutState.layout.previewRegion ? {
6840
6837
  x: c.layoutState.layout.previewRegion.left,
6841
6838
  y: c.layoutState.layout.previewRegion.top,
@@ -6854,8 +6851,8 @@ class CA {
6854
6851
  purpose: Se.Print,
6855
6852
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
6856
6853
  }
6857
- }), h = xe(E);
6858
- await (await Ge.from(d, h, {
6854
+ }), C = xe(E);
6855
+ await (await Ge.from(d, C, {
6859
6856
  anonymousCrossOrigin: !0,
6860
6857
  ignoreDimensions: !1,
6861
6858
  createCanvas: yA,
@@ -6931,7 +6928,7 @@ class CA {
6931
6928
  }
6932
6929
  async assignCustomerDetails(A) {
6933
6930
  var a, n, s;
6934
- const t = (s = (n = (a = (await x.getShadowGraphqlClient().mutate({
6931
+ const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
6935
6932
  mutation: rt,
6936
6933
  variables: {
6937
6934
  id: this.getWorkflowManager().getTransaction().id,
@@ -6946,8 +6943,8 @@ class CA {
6946
6943
  );
6947
6944
  if (t != null && t.customer) {
6948
6945
  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);
6946
+ const i = x.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6947
+ i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), x.setMap("transactionCustomerIds", i);
6951
6948
  }
6952
6949
  }
6953
6950
  attachRenderableSceneListener(A) {
@@ -7046,16 +7043,16 @@ const En = [
7046
7043
  ], hn = async (g, A, e) => {
7047
7044
  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
7045
  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) => {
7046
+ const o = i.toString(), c = `data:image/svg+xml;base64,${he(await be(o, { type: "svg" }))}`, B = (d) => {
7050
7047
  const E = g.find((w) => w.panelId === d.panelId);
7051
7048
  if (!E)
7052
- throw new T(d);
7053
- const h = k();
7049
+ throw new L(d);
7050
+ const C = k();
7054
7051
  return new J(
7055
7052
  {
7056
- id: h,
7053
+ id: C,
7057
7054
  src: c,
7058
- type: U.Image,
7055
+ type: H.Image,
7059
7056
  y: d.top,
7060
7057
  x: d.left,
7061
7058
  width: d.width,
@@ -7076,16 +7073,16 @@ const En = [
7076
7073
  const i = Rt(a, t.option);
7077
7074
  i && (A[t.stepName] = { selectedVariants: [i] });
7078
7075
  const o = async (r) => {
7079
- var h;
7076
+ var C;
7080
7077
  const c = await Pt(
7081
7078
  r || {
7082
7079
  width: 1,
7083
7080
  height: 1
7084
7081
  },
7085
- (h = i == null ? void 0 : i.asset) == null ? void 0 : h.fileLink
7082
+ (C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
7086
7083
  ), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === r.panelId);
7087
7084
  if (!d)
7088
- throw new T(r);
7085
+ throw new L(r);
7089
7086
  const E = ee(s, B, {
7090
7087
  scale: a.scale,
7091
7088
  left: a.x,
@@ -7098,7 +7095,7 @@ const En = [
7098
7095
  path: B.path,
7099
7096
  dataWidth: B.width,
7100
7097
  dataHeight: B.height,
7101
- type: U.Frame,
7098
+ type: H.Frame,
7102
7099
  focalBlur: t.data.focalBlur,
7103
7100
  focalBlurStrength: t.data.focalBlurStrength,
7104
7101
  focalBlurRadius: t.data.focalBlurRadius,
@@ -7124,7 +7121,7 @@ const En = [
7124
7121
  return console.error(i), [];
7125
7122
  }
7126
7123
  }, Qn = async (g, A, e, t) => {
7127
- var p, f;
7124
+ var p, D;
7128
7125
  const a = e.data, n = t.option;
7129
7126
  if (!n)
7130
7127
  return console.error(`No option for step ${t.stepName}.`), [];
@@ -7134,47 +7131,47 @@ const En = [
7134
7131
  if (!s.asset)
7135
7132
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
7136
7133
  A[t.stepName] = { selectedVariants: [s] };
7137
- const i = (f = s.asset) == null ? void 0 : f.fileLink;
7134
+ const i = (D = s.asset) == null ? void 0 : D.fileLink;
7138
7135
  if (!i)
7139
7136
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7140
7137
  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
7138
  if (!E)
7142
7139
  return console.error("Failed to read SVG."), [];
7143
7140
  He(E);
7144
- const h = {};
7141
+ const C = {};
7145
7142
  Ht(E, (m) => {
7146
7143
  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 };
7144
+ const M = m.attributes.getNamedItem("fill");
7145
+ if (M && M.value !== "none") {
7146
+ const F = M.value, S = `spiff-fill-${F.replace(/\W/g, "")}`;
7147
+ m.classList.add(S), C[S] = { browserValue: F };
7151
7148
  }
7152
7149
  const Y = m.attributes.getNamedItem("stroke");
7153
7150
  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 };
7151
+ const F = Y.value, S = `spiff-stroke-${F.replace(/\W/g, "")}`;
7152
+ m.classList.add(S), C[S] = { browserValue: F };
7156
7153
  }
7157
7154
  });
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] };
7155
+ const Q = Ue().serializeToString(E), h = a.colors;
7156
+ if (h) {
7157
+ for (const [m, M] of Object.entries(C))
7158
+ for (const Y of Object.keys(h))
7159
+ if (M.browserValue === Y) {
7160
+ C[m] = { browserValue: h[Y] };
7164
7161
  break;
7165
7162
  }
7166
7163
  }
7167
7164
  const u = (m) => {
7168
- const y = g.find((F) => F.panelId === m.panelId);
7169
- if (!y)
7170
- throw new T(m);
7165
+ const M = g.find((F) => F.panelId === m.panelId);
7166
+ if (!M)
7167
+ throw new L(m);
7171
7168
  const Y = k();
7172
7169
  return new J(
7173
7170
  {
7174
- colors: h,
7171
+ colors: C,
7175
7172
  id: Y,
7176
7173
  svg: Q,
7177
- type: U.Illustration,
7174
+ type: H.Illustration,
7178
7175
  y: m.top,
7179
7176
  x: m.left,
7180
7177
  rotation: m.rotation,
@@ -7184,11 +7181,11 @@ const En = [
7184
7181
  layerIndex: m.layerIndex,
7185
7182
  immutable: m.immutable
7186
7183
  },
7187
- y
7184
+ M
7188
7185
  );
7189
- }, D = t.data.regions;
7186
+ }, f = t.data.regions;
7190
7187
  try {
7191
- return D.map(u);
7188
+ return f.map(u);
7192
7189
  } catch (m) {
7193
7190
  return console.error(m), [];
7194
7191
  }
@@ -7196,14 +7193,14 @@ const En = [
7196
7193
  const t = await it(e.data.module), a = A.data, n = (i, o) => {
7197
7194
  const r = g.find((B) => B.panelId === o.panelId);
7198
7195
  if (!r)
7199
- throw new T(o);
7196
+ throw new L(o);
7200
7197
  const c = k();
7201
7198
  return new J(
7202
7199
  {
7203
7200
  colors: {},
7204
7201
  id: c,
7205
7202
  svg: i,
7206
- type: U.Illustration,
7203
+ type: H.Illustration,
7207
7204
  y: o.top,
7208
7205
  x: o.left,
7209
7206
  rotation: o.rotation,
@@ -7237,15 +7234,15 @@ const En = [
7237
7234
  if (!i)
7238
7235
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
7239
7236
  const o = (l) => {
7240
- const d = g.find((h) => h.panelId === l.panelId);
7237
+ const d = g.find((C) => C.panelId === l.panelId);
7241
7238
  if (!d)
7242
- throw new T(l);
7239
+ throw new L(l);
7243
7240
  const E = k();
7244
7241
  return new J(
7245
7242
  {
7246
7243
  id: E,
7247
7244
  src: i,
7248
- type: U.Image,
7245
+ type: H.Image,
7249
7246
  y: l.top,
7250
7247
  x: l.left,
7251
7248
  rotation: l.rotation,
@@ -7276,7 +7273,7 @@ const En = [
7276
7273
  const i = (c) => {
7277
7274
  const B = g.find((w) => w.panelId === c.panelId);
7278
7275
  if (!B)
7279
- throw new T(c);
7276
+ throw new L(c);
7280
7277
  const l = `
7281
7278
  <svg
7282
7279
  xmlns="http://www.w3.org/2000/svg"
@@ -7297,13 +7294,13 @@ const En = [
7297
7294
  fill="${s == null ? void 0 : s.color}"
7298
7295
  />
7299
7296
  </svg>
7300
- `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, h = k();
7297
+ `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = k();
7301
7298
  return new J(
7302
7299
  {
7303
7300
  colors: E,
7304
- id: h,
7301
+ id: C,
7305
7302
  svg: l,
7306
- type: U.Illustration,
7303
+ type: H.Illustration,
7307
7304
  y: c.top,
7308
7305
  x: c.left,
7309
7306
  rotation: c.rotation,
@@ -7325,13 +7322,13 @@ const En = [
7325
7322
  const t = [], n = (() => {
7326
7323
  var r, c;
7327
7324
  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;
7325
+ })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), o = A.data.regions;
7329
7326
  if (i === "image")
7330
7327
  try {
7331
7328
  o.forEach((r) => {
7332
7329
  const c = g.find((l) => l.panelId === r.panelId);
7333
7330
  if (!c)
7334
- throw new T(r);
7331
+ throw new L(r);
7335
7332
  const B = {
7336
7333
  id: k(),
7337
7334
  src: n,
@@ -7364,7 +7361,7 @@ const En = [
7364
7361
  o.forEach((B) => {
7365
7362
  const l = g.find((E) => E.panelId === B.panelId);
7366
7363
  if (!l)
7367
- throw new T(B);
7364
+ throw new L(B);
7368
7365
  const d = {
7369
7366
  id: k(),
7370
7367
  src: n,
@@ -7394,13 +7391,13 @@ const En = [
7394
7391
  const w = t.option;
7395
7392
  if (!w)
7396
7393
  return;
7397
- const Q = ((u = w.variants) == null ? void 0 : u.find((D) => D.id === n.fontVariantId)) || UA(w);
7394
+ const Q = ((u = w.variants) == null ? void 0 : u.find((f) => f.id === n.fontVariantId)) || UA(w);
7398
7395
  if (!Q || !Q.asset)
7399
7396
  return;
7400
7397
  A[t.stepName] = { selectedVariants: [Q] };
7401
- const C = Q.asset.fileLink;
7402
- if (C)
7403
- return C;
7398
+ const h = Q.asset.fileLink;
7399
+ if (h)
7400
+ return h;
7404
7401
  }, c = await (async () => {
7405
7402
  const w = o();
7406
7403
  if (!w)
@@ -7417,14 +7414,14 @@ const En = [
7417
7414
  const Q = w.colorOption;
7418
7415
  if (!Q)
7419
7416
  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) {
7417
+ const h = z.getDefaultVariant(Q);
7418
+ return h == null ? void 0 : h.color;
7419
+ }, E = n.color || await d(t.data), C = t.data.regions;
7420
+ for (const w of C) {
7424
7421
  const Q = g.find((u) => u.panelId === w.panelId);
7425
7422
  if (!Q)
7426
7423
  continue;
7427
- const C = {
7424
+ const h = {
7428
7425
  stepName: e.name,
7429
7426
  id: k(),
7430
7427
  align: i(t.data),
@@ -7438,7 +7435,7 @@ const En = [
7438
7435
  paths: t.data.paths,
7439
7436
  rotation: w.rotation,
7440
7437
  text: l,
7441
- type: U.Textbox,
7438
+ type: H.Textbox,
7442
7439
  vertical: t.data.vertical,
7443
7440
  verticalAlign: t.data.verticalAlign || "middle",
7444
7441
  width: w.width,
@@ -7446,7 +7443,7 @@ const En = [
7446
7443
  y: w.top
7447
7444
  };
7448
7445
  if (c) {
7449
- const [u, D] = IA(
7446
+ const [u, f] = IA(
7450
7447
  t.data.size || s,
7451
7448
  c,
7452
7449
  w,
@@ -7465,16 +7462,16 @@ const En = [
7465
7462
  a.push(
7466
7463
  new J(
7467
7464
  {
7468
- ...C,
7465
+ ...h,
7469
7466
  fontSize: u,
7470
- text: C.curved ? C.text : (D || []).join(`
7467
+ text: h.curved ? h.text : (f || []).join(`
7471
7468
  `)
7472
7469
  },
7473
7470
  Q
7474
7471
  )
7475
7472
  );
7476
7473
  } else
7477
- a.push(new J(C, Q));
7474
+ a.push(new J(h, Q));
7478
7475
  }
7479
7476
  return a;
7480
7477
  }, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
@@ -7678,19 +7675,19 @@ class Yn extends Xe {
7678
7675
  return;
7679
7676
  const e = A.layoutState.elements || [];
7680
7677
  if (this.variationRecord) {
7681
- const l = this.variationRecord.values.map((h) => ({
7682
- stepName: h.stepName,
7683
- stepAspectType: h.aspect,
7684
- value: h.value
7678
+ const l = this.variationRecord.values.map((C) => ({
7679
+ stepName: C.stepName,
7680
+ stepAspectType: C.aspect,
7681
+ value: C.value
7685
7682
  })), d = await xn(
7686
7683
  Sn(l, this.workflow),
7687
7684
  this.workflow,
7688
- this.layouts.map((h) => h.layoutState.layout),
7685
+ this.layouts.map((C) => C.layoutState.layout),
7689
7686
  this.productOverlayImageUrl
7690
7687
  ), 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);
7688
+ ((E == null ? void 0 : E.elements) || []).forEach((C) => {
7689
+ const w = e.find((Q) => Q.stepName === C.stepName);
7690
+ w && w.type === H.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
7694
7691
  }), Gt(e);
7695
7692
  }
7696
7693
  const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
@@ -7738,7 +7735,7 @@ const Sn = (g, A) => {
7738
7735
  a = new G(e.map((o) => new Ut(o))).apply(a);
7739
7736
  const s = await Fn(g, A, e, t);
7740
7737
  return new G(s).apply(a);
7741
- }, Nn = M`
7738
+ }, Nn = y`
7742
7739
  fragment ProductFields on Product {
7743
7740
  id
7744
7741
  basePrice
@@ -7773,7 +7770,7 @@ const Sn = (g, A) => {
7773
7770
  name
7774
7771
  }
7775
7772
  }
7776
- `, Rn = M`
7773
+ `, Rn = y`
7777
7774
  ${Nn}
7778
7775
  fragment ProductCollectionProductFields on ProductCollectionProduct {
7779
7776
  id
@@ -7783,7 +7780,7 @@ const Sn = (g, A) => {
7783
7780
  ...ProductFields
7784
7781
  }
7785
7782
  }
7786
- `, dt = M`
7783
+ `, dt = y`
7787
7784
  ${Rn}
7788
7785
  fragment ProductCollectionFields on ProductCollection {
7789
7786
  id
@@ -7830,7 +7827,7 @@ const Sn = (g, A) => {
7830
7827
  }
7831
7828
  }
7832
7829
  }
7833
- `, Pn = M`
7830
+ `, Pn = y`
7834
7831
  ${dt}
7835
7832
  query GetBundle($id: String!) {
7836
7833
  bundles(ids: [$id]) {
@@ -7852,7 +7849,7 @@ const Sn = (g, A) => {
7852
7849
  }
7853
7850
  }
7854
7851
  }
7855
- `, Hn = M`
7852
+ `, Hn = y`
7856
7853
  query GetBundleStakeholders($id: String!) {
7857
7854
  bundles(ids: [$id]) {
7858
7855
  id
@@ -7872,7 +7869,7 @@ const Sn = (g, A) => {
7872
7869
  }
7873
7870
  }
7874
7871
  }
7875
- `, Un = M`
7872
+ `, Un = y`
7876
7873
  query GetBundlesForCustomer($id: String!) {
7877
7874
  customers(ids: [$id]) {
7878
7875
  bundleStakeholders {
@@ -7893,7 +7890,7 @@ const Sn = (g, A) => {
7893
7890
  }
7894
7891
  }
7895
7892
  }
7896
- `, Gn = M`
7893
+ `, Gn = y`
7897
7894
  ${dt}
7898
7895
  mutation CreateBundle($collectionId: String) {
7899
7896
  bundleCreate(collectionId: $collectionId) {
@@ -7912,25 +7909,25 @@ const Sn = (g, A) => {
7912
7909
  }
7913
7910
  }
7914
7911
  }
7915
- `, vn = M`
7912
+ `, vn = y`
7916
7913
  mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
7917
7914
  bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
7918
7915
  id
7919
7916
  }
7920
7917
  }
7921
- `, kn = M`
7918
+ `, kn = y`
7922
7919
  mutation BundleAddTransaction($id: String!, $transactionId: String!) {
7923
7920
  bundleAddTransaction(id: $id, transactionId: $transactionId) {
7924
7921
  id
7925
7922
  }
7926
7923
  }
7927
- `, Jn = M`
7924
+ `, bn = y`
7928
7925
  mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
7929
7926
  bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
7930
7927
  id
7931
7928
  }
7932
7929
  }
7933
- `, bn = M`
7930
+ `, Jn = y`
7934
7931
  mutation BundleRemoveTransaction(
7935
7932
  $id: String!
7936
7933
  $transactionId: String!
@@ -7945,7 +7942,7 @@ const Sn = (g, A) => {
7945
7942
  id
7946
7943
  }
7947
7944
  }
7948
- `, Tn = M`
7945
+ `, Tn = y`
7949
7946
  mutation BundleRemoveTransactions(
7950
7947
  $id: String!
7951
7948
  $transactionIds: [String!]!
@@ -7960,7 +7957,7 @@ const Sn = (g, A) => {
7960
7957
  id
7961
7958
  }
7962
7959
  }
7963
- `, Ln = M`
7960
+ `, Ln = y`
7964
7961
  mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
7965
7962
  bundleAddStakeholder(id: $id, details: $details, type: $type) {
7966
7963
  id
@@ -7980,7 +7977,7 @@ const Sn = (g, A) => {
7980
7977
  }
7981
7978
  }
7982
7979
  }
7983
- `, On = M`
7980
+ `, On = y`
7984
7981
  mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
7985
7982
  bundleUpdateStakeholders(id: $id, input: $input) {
7986
7983
  id
@@ -8000,7 +7997,7 @@ const Sn = (g, A) => {
8000
7997
  }
8001
7998
  }
8002
7999
  }
8003
- `, zn = M`
8000
+ `, zn = y`
8004
8001
  mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
8005
8002
  bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
8006
8003
  id
@@ -8132,7 +8129,7 @@ class jn extends ge {
8132
8129
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8133
8130
  if (!e)
8134
8131
  return Promise.resolve();
8135
- const t = await b.getLocalOrFromServer(e);
8132
+ const t = await T.getLocalOrFromServer(e);
8136
8133
  return t ? this.applyImageSelection(t, A) : Promise.resolve();
8137
8134
  }
8138
8135
  async applyImageSelection(A, e) {
@@ -8252,7 +8249,7 @@ class Wn extends wt {
8252
8249
  return this.getSharedSteps()[0].getCustomColor();
8253
8250
  }
8254
8251
  }
8255
- const Xn = M`
8252
+ const Xn = y`
8256
8253
  mutation CreateGlobalPropertyState($bundleId: String!) {
8257
8254
  globalPropertyStateCreate(bundleId: $bundleId) {
8258
8255
  id
@@ -8262,7 +8259,7 @@ const Xn = M`
8262
8259
  }
8263
8260
  }
8264
8261
  }
8265
- `, qn = M`
8262
+ `, qn = y`
8266
8263
  mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
8267
8264
  globalPropertyStateUpdate(id: $id, aspects: $aspects) {
8268
8265
  id
@@ -8272,7 +8269,7 @@ const Xn = M`
8272
8269
  }
8273
8270
  }
8274
8271
  }
8275
- `, Zn = M`
8272
+ `, Zn = y`
8276
8273
  query GetGlobalPropertyState($bundleId: String!) {
8277
8274
  globalPropertyState(bundleId: $bundleId) {
8278
8275
  id
@@ -8312,7 +8309,7 @@ class $n {
8312
8309
  var e;
8313
8310
  if (!this.globalPropertyState)
8314
8311
  throw new Error("Global property state not initialized");
8315
- const A = await x.getShadowGraphqlClient().mutate({
8312
+ const A = await N.getShadowGraphqlClient().mutate({
8316
8313
  mutation: qn,
8317
8314
  variables: {
8318
8315
  id: this.globalPropertyState.id,
@@ -8326,7 +8323,7 @@ class $n {
8326
8323
  }
8327
8324
  async getOrCreateGlobalPropertyState() {
8328
8325
  var t;
8329
- const A = await x.getShadowGraphqlClient().query({
8326
+ const A = await N.getShadowGraphqlClient().query({
8330
8327
  query: Zn,
8331
8328
  errorPolicy: "all",
8332
8329
  fetchPolicy: "no-cache",
@@ -8336,7 +8333,7 @@ class $n {
8336
8333
  });
8337
8334
  if (A.data.globalPropertyState && A.data.globalPropertyState.id)
8338
8335
  return A.data.globalPropertyState;
8339
- const e = await x.getShadowGraphqlClient().mutate({
8336
+ const e = await N.getShadowGraphqlClient().mutate({
8340
8337
  mutation: Xn,
8341
8338
  variables: {
8342
8339
  bundleId: this.bundleId
@@ -8492,7 +8489,7 @@ class es {
8492
8489
  getDefaultWorkflow() {
8493
8490
  const A = this.product.workflows || [];
8494
8491
  if (A.length === 0)
8495
- throw new H(
8492
+ throw new P(
8496
8493
  "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
8494
  );
8498
8495
  const e = this.productResource.workflowId;
@@ -8670,9 +8667,9 @@ class fe {
8670
8667
  throw new Error(
8671
8668
  "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8672
8669
  );
8673
- const a = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8674
- await x.getShadowGraphqlClient().mutate({
8675
- mutation: Jn,
8670
+ const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8671
+ await N.getShadowGraphqlClient().mutate({
8672
+ mutation: bn,
8676
8673
  variables: {
8677
8674
  id: this.id,
8678
8675
  transactionIds: e,
@@ -8696,8 +8693,8 @@ class fe {
8696
8693
  (i) => i.getWorkflowManager().getTransaction().id === t
8697
8694
  ))
8698
8695
  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({
8696
+ const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8697
+ await N.getShadowGraphqlClient().mutate({
8701
8698
  mutation: kn,
8702
8699
  variables: {
8703
8700
  id: this.id,
@@ -8729,8 +8726,8 @@ class fe {
8729
8726
  const a = this.workflowExperiences.find(
8730
8727
  (n) => n.getWorkflowManager().getTransaction().id === e.id
8731
8728
  );
8732
- this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await x.getShadowGraphqlClient().mutate({
8733
- mutation: bn,
8729
+ this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
8730
+ mutation: Jn,
8734
8731
  variables: {
8735
8732
  id: this.id,
8736
8733
  transactionId: e.id,
@@ -8756,7 +8753,7 @@ class fe {
8756
8753
  1
8757
8754
  )[0]
8758
8755
  );
8759
- this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
8756
+ this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
8760
8757
  mutation: Tn,
8761
8758
  variables: {
8762
8759
  id: this.id,
@@ -8814,7 +8811,7 @@ class fe {
8814
8811
  }
8815
8812
  async addStakeholder(A, e) {
8816
8813
  var n;
8817
- const t = await x.getShadowGraphqlClient().mutate({
8814
+ const t = await N.getShadowGraphqlClient().mutate({
8818
8815
  mutation: Ln,
8819
8816
  variables: {
8820
8817
  id: this.id,
@@ -8829,7 +8826,7 @@ class fe {
8829
8826
  }
8830
8827
  async updateStakeholders(A) {
8831
8828
  var a;
8832
- const e = await x.getShadowGraphqlClient().mutate({
8829
+ const e = await N.getShadowGraphqlClient().mutate({
8833
8830
  mutation: On,
8834
8831
  variables: {
8835
8832
  id: this.id,
@@ -8842,7 +8839,7 @@ class fe {
8842
8839
  this.storeStakeholderCustomers(t);
8843
8840
  }
8844
8841
  async getAllStakeholders() {
8845
- const A = await x.getShadowGraphqlClient().query({
8842
+ const A = await N.getShadowGraphqlClient().query({
8846
8843
  query: Hn,
8847
8844
  errorPolicy: "all",
8848
8845
  variables: {
@@ -8930,7 +8927,7 @@ class fe {
8930
8927
  }
8931
8928
  async updateBundle() {
8932
8929
  var e;
8933
- if (!((e = (await x.getShadowGraphqlClient().mutate({
8930
+ if (!((e = (await N.getShadowGraphqlClient().mutate({
8934
8931
  mutation: vn,
8935
8932
  variables: {
8936
8933
  id: this.id,
@@ -8942,7 +8939,7 @@ class fe {
8942
8939
  throw new Error("Bundle not found!");
8943
8940
  }
8944
8941
  async updateTransactionOrder() {
8945
- await x.getShadowGraphqlClient().mutate({
8942
+ await N.getShadowGraphqlClient().mutate({
8946
8943
  mutation: zn,
8947
8944
  variables: {
8948
8945
  id: this.id,
@@ -8973,7 +8970,7 @@ class fe {
8973
8970
  );
8974
8971
  }
8975
8972
  }
8976
- const ns = M`
8973
+ const ns = y`
8977
8974
  mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
8978
8975
  processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
8979
8976
  id
@@ -8990,7 +8987,7 @@ class ss {
8990
8987
  */
8991
8988
  async execute(A, e, t) {
8992
8989
  var B, l, d;
8993
- const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
8990
+ const n = (l = (B = (await N.getShadowGraphqlClient().mutate({
8994
8991
  mutation: ns,
8995
8992
  variables: {
8996
8993
  processFlowId: A,
@@ -9000,14 +8997,14 @@ class ss {
9000
8997
  if (!n)
9001
8998
  throw new Error("Failed to create process execution.");
9002
8999
  function s(E) {
9003
- return new Promise((h) => {
9004
- setTimeout(h, E);
9000
+ return new Promise((C) => {
9001
+ setTimeout(C, E);
9005
9002
  });
9006
9003
  }
9007
9004
  let i = !1, o = 0, r, c;
9008
9005
  for (; !i; ) {
9009
- r = await x.getShadowGraphqlClient().query({
9010
- query: M`
9006
+ r = await N.getShadowGraphqlClient().query({
9007
+ query: y`
9011
9008
  query getProcessFlowExecution($ids: [String]!) {
9012
9009
  processExecutions(ids: $ids) {
9013
9010
  id
@@ -9037,8 +9034,8 @@ class ss {
9037
9034
  break;
9038
9035
  }
9039
9036
  o += 1;
9040
- const h = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9041
- if (o >= h)
9037
+ const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9038
+ if (o >= C)
9042
9039
  throw new Error("Maximum wait time exceeded for execution result.");
9043
9040
  await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
9044
9041
  }
@@ -9143,7 +9140,7 @@ class Et extends os {
9143
9140
  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
9141
  }
9145
9142
  }
9146
- const cs = M`
9143
+ const cs = y`
9147
9144
  fragment RegionFields on Region {
9148
9145
  width
9149
9146
  top
@@ -9161,7 +9158,7 @@ const cs = M`
9161
9158
  height
9162
9159
  }
9163
9160
  }
9164
- `, gs = M`
9161
+ `, gs = y`
9165
9162
  fragment LookAtAnimationFields on LookAtAnimation {
9166
9163
  latDeg
9167
9164
  lonDeg
@@ -9172,7 +9169,7 @@ const cs = M`
9172
9169
  z
9173
9170
  }
9174
9171
  }
9175
- `, ls = M`
9172
+ `, ls = y`
9176
9173
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
9177
9174
  antiAliasing {
9178
9175
  samples
@@ -9256,14 +9253,14 @@ const cs = M`
9256
9253
  weight
9257
9254
  }
9258
9255
  }
9259
- `, Bs = M`
9256
+ `, Bs = y`
9260
9257
  fragment ModelAnimationFields on ModelAnimation {
9261
9258
  from
9262
9259
  to
9263
9260
  loop
9264
9261
  name
9265
9262
  }
9266
- `, ds = (g) => M`
9263
+ `, ds = (g) => y`
9267
9264
  ${kA(g)}
9268
9265
  ${se}
9269
9266
  ${je}
@@ -9365,6 +9362,7 @@ const cs = M`
9365
9362
  stepTitle
9366
9363
  helpText
9367
9364
  mandatory
9365
+ silent
9368
9366
  conditions {
9369
9367
  requiredVariantSelections
9370
9368
  targetStepName
@@ -9658,7 +9656,7 @@ const cs = M`
9658
9656
  }
9659
9657
  }
9660
9658
  }
9661
- `, ws = M`
9659
+ `, ws = y`
9662
9660
  query GetTransactionForPartner($id: String!) {
9663
9661
  transactions(ids: [$id]) {
9664
9662
  id
@@ -9675,7 +9673,7 @@ const cs = M`
9675
9673
  }
9676
9674
  }
9677
9675
  }
9678
- `, Es = M`
9676
+ `, Es = y`
9679
9677
  ${kA(!1)}
9680
9678
  query GetWorkflowForTheme($id: String!) {
9681
9679
  workflow(id: $id) {
@@ -9697,7 +9695,7 @@ const cs = M`
9697
9695
  }
9698
9696
  }
9699
9697
  }
9700
- `, hs = M`
9698
+ `, hs = y`
9701
9699
  query GetCustomer($emailAddress: String!) {
9702
9700
  customer(emailAddress: $emailAddress) {
9703
9701
  id
@@ -9707,7 +9705,7 @@ const cs = M`
9707
9705
  }
9708
9706
  }
9709
9707
  }
9710
- `, Cs = M`
9708
+ `, Cs = y`
9711
9709
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9712
9710
  customerCreate(details: $details) {
9713
9711
  id
@@ -9717,7 +9715,7 @@ const cs = M`
9717
9715
  }
9718
9716
  }
9719
9717
  }
9720
- `, Qs = M`
9718
+ `, Qs = y`
9721
9719
  mutation CustomerAuthenticate($loginToken: String!) {
9722
9720
  customerAuthenticate(loginToken: $loginToken) {
9723
9721
  id
@@ -9744,11 +9742,11 @@ const cs = M`
9744
9742
  }
9745
9743
  }
9746
9744
  }
9747
- `, us = M`
9745
+ `, us = y`
9748
9746
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9749
9747
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9750
9748
  }
9751
- `, ms = M`
9749
+ `, ms = y`
9752
9750
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9753
9751
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9754
9752
  id
@@ -9780,13 +9778,13 @@ const cs = M`
9780
9778
  var A;
9781
9779
  for (const e in g.layouts) {
9782
9780
  const t = g.layouts[e].elements.filter(
9783
- (n) => n.type === U.Illustration
9781
+ (n) => n.type === H.Illustration
9784
9782
  );
9785
9783
  for (let n = 0; n < t.length; ++n) {
9786
9784
  const s = t[n];
9787
9785
  s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
9788
9786
  }
9789
- const a = g.layouts[e].elements.filter((n) => n.type === U.Textbox);
9787
+ const a = g.layouts[e].elements.filter((n) => n.type === H.Textbox);
9790
9788
  for (let n = 0; n < a.length; ++n) {
9791
9789
  const s = a[n];
9792
9790
  (A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
@@ -9794,7 +9792,7 @@ const cs = M`
9794
9792
  }
9795
9793
  }, ps = async (g, A) => {
9796
9794
  var a;
9797
- const e = await x.getShadowGraphqlClient().query({
9795
+ const e = await N.getShadowGraphqlClient().query({
9798
9796
  query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9799
9797
  errorPolicy: "all",
9800
9798
  fetchPolicy: "no-cache",
@@ -9807,8 +9805,8 @@ const cs = M`
9807
9805
  return t.forEach((n) => {
9808
9806
  n.steps.forEach((s) => {
9809
9807
  var i, o, r;
9810
- delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && b.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && b.cacheAsset(s.option.colorProfile), (r = s.option.variants) == null || r.forEach((c) => {
9811
- c.asset && b.cacheAsset(c.asset), c.displayImage && b.cacheAsset(c.displayImage), c.thumbnail && b.cacheAsset(c.thumbnail), c.material && b.cacheMaterial(c.material);
9808
+ 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) => {
9809
+ c.asset && T.cacheAsset(c.asset), c.displayImage && T.cacheAsset(c.displayImage), c.thumbnail && T.cacheAsset(c.thumbnail), c.material && T.cacheMaterial(c.material);
9812
9810
  }), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
9813
9811
  });
9814
9812
  }), t;
@@ -9846,12 +9844,12 @@ class fs {
9846
9844
  constructor(A) {
9847
9845
  this.updateTransactionState = async (e) => {
9848
9846
  try {
9849
- return x.getShadowGraphqlClient().mutate({
9847
+ return N.getShadowGraphqlClient().mutate({
9850
9848
  ...e,
9851
9849
  mutation: la
9852
9850
  });
9853
9851
  } catch (t) {
9854
- throw console.error(t), new H("Critical - Unable to synchronize workflow state with server.");
9852
+ throw console.error(t), new P("Critical - Unable to synchronize workflow state with server.");
9855
9853
  }
9856
9854
  }, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
9857
9855
  }
@@ -9860,7 +9858,7 @@ class fs {
9860
9858
  * and the Spiff Commerce platform.
9861
9859
  */
9862
9860
  getAssetManager() {
9863
- return b;
9861
+ return T;
9864
9862
  }
9865
9863
  getCurrencyCode() {
9866
9864
  if (this.currencyCode === void 0)
@@ -9880,14 +9878,14 @@ class fs {
9880
9878
  */
9881
9879
  async authenticateBundleFromLocalStorage(A) {
9882
9880
  var a, n;
9883
- const e = S.getMap("bundleOwnerIds");
9881
+ const e = x.getMap("bundleOwnerIds");
9884
9882
  if (e != null && e.has(A)) {
9885
9883
  const s = e.get(A);
9886
9884
  return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9887
9885
  }
9888
- const t = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9886
+ const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9889
9887
  if (t.has(A)) {
9890
- const s = t.get(A), o = (S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9888
+ const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9891
9889
  if (o && await this.authenticateCustomerId(o)) {
9892
9890
  const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9893
9891
  (B) => {
@@ -9915,8 +9913,8 @@ class fs {
9915
9913
  * @throws An error if the transaction is not found.
9916
9914
  */
9917
9915
  async authenticateTransactionFromLocalStorage(A) {
9918
- var c, B, l, d, E, h;
9919
- const e = x.getShadowGraphqlClient(), t = await e.query({
9916
+ var c, B, l, d, E, C;
9917
+ const e = N.getShadowGraphqlClient(), t = await e.query({
9920
9918
  query: ws,
9921
9919
  errorPolicy: "all",
9922
9920
  fetchPolicy: "no-cache",
@@ -9931,30 +9929,30 @@ class fs {
9931
9929
  throw new Error(`Unable to read transaction: ${A}`);
9932
9930
  if (a.isOrdered)
9933
9931
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9934
- const s = S.getMap("transactionOwnerIds");
9932
+ const s = x.getMap("transactionOwnerIds");
9935
9933
  if (s != null && s.has(A)) {
9936
9934
  const w = s.get(A);
9937
9935
  return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9938
9936
  }
9939
- const i = S.getMap("transactionCustomerIds");
9937
+ const i = x.getMap("transactionCustomerIds");
9940
9938
  if (i != null && i.has(A)) {
9941
9939
  const w = i.get(A);
9942
9940
  if (w && await this.authenticateCustomerId(w)) {
9943
- const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9941
+ const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9944
9942
  (u) => {
9945
- var D, p;
9946
- return (p = (D = u.bundle) == null ? void 0 : D.transactions) == null ? void 0 : p.some((f) => f.id === A);
9943
+ var f, p;
9944
+ return (p = (f = u.bundle) == null ? void 0 : f.transactions) == null ? void 0 : p.some((D) => D.id === A);
9947
9945
  }
9948
- )) || ((h = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : h.find(
9946
+ )) || ((C = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : C.find(
9949
9947
  (u) => {
9950
- var D;
9951
- return ((D = u.transaction) == null ? void 0 : D.id) === A;
9948
+ var f;
9949
+ return ((f = u.transaction) == null ? void 0 : f.id) === A;
9952
9950
  }
9953
9951
  ));
9954
- if (C)
9952
+ if (h)
9955
9953
  return Promise.resolve({
9956
9954
  success: !0,
9957
- stakeholderType: C.type
9955
+ stakeholderType: h.type
9958
9956
  });
9959
9957
  }
9960
9958
  }
@@ -9977,8 +9975,8 @@ class fs {
9977
9975
  this.customer = void 0;
9978
9976
  }
9979
9977
  clearCustomerForTransaction(A) {
9980
- const e = S.getMap("transactionCustomerIds");
9981
- e != null && e.has(A) && (e.delete(A), S.setMap("transactionCustomerIds", e));
9978
+ const e = x.getMap("transactionCustomerIds");
9979
+ e != null && e.has(A) && (e.delete(A), x.setMap("transactionCustomerIds", e));
9982
9980
  }
9983
9981
  getStakeholderTypeForTransaction(A) {
9984
9982
  var t, a;
@@ -9994,7 +9992,7 @@ class fs {
9994
9992
  async getOrCreateCustomer(A) {
9995
9993
  var s;
9996
9994
  this.customer = void 0;
9997
- const e = x.getShadowGraphqlClient(), a = (await e.query({
9995
+ const e = N.getShadowGraphqlClient(), a = (await e.query({
9998
9996
  query: hs,
9999
9997
  errorPolicy: "all",
10000
9998
  fetchPolicy: "no-cache",
@@ -10029,7 +10027,7 @@ class fs {
10029
10027
  }
10030
10028
  async authenticateCustomerId(A) {
10031
10029
  var i;
10032
- const e = x.getShadowGraphqlClient(), t = S.getMap("customerTokens");
10030
+ const e = N.getShadowGraphqlClient(), t = x.getMap("customerTokens");
10033
10031
  if (!(t != null && t.has(A)))
10034
10032
  return !1;
10035
10033
  const a = t.get(A);
@@ -10050,7 +10048,7 @@ class fs {
10050
10048
  * @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
10051
10049
  */
10052
10050
  async generateVerificationCode(A) {
10053
- await x.getShadowGraphqlClient().mutate({
10051
+ await N.getShadowGraphqlClient().mutate({
10054
10052
  mutation: us,
10055
10053
  variables: {
10056
10054
  emailAddress: A
@@ -10065,7 +10063,7 @@ class fs {
10065
10063
  */
10066
10064
  async verifyCode(A, e) {
10067
10065
  var n, s;
10068
- const a = (n = (await x.getShadowGraphqlClient().mutate({
10066
+ const a = (n = (await N.getShadowGraphqlClient().mutate({
10069
10067
  mutation: ms,
10070
10068
  errorPolicy: "all",
10071
10069
  fetchPolicy: "no-cache",
@@ -10077,8 +10075,8 @@ class fs {
10077
10075
  if (a != null && a.loginToken) {
10078
10076
  if (!((s = a.partner) != null && s.id))
10079
10077
  throw new Error(`Unable to find customer: ${A}`);
10080
- const i = S.getMap("customerTokens") || /* @__PURE__ */ new Map();
10081
- return i.set(a.id, a.loginToken), S.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10078
+ const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
10079
+ return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10082
10080
  ...a,
10083
10081
  loginToken: void 0
10084
10082
  }, !0;
@@ -10091,7 +10089,7 @@ class fs {
10091
10089
  */
10092
10090
  async getNewBundle(A) {
10093
10091
  var s;
10094
- const t = (s = (await x.getShadowGraphqlClient().mutate({
10092
+ const t = (s = (await N.getShadowGraphqlClient().mutate({
10095
10093
  mutation: Gn,
10096
10094
  variables: {
10097
10095
  collectionId: A
@@ -10100,10 +10098,10 @@ class fs {
10100
10098
  })).data) == null ? void 0 : s.bundleCreate;
10101
10099
  if (!(t != null && t.id))
10102
10100
  throw new Error("Unable to create bundle");
10103
- const a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10104
- a.set(t.id, t.partner.id), S.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10105
- const n = S.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10106
- return n.set(t.id, t.bundleOwnerId), S.setMap("bundleOwnerIds", n), new fe(this, t);
10101
+ const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10102
+ a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10103
+ const n = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10104
+ return n.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", n), new fe(this, t);
10107
10105
  }
10108
10106
  /**
10109
10107
  * Retrieves an existing bundle from the API, by id.
@@ -10114,9 +10112,9 @@ class fs {
10114
10112
  */
10115
10113
  async getExistingBundle(A, e, t) {
10116
10114
  var c, B, l, d;
10117
- const a = S.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10115
+ const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10118
10116
  n && TA(n);
10119
- const s = await x.getShadowGraphqlClient().query({
10117
+ const s = await N.getShadowGraphqlClient().query({
10120
10118
  query: Pn,
10121
10119
  variables: {
10122
10120
  id: A
@@ -10125,8 +10123,8 @@ class fs {
10125
10123
  });
10126
10124
  if (!((c = s.data) != null && c.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
10127
10125
  throw new Error(`Unable to find bundle: ${A}`);
10128
- const i = (d = s.data) == null ? void 0 : d.bundles[0], o = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10129
- o.set(i.id, i.partner.id), S.setMap("bundlePartnerIds", o);
10126
+ const i = (d = s.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10127
+ o.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", o);
10130
10128
  const r = new fe(this, i, e, t);
10131
10129
  return await r.getInitializationPromise(), r;
10132
10130
  }
@@ -10138,7 +10136,7 @@ class fs {
10138
10136
  var n;
10139
10137
  if (!this.customer)
10140
10138
  throw new Error("Customer not authenticated.");
10141
- const A = await x.getShadowGraphqlClient().query({
10139
+ const A = await N.getShadowGraphqlClient().query({
10142
10140
  query: Un,
10143
10141
  variables: {
10144
10142
  id: this.customer.id
@@ -10147,11 +10145,11 @@ class fs {
10147
10145
  });
10148
10146
  if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
10149
10147
  throw new Error("Unable to find customer.");
10150
- const t = A.data.customers[0].bundleStakeholders || [], a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10148
+ const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10151
10149
  return t.forEach((s) => {
10152
10150
  var i, o;
10153
10151
  (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
10154
- }), S.setMap("bundlePartnerIds", a), t;
10152
+ }), x.setMap("bundlePartnerIds", a), t;
10155
10153
  }
10156
10154
  /**
10157
10155
  * Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
@@ -10162,40 +10160,40 @@ class fs {
10162
10160
  * @returns A workflow experience configured as requested.
10163
10161
  */
10164
10162
  async getWorkflowExperience(A, e, t, a) {
10165
- var B, l, d, E;
10163
+ var B, l, d, E, C;
10166
10164
  if (!a)
10167
10165
  return await this.getWorkflowExperienceDeprecated(A, e, t);
10168
10166
  const n = async () => {
10169
- var w, Q;
10170
- const h = x.getShadowGraphqlClient();
10167
+ var Q, h;
10168
+ const w = N.getShadowGraphqlClient();
10171
10169
  if (a.type === "transaction") {
10172
- const { transactionId: C, readOnly: u } = a, D = await h.query({
10170
+ const { transactionId: u, readOnly: f } = a, p = await w.query({
10173
10171
  query: EA,
10174
10172
  variables: {
10175
- ids: [C]
10173
+ ids: [u]
10176
10174
  },
10177
10175
  errorPolicy: "all",
10178
10176
  fetchPolicy: "no-cache"
10179
10177
  });
10180
- if (!((w = D.data) != null && w.transactions) || D.data.transactions.length === 0)
10181
- throw new H("Existing transaction not found.");
10182
- const p = (Q = D.data) == null ? void 0 : Q.transactions[0];
10183
- if (!p.workflowId)
10184
- throw new H("Existing transaction has no workflow ID.");
10185
- const f = await pA(p.workflowId);
10186
- if (!p.product)
10187
- throw new H("Failed to load transaction, product not available.");
10188
- return { transaction: p, workflow: f, readOnly: u };
10178
+ if (!((Q = p.data) != null && Q.transactions) || p.data.transactions.length === 0)
10179
+ throw new P("Existing transaction not found.");
10180
+ const D = (h = p.data) == null ? void 0 : h.transactions[0];
10181
+ if (!D.workflowId)
10182
+ throw new P("Existing transaction has no workflow ID.");
10183
+ const m = await pA(D.workflowId);
10184
+ if (!D.product)
10185
+ throw new P("Failed to load transaction, product not available.");
10186
+ return { transaction: D, workflow: m, readOnly: f };
10189
10187
  }
10190
10188
  if (a.type === "integration" || a.type === "external") {
10191
- const C = async () => {
10192
- const f = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10189
+ const u = async () => {
10190
+ const m = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10193
10191
  externalIntegrationId: a.externalIntegrationId,
10194
10192
  externalProductId: a.externalProductId
10195
- }, m = await h.mutate({
10193
+ }, M = await w.mutate({
10196
10194
  mutation: ue,
10197
10195
  variables: {
10198
- ...f,
10196
+ ...m,
10199
10197
  bulk: a.bulk,
10200
10198
  workflowId: a.workflowId,
10201
10199
  claim: !0
@@ -10205,37 +10203,38 @@ class fs {
10205
10203
  // TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
10206
10204
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10207
10205
  });
10208
- if (!m.data || !m.data.transactionCreate)
10209
- throw new H("Failed to create transaction!");
10210
- const y = m.data.transactionCreate;
10211
- if (!y.product)
10212
- throw new H("Failed to create transaction, product not available.");
10213
- return y;
10214
- }, u = pA(a.workflowId, a == null ? void 0 : a.graphql), [D, p] = await Promise.all([C(), u]);
10215
- return { transaction: D, workflow: p };
10206
+ if (!M.data || !M.data.transactionCreate)
10207
+ throw new P("Failed to create transaction!");
10208
+ const Y = M.data.transactionCreate;
10209
+ if (!Y.product)
10210
+ throw new P("Failed to create transaction, product not available.");
10211
+ return Y;
10212
+ }, f = pA(a.workflowId, a == null ? void 0 : a.graphql), [p, D] = await Promise.all([u(), f]);
10213
+ return { transaction: p, workflow: D };
10216
10214
  }
10217
- throw new H("No workflow ID provided.");
10215
+ throw new P("No workflow ID provided.");
10218
10216
  }, { transaction: s, workflow: i, readOnly: o } = await n();
10219
10217
  this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
10220
10218
  const r = {
10221
10219
  product: s.product,
10222
10220
  transaction: s,
10223
10221
  layouts: [],
10222
+ singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
10224
10223
  stateMutationFunc: o ? async () => {
10225
10224
  throw new v("State mutation is forbidden in read only mode!");
10226
- } : async (h) => {
10227
- const Q = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10228
- return this.updateTransactionState({ ...h, context: { transactionOwnerId: Q } });
10225
+ } : async (w) => {
10226
+ const h = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10227
+ return this.updateTransactionState({ ...w, context: { transactionOwnerId: h } });
10229
10228
  },
10230
10229
  readOnly: o,
10231
10230
  workflow: i
10232
10231
  };
10233
10232
  if (a.type === "transaction" && s.workflowState) {
10234
- const h = JSON.parse(s.workflowState);
10235
- r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10233
+ const w = JSON.parse(s.workflowState);
10234
+ r.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), r.reloadedState = w;
10236
10235
  } else if (!o && a.workflowState) {
10237
- const h = JSON.parse(a.workflowState);
10238
- r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10236
+ const w = JSON.parse(a.workflowState);
10237
+ r.layouts = Object.values(w.layouts).map((Q) => Q.layout), await AA(w), await tA(w), r.reloadedState = w;
10239
10238
  } else
10240
10239
  r.layouts = KA(
10241
10240
  r.transaction,
@@ -10243,18 +10242,18 @@ class fs {
10243
10242
  );
10244
10243
  if (r.renderableContextService = new QA(
10245
10244
  r.layouts
10246
- ), a.previewService ? (r.previewService = a.previewService, (l = r.product) != null && l.modelUrl && (r.modelContainer = r.previewService.loadModel({
10245
+ ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
10247
10246
  model: r.product.modelUrl,
10248
10247
  contextService: r.renderableContextService
10249
- }))) : (r.previewService = t && t(i), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
10248
+ }))) : (r.previewService = t && t(i), (E = r.product) != null && E.modelUrl && (r.modelContainer = (C = r.previewService) == null ? void 0 : C.loadModel({
10250
10249
  model: r.product.modelUrl,
10251
10250
  contextService: r.renderableContextService
10252
10251
  }))), a.type !== "transaction") {
10253
- const h = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10254
- h.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), S.setMap("transactionOwnerIds", h);
10252
+ const w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10253
+ w.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), x.setMap("transactionOwnerIds", w);
10255
10254
  } else {
10256
- const w = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10257
- w && eA(w), r.isReloadedTransaction = !0;
10255
+ const Q = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10256
+ Q && eA(Q), r.isReloadedTransaction = !0;
10258
10257
  }
10259
10258
  this.initialized = !0, this.experienceOptions = r;
10260
10259
  const c = new CA(this, r);
@@ -10269,39 +10268,39 @@ class fs {
10269
10268
  */
10270
10269
  async getWorkflowExperiences(A, e) {
10271
10270
  if (A.length === 0)
10272
- throw new H("No options provided!");
10273
- const t = x.getShadowGraphqlClient(), a = A.map((C, u) => ({ option: C, index: u })), n = a.filter((C) => C.option.type === "transaction"), s = a.filter(
10274
- (C) => C.option.type === "integration" || C.option.type === "external"
10271
+ throw new P("No options provided!");
10272
+ const t = N.getShadowGraphqlClient(), a = A.map((h, u) => ({ option: h, index: u })), n = a.filter((h) => h.option.type === "transaction"), s = a.filter(
10273
+ (h) => h.option.type === "integration" || h.option.type === "external"
10275
10274
  ), i = async () => {
10276
- var p, f;
10275
+ var p, D;
10277
10276
  if (n.length === 0)
10278
10277
  return [];
10279
- const C = n.map((m) => m.option.transactionId), u = await t.query({
10278
+ const h = n.map((m) => m.option.transactionId), u = await t.query({
10280
10279
  query: EA,
10281
10280
  variables: {
10282
- ids: C
10281
+ ids: h
10283
10282
  },
10284
10283
  errorPolicy: "all",
10285
10284
  fetchPolicy: "no-cache"
10286
- }), D = u.data.transactions;
10287
- if (D.length !== n.length) {
10288
- const m = ((f = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10289
- throw new H(`Not all transactions were found: ${m}`);
10285
+ }), f = u.data.transactions;
10286
+ if (f.length !== n.length) {
10287
+ const m = ((D = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
10288
+ throw new P(`Not all transactions were found: ${m}`);
10290
10289
  }
10291
- return D.map((m, y) => {
10290
+ return f.map((m, M) => {
10292
10291
  var Y;
10293
10292
  return {
10294
10293
  transaction: m,
10295
10294
  workflowId: m.workflowId,
10296
10295
  readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10297
- index: n[y].index
10296
+ index: n[M].index
10298
10297
  };
10299
10298
  });
10300
10299
  }, o = async () => {
10301
- var D, p, f;
10300
+ var f, p, D;
10302
10301
  if (s.length === 0)
10303
10302
  return [];
10304
- const C = await t.mutate({
10303
+ const h = await t.mutate({
10305
10304
  mutation: ca,
10306
10305
  variables: {
10307
10306
  inputs: s.map((m) => ({
@@ -10315,37 +10314,39 @@ class fs {
10315
10314
  },
10316
10315
  errorPolicy: "all",
10317
10316
  fetchPolicy: "no-cache"
10318
- }), u = (D = C.data) == null ? void 0 : D.transactionCreateMany;
10317
+ }), u = (f = h.data) == null ? void 0 : f.transactionCreateMany;
10319
10318
  if (!u || u.length === 0) {
10320
- const m = ((f = (p = C.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10321
- throw new H(`Failed to create transactions: ${m}`);
10319
+ const m = ((D = (p = h.errors) == null ? void 0 : p[0]) == null ? void 0 : D.message) || "Unknown error";
10320
+ throw new P(`Failed to create transactions: ${m}`);
10322
10321
  }
10323
- return u.map((m, y) => ({
10322
+ return u.map((m, M) => ({
10324
10323
  transaction: m,
10325
10324
  workflowId: m.workflowId,
10326
10325
  readOnly: !1,
10327
- index: s[y].index
10326
+ index: s[M].index
10328
10327
  }));
10329
- }, r = (await Promise.all([i(), o()])).flat(), c = [...new Set(r.map((C) => C.workflowId))], B = await ht(c, e), l = new Map(B.map((C) => [C.id, C])), d = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = r.map(async (C) => {
10330
- const { transaction: u, workflowId: D, readOnly: p, index: f } = C, m = l.get(D), y = A[f];
10328
+ }, 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) => {
10329
+ var U;
10330
+ const { transaction: u, workflowId: f, readOnly: p, index: D } = h, m = l.get(f), M = A[D];
10331
10331
  !d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
10332
10332
  const Y = d.get(u.id) || void 0, F = {
10333
10333
  product: u.product,
10334
10334
  transaction: u,
10335
10335
  layouts: [],
10336
+ singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
10336
10337
  stateMutationFunc: p ? async () => {
10337
10338
  throw new v("State mutation is forbidden in read only mode!");
10338
- } : async (R) => this.updateTransactionState({ ...R, context: { transactionOwnerId: Y } }),
10339
+ } : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
10339
10340
  readOnly: p,
10340
10341
  workflow: m,
10341
- isReloadedTransaction: y.type === "transaction"
10342
+ isReloadedTransaction: M.type === "transaction"
10342
10343
  };
10343
- if (y.type === "transaction" && u.workflowState) {
10344
- const R = JSON.parse(u.workflowState);
10345
- F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10346
- } else if (!p && y.workflowState) {
10347
- const R = JSON.parse(y.workflowState);
10348
- F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10344
+ if (M.type === "transaction" && u.workflowState) {
10345
+ const S = JSON.parse(u.workflowState);
10346
+ F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
10347
+ } else if (!p && M.workflowState) {
10348
+ const S = JSON.parse(M.workflowState);
10349
+ F.layouts = Object.values(S.layouts).map((b) => b.layout), await AA(S), await tA(S), F.reloadedState = S;
10349
10350
  } else
10350
10351
  F.layouts = KA(
10351
10352
  F.transaction,
@@ -10353,12 +10354,12 @@ class fs {
10353
10354
  );
10354
10355
  return F.renderableContextService = new QA(
10355
10356
  F.layouts
10356
- ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: f, options: y };
10357
+ ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: D, options: M };
10357
10358
  });
10358
- S.setMap("transactionOwnerIds", d);
10359
- const Q = (await Promise.all(E)).sort((C, u) => C.index - u.index).map(async (C) => {
10360
- const { experienceOptions: u, options: D } = C, p = new CA(this, u);
10361
- return await p.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10359
+ x.setMap("transactionOwnerIds", d);
10360
+ const Q = (await Promise.all(E)).sort((h, u) => h.index - u.index).map(async (h) => {
10361
+ const { experienceOptions: u, options: f } = h, p = new CA(this, u);
10362
+ return await p.getWorkflowManager().getInitializationPromise(), f.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10362
10363
  });
10363
10364
  return await Promise.all(Q);
10364
10365
  }
@@ -10370,8 +10371,8 @@ class fs {
10370
10371
  async initFromIntegrationProduct(A) {
10371
10372
  var s;
10372
10373
  if (A === "")
10373
- throw new H("No integration product ID provided.");
10374
- const t = await x.getShadowGraphqlClient().mutate({
10374
+ throw new P("No integration product ID provided.");
10375
+ const t = await N.getShadowGraphqlClient().mutate({
10375
10376
  mutation: ue,
10376
10377
  variables: {
10377
10378
  integrationProductId: A,
@@ -10384,13 +10385,13 @@ class fs {
10384
10385
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10385
10386
  });
10386
10387
  if (!t.data || !t.data.transactionCreate)
10387
- throw new H("Failed to create transaction!");
10388
+ throw new P("Failed to create transaction!");
10388
10389
  const a = t.data.transactionCreate;
10389
10390
  if (!a.product)
10390
- throw new H("Failed to create transaction, product not available.");
10391
+ throw new P("Failed to create transaction, product not available.");
10391
10392
  this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
10392
- const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10393
- n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), S.setMap("transactionOwnerIds", n), this.experienceOptions = {
10393
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10394
+ n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
10394
10395
  product: a.product,
10395
10396
  transaction: a,
10396
10397
  layouts: [],
@@ -10406,8 +10407,8 @@ class fs {
10406
10407
  async initFromTransaction(A, e = !1) {
10407
10408
  var i, o, r, c;
10408
10409
  if (A === "")
10409
- throw new H("No transaction ID provided.");
10410
- const t = x.getShadowGraphqlClient(), a = async () => {
10410
+ throw new P("No transaction ID provided.");
10411
+ const t = N.getShadowGraphqlClient(), a = async () => {
10411
10412
  var d, E;
10412
10413
  const l = (d = (await t.query({
10413
10414
  query: EA,
@@ -10416,9 +10417,9 @@ class fs {
10416
10417
  errorPolicy: "all"
10417
10418
  })).data) == null ? void 0 : d.transactions[0];
10418
10419
  if (!l)
10419
- throw new H("Failed to read transaction.");
10420
+ throw new P("Failed to read transaction.");
10420
10421
  if (!l.product)
10421
- throw new H("Failed to load transaction, product not available.");
10422
+ throw new P("Failed to load transaction, product not available.");
10422
10423
  this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
10423
10424
  product: l.product,
10424
10425
  transaction: l,
@@ -10431,7 +10432,7 @@ class fs {
10431
10432
  };
10432
10433
  if (e)
10433
10434
  return await a();
10434
- const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10435
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10435
10436
  if (s) {
10436
10437
  eA(s);
10437
10438
  const l = (i = (await t.query({
@@ -10442,9 +10443,9 @@ class fs {
10442
10443
  errorPolicy: "all"
10443
10444
  })).data) == null ? void 0 : i.transactions[0];
10444
10445
  if (!l)
10445
- throw new H("Failed to read transaction.");
10446
+ throw new P("Failed to read transaction.");
10446
10447
  if (!l.product)
10447
- throw new H("Failed to load transaction, product not available.");
10448
+ throw new P("Failed to load transaction, product not available.");
10448
10449
  this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
10449
10450
  product: l.product,
10450
10451
  transaction: l,
@@ -10461,10 +10462,10 @@ class fs {
10461
10462
  errorPolicy: "all"
10462
10463
  })).data) == null ? void 0 : r.transactionClaim;
10463
10464
  if (!l)
10464
- throw new H("Failed to read transaction.");
10465
+ throw new P("Failed to read transaction.");
10465
10466
  if (!l.product)
10466
- throw new H("Failed to load transaction, product not available.");
10467
- this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), S.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10467
+ throw new P("Failed to load transaction, product not available.");
10468
+ this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), x.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10468
10469
  product: l.product,
10469
10470
  transaction: l,
10470
10471
  layouts: [],
@@ -10472,7 +10473,7 @@ class fs {
10472
10473
  readOnly: e
10473
10474
  }, this.initialized = !0;
10474
10475
  } catch {
10475
- throw new H("Attempted to access a transaction that isn't available.");
10476
+ throw new P("Attempted to access a transaction that isn't available.");
10476
10477
  }
10477
10478
  }
10478
10479
  /**
@@ -10481,7 +10482,7 @@ class fs {
10481
10482
  async getWorkflowExperienceDeprecated(A, e, t) {
10482
10483
  var a, n, s, i;
10483
10484
  if (!this.initialized || !this.experienceOptions)
10484
- throw new H("Cannot launch experience: Not initialized.");
10485
+ throw new P("Cannot launch experience: Not initialized.");
10485
10486
  if (this.experienceOptions.transaction.workflowId) {
10486
10487
  const o = await pA(this.experienceOptions.transaction.workflowId);
10487
10488
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
@@ -10496,7 +10497,7 @@ class fs {
10496
10497
  return await r.getWorkflowManager().getInitializationPromise(), r;
10497
10498
  }
10498
10499
  if (A) {
10499
- const o = x.getShadowGraphqlClient().mutate({
10500
+ const o = N.getShadowGraphqlClient().mutate({
10500
10501
  mutation: Ba,
10501
10502
  variables: {
10502
10503
  workflowId: A,
@@ -10518,7 +10519,7 @@ class fs {
10518
10519
  const c = new CA(this, this.experienceOptions);
10519
10520
  return await c.getWorkflowManager().getInitializationPromise(), c;
10520
10521
  }
10521
- throw new H("No workflow ID provided.");
10522
+ throw new P("No workflow ID provided.");
10522
10523
  }
10523
10524
  /**
10524
10525
  * @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
@@ -10534,7 +10535,7 @@ class fs {
10534
10535
  */
10535
10536
  getProduct() {
10536
10537
  if (!this.initialized || !this.experienceOptions)
10537
- throw new H("Cannot get product: Not initialized.");
10538
+ throw new P("Cannot get product: Not initialized.");
10538
10539
  return this.experienceOptions.product;
10539
10540
  }
10540
10541
  /**
@@ -10543,12 +10544,12 @@ class fs {
10543
10544
  */
10544
10545
  getTransaction() {
10545
10546
  if (!this.initialized || !this.experienceOptions)
10546
- throw new H("Cannot get transaction: Not initialized.");
10547
+ throw new P("Cannot get transaction: Not initialized.");
10547
10548
  return this.experienceOptions.transaction;
10548
10549
  }
10549
10550
  storeCustomer(A) {
10550
- const e = S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10551
- e.set(A.partner.id, A.id), S.setMap("partnerCustomerIds", e);
10551
+ const e = x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10552
+ e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10552
10553
  }
10553
10554
  }
10554
10555
  class ks {
@@ -10777,7 +10778,7 @@ export {
10777
10778
  nn as InformationStepHandle,
10778
10779
  ei as LayoutElementFactory,
10779
10780
  ti as LayoutElementType,
10780
- T as LayoutNotFoundError,
10781
+ L as LayoutNotFoundError,
10781
10782
  $a as MaterialStepHandle,
10782
10783
  SA as MisconfigurationError,
10783
10784
  ks as MockWorkflowManager,
@@ -10812,7 +10813,7 @@ export {
10812
10813
  gi as UnitOfMeasurement,
10813
10814
  X as Variant,
10814
10815
  CA as WorkflowExperienceImpl,
10815
- b as assetService,
10816
+ T as assetService,
10816
10817
  Bn as createDesign,
10817
10818
  li as dataUrlFromExternalUrl,
10818
10819
  zA as designService,
@@ -10833,7 +10834,7 @@ export {
10833
10834
  mi as getSvgElement,
10834
10835
  pA as getWorkflow,
10835
10836
  ht as getWorkflows,
10836
- x as graphQlManager,
10837
+ N as graphQlManager,
10837
10838
  fA as illustrationStepService,
10838
10839
  pi as loadFont,
10839
10840
  $e as materialStepService,
@@ -10841,7 +10842,7 @@ export {
10841
10842
  Ya as moduleStepService,
10842
10843
  z as optionService,
10843
10844
  Ii as patternImageDataCache,
10844
- S as persistenceService,
10845
+ x as persistenceService,
10845
10846
  At as pictureStepService,
10846
10847
  et as questionStepService,
10847
10848
  Di as registerFetchImplementation,