@spiffcommerce/core 16.5.1-2 → 16.5.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as y } from "@apollo/client/core";
2
- import { fetch as _A, getAttributesFromArrayBuffer as Fe, AssetType as le, StepType as I, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as Me, calculateOffsets as ee, LayoutElementType as H, generate as k, CreateElementCommand as J, generateSVGWithUnknownColors as ye, svgObjectURL as FA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as Be, GetSVGDimensions as It, patternImageDataCache as de, fetchAsArrayBuffer as Dt, findElement as MA, modifySVGWithElementProperties as ft, IllustrationColorCommand as jA, IllustrationCacheCommand as Ft, getFontMetrics as Mt, getPatternImageData as VA, FontColorCommand as yt, FontImageFillCommand as JA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as IA, FontSourceCommand as we, loadFont as te, TextChangeCommand as Yt, FontSizeCommand as St, createElementNS as xt, createElement as wA, _loadFontExternalDataURL as ae, UpdateWorkflowStateCommand as Ee, CommandContext as Nt, createCanvas as yA, getSvgElement as Ye, LayoutRenderingPurpose as Se, renderPapyrusComponentAsString as xe, loadImage as Ne, getDomParser as Re, toBase64 as he, getVariant as Rt, generateFrameSVG as Pt, getDefaultVariant as UA, domParser as Pe, sanitizeSvgTree as He, traverse as Ht, xmlSerializer as Ue, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
1
+ import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as M } from "@apollo/client/core";
2
+ import { fetch as _A, getAttributesFromArrayBuffer as Fe, AssetType as le, StepType as I, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as Me, calculateOffsets as ee, LayoutElementType as U, generate as k, CreateElementCommand as J, generateSVGWithUnknownColors as ye, svgObjectURL as FA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as Be, GetSVGDimensions as It, patternImageDataCache as de, fetchAsArrayBuffer as Dt, findElement as MA, modifySVGWithElementProperties as ft, IllustrationColorCommand as jA, IllustrationCacheCommand as Ft, getFontMetrics as Mt, getPatternImageData as VA, FontColorCommand as yt, FontImageFillCommand as bA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as IA, FontSourceCommand as we, loadFont as te, TextChangeCommand as Yt, FontSizeCommand as St, createElementNS as xt, createElement as wA, _loadFontExternalDataURL as ae, UpdateWorkflowStateCommand as Ee, CommandContext as Nt, createCanvas as yA, getSvgElement as Ye, LayoutRenderingPurpose as Se, renderPapyrusComponentAsString as xe, loadImage as Ne, getDomParser as Re, toBase64 as he, getVariant as Rt, generateFrameSVG as Pt, getDefaultVariant as UA, domParser as Pe, sanitizeSvgTree as He, traverse as Ht, xmlSerializer as Ue, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
3
3
  import { AssetType as Ts, BringForwardCommand as Ls, BringToBackCommand as Os, BringToFrontCommand as zs, CanvasCommand as Ks, CommandContext as js, CreateElementCommand as Vs, CreateLayoutCommand as Ws, DeleteElementCommand as Xs, FontAlignmentCommand as qs, FontColorCommand as Zs, FontSizeCommand as $s, FontSourceCommand as _s, GroupCommand as Ai, LayoutElementFactory as ei, LayoutElementType as ti, MoveCommand as ai, ResizeCommand as ni, RotateCommand as si, SendBackwardsCommand as ii, StepAspectType as oi, StepType as ri, TextChangeCommand as ci, UnitOfMeasurement as gi, dataUrlFromExternalUrl as li, determineCorrectFontSizeAndLines as Bi, findElement as di, frameDataCache as wi, generate as Ei, generateSVGWithUnknownColors as hi, getAttributesFromArrayBuffer as Ci, getAxisAlignedBoundingBox as Qi, getFrameData as ui, getSvgElement as mi, loadFont as pi, patternImageDataCache as Ii, registerFetchImplementation as Di, registerWindowImplementation as fi, rehydrateSerializedLayout as Fi, setCanvasModule as Mi } from "@spiffcommerce/papyrus";
4
4
  import { setContext as vt } from "@apollo/client/link/context";
5
5
  import { onError as kt } from "@apollo/client/link/error";
@@ -7,15 +7,15 @@ import { Pith as Ge } from "pith";
7
7
  import ve from "lodash.debounce";
8
8
  import ke from "lodash.isequal";
9
9
  import gA from "lodash.clonedeep";
10
- import { toString as be } from "qrcode";
10
+ import { toString as Je } from "qrcode";
11
11
  import { split as XA } from "unicode-default-word-boundary";
12
12
  import ne from "svg-path-bbox";
13
- class Je extends Error {
13
+ class be extends Error {
14
14
  constructor(A) {
15
15
  super(A), this.name = this.constructor.name;
16
16
  }
17
17
  }
18
- class dA extends Je {
18
+ class dA extends be {
19
19
  constructor(A) {
20
20
  super(`ConfigurationError - ${A}`);
21
21
  }
@@ -25,7 +25,7 @@ class YA extends dA {
25
25
  super(`Option not Configured: ${A.stepTitle}`), this.optionId = (A == null ? void 0 : A.optionId) || "N/A";
26
26
  }
27
27
  }
28
- class L extends dA {
28
+ class T extends dA {
29
29
  constructor(A) {
30
30
  super(`Panel not Found: ${A.panelId}`), this.panelId = (A == null ? void 0 : A.panelId) || "N/A";
31
31
  }
@@ -45,7 +45,7 @@ class SA extends dA {
45
45
  super(`Workflow Misconfiguration: ${A.stepName} - ${e}`), this.step = A;
46
46
  }
47
47
  }
48
- class GA extends Je {
48
+ class GA extends be {
49
49
  constructor(A) {
50
50
  super(`ImplementationError - ${A}`);
51
51
  }
@@ -60,7 +60,7 @@ class rA extends GA {
60
60
  super(`Parsing Error: ${A}`);
61
61
  }
62
62
  }
63
- class P extends GA {
63
+ class H extends GA {
64
64
  constructor(A) {
65
65
  super(`Client Error: ${A}`);
66
66
  }
@@ -70,7 +70,7 @@ class vA extends GA {
70
70
  super(`Resource Generation Failed: ${A}`);
71
71
  }
72
72
  }
73
- class bt {
73
+ class Jt {
74
74
  get(A) {
75
75
  return localStorage.getItem(A) || void 0;
76
76
  }
@@ -113,13 +113,13 @@ class Ce {
113
113
  this.set(A, t);
114
114
  }
115
115
  }
116
- const Jt = () => {
116
+ const bt = () => {
117
117
  try {
118
- return localStorage ? new bt() : new Ce();
118
+ return localStorage ? new Jt() : new Ce();
119
119
  } catch {
120
120
  return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Ce();
121
121
  }
122
- }, x = Jt();
122
+ }, S = bt();
123
123
  class Tt {
124
124
  constructor() {
125
125
  this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
@@ -190,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, 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), {
193
+ const { headers: o } = i, r = o || {}, c = await zt(), B = i.bearer ?? c.bearer, l = i.partnerId ?? c.partnerId, d = i.activeIntegration ?? c.activeIntegration, E = i.transactionOwnerId ?? c.transactionOwnerId, h = i.customerToken ?? c.customerToken, w = i.applicationKey ?? c.applicationKey, Q = i.bundleOwnerId ?? c.bundleOwnerId;
194
+ return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), E && (r.transactionOwnerId = E), h && (r.customerToken = h), w && (r["X-Application-Key"] = w), Q && (r.bundleOwnerId = Q), {
195
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 N = new Kt(), jt = y`
254
+ const x = new Kt(), jt = M`
255
255
  fragment AssetMetadataFields on Asset {
256
256
  metadata {
257
257
  key
258
258
  value
259
259
  }
260
260
  }
261
- `, kA = (g) => y`
261
+ `, kA = (g) => M`
262
262
  ${g && jt || ""}
263
263
  fragment AssetFields on Asset {
264
264
  name
@@ -273,14 +273,14 @@ const N = new Kt(), jt = y`
273
273
  }
274
274
  ${g && "...AssetMetadataFields" || ""}
275
275
  }
276
- `, Vt = y`
276
+ `, Vt = M`
277
277
  ${kA(!1)}
278
278
  query GetAssets($keys: [String]!) {
279
279
  assets(keys: $keys) {
280
280
  ...AssetFields
281
281
  }
282
282
  }
283
- `, se = y`
283
+ `, se = M`
284
284
  fragment MaterialFields on Material {
285
285
  id
286
286
  name
@@ -321,14 +321,14 @@ const N = new Kt(), jt = y`
321
321
  fileLink
322
322
  }
323
323
  }
324
- `, Wt = y`
324
+ `, Wt = M`
325
325
  ${se}
326
326
  query GetMaterials($ids: [String]) {
327
327
  materials(id: $ids) {
328
328
  ...MaterialFields
329
329
  }
330
330
  }
331
- `, Xt = y`
331
+ `, Xt = M`
332
332
  mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
333
333
  assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
334
334
  uploadUrl
@@ -342,14 +342,14 @@ const N = new Kt(), jt = y`
342
342
  }
343
343
  }
344
344
  }
345
- `, Ke = async (g) => (await N.getShadowGraphqlClient().query({
345
+ `, Ke = async (g) => (await x.getShadowGraphqlClient().query({
346
346
  query: Vt,
347
347
  errorPolicy: "all",
348
348
  fetchPolicy: "no-cache",
349
349
  variables: {
350
350
  keys: g
351
351
  }
352
- })).data.assets, qt = async (g) => (await N.getShadowGraphqlClient().query({
352
+ })).data.assets, qt = async (g) => (await x.getShadowGraphqlClient().query({
353
353
  query: Wt,
354
354
  errorPolicy: "all",
355
355
  fetchPolicy: "no-cache",
@@ -358,7 +358,7 @@ const N = new Kt(), jt = y`
358
358
  }
359
359
  })).data.materials, Zt = async (g, A, e, t, a) => {
360
360
  var s;
361
- return (s = (await N.getShadowGraphqlClient().mutate({
361
+ return (s = (await x.getShadowGraphqlClient().mutate({
362
362
  mutation: Xt,
363
363
  errorPolicy: "all",
364
364
  fetchPolicy: "no-cache",
@@ -453,7 +453,7 @@ class $t {
453
453
  name: A.name,
454
454
  blob: new Blob([A], { type: A.type })
455
455
  };
456
- return await T.uploadAssetWithProgress(n, a, e, !0);
456
+ return await b.uploadAssetWithProgress(n, a, e, !0);
457
457
  }
458
458
  }
459
459
  removePersistedAsset(A) {
@@ -502,31 +502,31 @@ class LA {
502
502
  }
503
503
  const e = /* @__PURE__ */ new Map();
504
504
  e.set(A.key || "", A.fileLink);
505
- const t = x.getMap(sA);
505
+ const t = S.getMap(sA);
506
506
  t && t.forEach((a, n) => {
507
507
  e.set(n, a);
508
- }), x.setMap(sA, e);
508
+ }), S.setMap(sA, e);
509
509
  }
510
510
  /**
511
511
  * Remove an existing asset from persistence. Noop if the asset doesn't exist.
512
512
  * @param assetKey The key to remove.
513
513
  */
514
514
  static remove(A) {
515
- const e = x.getMap(sA);
515
+ const e = S.getMap(sA);
516
516
  if (!e)
517
517
  return;
518
518
  const t = Array.from(e.entries()).find((a) => a[0] === A);
519
- t && (e.delete(t[0]), x.setMap(sA, e));
519
+ t && (e.delete(t[0]), S.setMap(sA, e));
520
520
  }
521
521
  /**
522
522
  * Get a list of all persisted assets.
523
523
  */
524
524
  static list() {
525
- const A = x.getMap(sA);
525
+ const A = S.getMap(sA);
526
526
  return A ? Array.from(A.entries()).map((e) => ({ assetKey: e[0], src: e[1] })) : [];
527
527
  }
528
528
  }
529
- const T = new $t();
529
+ const b = new $t();
530
530
  class _t {
531
531
  constructor() {
532
532
  this.cache = {};
@@ -546,7 +546,7 @@ class _t {
546
546
  return this.cache[t] = e, e;
547
547
  }
548
548
  }
549
- const BA = new _t(), je = y`
549
+ const BA = new _t(), je = M`
550
550
  fragment OptionFields on Option {
551
551
  id
552
552
  name
@@ -586,7 +586,7 @@ const BA = new _t(), je = y`
586
586
  ...AssetFields
587
587
  }
588
588
  }
589
- `, Aa = y`
589
+ `, Aa = M`
590
590
  ${kA(!1)}
591
591
  ${se}
592
592
  ${je}
@@ -596,7 +596,7 @@ const BA = new _t(), je = y`
596
596
  }
597
597
  }
598
598
  `, ea = async (g) => {
599
- const A = await N.getShadowGraphqlClient().query({
599
+ const A = await x.getShadowGraphqlClient().query({
600
600
  query: Aa,
601
601
  errorPolicy: "all",
602
602
  fetchPolicy: "no-cache",
@@ -606,8 +606,8 @@ const BA = new _t(), je = y`
606
606
  });
607
607
  return A.data.options.forEach((e) => {
608
608
  var t, a;
609
- (t = e.defaultVariant) != null && t.asset && T.cacheAsset(e.defaultVariant.asset), e.colorProfile && T.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
610
- n.asset && T.cacheAsset(n.asset), n.displayImage && T.cacheAsset(n.displayImage), n.thumbnail && T.cacheAsset(n.thumbnail), n.material && T.cacheMaterial(n.material);
609
+ (t = e.defaultVariant) != null && t.asset && b.cacheAsset(e.defaultVariant.asset), e.colorProfile && b.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
610
+ n.asset && b.cacheAsset(n.asset), n.displayImage && b.cacheAsset(n.displayImage), n.thumbnail && b.cacheAsset(n.thumbnail), n.material && b.cacheMaterial(n.material);
611
611
  });
612
612
  }), A.data.options;
613
613
  }, ta = async (g, A) => (await A).find((t) => t.id === g), aa = async (g) => {
@@ -674,7 +674,7 @@ class na {
674
674
  }
675
675
  const z = new na();
676
676
  var sa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(sa || {}), ia = /* @__PURE__ */ ((g) => (g.PerVariation = "PerVariation", g.BaseProduct = "BaseProduct", g))(ia || {}), oa = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(oa || {}), ra = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(ra || {}), NA = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(NA || {});
677
- const ue = y`
677
+ const ue = M`
678
678
  mutation CreateTransaction(
679
679
  $integrationProductId: String
680
680
  $externalIntegrationId: String
@@ -768,7 +768,7 @@ const ue = y`
768
768
  }
769
769
  }
770
770
  }
771
- `, ca = y`
771
+ `, ca = M`
772
772
  mutation CreateTransactions($inputs: [TransactionCreateInput]!) {
773
773
  transactionCreateMany(inputs: $inputs) {
774
774
  id
@@ -848,7 +848,7 @@ const ue = y`
848
848
  }
849
849
  }
850
850
  }
851
- `, ga = y`
851
+ `, ga = M`
852
852
  mutation ClaimTransaction($id: String!) {
853
853
  transactionClaim(id: $id) {
854
854
  id
@@ -928,7 +928,7 @@ const ue = y`
928
928
  }
929
929
  }
930
930
  }
931
- `, EA = y`
931
+ `, EA = M`
932
932
  query ReadTransactions($ids: [String]!) {
933
933
  transactions(ids: $ids) {
934
934
  bulk
@@ -1015,26 +1015,26 @@ const ue = y`
1015
1015
  }
1016
1016
  }
1017
1017
  }
1018
- `, la = y`
1018
+ `, la = M`
1019
1019
  mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
1020
1020
  transactionUpdate(id: $id, workflowState: $workflowState) {
1021
1021
  id
1022
1022
  }
1023
1023
  }
1024
- `, Ba = y`
1024
+ `, Ba = M`
1025
1025
  mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
1026
1026
  transactionUpdate(id: $id, workflowId: $workflowId) {
1027
1027
  id
1028
1028
  }
1029
1029
  }
1030
- `, da = y`
1030
+ `, da = M`
1031
1031
  mutation UpdateVariationRecords($transactionId: String!, $updates: [VariationRecordUpdateInput]!) {
1032
1032
  variationRecordsUpdate(transactionId: $transactionId, updates: $updates) {
1033
1033
  recordNumber
1034
1034
  }
1035
1035
  }
1036
1036
  `;
1037
- y`
1037
+ M`
1038
1038
  query ReadTransactionForDesignCreation($id: String!) {
1039
1039
  transactions(ids: [$id]) {
1040
1040
  id
@@ -1087,7 +1087,7 @@ y`
1087
1087
  }
1088
1088
  }
1089
1089
  `;
1090
- const Ve = y`
1090
+ const Ve = M`
1091
1091
  query ReadWorkflowStates($ids: [String]!) {
1092
1092
  transactions(ids: $ids) {
1093
1093
  id
@@ -1317,22 +1317,24 @@ const Ve = y`
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, 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)
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)
1330
1332
  ).length > 0);
1331
- for (const i of n)
1332
- i.renderableSteps = i.renderableSteps.filter(
1333
- (o) => a.includes(o.stepName)
1333
+ for (const s of a)
1334
+ s.renderableSteps = s.renderableSteps.filter(
1335
+ (i) => t.includes(i.stepName)
1334
1336
  );
1335
- return n;
1337
+ return a;
1336
1338
  };
1337
1339
  class Xe {
1338
1340
  constructor() {
@@ -1592,7 +1594,7 @@ class me {
1592
1594
  var o, r, c, B;
1593
1595
  const n = this.layouts.find((l) => l.panelId === a.panelId);
1594
1596
  if (!n)
1595
- throw new L(a);
1597
+ throw new T(a);
1596
1598
  let s = "";
1597
1599
  if (this.configuration.type === I.ProductOverlay) {
1598
1600
  let l = "";
@@ -1600,7 +1602,7 @@ class me {
1600
1602
  throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
1601
1603
  }
1602
1604
  const i = this.evaluateAssetType();
1603
- if (i === H.Image) {
1605
+ if (i === U.Image) {
1604
1606
  const l = this.configuration.type === I.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
1605
1607
  if (!l)
1606
1608
  throw new Error("Undefined raster silent step source");
@@ -1634,10 +1636,10 @@ class me {
1634
1636
  Q("Undefined vector silent step source");
1635
1637
  return;
1636
1638
  }
1637
- Z(l, !0).then((h) => {
1638
- w(h);
1639
- }).catch((h) => console.error(h));
1640
- }))()), C = {
1639
+ Z(l, !0).then((C) => {
1640
+ w(C);
1641
+ }).catch((C) => console.error(C));
1642
+ }))()), h = {
1641
1643
  stepName: this.configuration.stepName,
1642
1644
  id: k(),
1643
1645
  cachedObjectURL: await FA(E.svg),
@@ -1658,10 +1660,10 @@ class me {
1658
1660
  };
1659
1661
  return {
1660
1662
  regionElement: {
1661
- id: C.id,
1663
+ id: h.id,
1662
1664
  region: a
1663
1665
  },
1664
- command: new J(C, n)
1666
+ command: new J(h, n)
1665
1667
  };
1666
1668
  }
1667
1669
  }, this.configuration = A, this.layouts = e, this.product = t || void 0;
@@ -1676,7 +1678,7 @@ class me {
1676
1678
  return this.configuration.type === I.ProductOverlay ? Promise.all(
1677
1679
  this.configuration.data.regions.map((A) => {
1678
1680
  if (!this.layouts.find((t) => A.panelId === t.panelId))
1679
- throw new L(A);
1681
+ throw new T(A);
1680
1682
  return this.processRegion(A);
1681
1683
  })
1682
1684
  ) : Promise.reject("Unknown silent step. This is a bug");
@@ -1684,7 +1686,7 @@ class me {
1684
1686
  evaluateAssetType() {
1685
1687
  var e, t, a;
1686
1688
  const A = this.configuration.type === I.ProductOverlay && ((e = this.product) != null && e.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (a = (t = this.configuration.data.asset) == null ? void 0 : t.fileLink) == null ? void 0 : a.toLowerCase().split("?")[0];
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;
1689
+ return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ? U.Image : A != null && A.endsWith(".svg") || A != null && A.startsWith("image/svg+xml") ? U.Illustration : U.Illustration;
1688
1690
  }
1689
1691
  }
1690
1692
  const ma = async (g) => {
@@ -1745,19 +1747,19 @@ class pa {
1745
1747
  async regenerateQRCode(A, e, t, a, n, s, i, o, r) {
1746
1748
  if (!e && t !== "" && a === "") {
1747
1749
  const c = async () => {
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) => {
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) => {
1752
1754
  new Ze(
1753
1755
  async () => !!(await c()).link,
1754
1756
  async () => {
1755
- const f = await c();
1756
- if (!f.link || !f.link)
1757
- throw new lA(f.asset);
1758
- h({
1757
+ const D = await c();
1758
+ if (!D.link || !D.link)
1759
+ throw new lA(D.asset);
1760
+ C({
1759
1761
  rel: "mpeg4",
1760
- href: f.link
1762
+ href: D.link
1761
1763
  });
1762
1764
  },
1763
1765
  () => {
@@ -1767,19 +1769,19 @@ class pa {
1767
1769
  40
1768
1770
  );
1769
1771
  });
1770
- A.forEach((h) => o(new $(h.id)));
1772
+ A.forEach((C) => o(new $(C.id)));
1771
1773
  const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
1772
1774
  d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
1773
1775
  const E = d.toString();
1774
1776
  if (E.length >= 2e3)
1775
1777
  throw new vA("Cannot create QR code, URL too long.");
1776
- const C = await ma(E);
1777
- if (i(C), !s.data || !s.data.regions)
1778
+ const h = await ma(E);
1779
+ if (i(h), !s.data || !s.data.regions)
1778
1780
  throw new SA(s, "Missing regions.");
1779
- const w = await this.regionElements(s), Q = await this.command(C, w, n, s.stepName);
1781
+ const w = await this.regionElements(s), Q = await this.command(h, w, n, s.stepName);
1780
1782
  Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
1781
1783
  n.updateStorage(s.stepName, {
1782
- videoShortUrl: C,
1784
+ videoShortUrl: h,
1783
1785
  videoUrl: a
1784
1786
  }), r(!1);
1785
1787
  });
@@ -1791,10 +1793,10 @@ class pa {
1791
1793
  return A.data.regions.map(e);
1792
1794
  }
1793
1795
  async command(A, e, t, a) {
1794
- const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await be(A, { type: "svg" }))}`, o = e.map((r) => {
1796
+ const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await Je(A, { type: "svg" }))}`, o = e.map((r) => {
1795
1797
  const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
1796
1798
  if (!B && c)
1797
- throw new L(c);
1799
+ throw new T(c);
1798
1800
  if (B && !c)
1799
1801
  throw new Error("Region not found");
1800
1802
  if (!B || !c)
@@ -1805,7 +1807,7 @@ class pa {
1805
1807
  stepName: a,
1806
1808
  id: r.id,
1807
1809
  src: i,
1808
- type: H.Image,
1810
+ type: U.Image,
1809
1811
  y: c.top,
1810
1812
  x: c.left,
1811
1813
  width: c.width,
@@ -1871,13 +1873,13 @@ class Da {
1871
1873
  }
1872
1874
  if (a) {
1873
1875
  const c = async () => {
1874
- var d, E, C, w;
1876
+ var d, E, h, w;
1875
1877
  const B = (d = a.storage) == null ? void 0 : d.framePatternSrc, l = (E = a.storage) == null ? void 0 : E.frameOffsetsList;
1876
1878
  if (e.updateMetadata(A.stepName, {
1877
1879
  frameOffsetsList: l,
1878
1880
  framePatternSrc: B
1879
1881
  }), B) {
1880
- const Q = (C = e.getStepSpecificServices(A.stepName)) == null ? void 0 : C.frameService;
1882
+ const Q = (h = e.getStepSpecificServices(A.stepName)) == null ? void 0 : h.frameService;
1881
1883
  if (!Q)
1882
1884
  throw new Error("Frame service unavailable, cannot load pattern!");
1883
1885
  await this.loadPatternFromString(B, Q), e.updateMetadata(A.stepName, { image: B }), e.updateStorage(A.stepName, {
@@ -1917,11 +1919,11 @@ class Da {
1917
1919
  new Ze(
1918
1920
  async () => {
1919
1921
  var o;
1920
- const s = (o = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1922
+ const s = (o = (await b.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1921
1923
  return s ? (await fetch(s.link)).status === 200 : !1;
1922
1924
  },
1923
1925
  () => {
1924
- T.getLocalOrFromServer(e.key || "").then((n) => {
1926
+ b.getLocalOrFromServer(e.key || "").then((n) => {
1925
1927
  this.loadPatternFromAsset(n, A, t);
1926
1928
  });
1927
1929
  },
@@ -1945,7 +1947,7 @@ class Da {
1945
1947
  return new J(
1946
1948
  {
1947
1949
  id: A,
1948
- type: H.Frame,
1950
+ type: U.Frame,
1949
1951
  x: e.left,
1950
1952
  y: e.top,
1951
1953
  width: e.width,
@@ -2000,22 +2002,22 @@ class Da {
2000
2002
  n && n(!0);
2001
2003
  const r = await Promise.all(
2002
2004
  A.data.regions.map(async (d, E) => {
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 ? {
2005
+ const h = await Ae(o[E]), w = i.getImageData(), Q = t.map((m) => new $(m.id)), C = w ? ee(w, h) : void 0, u = w ? {
2004
2006
  id: k(),
2005
2007
  src: w.src,
2006
- x: (h == null ? void 0 : h.x) || 0,
2007
- y: (h == null ? void 0 : h.y) || 0,
2008
+ x: (C == null ? void 0 : C.x) || 0,
2009
+ y: (C == null ? void 0 : C.y) || 0,
2008
2010
  width: w.width,
2009
2011
  height: w.height,
2010
- scaleX: (h == null ? void 0 : h.zoom) || 1,
2011
- scaleY: (h == null ? void 0 : h.zoom) || 1,
2012
+ scaleX: (C == null ? void 0 : C.zoom) || 1,
2013
+ scaleY: (C == null ? void 0 : C.zoom) || 1,
2012
2014
  rotation: 0
2013
- } : void 0, f = k(), D = a.getLayouts().find((m) => m.panelId === d.panelId);
2014
- if (!D)
2015
- throw new L(d);
2015
+ } : void 0, D = k(), f = a.getLayouts().find((m) => m.panelId === d.panelId);
2016
+ if (!f)
2017
+ throw new T(d);
2016
2018
  return {
2017
- command: this.getCreateElementCommand(f, d, D, {
2018
- frameData: C,
2019
+ command: this.getCreateElementCommand(D, d, f, {
2020
+ frameData: h,
2019
2021
  pattern: u,
2020
2022
  disablePlaceholder: A.data.disablePlaceholder,
2021
2023
  focalBlur: A.data.focalBlur,
@@ -2024,7 +2026,7 @@ class Da {
2024
2026
  stepName: A.stepName
2025
2027
  }),
2026
2028
  regionEl: {
2027
- id: f,
2029
+ id: D,
2028
2030
  region: d
2029
2031
  },
2030
2032
  removeExistingCommands: Q
@@ -2095,7 +2097,7 @@ class fa {
2095
2097
  src: a.src,
2096
2098
  svg: a.svg.svg,
2097
2099
  cachedObjectURL: a.objectURL,
2098
- type: H.Illustration,
2100
+ type: U.Illustration,
2099
2101
  y: e.top,
2100
2102
  x: e.left,
2101
2103
  rotation: e.rotation,
@@ -2192,32 +2194,32 @@ class fa {
2192
2194
  return;
2193
2195
  const s = MA(
2194
2196
  e[0].id,
2195
- a().map((C) => C.layoutState)
2197
+ a().map((h) => h.layoutState)
2196
2198
  ), i = { ...s.colors }, o = {};
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;
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;
2200
2202
  });
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);
2203
+ for (const [h, w] of n.entries())
2204
+ i[h] = { browserValue: w, spotColor: (d = i[h]) == null ? void 0 : d.spotColor }, o[h] = { browserValue: w };
2205
+ let r = Array.from(Object.values(i)).map((h) => h.browserValue);
2204
2206
  const c = A.data.colorOption;
2205
- c && ((E = c.variants) == null || E.forEach((C) => {
2207
+ c && ((E = c.variants) == null || E.forEach((h) => {
2206
2208
  r = r.map((w) => {
2207
2209
  var Q;
2208
- return w.toLowerCase() === ((Q = C.color) == null ? void 0 : Q.toLowerCase()) ? C.name : w;
2210
+ return w.toLowerCase() === ((Q = h.color) == null ? void 0 : Q.toLowerCase()) ? h.name : w;
2209
2211
  });
2210
2212
  })), t.updateMetadata(A.stepName, { colors: r });
2211
2213
  const B = /* @__PURE__ */ new Map();
2212
- if (Object.entries(i).forEach(([C, w]) => {
2213
- B.set(C, w.browserValue);
2214
+ if (Object.entries(i).forEach(([h, w]) => {
2215
+ B.set(h, w.browserValue);
2214
2216
  }), !s.svg)
2215
2217
  throw new Error("Colors changed before SVG loaded. This should never happen!");
2216
2218
  const l = await this.changeColorsCommand(
2217
2219
  s.svg,
2218
2220
  s.width,
2219
2221
  s.height,
2220
- e.map((C) => C.id),
2222
+ e.map((h) => h.id),
2221
2223
  B
2222
2224
  );
2223
2225
  t.updateStorage(A.stepName, {
@@ -2233,7 +2235,7 @@ class fa {
2233
2235
  if (!A.data || !A.data.regions)
2234
2236
  throw new SA(A, "Missing regions.");
2235
2237
  a(!0);
2236
- const s = t.map((h) => new $(h.id));
2238
+ const s = t.map((C) => new $(C.id));
2237
2239
  n.setMandatoryFulfilled(A.stepName, !1);
2238
2240
  const i = e.asset;
2239
2241
  if (!i)
@@ -2241,35 +2243,35 @@ class fa {
2241
2243
  const o = i.fileLink;
2242
2244
  if (!o)
2243
2245
  throw new lA(i);
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);
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);
2246
2248
  if (!u)
2247
- throw new L(h);
2248
- const f = k();
2249
+ throw new T(C);
2250
+ const D = k();
2249
2251
  return {
2250
- regionElement: { id: f, region: h },
2251
- command: this.getCreateElementCommand(f, h, u, {
2252
+ regionElement: { id: D, region: C },
2253
+ command: this.getCreateElementCommand(D, C, u, {
2252
2254
  stepName: A.stepName,
2253
2255
  src: o,
2254
2256
  objectURL: c,
2255
2257
  svg: r
2256
2258
  })
2257
2259
  };
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);
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);
2260
2262
  const w = A.data.colorOption;
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;
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;
2265
2267
  });
2266
- })), n.updateMetadata(A.stepName, { colors: C }), {
2268
+ })), n.updateMetadata(A.stepName, { colors: h }), {
2267
2269
  command: new G(E),
2268
2270
  followup: async () => {
2269
2271
  await n.setSelectionsAndElements(
2270
2272
  A.stepName,
2271
2273
  [e],
2272
- l.map((h) => h.regionElement),
2274
+ l.map((C) => C.regionElement),
2273
2275
  async () => {
2274
2276
  n.setMandatoryFulfilled(A.stepName, !0), a(!1);
2275
2277
  }
@@ -2315,8 +2317,8 @@ class Fa {
2315
2317
  async () => {
2316
2318
  const E = e.getModelContainer();
2317
2319
  if (E) {
2318
- const C = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, o.id || "", l || {}));
2319
- Promise.all(C).then(
2320
+ const h = A.data.targetMaterials.map((w) => E.applyMaterialVariant(w, o.id || "", l || {}));
2321
+ Promise.all(h).then(
2320
2322
  () => e.setMandatoryFulfilled(A.stepName, !0)
2321
2323
  );
2322
2324
  }
@@ -2388,13 +2390,13 @@ class Ma {
2388
2390
  var E;
2389
2391
  const d = e.getModelContainer();
2390
2392
  if (d && A.option) {
2391
- const C = (E = B.asset) == null ? void 0 : E.fileLink;
2392
- if (!C)
2393
+ const h = (E = B.asset) == null ? void 0 : E.fileLink;
2394
+ if (!h)
2393
2395
  throw new _(B);
2394
2396
  await d.applyModelVariant(
2395
2397
  A.stepName || "",
2396
2398
  {
2397
- model: C,
2399
+ model: h,
2398
2400
  contextService: e.getLayoutPreviewService()
2399
2401
  },
2400
2402
  A.data.replaceProductModel || !1
@@ -2474,7 +2476,7 @@ class ya {
2474
2476
  return console.error("Missing configuration."), null;
2475
2477
  t.updateStorage(A.stepName, { text: e });
2476
2478
  const r = (B, l, d) => {
2477
- const E = d || k(), w = t.getLayouts().find((h) => h.panelId === l.panelId);
2479
+ const E = d || k(), w = t.getLayouts().find((C) => C.panelId === l.panelId);
2478
2480
  if (!w)
2479
2481
  return console.error(`Can not find layout for region: ${l.panelId}`), null;
2480
2482
  const Q = [];
@@ -2486,7 +2488,7 @@ class ya {
2486
2488
  colors: {},
2487
2489
  id: E,
2488
2490
  svg: B,
2489
- type: H.Illustration,
2491
+ type: U.Illustration,
2490
2492
  y: l.top,
2491
2493
  x: l.left,
2492
2494
  rotation: l.rotation,
@@ -2601,9 +2603,9 @@ class Sa {
2601
2603
  return console.error("No URL for picture!"), null;
2602
2604
  a(!0), t.setMandatoryFulfilled(A.stepName, !1);
2603
2605
  const o = t.getRegionElements(A.stepName).map((B) => new $(B.id)), r = (B) => {
2604
- const d = t.getLayouts().find((C) => C.panelId === B.panelId);
2606
+ const d = t.getLayouts().find((h) => h.panelId === B.panelId);
2605
2607
  if (!d)
2606
- throw new L(B);
2608
+ throw new T(B);
2607
2609
  const E = k();
2608
2610
  return {
2609
2611
  regionElement: { id: E, region: B },
@@ -2613,7 +2615,7 @@ class Sa {
2613
2615
  stepRegion: B,
2614
2616
  id: E,
2615
2617
  src: s,
2616
- type: H.Image,
2618
+ type: U.Image,
2617
2619
  y: B.top,
2618
2620
  x: B.left,
2619
2621
  rotation: B.rotation,
@@ -2721,7 +2723,7 @@ class Na {
2721
2723
  const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
2722
2724
  const o = i.region;
2723
2725
  if (!a.find((c) => c.panelId === (o == null ? void 0 : o.panelId)))
2724
- throw new L(o);
2726
+ throw new T(o);
2725
2727
  return new jA(i.id, this.shapeFillId, A);
2726
2728
  }).filter((i) => !!i);
2727
2729
  t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
@@ -2791,8 +2793,8 @@ class Na {
2791
2793
  if (t.length > 0) {
2792
2794
  const r = (B) => {
2793
2795
  const l = B.region;
2794
- if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2795
- throw new L(l);
2796
+ if (!n.find((h) => h.panelId === (l == null ? void 0 : l.panelId)))
2797
+ throw new T(l);
2796
2798
  const E = i();
2797
2799
  return new jA(B.id, this.shapeFillId, E);
2798
2800
  }, c = t.map(r).filter((B) => !!B);
@@ -2810,8 +2812,8 @@ class Na {
2810
2812
  const r = (d) => {
2811
2813
  const E = n.find((u) => u.panelId === d.panelId);
2812
2814
  if (!E)
2813
- throw new L(d);
2814
- const C = i(), w = `
2815
+ throw new T(d);
2816
+ const h = i(), w = `
2815
2817
  <svg
2816
2818
  xmlns="http://www.w3.org/2000/svg"
2817
2819
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -2828,23 +2830,23 @@ class Na {
2828
2830
  width="1"
2829
2831
  height="1"
2830
2832
  class="${this.shapeFillId}"
2831
- fill="${C}"
2833
+ fill="${h}"
2832
2834
  />
2833
2835
  </svg>
2834
2836
  `, Q = {};
2835
- Q[this.shapeFillId] = { browserValue: C };
2836
- const h = k();
2837
+ Q[this.shapeFillId] = { browserValue: h };
2838
+ const C = k();
2837
2839
  return {
2838
- id: h,
2840
+ id: C,
2839
2841
  region: d,
2840
2842
  command: new J(
2841
2843
  {
2842
2844
  stepRegion: d,
2843
2845
  stepName: A.stepName,
2844
2846
  colors: Q,
2845
- id: h,
2847
+ id: C,
2846
2848
  svg: w,
2847
- type: H.Illustration,
2849
+ type: U.Illustration,
2848
2850
  y: d.top,
2849
2851
  x: d.left,
2850
2852
  rotation: d.rotation,
@@ -3061,7 +3063,7 @@ class Ua {
3061
3063
  fillImage: e
3062
3064
  });
3063
3065
  for (const r of t) {
3064
- const c = new JA(r.id, e);
3066
+ const c = new bA(r.id, e);
3065
3067
  n(c);
3066
3068
  }
3067
3069
  }
@@ -3086,15 +3088,15 @@ class Ua {
3086
3088
  for (const d of e) {
3087
3089
  if (!d.fontData)
3088
3090
  throw new v("Failed to resolve font data for text.");
3089
- const [E, C] = IA(
3091
+ const [E, h] = IA(
3090
3092
  d.fontSize,
3091
3093
  d.fontData,
3092
3094
  { left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
3093
3095
  [s],
3094
3096
  { size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
3095
3097
  );
3096
- B.set(d.id, E), l.set(d.id, C);
3097
- const w = t.data.curved ? s : (C || []).join(`
3098
+ B.set(d.id, E), l.set(d.id, h);
3099
+ const w = t.data.curved ? s : (h || []).join(`
3098
3100
  `);
3099
3101
  c.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, r));
3100
3102
  }
@@ -3137,24 +3139,24 @@ class Ua {
3137
3139
  if (o && l) {
3138
3140
  const d = (r = o.variants) == null ? void 0 : r.find((E) => E.id === l);
3139
3141
  if (d) {
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;
3142
+ const E = await this.fontDataFromVariant(d), h = i.map((u) => ({ id: u.id, region: u.stepRegion })), w = (c = a.storage) == null ? void 0 : c.color, Q = (B = a.storage) == null ? void 0 : B.text;
3141
3143
  await e.setSelectionsAndElements(
3142
3144
  A.stepName,
3143
3145
  [d],
3144
- C,
3146
+ h,
3145
3147
  async () => {
3146
3148
  e.updateMetadata(A.stepName, { color: w, text: Q }), e.updateStorage(A.stepName, { text: Q, inputText: Q });
3147
- const u = i.map((p) => new we(p.id, E)), f = new G(u);
3148
- e.getCommandDispatcher()(f), e.setMandatoryFulfilled(A.stepName, !0);
3149
+ const u = i.map((p) => new we(p.id, E)), D = new G(u);
3150
+ e.getCommandDispatcher()(D), e.setMandatoryFulfilled(A.stepName, !0);
3149
3151
  }
3150
3152
  );
3151
- const { command: h } = K.updateInputText(
3153
+ const { command: C } = K.updateInputText(
3152
3154
  Q || "",
3153
3155
  i,
3154
3156
  A,
3155
3157
  e
3156
3158
  );
3157
- h && e.getCommandDispatcher()(h);
3159
+ C && e.getCommandDispatcher()(C);
3158
3160
  }
3159
3161
  }
3160
3162
  }
@@ -3193,10 +3195,10 @@ class Ua {
3193
3195
  var B;
3194
3196
  const r = n.markUpdatePending(), c = await this.fontDataFromVariant(e);
3195
3197
  if (a.length > 0) {
3196
- const l = a.map((C) => new we(C.id, c));
3198
+ const l = a.map((h) => new we(h.id, c));
3197
3199
  if (o) {
3198
- const C = a.map((w) => new JA(w.id, o));
3199
- l.push(...C);
3200
+ const h = a.map((w) => new bA(w.id, o));
3201
+ l.push(...h);
3200
3202
  }
3201
3203
  const d = await this.changeInputTextWithRegion(
3202
3204
  A,
@@ -3236,7 +3238,7 @@ class Ua {
3236
3238
  ), E = l.flatMap((w) => w.commands);
3237
3239
  if (o) {
3238
3240
  const w = l.map(
3239
- (Q) => new JA(Q.regionElement.id, o)
3241
+ (Q) => new bA(Q.regionElement.id, o)
3240
3242
  );
3241
3243
  E.push(...w);
3242
3244
  }
@@ -3261,35 +3263,35 @@ class Ua {
3261
3263
  throw new Error("Step data not supplied");
3262
3264
  const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", r = this.getProcessedInput(o, t, !1), c = async (l) => {
3263
3265
  var w;
3264
- const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), C = k();
3266
+ const E = s.getLayouts().find((Q) => Q.panelId === l.panelId), h = k();
3265
3267
  try {
3266
3268
  if (!E)
3267
3269
  throw new PA("Failed to find layout for region: " + l.panelId);
3268
3270
  const Q = t.colorOption;
3269
- let h;
3271
+ let C;
3270
3272
  if (Q && Q.variants) {
3271
- const b = Q.variants.find((V) => {
3273
+ const L = Q.variants.find((V) => {
3272
3274
  var W;
3273
3275
  return V.id === ((W = Q.defaultVariant) == null ? void 0 : W.id);
3274
3276
  }) || Q.variants[0];
3275
- h = this.createTextFillSpotColor(Q, b), s.updateStorage(A, {
3277
+ C = this.createTextFillSpotColor(Q, L), s.updateStorage(A, {
3276
3278
  colorProfileAssetKey: (w = Q.colorProfile) == null ? void 0 : w.key
3277
3279
  });
3278
3280
  }
3279
- const u = await this.getDefaultColor(t), f = u || "#000000", p = {
3281
+ const u = await this.getDefaultColor(t), D = u || "#000000", p = {
3280
3282
  stepRegion: l,
3281
3283
  stepName: A,
3282
3284
  align: this.textAlign(t),
3283
- fill: n.color ? n.color : f,
3285
+ fill: n.color ? n.color : D,
3284
3286
  fontSize: t.size || OA,
3285
3287
  fontData: a,
3286
- id: C,
3288
+ id: h,
3287
3289
  layer: l.layer,
3288
3290
  layerIndex: l.layerIndex,
3289
3291
  rotation: l.rotation,
3290
3292
  text: r,
3291
3293
  input: o,
3292
- type: H.Textbox,
3294
+ type: U.Textbox,
3293
3295
  vertical: t.vertical,
3294
3296
  x: l.left,
3295
3297
  y: l.top,
@@ -3299,8 +3301,8 @@ class Ua {
3299
3301
  verticalAlign: t.verticalAlign || "middle",
3300
3302
  curved: t.curved,
3301
3303
  paths: t.paths,
3302
- fillSpotColorDefinition: h
3303
- }, D = [], m = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Map();
3304
+ fillSpotColorDefinition: C
3305
+ }, f = [], m = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map();
3304
3306
  if (!p.fontData)
3305
3307
  throw new v("Failed to resolve font data for text.");
3306
3308
  const [Y, F] = IA(
@@ -3317,16 +3319,16 @@ class Ua {
3317
3319
  [r],
3318
3320
  { size: t.size, minSize: t.minSize, maxSize: t.maxSize }
3319
3321
  );
3320
- m.set(p.id, Y), M.set(p.id, F);
3321
- const U = t.curved || t.vertical ? r : (F || []).join(`
3322
+ m.set(p.id, Y), y.set(p.id, F);
3323
+ const R = t.curved || t.vertical ? r : (F || []).join(`
3322
3324
  `);
3323
- D.push(
3324
- this.generateTextChangeCommandsForRegion(Y, t, p.id, U, i)
3325
+ f.push(
3326
+ this.generateTextChangeCommandsForRegion(Y, t, p.id, R, i)
3325
3327
  );
3326
- const S = new J(p, E);
3327
- return S.varying = i, {
3328
- regionElement: { id: C, region: l },
3329
- commands: [S, ...D],
3328
+ const N = new J(p, E);
3329
+ return N.varying = i, {
3330
+ regionElement: { id: h, region: l },
3331
+ commands: [N, ...f],
3330
3332
  newElement: p,
3331
3333
  fontData: a
3332
3334
  };
@@ -3362,30 +3364,30 @@ class Ua {
3362
3364
  * @deprecated
3363
3365
  */
3364
3366
  async changeInputTextWithRegion(A, e, t, a, n, s, i, o, r, c) {
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();
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();
3366
3368
  for (const p of d)
3367
3369
  if (p.region) {
3368
- const [D, m] = IA(
3370
+ const [f, m] = IA(
3369
3371
  e,
3370
3372
  t,
3371
3373
  p.region,
3372
3374
  [l],
3373
3375
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
3374
3376
  );
3375
- E.set(p.id, D), C.set(p.id, m);
3377
+ E.set(p.id, f), h.set(p.id, m);
3376
3378
  }
3377
3379
  const Q = (() => {
3378
3380
  if (A.data && A.data.maxLength && l.length > A.data.maxLength)
3379
3381
  return c && c(!0), { info: "0" };
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, "");
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, "");
3384
3386
  if (m === Y)
3385
3387
  return o(!0), { error: "Blocked profanity." };
3386
3388
  }
3387
3389
  return !A.data.vertical && !A.data.allowNewlines && (l.includes(`
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() });
3390
+ `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(h.values()).every((y) => y) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (A.data.maxLength - l.length).toString() });
3389
3391
  })();
3390
3392
  if (Q.error) {
3391
3393
  r(Q.error);
@@ -3396,24 +3398,24 @@ class Ua {
3396
3398
  s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
3397
3399
  text: this.injectReplaceableText(B, A.data)
3398
3400
  });
3399
- const h = s.getTransaction().bulk && A.data.varyText || !1;
3401
+ const C = s.getTransaction().bulk && A.data.varyText || !1;
3400
3402
  n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
3401
3403
  const u = [];
3402
3404
  for (const p of d) {
3403
- const D = A.data.curved ? l : (C.get(p.id) || []).join(`
3405
+ const f = A.data.curved ? l : (h.get(p.id) || []).join(`
3404
3406
  `);
3405
3407
  u.push(
3406
3408
  this.generateTextChangeCommandsForRegion(
3407
3409
  E.get(p.id) || 1,
3408
3410
  A.data,
3409
3411
  p.id,
3410
- D,
3411
- h
3412
+ f,
3413
+ C
3412
3414
  )
3413
3415
  );
3414
3416
  }
3415
- const f = new G(u);
3416
- return f.varying = h, f;
3417
+ const D = new G(u);
3418
+ return D.varying = C, D;
3417
3419
  }
3418
3420
  }
3419
3421
  const K = new Ua();
@@ -4680,27 +4682,27 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
4680
4682
  </g>
4681
4683
  </svg>
4682
4684
 
4683
- `, R = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
4684
- const e = R("rect");
4685
+ `, P = (g) => xt("http://www.w3.org/2000/svg", g), oe = (g, A) => {
4686
+ const e = P("rect");
4685
4687
  return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
4686
4688
  }, ka = () => {
4687
- const g = R("svg");
4689
+ const g = P("svg");
4688
4690
  return g.setAttribute("xmlns", "http://www.w3.org/2000/svg"), g.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), g.setAttribute("version", "1.1"), g;
4689
- }, ba = (g) => {
4690
- const A = R("use");
4691
+ }, Ja = (g) => {
4692
+ const A = P("use");
4691
4693
  return A.setAttribute("xlink:href", g), A.setAttribute("href", g), A;
4692
4694
  };
4693
4695
  function tt(g) {
4694
4696
  const A = ka(), e = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], t = parseFloat(e[1]), a = parseFloat(e[2]);
4695
4697
  return A.setAttribute("height", `${a}`), A.setAttribute("width", `${t}`), [A, a, t];
4696
4698
  }
4697
- const Ja = (g, A, e) => {
4698
- const t = R("g");
4699
+ const ba = (g, A, e) => {
4700
+ const t = P("g");
4699
4701
  g.appendChild(t), t.setAttribute("id", e), t.innerHTML = A;
4700
4702
  };
4701
4703
  function at(g, A, e) {
4702
4704
  const t = k();
4703
- Ja(A, e, `bgdef-${t}`), g.appendChild(ba(`#bgdef-${t}`));
4705
+ ba(A, e, `bgdef-${t}`), g.appendChild(Ja(`#bgdef-${t}`));
4704
4706
  }
4705
4707
  const nt = (g, A, e, t) => {
4706
4708
  const a = wA("filter");
@@ -4857,31 +4859,31 @@ class La extends ie {
4857
4859
  }
4858
4860
  brandSvg(A, e) {
4859
4861
  const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
4860
- const p = R("g"), D = R("defs");
4861
- p.appendChild(D), D.appendChild(nt(3, 7, 4, "shadow"));
4862
- const m = R("g");
4862
+ const p = P("g"), f = P("defs");
4863
+ p.appendChild(f), f.appendChild(nt(3, 7, 4, "shadow"));
4864
+ const m = P("g");
4863
4865
  p.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = t;
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");
4866
+ const y = P("g");
4867
+ p.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = t;
4868
+ const Y = P("g");
4867
4869
  p.appendChild(Y), Y.setAttribute("fill", "#9d2621"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = t;
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;
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;
4870
4872
  }, [o, r, c] = tt(e);
4871
4873
  if (!o)
4872
4874
  return "";
4873
- const B = R("defs");
4875
+ const B = P("defs");
4874
4876
  o.appendChild(B), at(o, B, e);
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)`);
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)`);
4877
4879
  const Q = oe(l, d);
4878
4880
  Q.setAttribute("opacity", "0"), w.appendChild(Q);
4879
- const h = R("g");
4880
- w.appendChild(h);
4881
+ const C = P("g");
4882
+ w.appendChild(C);
4881
4883
  const u = i();
4882
- h.appendChild(u);
4883
- const f = ne(s);
4884
- return re(h, f, l, d), st(o.outerHTML);
4884
+ C.appendChild(u);
4885
+ const D = ne(s);
4886
+ return re(C, D, l, d), st(o.outerHTML);
4885
4887
  }
4886
4888
  }
4887
4889
  const Oa = "data:application/octet-stream;base64,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ZWxmIE1ha2VyIDIuMy41AABNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAABNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAABAAIBAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCsAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAljb250cm9sTEYJY29udHJvbENSB0FwLmxpZ2EHQWoubGlnYQdFdC5saWdhB0VmLmxpZ2EHRWoubGlnYQdFay5saWdhB0VsLmxpZ2EHRWIubGlnYQdGdC5saWdhB0ZoLmxpZ2EHRmsubGlnYQdGbC5saWdhB0ZiLmxpZ2EHSHQubGlnYQdIZi5saWdhB0l0LmxpZ2EHSXAubGlnYQdJZi5saWdhB0lqLmxpZ2EHSWwubGlnYQdJYi5saWdhB0p0LmxpZ2EHSmYubGlnYQdKaC5saWdhB0prLmxpZ2EHSmwubGlnYQdKYi5saWdhB0t0LmxpZ2EHS3AubGlnYQdLeS5saWdhB0xqLmxpZ2EHTWoubGlnYQdNaC5saWdhB01mLmxpZ2EHTnQubGlnYQdOZi5saWdhB09mLmxpZ2EHT3oubGlnYQdQcS5saWdhB1B3LmxpZ2EHUHIubGlnYQdQdC5saWdhB1B5LmxpZ2EHUHUubGlnYQdQaS5saWdhB1BmLmxpZ2EHUGgubGlnYQdQai5saWdhB1BrLmxpZ2EHUGwubGlnYQdQei5saWdhB1B4LmxpZ2EHUHYubGlnYQdQYi5saWdhB1BuLmxpZ2EHUG0ubGlnYQdScC5saWdhB1JmLmxpZ2EHUmoubGlnYQdUdC5saWdhB1RmLmxpZ2EHVGgubGlnYQdUay5saWdhB1RsLmxpZ2EHVGIubGlnYQdVdC5saWdhB1VzLmxpZ2EHVWYubGlnYQdWdC5saWdhB1ZzLmxpZ2EHVmYubGlnYQdWbC5saWdhB1d0LmxpZ2EHV2YubGlnYQdYcC5saWdhB1l0LmxpZ2EHWWkubGlnYQdZZi5saWdhB1loLmxpZ2EHWWwubGlnYQdZay5saWdhB1liLmxpZ2EHQWYubGlnYQdDeS5saWdhB0VoLmxpZ2EHR3IubGlnYQdPcC5saWdhB2J0LmxpZ2EHYnIubGlnYQdiZi5saWdhB2JqLmxpZ2EHYnoubGlnYQdkdC5saWdhB2VmLmxpZ2EHZnQubGlnYQdmaC5saWdhB2ZiLmxpZ2EHZmsubGlnYQdnai5saWdhB2pqLmxpZ2EHeWoubGlnYQd0dC5saWdhB3RmLmxpZ2EHdGgubGlnYQd0aS5saWdhB3RrLmxpZ2EHdGwubGlnYQh0dGgubGlnYQhlZmYubGlnYQhlZmIubGlnYQdmZi5saWdhB2ZpLmxpZ2EHZmwubGlnYQAAAAAAAAH//wACAAEAAAAMAAAAHAAAAAIAAgADADoAAQA7AKsAAgAEAAAAAgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQQIAB0AQABaAGQAngDIANIA5AEWAUgBYgFsAYYBmAGyAkQCXgKQAqoCzALeAugDIgNMA1YDdAOuA7gDwgP+AAMACAAOABQAjQACACUAPAACACkAOwACAC8AAQAEAI4AAgA4AAcAEAAWABwAIgAoAC4ANACPAAIAJwBCAAIAIQBBAAIAKwBAAAIAKgA/AAIAKQA+AAIAJQA9AAIAMwAFAAwAEgAYAB4AJABHAAIAIQBGAAIAKwBFAAIAKgBEAAIAJwBDAAIAMwABAAQAkAACADEAAgAGAAwASQACACUASAACADMABgAOABQAGgAgACYALABPAAIAIQBOAAIAKwBNAAIAKQBMAAIAJQBLAAIALwBKAAIAMwAGAA4AFAAaACAAJgAsAFUAAgAhAFQAAgArAFMAAgAqAFIAAgAnAFEAAgAlAFAAAgAzAAMACAAOABQAWAACADgAVwACAC8AVgACADMAAQAEAFkAAgApAAMACAAOABQAXAACACUAWwACACcAWgACACkAAgAGAAwAXgACACUAXQACADMAAwAIAA4AFACRAAIALwBgAAIAOQBfAAIAJQASACYALAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAHIAAgAsAHEAAgAtAHAAAgAhAG8AAgA1AG4AAgA3AG0AAgA5AGwAAgArAGsAAgAqAGoAAgApAGkAAgAnAGgAAgAlAGcAAgAoAGYAAgA0AGUAAgA4AGQAAgAzAGMAAgAxAGIAAgA2AGEAAgAwAAMACAAOABQAdQACACkAdAACACUAcwACAC8ABgAOABQAGgAgACYALAB7AAIAIQB6AAIAKwB5AAIAKgB4AAIAJwB3AAIAJQB2AAIAMwADAAgADgAUAH4AAgAlAH0AAgAyAHwAAgAzAAQACgAQABYAHACCAAIAKwCBAAIAJQCAAAIAMgB/AAIAMwACAAYADACEAAIAJQCDAAIAMwABAAQAhQACAC8ABwAQABYAHAAiACgALgA0AIwAAgAhAIsAAgAqAIoAAgArAIkAAgAnAIgAAgAlAIcAAgAoAIYAAgAzAAUADAASABgAHgAkAJYAAgA5AJUAAgApAJQAAgAlAJMAAgAxAJIAAgAzAAEABACXAAIAMwADAAgAEAAYAKgAAwAlACEApwADACUAJQCYAAIAJQAHABAAFgAcACIAKAAuADQAqwACACsAqgACACgAqQACACUAnAACACoAmwACACEAmgACACcAmQACADMAAQAEAJ0AAgApAAEABACeAAIAKQAHABAAGAAeACQAKgAwADYApgADADMAJwClAAIAKwCkAAIAKgCjAAIAKACiAAIAJwChAAIAJQCgAAIAMwABAAQAnwACACkAAQAdAAYACAAKAAsADAANAA4ADwAQABEAEgATABQAFQAXABkAGgAbABwAHQAeACEAIwAkACUAJgApADMAOAAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAAQPGAAQAAABEAJIAnADSAOABIgEoATYBPAFKAVABXgFkAW4BfAGKAawBsgHAAcYB1AHiAewB/gIIAhYCSAJiAnAChgKcAqoCvALKAtAC6gL0AvoDAAMKAxADGgMgAyYDLAMyAzgDOAMyAz4DRANOAz4DVANaA2ADIANmA2wDcgN4A34DiAOOA5gDngOkA7IDvAACAC7//AA3//IADQAl/+oAKP/8ACn/9AAq//AAK//6ACz//gAt//4AMf/qADP//AA0//wANf/+ADb/+AA5//QAAwAt//wALv/8ADb//AAQACT//AAl/+wAJv/6ACf//AAp/+wAKv/0ACv/+gAs//gALf/8AC//7gAx//gAMv/0ADT/9gA3/+oAOP/6ADn/5AABADf/+gADADX//AA3/+gAOf/6AAEALv/2AAMAKP/8ACn/6AAy/+QAAQAu//IAAwAo/+4AL//2ADX/5gABACT/8AACABgAAgAoAAQAAwAo//4ALv/wADL/+AADACf/9gAv/+4Ao//sAAgAKf/qACv/9AAu//wAL//uADH/7gAy//IAN//mAJX/9AABADYADgADACAABAAjAAQAM//4AAEAMv/8AAMAJv/+ACr/+AA3//4AAwAo//gALv/0AJn/7AACACMAAgAl/+wABAAk//wAL//8ADT/9AA4//4AAgAt//IAq//iAAMAJf/sACb/+AA3//wADAAk//wAJv/+ACj/+gAp/+AAK//+ACz/9gAt//wAL//qADH/7AAy//IAN//cAKP/4gAGACQAAgAl/9oAK//yAC//4gAx/+gAMv/8AAMAKQB+ADL/7ACeAIgABQAg//wAIv/4ACb//AAu//YANQAEAAUAKf/0ACr/+AAv//QAM//mAKP/3gADACEAHAAkAAIALv/4AAQAJf/0AC3//gAv//wAmf/8AAMAJP/wACf/+AAp/+4AAQAk//oABgAg//QAIf/wACj/9gAu/+wAL//0ADP/9AACACH//gA3//IAAQApAEIAAQAnACgAAgAzADQAqgAoAAEAMwA0AAIAMwAyAKEARgABADL/6gABADMALAABACkANAABAJoAGAABADMAMgABACkAOAABADMAMAACACUAEgAzAC4AAQApAHgAAQApADYAAQAzAC4AAQAzADgAAQAzAEIAAQAzAEwAAQAz//IAAQAnAEgAAgAl/+4Amv/oAAEAKQBiAAIAKQBaAJ4AUAABACkAVgABAKEARAADADMANgCaABIAogBKAAIAJwAsAKEARgACAC3/8gA3/+oAAQBEAAYABwAIAAkACgAMABEAFAAVABgAHQAgACEAIgAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOQA8AD0APgBIAEkASwBMAE0AUABRAFkAWgBcAF4AXwBhAGgAagB+AIEAhACIAI0AkQCYAJoAnQCeAJ8AoAChAKkAqgAAAAAAAQAAAADUGBYRAAAAANfpcqUAAAAA1+lypQ==";
@@ -4901,34 +4903,34 @@ class za extends ie {
4901
4903
  }
4902
4904
  brandSvg(A, e, t) {
4903
4905
  const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), r = () => {
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");
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");
4907
4909
  m.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
4908
- const F = R("g");
4910
+ const F = P("g");
4909
4911
  m.appendChild(F), F.setAttribute("fill", "white"), F.innerHTML = a;
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;
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;
4915
4917
  }, [c, B, l] = tt(e);
4916
4918
  if (!c)
4917
4919
  return "";
4918
- const d = R("defs");
4920
+ const d = P("defs");
4919
4921
  c.appendChild(d), at(c, d, e);
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);
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);
4928
4930
  const p = r();
4929
- f.appendChild(p);
4930
- const D = ne(o);
4931
- return re(f, D, E, C), c.outerHTML;
4931
+ D.appendChild(p);
4932
+ const f = ne(o);
4933
+ return re(D, f, E, h), c.outerHTML;
4932
4934
  }
4933
4935
  // 1 if true, 0 if false.
4934
4936
  }
@@ -4945,34 +4947,34 @@ class ja extends ie {
4945
4947
  }
4946
4948
  svgElement(A, e) {
4947
4949
  const t = ae(Ka), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), r = o.x2 - o.x1, c = s.toPathData(3), B = () => {
4948
- const u = R("g");
4950
+ const u = P("g");
4949
4951
  u.classList.add("module-text-group");
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");
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");
4957
4959
  m.classList.add("module-layer1"), u.appendChild(m), m.setAttribute("stroke-width", "3"), m.setAttribute("stroke", "rgb(45,41,38)"), m.setAttribute("fill", "rgb(45,41,38)"), m.setAttribute("transform", "translate(0.5,0)"), m.innerHTML = i;
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");
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");
4963
4965
  l.classList.add("module-root");
4964
- const d = R("defs");
4966
+ const d = P("defs");
4965
4967
  l.appendChild(d);
4966
- const E = R("g");
4968
+ const E = P("g");
4967
4969
  E.classList.add("module-bounds"), l.appendChild(E);
4968
- const C = oe(e.height, e.width);
4969
- C.setAttribute("opacity", "0"), E.appendChild(C);
4970
- const w = R("g");
4970
+ const h = oe(e.height, e.width);
4971
+ h.setAttribute("opacity", "0"), E.appendChild(h);
4972
+ const w = P("g");
4971
4973
  w.classList.add("module-text-enclosure"), l.appendChild(w);
4972
4974
  const Q = B();
4973
4975
  w.appendChild(Q);
4974
- const h = ne(c);
4975
- return re(w, h, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
4976
+ const C = ne(c);
4977
+ return re(w, C, e.height, e.width, 0.35, 0.65), st(l.outerHTML);
4976
4978
  }
4977
4979
  }
4978
4980
  async function it(g) {
@@ -5001,24 +5003,25 @@ class Ie extends Xe {
5001
5003
  }
5002
5004
  }
5003
5005
  class Wa {
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;
5006
+ // True when the transaction is being reloaded, rather than newly created.
5007
+ constructor(A, e, t, a, n, s, i, o, r, c, B = !1, l, d = !1) {
5008
+ this.workflowStatePromiseQueue = new qe(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.renderLayouts = () => {
5009
+ var w;
5007
5010
  if (!this.previewService)
5008
5011
  return;
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(
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(
5013
5016
  this.getWorkflow(),
5014
- C,
5017
+ E,
5015
5018
  this.getCurrentVariationRecord() || null,
5016
5019
  this.getProduct().overlayImageUrl
5017
5020
  );
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(() => {
5021
+ }, this.updateTransaction = n, this.commandContext = a, this.reloadedState = c, this.transaction = s, this.readOnly = B, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = o, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = r, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
5019
5022
  this.initialized = !0;
5020
- }), this.initializationPromise.catch((C) => {
5021
- throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
5023
+ }), this.initializationPromise.catch((E) => {
5024
+ throw console.error(E), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
5022
5025
  }), this.initializationPromise.finally(
5023
5026
  () => this.getCommandContext().registerStateCallback(() => {
5024
5027
  this.updateStateWithServer(), this.renderLayouts();
@@ -5453,14 +5456,14 @@ class Wa {
5453
5456
  this.stepSelections = {
5454
5457
  ...this.stepSelections,
5455
5458
  [A]: { selectedVariants: e }
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]);
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]);
5458
5461
  });
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)
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)
5461
5464
  );
5462
- r.forEach((D) => {
5463
- nA(D, this.stepSelections) || (this.stepInitialised[D.stepName] = !1);
5465
+ r.forEach((f) => {
5466
+ nA(f, this.stepSelections) || (this.stepInitialised[f.stepName] = !1);
5464
5467
  });
5465
5468
  const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: E } = await this.stepElementsForIntroducedSilentSteps(B, !1);
5466
5469
  this.stepElements = {
@@ -5468,17 +5471,17 @@ class Wa {
5468
5471
  ...d,
5469
5472
  [A]: t
5470
5473
  }, this.removeElements(l);
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(
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(
5482
5485
  m,
5483
5486
  {
5484
5487
  contextService: this.getLayoutPreviewService()
@@ -5486,7 +5489,7 @@ class Wa {
5486
5489
  !1
5487
5490
  )
5488
5491
  );
5489
- await Promise.all(D);
5492
+ await Promise.all(f);
5490
5493
  }
5491
5494
  await this.onSelectionChange(), a && await a();
5492
5495
  }
@@ -5623,7 +5626,7 @@ class Wa {
5623
5626
  }), this.renderLayouts();
5624
5627
  }
5625
5628
  traversableScenes() {
5626
- return Ca(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
5629
+ return Ca(this.allScenes, this.stepSelections);
5627
5630
  }
5628
5631
  }
5629
5632
  class X {
@@ -5806,7 +5809,7 @@ const ot = class ZA {
5806
5809
  };
5807
5810
  ot.updateState = /* @__PURE__ */ new Map();
5808
5811
  let j = ot;
5809
- const rt = y`
5812
+ const rt = M`
5810
5813
  mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
5811
5814
  transactionAddStakeholder(id: $id, details: $details, type: $type) {
5812
5815
  id
@@ -5820,7 +5823,7 @@ const rt = y`
5820
5823
  }
5821
5824
  }
5822
5825
  }
5823
- `, Xa = y`
5826
+ `, Xa = M`
5824
5827
  mutation UpdateDesignName($transactionId: String!, $designName: String!) {
5825
5828
  transactionUpdate(id: $transactionId, designName: $designName) {
5826
5829
  id
@@ -5835,7 +5838,7 @@ class qa extends j {
5835
5838
  throw new Error("Bulk step does not support variants.");
5836
5839
  }
5837
5840
  async setDesignName(A) {
5838
- await N.getShadowGraphqlClient().mutate({
5841
+ await x.getShadowGraphqlClient().mutate({
5839
5842
  mutation: Xa,
5840
5843
  variables: {
5841
5844
  transactionId: this.manager.getTransaction().id,
@@ -5862,7 +5865,7 @@ class qa extends j {
5862
5865
  window.open(this.transaction.bulkSourceUrl, "_blank");
5863
5866
  }
5864
5867
  async sendGoogleSheetLinkToEmail(A) {
5865
- await N.getShadowGraphqlClient().mutate({
5868
+ await x.getShadowGraphqlClient().mutate({
5866
5869
  mutation: rt,
5867
5870
  variables: { id: this.transaction.id, details: { emailAddress: A }, type: "Owner" }
5868
5871
  }), this.openBulkSourceUrl();
@@ -6176,8 +6179,8 @@ class an extends j {
6176
6179
  }
6177
6180
  ]);
6178
6181
  else {
6179
- const C = B.filter((w) => w.stepID !== this.step.stepName);
6180
- this.manager.setInformationResults(C);
6182
+ const h = B.filter((w) => w.stepID !== this.step.stepName);
6183
+ this.manager.setInformationResults(h);
6181
6184
  }
6182
6185
  return e.helperText = l || c, e.errorText = l, e;
6183
6186
  }
@@ -6279,7 +6282,7 @@ class oA {
6279
6282
  }
6280
6283
  }
6281
6284
  }
6282
- const ct = y`
6285
+ const ct = M`
6283
6286
  fragment CreateDesignTransaction on Transaction {
6284
6287
  id
6285
6288
  bulk
@@ -6296,7 +6299,7 @@ const ct = y`
6296
6299
  workflowViewerLink
6297
6300
  workflowViewerReadOnlyLink
6298
6301
  }
6299
- `, sn = y`
6302
+ `, sn = M`
6300
6303
  ${ct}
6301
6304
  mutation CreateDesign(
6302
6305
  $name: String!
@@ -6328,7 +6331,7 @@ const ct = y`
6328
6331
  }
6329
6332
  }
6330
6333
  }
6331
- `, on = y`
6334
+ `, on = M`
6332
6335
  ${ct}
6333
6336
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
6334
6337
  designCreateMany(inputs: $inputs) {
@@ -6344,7 +6347,7 @@ const ct = y`
6344
6347
  }
6345
6348
  `, rn = async (g) => {
6346
6349
  var e;
6347
- return (e = (await N.getShadowGraphqlClient().mutate({
6350
+ return (e = (await x.getShadowGraphqlClient().mutate({
6348
6351
  mutation: sn,
6349
6352
  errorPolicy: "all",
6350
6353
  fetchPolicy: "no-cache",
@@ -6361,7 +6364,7 @@ const ct = y`
6361
6364
  })).data) == null ? void 0 : e.designCreate;
6362
6365
  }, cn = async (g) => {
6363
6366
  var e;
6364
- return (e = (await N.getShadowGraphqlClient().mutate({
6367
+ return (e = (await x.getShadowGraphqlClient().mutate({
6365
6368
  mutation: on,
6366
6369
  errorPolicy: "all",
6367
6370
  fetchPolicy: "no-cache",
@@ -6448,7 +6451,7 @@ const ct = y`
6448
6451
  }
6449
6452
  return a;
6450
6453
  }, gt = (g, A, e, t, a, n, s, i, o, r) => {
6451
- const B = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6454
+ const B = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6452
6455
  baseCost: e,
6453
6456
  designProductId: g.externalDesignProductId,
6454
6457
  designProductVariantId: g.externalDesignProductVariantId,
@@ -6500,37 +6503,37 @@ const ct = y`
6500
6503
  i
6501
6504
  );
6502
6505
  }, Bt = async (g, A, e, t, a, n, s, i, o, r) => {
6503
- var M;
6506
+ var y;
6504
6507
  await (async () => {
6505
- var S;
6508
+ var N;
6506
6509
  if (r !== void 0)
6507
6510
  return r;
6508
6511
  await g.outstandingRequestsPromise();
6509
- const F = await N.getShadowGraphqlClient().query({
6512
+ const F = await x.getShadowGraphqlClient().query({
6510
6513
  query: Ve,
6511
6514
  variables: { ids: [a.id] },
6512
6515
  fetchPolicy: "no-cache",
6513
6516
  errorPolicy: "all"
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;
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;
6518
6521
  })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(t())), await g.updateStateWithServerImmediate(t), console.log("Server state is undefined @ Workflow completion"));
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) => {
6522
+ const l = g.getPreviewService(), d = (y = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, E = l && A.showModelOnFinishStep && !!d, h = o && $A(o, A, !0), w = o && $A(o, A, !1), Q = async (Y) => {
6520
6523
  const F = {};
6521
- let U = 0;
6524
+ let R = 0;
6522
6525
  if (Object.keys(n).length > 0)
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];
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];
6527
6530
  if (V && (!Y || V.option && (V.option.variants || []).length > 1 && !V.data.hideSelectionInCart && !V.data.hideSelectionsInCart)) {
6528
- const bA = V.stepTitle;
6529
- F[bA] ? F[bA].push({
6531
+ const JA = V.stepTitle;
6532
+ F[JA] ? F[JA].push({
6530
6533
  id: q.id || "",
6531
6534
  name: q.name,
6532
6535
  priceModifier: q.priceModifier
6533
- }) : F[bA] = [
6536
+ }) : F[JA] = [
6534
6537
  {
6535
6538
  id: q.id || "",
6536
6539
  name: q.name,
@@ -6538,18 +6541,18 @@ const ct = y`
6538
6541
  }
6539
6542
  ];
6540
6543
  }
6541
- U += q.priceModifier;
6544
+ R += q.priceModifier;
6542
6545
  }
6543
6546
  }
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) => [
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) => [
6549
6552
  Y,
6550
- f[Y].map((F) => F.id)
6553
+ D[Y].map((F) => F.id)
6551
6554
  ])
6552
- ), D = await i(E);
6555
+ ), f = await i(E);
6553
6556
  return {
6554
6557
  designDetails: (() => {
6555
6558
  const Y = {
@@ -6561,29 +6564,29 @@ const ct = y`
6561
6564
  workflowId: A.id,
6562
6565
  transactionId: a.id,
6563
6566
  useThreeDimPreview: !!E,
6564
- previewImage: D
6567
+ previewImage: f
6565
6568
  };
6566
6569
  if (w) {
6567
6570
  const F = [];
6568
- for (const [U, S] of Object.entries(w))
6569
- F.push({ key: U, value: S });
6571
+ for (const [R, N] of Object.entries(w))
6572
+ F.push({ key: R, value: N });
6570
6573
  Y.metadata = F;
6571
6574
  }
6572
6575
  if (u) {
6573
6576
  const F = [];
6574
- for (const [U, S] of Object.entries(p))
6575
- F.push({ key: U, ids: S });
6577
+ for (const [R, N] of Object.entries(p))
6578
+ F.push({ key: R, ids: N });
6576
6579
  Y.selectedVariants = F;
6577
6580
  }
6578
6581
  return Y;
6579
6582
  })(),
6580
- cartSelectionsWithPrices: h,
6581
- cartMetadata: C
6583
+ cartSelectionsWithPrices: C,
6584
+ cartMetadata: h
6582
6585
  };
6583
6586
  }, Bn = async (g, A, e, t, a, n, s, i, o, r, c, B, l) => {
6584
- var u, f, p;
6587
+ var u, D, p;
6585
6588
  o("workflow.steps.finish.finalize.buildingLayouts");
6586
- const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await Bt(
6589
+ const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: h } = await Bt(
6587
6590
  g,
6588
6591
  A,
6589
6592
  e,
@@ -6599,19 +6602,19 @@ const ct = y`
6599
6602
  if (!(w != null && w.transaction))
6600
6603
  throw new Error("Failed to create design");
6601
6604
  o("workflow.steps.finish.finalize.updatingTransaction");
6602
- const h = w.transaction;
6605
+ const C = w.transaction;
6603
6606
  return n.bulk ? ln(
6604
- h,
6607
+ C,
6605
6608
  a,
6606
6609
  Q,
6607
- (f = w == null ? void 0 : w.processExecution) == null ? void 0 : f.id
6610
+ (D = w == null ? void 0 : w.processExecution) == null ? void 0 : D.id
6608
6611
  ) : await lt(
6609
- h,
6612
+ C,
6610
6613
  a,
6611
6614
  A,
6612
6615
  E,
6613
6616
  w == null ? void 0 : w.sku,
6614
- C,
6617
+ h,
6615
6618
  Q,
6616
6619
  (p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
6617
6620
  );
@@ -6623,7 +6626,7 @@ const ct = y`
6623
6626
  );
6624
6627
  const t = await (async () => {
6625
6628
  var o;
6626
- const i = await N.getShadowGraphqlClient().query({
6629
+ const i = await x.getShadowGraphqlClient().query({
6627
6630
  query: Ve,
6628
6631
  variables: { ids: g.map((r) => r.transaction.id) },
6629
6632
  fetchPolicy: "no-cache",
@@ -6690,7 +6693,7 @@ class wn {
6690
6693
  */
6691
6694
  async getSavedDesigns() {
6692
6695
  if (this.storageMethod === "Local") {
6693
- const A = x.get(this.localPersistenceKey);
6696
+ const A = S.get(this.localPersistenceKey);
6694
6697
  return A ? JSON.parse(A) : [];
6695
6698
  }
6696
6699
  throw new v("Unexpected storage method requested");
@@ -6730,7 +6733,7 @@ class wn {
6730
6733
  }
6731
6734
  async setDesigns(A) {
6732
6735
  if (this.storageMethod === "Local") {
6733
- x.set(this.localPersistenceKey, JSON.stringify(A));
6736
+ S.set(this.localPersistenceKey, JSON.stringify(A));
6734
6737
  return;
6735
6738
  }
6736
6739
  throw new v("Unexpected storage method requested");
@@ -6805,7 +6808,7 @@ class CA {
6805
6808
  return this.workflowManager;
6806
6809
  }
6807
6810
  async updateVariationRecords(A) {
6808
- await N.getShadowGraphqlClient().mutate({
6811
+ await x.getShadowGraphqlClient().mutate({
6809
6812
  mutation: da,
6810
6813
  variables: {
6811
6814
  transactionId: this.workflowManager.getTransaction().id,
@@ -6821,8 +6824,8 @@ class CA {
6821
6824
  });
6822
6825
  }
6823
6826
  async createPreviewImage(A, e) {
6824
- var h, u;
6825
- const t = this.workflowManager.getWorkflow(), a = (h = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : h.lookAtAnimation;
6827
+ var C, u;
6828
+ const t = this.workflowManager.getWorkflow(), a = (C = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : C.lookAtAnimation;
6826
6829
  if (A) {
6827
6830
  if (!a)
6828
6831
  throw new Error("Failed to generate cart preview image!");
@@ -6830,9 +6833,9 @@ class CA {
6830
6833
  }
6831
6834
  let n = 2048;
6832
6835
  e && e <= 2048 && (n = e);
6833
- const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((f) => {
6836
+ const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], c = i.find((D) => {
6834
6837
  var p;
6835
- return ((p = f.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6838
+ return ((p = D.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
6836
6839
  }) || i[0], B = c.layoutState.layout.previewRegion ? {
6837
6840
  x: c.layoutState.layout.previewRegion.left,
6838
6841
  y: c.layoutState.layout.previewRegion.top,
@@ -6851,8 +6854,8 @@ class CA {
6851
6854
  purpose: Se.Print,
6852
6855
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
6853
6856
  }
6854
- }), C = xe(E);
6855
- await (await Ge.from(d, C, {
6857
+ }), h = xe(E);
6858
+ await (await Ge.from(d, h, {
6856
6859
  anonymousCrossOrigin: !0,
6857
6860
  ignoreDimensions: !1,
6858
6861
  createCanvas: yA,
@@ -6928,7 +6931,7 @@ class CA {
6928
6931
  }
6929
6932
  async assignCustomerDetails(A) {
6930
6933
  var a, n, s;
6931
- const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
6934
+ const t = (s = (n = (a = (await x.getShadowGraphqlClient().mutate({
6932
6935
  mutation: rt,
6933
6936
  variables: {
6934
6937
  id: this.getWorkflowManager().getTransaction().id,
@@ -6943,8 +6946,8 @@ class CA {
6943
6946
  );
6944
6947
  if (t != null && t.customer) {
6945
6948
  this.getWorkflowManager().setTransactionCustomer(t.customer);
6946
- const i = x.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6947
- i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), x.setMap("transactionCustomerIds", i);
6949
+ const i = S.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
6950
+ i.set(this.getWorkflowManager().getTransaction().id, t.customer.id), S.setMap("transactionCustomerIds", i);
6948
6951
  }
6949
6952
  }
6950
6953
  attachRenderableSceneListener(A) {
@@ -7043,16 +7046,16 @@ const En = [
7043
7046
  ], hn = async (g, A, e) => {
7044
7047
  const t = A.data, a = e.data.baseUrl, n = t.assetUrl.replace("localhost", "localstack"), s = a.slice(0, 4) === "http" ? "" : "https://", i = new URL(s + a);
7045
7048
  i.searchParams.append("video", he(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
7046
- const o = i.toString(), c = `data:image/svg+xml;base64,${he(await be(o, { type: "svg" }))}`, B = (d) => {
7049
+ const o = i.toString(), c = `data:image/svg+xml;base64,${he(await Je(o, { type: "svg" }))}`, B = (d) => {
7047
7050
  const E = g.find((w) => w.panelId === d.panelId);
7048
7051
  if (!E)
7049
- throw new L(d);
7050
- const C = k();
7052
+ throw new T(d);
7053
+ const h = k();
7051
7054
  return new J(
7052
7055
  {
7053
- id: C,
7056
+ id: h,
7054
7057
  src: c,
7055
- type: H.Image,
7058
+ type: U.Image,
7056
7059
  y: d.top,
7057
7060
  x: d.left,
7058
7061
  width: d.width,
@@ -7073,16 +7076,16 @@ const En = [
7073
7076
  const i = Rt(a, t.option);
7074
7077
  i && (A[t.stepName] = { selectedVariants: [i] });
7075
7078
  const o = async (r) => {
7076
- var C;
7079
+ var h;
7077
7080
  const c = await Pt(
7078
7081
  r || {
7079
7082
  width: 1,
7080
7083
  height: 1
7081
7084
  },
7082
- (C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
7085
+ (h = i == null ? void 0 : i.asset) == null ? void 0 : h.fileLink
7083
7086
  ), B = await Ae(c), l = k(), d = g.find((w) => w.panelId === r.panelId);
7084
7087
  if (!d)
7085
- throw new L(r);
7088
+ throw new T(r);
7086
7089
  const E = ee(s, B, {
7087
7090
  scale: a.scale,
7088
7091
  left: a.x,
@@ -7095,7 +7098,7 @@ const En = [
7095
7098
  path: B.path,
7096
7099
  dataWidth: B.width,
7097
7100
  dataHeight: B.height,
7098
- type: H.Frame,
7101
+ type: U.Frame,
7099
7102
  focalBlur: t.data.focalBlur,
7100
7103
  focalBlurStrength: t.data.focalBlurStrength,
7101
7104
  focalBlurRadius: t.data.focalBlurRadius,
@@ -7121,7 +7124,7 @@ const En = [
7121
7124
  return console.error(i), [];
7122
7125
  }
7123
7126
  }, Qn = async (g, A, e, t) => {
7124
- var p, D;
7127
+ var p, f;
7125
7128
  const a = e.data, n = t.option;
7126
7129
  if (!n)
7127
7130
  return console.error(`No option for step ${t.stepName}.`), [];
@@ -7131,47 +7134,47 @@ const En = [
7131
7134
  if (!s.asset)
7132
7135
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
7133
7136
  A[t.stepName] = { selectedVariants: [s] };
7134
- const i = (D = s.asset) == null ? void 0 : D.fileLink;
7137
+ const i = (f = s.asset) == null ? void 0 : f.fileLink;
7135
7138
  if (!i)
7136
7139
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7137
7140
  const o = await Z(i, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", E = Pe().parseFromString(B, "image/svg+xml").firstElementChild;
7138
7141
  if (!E)
7139
7142
  return console.error("Failed to read SVG."), [];
7140
7143
  He(E);
7141
- const C = {};
7144
+ const h = {};
7142
7145
  Ht(E, (m) => {
7143
7146
  En.includes(m.tagName) && !m.attributes.getNamedItem("fill") && m.setAttribute("fill", "#000000");
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 };
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 };
7148
7151
  }
7149
7152
  const Y = m.attributes.getNamedItem("stroke");
7150
7153
  if (Y && Y.value !== "none") {
7151
- const F = Y.value, S = `spiff-stroke-${F.replace(/\W/g, "")}`;
7152
- m.classList.add(S), C[S] = { browserValue: F };
7154
+ const F = Y.value, N = `spiff-stroke-${F.replace(/\W/g, "")}`;
7155
+ m.classList.add(N), h[N] = { browserValue: F };
7153
7156
  }
7154
7157
  });
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] };
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] };
7161
7164
  break;
7162
7165
  }
7163
7166
  }
7164
7167
  const u = (m) => {
7165
- const M = g.find((F) => F.panelId === m.panelId);
7166
- if (!M)
7167
- throw new L(m);
7168
+ const y = g.find((F) => F.panelId === m.panelId);
7169
+ if (!y)
7170
+ throw new T(m);
7168
7171
  const Y = k();
7169
7172
  return new J(
7170
7173
  {
7171
- colors: C,
7174
+ colors: h,
7172
7175
  id: Y,
7173
7176
  svg: Q,
7174
- type: H.Illustration,
7177
+ type: U.Illustration,
7175
7178
  y: m.top,
7176
7179
  x: m.left,
7177
7180
  rotation: m.rotation,
@@ -7181,11 +7184,11 @@ const En = [
7181
7184
  layerIndex: m.layerIndex,
7182
7185
  immutable: m.immutable
7183
7186
  },
7184
- M
7187
+ y
7185
7188
  );
7186
- }, f = t.data.regions;
7189
+ }, D = t.data.regions;
7187
7190
  try {
7188
- return f.map(u);
7191
+ return D.map(u);
7189
7192
  } catch (m) {
7190
7193
  return console.error(m), [];
7191
7194
  }
@@ -7193,14 +7196,14 @@ const En = [
7193
7196
  const t = await it(e.data.module), a = A.data, n = (i, o) => {
7194
7197
  const r = g.find((B) => B.panelId === o.panelId);
7195
7198
  if (!r)
7196
- throw new L(o);
7199
+ throw new T(o);
7197
7200
  const c = k();
7198
7201
  return new J(
7199
7202
  {
7200
7203
  colors: {},
7201
7204
  id: c,
7202
7205
  svg: i,
7203
- type: H.Illustration,
7206
+ type: U.Illustration,
7204
7207
  y: o.top,
7205
7208
  x: o.left,
7206
7209
  rotation: o.rotation,
@@ -7234,15 +7237,15 @@ const En = [
7234
7237
  if (!i)
7235
7238
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
7236
7239
  const o = (l) => {
7237
- const d = g.find((C) => C.panelId === l.panelId);
7240
+ const d = g.find((h) => h.panelId === l.panelId);
7238
7241
  if (!d)
7239
- throw new L(l);
7242
+ throw new T(l);
7240
7243
  const E = k();
7241
7244
  return new J(
7242
7245
  {
7243
7246
  id: E,
7244
7247
  src: i,
7245
- type: H.Image,
7248
+ type: U.Image,
7246
7249
  y: l.top,
7247
7250
  x: l.left,
7248
7251
  rotation: l.rotation,
@@ -7273,7 +7276,7 @@ const En = [
7273
7276
  const i = (c) => {
7274
7277
  const B = g.find((w) => w.panelId === c.panelId);
7275
7278
  if (!B)
7276
- throw new L(c);
7279
+ throw new T(c);
7277
7280
  const l = `
7278
7281
  <svg
7279
7282
  xmlns="http://www.w3.org/2000/svg"
@@ -7294,13 +7297,13 @@ const En = [
7294
7297
  fill="${s == null ? void 0 : s.color}"
7295
7298
  />
7296
7299
  </svg>
7297
- `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = k();
7300
+ `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, h = k();
7298
7301
  return new J(
7299
7302
  {
7300
7303
  colors: E,
7301
- id: C,
7304
+ id: h,
7302
7305
  svg: l,
7303
- type: H.Illustration,
7306
+ type: U.Illustration,
7304
7307
  y: c.top,
7305
7308
  x: c.left,
7306
7309
  rotation: c.rotation,
@@ -7322,13 +7325,13 @@ const En = [
7322
7325
  const t = [], n = (() => {
7323
7326
  var r, c;
7324
7327
  return A.type === I.ProductOverlay ? e || ((r = A.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = A.data.asset) == null ? void 0 : c.fileLink) || "";
7325
- })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), o = A.data.regions;
7328
+ })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? U.Image : n.endsWith(".svg") ? U.Illustration : U.Illustration)(), o = A.data.regions;
7326
7329
  if (i === "image")
7327
7330
  try {
7328
7331
  o.forEach((r) => {
7329
7332
  const c = g.find((l) => l.panelId === r.panelId);
7330
7333
  if (!c)
7331
- throw new L(r);
7334
+ throw new T(r);
7332
7335
  const B = {
7333
7336
  id: k(),
7334
7337
  src: n,
@@ -7361,7 +7364,7 @@ const En = [
7361
7364
  o.forEach((B) => {
7362
7365
  const l = g.find((E) => E.panelId === B.panelId);
7363
7366
  if (!l)
7364
- throw new L(B);
7367
+ throw new T(B);
7365
7368
  const d = {
7366
7369
  id: k(),
7367
7370
  src: n,
@@ -7391,13 +7394,13 @@ const En = [
7391
7394
  const w = t.option;
7392
7395
  if (!w)
7393
7396
  return;
7394
- const Q = ((u = w.variants) == null ? void 0 : u.find((f) => f.id === n.fontVariantId)) || UA(w);
7397
+ const Q = ((u = w.variants) == null ? void 0 : u.find((D) => D.id === n.fontVariantId)) || UA(w);
7395
7398
  if (!Q || !Q.asset)
7396
7399
  return;
7397
7400
  A[t.stepName] = { selectedVariants: [Q] };
7398
- const h = Q.asset.fileLink;
7399
- if (h)
7400
- return h;
7401
+ const C = Q.asset.fileLink;
7402
+ if (C)
7403
+ return C;
7401
7404
  }, c = await (async () => {
7402
7405
  const w = o();
7403
7406
  if (!w)
@@ -7414,14 +7417,14 @@ const En = [
7414
7417
  const Q = w.colorOption;
7415
7418
  if (!Q)
7416
7419
  return;
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) {
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) {
7421
7424
  const Q = g.find((u) => u.panelId === w.panelId);
7422
7425
  if (!Q)
7423
7426
  continue;
7424
- const h = {
7427
+ const C = {
7425
7428
  stepName: e.name,
7426
7429
  id: k(),
7427
7430
  align: i(t.data),
@@ -7435,7 +7438,7 @@ const En = [
7435
7438
  paths: t.data.paths,
7436
7439
  rotation: w.rotation,
7437
7440
  text: l,
7438
- type: H.Textbox,
7441
+ type: U.Textbox,
7439
7442
  vertical: t.data.vertical,
7440
7443
  verticalAlign: t.data.verticalAlign || "middle",
7441
7444
  width: w.width,
@@ -7443,7 +7446,7 @@ const En = [
7443
7446
  y: w.top
7444
7447
  };
7445
7448
  if (c) {
7446
- const [u, f] = IA(
7449
+ const [u, D] = IA(
7447
7450
  t.data.size || s,
7448
7451
  c,
7449
7452
  w,
@@ -7462,16 +7465,16 @@ const En = [
7462
7465
  a.push(
7463
7466
  new J(
7464
7467
  {
7465
- ...h,
7468
+ ...C,
7466
7469
  fontSize: u,
7467
- text: h.curved ? h.text : (f || []).join(`
7470
+ text: C.curved ? C.text : (D || []).join(`
7468
7471
  `)
7469
7472
  },
7470
7473
  Q
7471
7474
  )
7472
7475
  );
7473
7476
  } else
7474
- a.push(new J(h, Q));
7477
+ a.push(new J(C, Q));
7475
7478
  }
7476
7479
  return a;
7477
7480
  }, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
@@ -7675,19 +7678,19 @@ class Yn extends Xe {
7675
7678
  return;
7676
7679
  const e = A.layoutState.elements || [];
7677
7680
  if (this.variationRecord) {
7678
- const l = this.variationRecord.values.map((C) => ({
7679
- stepName: C.stepName,
7680
- stepAspectType: C.aspect,
7681
- value: C.value
7681
+ const l = this.variationRecord.values.map((h) => ({
7682
+ stepName: h.stepName,
7683
+ stepAspectType: h.aspect,
7684
+ value: h.value
7682
7685
  })), d = await xn(
7683
7686
  Sn(l, this.workflow),
7684
7687
  this.workflow,
7685
- this.layouts.map((C) => C.layoutState.layout),
7688
+ this.layouts.map((h) => h.layoutState.layout),
7686
7689
  this.productOverlayImageUrl
7687
7690
  ), E = d == null ? void 0 : d.layouts[A.layoutState.layout.id];
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);
7691
+ ((E == null ? void 0 : E.elements) || []).forEach((h) => {
7692
+ const w = e.find((Q) => Q.stepName === h.stepName);
7693
+ w && w.type === U.Textbox ? (w.text = h.text, w.fontSize = h.fontSize) : e.push(h);
7691
7694
  }), Gt(e);
7692
7695
  }
7693
7696
  const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
@@ -7735,7 +7738,7 @@ const Sn = (g, A) => {
7735
7738
  a = new G(e.map((o) => new Ut(o))).apply(a);
7736
7739
  const s = await Fn(g, A, e, t);
7737
7740
  return new G(s).apply(a);
7738
- }, Nn = y`
7741
+ }, Nn = M`
7739
7742
  fragment ProductFields on Product {
7740
7743
  id
7741
7744
  basePrice
@@ -7770,7 +7773,7 @@ const Sn = (g, A) => {
7770
7773
  name
7771
7774
  }
7772
7775
  }
7773
- `, Rn = y`
7776
+ `, Rn = M`
7774
7777
  ${Nn}
7775
7778
  fragment ProductCollectionProductFields on ProductCollectionProduct {
7776
7779
  id
@@ -7780,7 +7783,7 @@ const Sn = (g, A) => {
7780
7783
  ...ProductFields
7781
7784
  }
7782
7785
  }
7783
- `, dt = y`
7786
+ `, dt = M`
7784
7787
  ${Rn}
7785
7788
  fragment ProductCollectionFields on ProductCollection {
7786
7789
  id
@@ -7827,7 +7830,7 @@ const Sn = (g, A) => {
7827
7830
  }
7828
7831
  }
7829
7832
  }
7830
- `, Pn = y`
7833
+ `, Pn = M`
7831
7834
  ${dt}
7832
7835
  query GetBundle($id: String!) {
7833
7836
  bundles(ids: [$id]) {
@@ -7849,7 +7852,7 @@ const Sn = (g, A) => {
7849
7852
  }
7850
7853
  }
7851
7854
  }
7852
- `, Hn = y`
7855
+ `, Hn = M`
7853
7856
  query GetBundleStakeholders($id: String!) {
7854
7857
  bundles(ids: [$id]) {
7855
7858
  id
@@ -7869,7 +7872,7 @@ const Sn = (g, A) => {
7869
7872
  }
7870
7873
  }
7871
7874
  }
7872
- `, Un = y`
7875
+ `, Un = M`
7873
7876
  query GetBundlesForCustomer($id: String!) {
7874
7877
  customers(ids: [$id]) {
7875
7878
  bundleStakeholders {
@@ -7890,7 +7893,7 @@ const Sn = (g, A) => {
7890
7893
  }
7891
7894
  }
7892
7895
  }
7893
- `, Gn = y`
7896
+ `, Gn = M`
7894
7897
  ${dt}
7895
7898
  mutation CreateBundle($collectionId: String) {
7896
7899
  bundleCreate(collectionId: $collectionId) {
@@ -7909,25 +7912,25 @@ const Sn = (g, A) => {
7909
7912
  }
7910
7913
  }
7911
7914
  }
7912
- `, vn = y`
7915
+ `, vn = M`
7913
7916
  mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
7914
7917
  bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
7915
7918
  id
7916
7919
  }
7917
7920
  }
7918
- `, kn = y`
7921
+ `, kn = M`
7919
7922
  mutation BundleAddTransaction($id: String!, $transactionId: String!) {
7920
7923
  bundleAddTransaction(id: $id, transactionId: $transactionId) {
7921
7924
  id
7922
7925
  }
7923
7926
  }
7924
- `, bn = y`
7927
+ `, Jn = M`
7925
7928
  mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
7926
7929
  bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
7927
7930
  id
7928
7931
  }
7929
7932
  }
7930
- `, Jn = y`
7933
+ `, bn = M`
7931
7934
  mutation BundleRemoveTransaction(
7932
7935
  $id: String!
7933
7936
  $transactionId: String!
@@ -7942,7 +7945,7 @@ const Sn = (g, A) => {
7942
7945
  id
7943
7946
  }
7944
7947
  }
7945
- `, Tn = y`
7948
+ `, Tn = M`
7946
7949
  mutation BundleRemoveTransactions(
7947
7950
  $id: String!
7948
7951
  $transactionIds: [String!]!
@@ -7957,7 +7960,7 @@ const Sn = (g, A) => {
7957
7960
  id
7958
7961
  }
7959
7962
  }
7960
- `, Ln = y`
7963
+ `, Ln = M`
7961
7964
  mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
7962
7965
  bundleAddStakeholder(id: $id, details: $details, type: $type) {
7963
7966
  id
@@ -7977,7 +7980,7 @@ const Sn = (g, A) => {
7977
7980
  }
7978
7981
  }
7979
7982
  }
7980
- `, On = y`
7983
+ `, On = M`
7981
7984
  mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
7982
7985
  bundleUpdateStakeholders(id: $id, input: $input) {
7983
7986
  id
@@ -7997,7 +8000,7 @@ const Sn = (g, A) => {
7997
8000
  }
7998
8001
  }
7999
8002
  }
8000
- `, zn = y`
8003
+ `, zn = M`
8001
8004
  mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
8002
8005
  bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
8003
8006
  id
@@ -8129,7 +8132,7 @@ class jn extends ge {
8129
8132
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8130
8133
  if (!e)
8131
8134
  return Promise.resolve();
8132
- const t = await T.getLocalOrFromServer(e);
8135
+ const t = await b.getLocalOrFromServer(e);
8133
8136
  return t ? this.applyImageSelection(t, A) : Promise.resolve();
8134
8137
  }
8135
8138
  async applyImageSelection(A, e) {
@@ -8249,7 +8252,7 @@ class Wn extends wt {
8249
8252
  return this.getSharedSteps()[0].getCustomColor();
8250
8253
  }
8251
8254
  }
8252
- const Xn = y`
8255
+ const Xn = M`
8253
8256
  mutation CreateGlobalPropertyState($bundleId: String!) {
8254
8257
  globalPropertyStateCreate(bundleId: $bundleId) {
8255
8258
  id
@@ -8259,7 +8262,7 @@ const Xn = y`
8259
8262
  }
8260
8263
  }
8261
8264
  }
8262
- `, qn = y`
8265
+ `, qn = M`
8263
8266
  mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
8264
8267
  globalPropertyStateUpdate(id: $id, aspects: $aspects) {
8265
8268
  id
@@ -8269,7 +8272,7 @@ const Xn = y`
8269
8272
  }
8270
8273
  }
8271
8274
  }
8272
- `, Zn = y`
8275
+ `, Zn = M`
8273
8276
  query GetGlobalPropertyState($bundleId: String!) {
8274
8277
  globalPropertyState(bundleId: $bundleId) {
8275
8278
  id
@@ -8309,7 +8312,7 @@ class $n {
8309
8312
  var e;
8310
8313
  if (!this.globalPropertyState)
8311
8314
  throw new Error("Global property state not initialized");
8312
- const A = await N.getShadowGraphqlClient().mutate({
8315
+ const A = await x.getShadowGraphqlClient().mutate({
8313
8316
  mutation: qn,
8314
8317
  variables: {
8315
8318
  id: this.globalPropertyState.id,
@@ -8323,7 +8326,7 @@ class $n {
8323
8326
  }
8324
8327
  async getOrCreateGlobalPropertyState() {
8325
8328
  var t;
8326
- const A = await N.getShadowGraphqlClient().query({
8329
+ const A = await x.getShadowGraphqlClient().query({
8327
8330
  query: Zn,
8328
8331
  errorPolicy: "all",
8329
8332
  fetchPolicy: "no-cache",
@@ -8333,7 +8336,7 @@ class $n {
8333
8336
  });
8334
8337
  if (A.data.globalPropertyState && A.data.globalPropertyState.id)
8335
8338
  return A.data.globalPropertyState;
8336
- const e = await N.getShadowGraphqlClient().mutate({
8339
+ const e = await x.getShadowGraphqlClient().mutate({
8337
8340
  mutation: Xn,
8338
8341
  variables: {
8339
8342
  bundleId: this.bundleId
@@ -8489,7 +8492,7 @@ class es {
8489
8492
  getDefaultWorkflow() {
8490
8493
  const A = this.product.workflows || [];
8491
8494
  if (A.length === 0)
8492
- throw new P(
8495
+ throw new H(
8493
8496
  "No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
8494
8497
  );
8495
8498
  const e = this.productResource.workflowId;
@@ -8667,9 +8670,9 @@ class fe {
8667
8670
  throw new Error(
8668
8671
  "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8669
8672
  );
8670
- const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8671
- await N.getShadowGraphqlClient().mutate({
8672
- mutation: bn,
8673
+ const a = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8674
+ await x.getShadowGraphqlClient().mutate({
8675
+ mutation: Jn,
8673
8676
  variables: {
8674
8677
  id: this.id,
8675
8678
  transactionIds: e,
@@ -8693,8 +8696,8 @@ class fe {
8693
8696
  (i) => i.getWorkflowManager().getTransaction().id === t
8694
8697
  ))
8695
8698
  throw new Error("Unable to add transaction to bundle - Already Exists!");
8696
- const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8697
- await N.getShadowGraphqlClient().mutate({
8699
+ const s = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8700
+ await x.getShadowGraphqlClient().mutate({
8698
8701
  mutation: kn,
8699
8702
  variables: {
8700
8703
  id: this.id,
@@ -8726,8 +8729,8 @@ class fe {
8726
8729
  const a = this.workflowExperiences.find(
8727
8730
  (n) => n.getWorkflowManager().getTransaction().id === e.id
8728
8731
  );
8729
- this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
8730
- mutation: Jn,
8732
+ this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await x.getShadowGraphqlClient().mutate({
8733
+ mutation: bn,
8731
8734
  variables: {
8732
8735
  id: this.id,
8733
8736
  transactionId: e.id,
@@ -8753,7 +8756,7 @@ class fe {
8753
8756
  1
8754
8757
  )[0]
8755
8758
  );
8756
- this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
8759
+ this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await x.getShadowGraphqlClient().mutate({
8757
8760
  mutation: Tn,
8758
8761
  variables: {
8759
8762
  id: this.id,
@@ -8811,7 +8814,7 @@ class fe {
8811
8814
  }
8812
8815
  async addStakeholder(A, e) {
8813
8816
  var n;
8814
- const t = await N.getShadowGraphqlClient().mutate({
8817
+ const t = await x.getShadowGraphqlClient().mutate({
8815
8818
  mutation: Ln,
8816
8819
  variables: {
8817
8820
  id: this.id,
@@ -8826,7 +8829,7 @@ class fe {
8826
8829
  }
8827
8830
  async updateStakeholders(A) {
8828
8831
  var a;
8829
- const e = await N.getShadowGraphqlClient().mutate({
8832
+ const e = await x.getShadowGraphqlClient().mutate({
8830
8833
  mutation: On,
8831
8834
  variables: {
8832
8835
  id: this.id,
@@ -8839,7 +8842,7 @@ class fe {
8839
8842
  this.storeStakeholderCustomers(t);
8840
8843
  }
8841
8844
  async getAllStakeholders() {
8842
- const A = await N.getShadowGraphqlClient().query({
8845
+ const A = await x.getShadowGraphqlClient().query({
8843
8846
  query: Hn,
8844
8847
  errorPolicy: "all",
8845
8848
  variables: {
@@ -8927,7 +8930,7 @@ class fe {
8927
8930
  }
8928
8931
  async updateBundle() {
8929
8932
  var e;
8930
- if (!((e = (await N.getShadowGraphqlClient().mutate({
8933
+ if (!((e = (await x.getShadowGraphqlClient().mutate({
8931
8934
  mutation: vn,
8932
8935
  variables: {
8933
8936
  id: this.id,
@@ -8939,7 +8942,7 @@ class fe {
8939
8942
  throw new Error("Bundle not found!");
8940
8943
  }
8941
8944
  async updateTransactionOrder() {
8942
- await N.getShadowGraphqlClient().mutate({
8945
+ await x.getShadowGraphqlClient().mutate({
8943
8946
  mutation: zn,
8944
8947
  variables: {
8945
8948
  id: this.id,
@@ -8970,7 +8973,7 @@ class fe {
8970
8973
  );
8971
8974
  }
8972
8975
  }
8973
- const ns = y`
8976
+ const ns = M`
8974
8977
  mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
8975
8978
  processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
8976
8979
  id
@@ -8987,7 +8990,7 @@ class ss {
8987
8990
  */
8988
8991
  async execute(A, e, t) {
8989
8992
  var B, l, d;
8990
- const n = (l = (B = (await N.getShadowGraphqlClient().mutate({
8993
+ const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
8991
8994
  mutation: ns,
8992
8995
  variables: {
8993
8996
  processFlowId: A,
@@ -8997,14 +9000,14 @@ class ss {
8997
9000
  if (!n)
8998
9001
  throw new Error("Failed to create process execution.");
8999
9002
  function s(E) {
9000
- return new Promise((C) => {
9001
- setTimeout(C, E);
9003
+ return new Promise((h) => {
9004
+ setTimeout(h, E);
9002
9005
  });
9003
9006
  }
9004
9007
  let i = !1, o = 0, r, c;
9005
9008
  for (; !i; ) {
9006
- r = await N.getShadowGraphqlClient().query({
9007
- query: y`
9009
+ r = await x.getShadowGraphqlClient().query({
9010
+ query: M`
9008
9011
  query getProcessFlowExecution($ids: [String]!) {
9009
9012
  processExecutions(ids: $ids) {
9010
9013
  id
@@ -9034,8 +9037,8 @@ class ss {
9034
9037
  break;
9035
9038
  }
9036
9039
  o += 1;
9037
- const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9038
- if (o >= C)
9040
+ const h = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
9041
+ if (o >= h)
9039
9042
  throw new Error("Maximum wait time exceeded for execution result.");
9040
9043
  await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
9041
9044
  }
@@ -9140,7 +9143,7 @@ class Et extends os {
9140
9143
  return A.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
9141
9144
  }
9142
9145
  }
9143
- const cs = y`
9146
+ const cs = M`
9144
9147
  fragment RegionFields on Region {
9145
9148
  width
9146
9149
  top
@@ -9158,7 +9161,7 @@ const cs = y`
9158
9161
  height
9159
9162
  }
9160
9163
  }
9161
- `, gs = y`
9164
+ `, gs = M`
9162
9165
  fragment LookAtAnimationFields on LookAtAnimation {
9163
9166
  latDeg
9164
9167
  lonDeg
@@ -9169,7 +9172,7 @@ const cs = y`
9169
9172
  z
9170
9173
  }
9171
9174
  }
9172
- `, ls = y`
9175
+ `, ls = M`
9173
9176
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
9174
9177
  antiAliasing {
9175
9178
  samples
@@ -9253,14 +9256,14 @@ const cs = y`
9253
9256
  weight
9254
9257
  }
9255
9258
  }
9256
- `, Bs = y`
9259
+ `, Bs = M`
9257
9260
  fragment ModelAnimationFields on ModelAnimation {
9258
9261
  from
9259
9262
  to
9260
9263
  loop
9261
9264
  name
9262
9265
  }
9263
- `, ds = (g) => y`
9266
+ `, ds = (g) => M`
9264
9267
  ${kA(g)}
9265
9268
  ${se}
9266
9269
  ${je}
@@ -9291,6 +9294,8 @@ const cs = y`
9291
9294
  emissiveGlowIntensity
9292
9295
  enableAR
9293
9296
  environmentFile
9297
+ environmentIntensity
9298
+ environmentRotationY
9294
9299
  idleTimeBeforeRotation
9295
9300
  lowerAlphaLimitDeg
9296
9301
  lowerBetaLimitDeg
@@ -9362,7 +9367,6 @@ const cs = y`
9362
9367
  stepTitle
9363
9368
  helpText
9364
9369
  mandatory
9365
- silent
9366
9370
  conditions {
9367
9371
  requiredVariantSelections
9368
9372
  targetStepName
@@ -9656,7 +9660,7 @@ const cs = y`
9656
9660
  }
9657
9661
  }
9658
9662
  }
9659
- `, ws = y`
9663
+ `, ws = M`
9660
9664
  query GetTransactionForPartner($id: String!) {
9661
9665
  transactions(ids: [$id]) {
9662
9666
  id
@@ -9673,7 +9677,7 @@ const cs = y`
9673
9677
  }
9674
9678
  }
9675
9679
  }
9676
- `, Es = y`
9680
+ `, Es = M`
9677
9681
  ${kA(!1)}
9678
9682
  query GetWorkflowForTheme($id: String!) {
9679
9683
  workflow(id: $id) {
@@ -9695,7 +9699,7 @@ const cs = y`
9695
9699
  }
9696
9700
  }
9697
9701
  }
9698
- `, hs = y`
9702
+ `, hs = M`
9699
9703
  query GetCustomer($emailAddress: String!) {
9700
9704
  customer(emailAddress: $emailAddress) {
9701
9705
  id
@@ -9705,7 +9709,7 @@ const cs = y`
9705
9709
  }
9706
9710
  }
9707
9711
  }
9708
- `, Cs = y`
9712
+ `, Cs = M`
9709
9713
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9710
9714
  customerCreate(details: $details) {
9711
9715
  id
@@ -9715,7 +9719,7 @@ const cs = y`
9715
9719
  }
9716
9720
  }
9717
9721
  }
9718
- `, Qs = y`
9722
+ `, Qs = M`
9719
9723
  mutation CustomerAuthenticate($loginToken: String!) {
9720
9724
  customerAuthenticate(loginToken: $loginToken) {
9721
9725
  id
@@ -9742,11 +9746,11 @@ const cs = y`
9742
9746
  }
9743
9747
  }
9744
9748
  }
9745
- `, us = y`
9749
+ `, us = M`
9746
9750
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9747
9751
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9748
9752
  }
9749
- `, ms = y`
9753
+ `, ms = M`
9750
9754
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9751
9755
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9752
9756
  id
@@ -9778,13 +9782,13 @@ const cs = y`
9778
9782
  var A;
9779
9783
  for (const e in g.layouts) {
9780
9784
  const t = g.layouts[e].elements.filter(
9781
- (n) => n.type === H.Illustration
9785
+ (n) => n.type === U.Illustration
9782
9786
  );
9783
9787
  for (let n = 0; n < t.length; ++n) {
9784
9788
  const s = t[n];
9785
9789
  s.src && s.svg && (s.cachedObjectURL = await FA(s.svg));
9786
9790
  }
9787
- const a = g.layouts[e].elements.filter((n) => n.type === H.Textbox);
9791
+ const a = g.layouts[e].elements.filter((n) => n.type === U.Textbox);
9788
9792
  for (let n = 0; n < a.length; ++n) {
9789
9793
  const s = a[n];
9790
9794
  (A = s.fontData) != null && A.assetUrl && await te(s.fontData.assetUrl);
@@ -9792,7 +9796,7 @@ const cs = y`
9792
9796
  }
9793
9797
  }, ps = async (g, A) => {
9794
9798
  var a;
9795
- const e = await N.getShadowGraphqlClient().query({
9799
+ const e = await x.getShadowGraphqlClient().query({
9796
9800
  query: ds(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9797
9801
  errorPolicy: "all",
9798
9802
  fetchPolicy: "no-cache",
@@ -9805,8 +9809,8 @@ const cs = y`
9805
9809
  return t.forEach((n) => {
9806
9810
  n.steps.forEach((s) => {
9807
9811
  var i, o, r;
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
+ delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && b.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && b.cacheAsset(s.option.colorProfile), (r = s.option.variants) == null || r.forEach((c) => {
9813
+ c.asset && b.cacheAsset(c.asset), c.displayImage && b.cacheAsset(c.displayImage), c.thumbnail && b.cacheAsset(c.thumbnail), c.material && b.cacheMaterial(c.material);
9810
9814
  }), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
9811
9815
  });
9812
9816
  }), t;
@@ -9844,12 +9848,12 @@ class fs {
9844
9848
  constructor(A) {
9845
9849
  this.updateTransactionState = async (e) => {
9846
9850
  try {
9847
- return N.getShadowGraphqlClient().mutate({
9851
+ return x.getShadowGraphqlClient().mutate({
9848
9852
  ...e,
9849
9853
  mutation: la
9850
9854
  });
9851
9855
  } catch (t) {
9852
- throw console.error(t), new P("Critical - Unable to synchronize workflow state with server.");
9856
+ throw console.error(t), new H("Critical - Unable to synchronize workflow state with server.");
9853
9857
  }
9854
9858
  }, this.initialized = !1, this.options = A, this.options.applicationKey && Lt(this.options.applicationKey);
9855
9859
  }
@@ -9858,7 +9862,7 @@ class fs {
9858
9862
  * and the Spiff Commerce platform.
9859
9863
  */
9860
9864
  getAssetManager() {
9861
- return T;
9865
+ return b;
9862
9866
  }
9863
9867
  getCurrencyCode() {
9864
9868
  if (this.currencyCode === void 0)
@@ -9878,14 +9882,14 @@ class fs {
9878
9882
  */
9879
9883
  async authenticateBundleFromLocalStorage(A) {
9880
9884
  var a, n;
9881
- const e = x.getMap("bundleOwnerIds");
9885
+ const e = S.getMap("bundleOwnerIds");
9882
9886
  if (e != null && e.has(A)) {
9883
9887
  const s = e.get(A);
9884
9888
  return TA(s), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9885
9889
  }
9886
- const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9890
+ const t = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9887
9891
  if (t.has(A)) {
9888
- const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9892
+ const s = t.get(A), o = (S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9889
9893
  if (o && await this.authenticateCustomerId(o)) {
9890
9894
  const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9891
9895
  (B) => {
@@ -9913,8 +9917,8 @@ class fs {
9913
9917
  * @throws An error if the transaction is not found.
9914
9918
  */
9915
9919
  async authenticateTransactionFromLocalStorage(A) {
9916
- var c, B, l, d, E, C;
9917
- const e = N.getShadowGraphqlClient(), t = await e.query({
9920
+ var c, B, l, d, E, h;
9921
+ const e = x.getShadowGraphqlClient(), t = await e.query({
9918
9922
  query: ws,
9919
9923
  errorPolicy: "all",
9920
9924
  fetchPolicy: "no-cache",
@@ -9929,30 +9933,30 @@ class fs {
9929
9933
  throw new Error(`Unable to read transaction: ${A}`);
9930
9934
  if (a.isOrdered)
9931
9935
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9932
- const s = x.getMap("transactionOwnerIds");
9936
+ const s = S.getMap("transactionOwnerIds");
9933
9937
  if (s != null && s.has(A)) {
9934
9938
  const w = s.get(A);
9935
9939
  return eA(w), Promise.resolve({ success: !0, stakeholderType: NA.Owner });
9936
9940
  }
9937
- const i = x.getMap("transactionCustomerIds");
9941
+ const i = S.getMap("transactionCustomerIds");
9938
9942
  if (i != null && i.has(A)) {
9939
9943
  const w = i.get(A);
9940
9944
  if (w && await this.authenticateCustomerId(w)) {
9941
- const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9945
+ const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9942
9946
  (u) => {
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
+ var D, p;
9948
+ return (p = (D = u.bundle) == null ? void 0 : D.transactions) == null ? void 0 : p.some((f) => f.id === A);
9945
9949
  }
9946
- )) || ((C = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : C.find(
9950
+ )) || ((h = (E = this.customer) == null ? void 0 : E.stakeholders) == null ? void 0 : h.find(
9947
9951
  (u) => {
9948
- var f;
9949
- return ((f = u.transaction) == null ? void 0 : f.id) === A;
9952
+ var D;
9953
+ return ((D = u.transaction) == null ? void 0 : D.id) === A;
9950
9954
  }
9951
9955
  ));
9952
- if (h)
9956
+ if (C)
9953
9957
  return Promise.resolve({
9954
9958
  success: !0,
9955
- stakeholderType: h.type
9959
+ stakeholderType: C.type
9956
9960
  });
9957
9961
  }
9958
9962
  }
@@ -9975,8 +9979,8 @@ class fs {
9975
9979
  this.customer = void 0;
9976
9980
  }
9977
9981
  clearCustomerForTransaction(A) {
9978
- const e = x.getMap("transactionCustomerIds");
9979
- e != null && e.has(A) && (e.delete(A), x.setMap("transactionCustomerIds", e));
9982
+ const e = S.getMap("transactionCustomerIds");
9983
+ e != null && e.has(A) && (e.delete(A), S.setMap("transactionCustomerIds", e));
9980
9984
  }
9981
9985
  getStakeholderTypeForTransaction(A) {
9982
9986
  var t, a;
@@ -9992,7 +9996,7 @@ class fs {
9992
9996
  async getOrCreateCustomer(A) {
9993
9997
  var s;
9994
9998
  this.customer = void 0;
9995
- const e = N.getShadowGraphqlClient(), a = (await e.query({
9999
+ const e = x.getShadowGraphqlClient(), a = (await e.query({
9996
10000
  query: hs,
9997
10001
  errorPolicy: "all",
9998
10002
  fetchPolicy: "no-cache",
@@ -10027,7 +10031,7 @@ class fs {
10027
10031
  }
10028
10032
  async authenticateCustomerId(A) {
10029
10033
  var i;
10030
- const e = N.getShadowGraphqlClient(), t = x.getMap("customerTokens");
10034
+ const e = x.getShadowGraphqlClient(), t = S.getMap("customerTokens");
10031
10035
  if (!(t != null && t.has(A)))
10032
10036
  return !1;
10033
10037
  const a = t.get(A);
@@ -10048,7 +10052,7 @@ class fs {
10048
10052
  * @param emailAddress The email address to generate a verification code for. The user will be sent an email with the verification code.
10049
10053
  */
10050
10054
  async generateVerificationCode(A) {
10051
- await N.getShadowGraphqlClient().mutate({
10055
+ await x.getShadowGraphqlClient().mutate({
10052
10056
  mutation: us,
10053
10057
  variables: {
10054
10058
  emailAddress: A
@@ -10063,7 +10067,7 @@ class fs {
10063
10067
  */
10064
10068
  async verifyCode(A, e) {
10065
10069
  var n, s;
10066
- const a = (n = (await N.getShadowGraphqlClient().mutate({
10070
+ const a = (n = (await x.getShadowGraphqlClient().mutate({
10067
10071
  mutation: ms,
10068
10072
  errorPolicy: "all",
10069
10073
  fetchPolicy: "no-cache",
@@ -10075,8 +10079,8 @@ class fs {
10075
10079
  if (a != null && a.loginToken) {
10076
10080
  if (!((s = a.partner) != null && s.id))
10077
10081
  throw new Error(`Unable to find customer: ${A}`);
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
+ const i = S.getMap("customerTokens") || /* @__PURE__ */ new Map();
10083
+ return i.set(a.id, a.loginToken), S.setMap("customerTokens", i), this.storeCustomer(a), Qe(a.loginToken), this.customer = {
10080
10084
  ...a,
10081
10085
  loginToken: void 0
10082
10086
  }, !0;
@@ -10089,7 +10093,7 @@ class fs {
10089
10093
  */
10090
10094
  async getNewBundle(A) {
10091
10095
  var s;
10092
- const t = (s = (await N.getShadowGraphqlClient().mutate({
10096
+ const t = (s = (await x.getShadowGraphqlClient().mutate({
10093
10097
  mutation: Gn,
10094
10098
  variables: {
10095
10099
  collectionId: A
@@ -10098,10 +10102,10 @@ class fs {
10098
10102
  })).data) == null ? void 0 : s.bundleCreate;
10099
10103
  if (!(t != null && t.id))
10100
10104
  throw new Error("Unable to create bundle");
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);
10105
+ const a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10106
+ a.set(t.id, t.partner.id), S.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
10107
+ const n = S.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
10108
+ return n.set(t.id, t.bundleOwnerId), S.setMap("bundleOwnerIds", n), new fe(this, t);
10105
10109
  }
10106
10110
  /**
10107
10111
  * Retrieves an existing bundle from the API, by id.
@@ -10112,9 +10116,9 @@ class fs {
10112
10116
  */
10113
10117
  async getExistingBundle(A, e, t) {
10114
10118
  var c, B, l, d;
10115
- const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10119
+ const a = S.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
10116
10120
  n && TA(n);
10117
- const s = await N.getShadowGraphqlClient().query({
10121
+ const s = await x.getShadowGraphqlClient().query({
10118
10122
  query: Pn,
10119
10123
  variables: {
10120
10124
  id: A
@@ -10123,8 +10127,8 @@ class fs {
10123
10127
  });
10124
10128
  if (!((c = s.data) != null && c.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
10125
10129
  throw new Error(`Unable to find bundle: ${A}`);
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
+ const i = (d = s.data) == null ? void 0 : d.bundles[0], o = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10131
+ o.set(i.id, i.partner.id), S.setMap("bundlePartnerIds", o);
10128
10132
  const r = new fe(this, i, e, t);
10129
10133
  return await r.getInitializationPromise(), r;
10130
10134
  }
@@ -10136,7 +10140,7 @@ class fs {
10136
10140
  var n;
10137
10141
  if (!this.customer)
10138
10142
  throw new Error("Customer not authenticated.");
10139
- const A = await N.getShadowGraphqlClient().query({
10143
+ const A = await x.getShadowGraphqlClient().query({
10140
10144
  query: Un,
10141
10145
  variables: {
10142
10146
  id: this.customer.id
@@ -10145,11 +10149,11 @@ class fs {
10145
10149
  });
10146
10150
  if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
10147
10151
  throw new Error("Unable to find customer.");
10148
- const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10152
+ const t = A.data.customers[0].bundleStakeholders || [], a = S.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10149
10153
  return t.forEach((s) => {
10150
10154
  var i, o;
10151
10155
  (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
10152
- }), x.setMap("bundlePartnerIds", a), t;
10156
+ }), S.setMap("bundlePartnerIds", a), t;
10153
10157
  }
10154
10158
  /**
10155
10159
  * Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
@@ -10160,40 +10164,40 @@ class fs {
10160
10164
  * @returns A workflow experience configured as requested.
10161
10165
  */
10162
10166
  async getWorkflowExperience(A, e, t, a) {
10163
- var B, l, d, E, C;
10167
+ var B, l, d, E;
10164
10168
  if (!a)
10165
10169
  return await this.getWorkflowExperienceDeprecated(A, e, t);
10166
10170
  const n = async () => {
10167
- var Q, h;
10168
- const w = N.getShadowGraphqlClient();
10171
+ var w, Q;
10172
+ const h = x.getShadowGraphqlClient();
10169
10173
  if (a.type === "transaction") {
10170
- const { transactionId: u, readOnly: f } = a, p = await w.query({
10174
+ const { transactionId: C, readOnly: u } = a, D = await h.query({
10171
10175
  query: EA,
10172
10176
  variables: {
10173
- ids: [u]
10177
+ ids: [C]
10174
10178
  },
10175
10179
  errorPolicy: "all",
10176
10180
  fetchPolicy: "no-cache"
10177
10181
  });
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 };
10182
+ if (!((w = D.data) != null && w.transactions) || D.data.transactions.length === 0)
10183
+ throw new H("Existing transaction not found.");
10184
+ const p = (Q = D.data) == null ? void 0 : Q.transactions[0];
10185
+ if (!p.workflowId)
10186
+ throw new H("Existing transaction has no workflow ID.");
10187
+ const f = await pA(p.workflowId);
10188
+ if (!p.product)
10189
+ throw new H("Failed to load transaction, product not available.");
10190
+ return { transaction: p, workflow: f, readOnly: u };
10187
10191
  }
10188
10192
  if (a.type === "integration" || a.type === "external") {
10189
- const u = async () => {
10190
- const m = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10193
+ const C = async () => {
10194
+ const f = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
10191
10195
  externalIntegrationId: a.externalIntegrationId,
10192
10196
  externalProductId: a.externalProductId
10193
- }, M = await w.mutate({
10197
+ }, m = await h.mutate({
10194
10198
  mutation: ue,
10195
10199
  variables: {
10196
- ...m,
10200
+ ...f,
10197
10201
  bulk: a.bulk,
10198
10202
  workflowId: a.workflowId,
10199
10203
  claim: !0
@@ -10203,38 +10207,37 @@ class fs {
10203
10207
  // TODO: this should be changed to required once the API is updated. Should this also be moved to server.ts?
10204
10208
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10205
10209
  });
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 };
10210
+ if (!m.data || !m.data.transactionCreate)
10211
+ throw new H("Failed to create transaction!");
10212
+ const y = m.data.transactionCreate;
10213
+ if (!y.product)
10214
+ throw new H("Failed to create transaction, product not available.");
10215
+ return y;
10216
+ }, u = pA(a.workflowId, a == null ? void 0 : a.graphql), [D, p] = await Promise.all([C(), u]);
10217
+ return { transaction: D, workflow: p };
10214
10218
  }
10215
- throw new P("No workflow ID provided.");
10219
+ throw new H("No workflow ID provided.");
10216
10220
  }, { transaction: s, workflow: i, readOnly: o } = await n();
10217
10221
  this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
10218
10222
  const r = {
10219
10223
  product: s.product,
10220
10224
  transaction: s,
10221
10225
  layouts: [],
10222
- singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
10223
10226
  stateMutationFunc: o ? async () => {
10224
10227
  throw new v("State mutation is forbidden in read only mode!");
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 } });
10228
+ } : async (h) => {
10229
+ const Q = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
10230
+ return this.updateTransactionState({ ...h, context: { transactionOwnerId: Q } });
10228
10231
  },
10229
10232
  readOnly: o,
10230
10233
  workflow: i
10231
10234
  };
10232
10235
  if (a.type === "transaction" && s.workflowState) {
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
+ const h = JSON.parse(s.workflowState);
10237
+ r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10235
10238
  } else if (!o && a.workflowState) {
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
+ const h = JSON.parse(a.workflowState);
10240
+ r.layouts = Object.values(h.layouts).map((w) => w.layout), await AA(h), await tA(h), r.reloadedState = h;
10238
10241
  } else
10239
10242
  r.layouts = KA(
10240
10243
  r.transaction,
@@ -10242,18 +10245,18 @@ class fs {
10242
10245
  );
10243
10246
  if (r.renderableContextService = new QA(
10244
10247
  r.layouts
10245
- ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
10248
+ ), a.previewService ? (r.previewService = a.previewService, (l = r.product) != null && l.modelUrl && (r.modelContainer = r.previewService.loadModel({
10246
10249
  model: r.product.modelUrl,
10247
10250
  contextService: r.renderableContextService
10248
- }))) : (r.previewService = t && t(i), (E = r.product) != null && E.modelUrl && (r.modelContainer = (C = r.previewService) == null ? void 0 : C.loadModel({
10251
+ }))) : (r.previewService = t && t(i), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
10249
10252
  model: r.product.modelUrl,
10250
10253
  contextService: r.renderableContextService
10251
10254
  }))), a.type !== "transaction") {
10252
- const w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10253
- w.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), x.setMap("transactionOwnerIds", w);
10255
+ const h = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10256
+ h.set(s.id, s.transactionOwnerId), eA(s.transactionOwnerId || ""), S.setMap("transactionOwnerIds", h);
10254
10257
  } else {
10255
- const Q = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10256
- Q && eA(Q), r.isReloadedTransaction = !0;
10258
+ const w = (S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id);
10259
+ w && eA(w), r.isReloadedTransaction = !0;
10257
10260
  }
10258
10261
  this.initialized = !0, this.experienceOptions = r;
10259
10262
  const c = new CA(this, r);
@@ -10268,39 +10271,39 @@ class fs {
10268
10271
  */
10269
10272
  async getWorkflowExperiences(A, e) {
10270
10273
  if (A.length === 0)
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"
10274
+ throw new H("No options provided!");
10275
+ const t = x.getShadowGraphqlClient(), a = A.map((C, u) => ({ option: C, index: u })), n = a.filter((C) => C.option.type === "transaction"), s = a.filter(
10276
+ (C) => C.option.type === "integration" || C.option.type === "external"
10274
10277
  ), i = async () => {
10275
- var p, D;
10278
+ var p, f;
10276
10279
  if (n.length === 0)
10277
10280
  return [];
10278
- const h = n.map((m) => m.option.transactionId), u = await t.query({
10281
+ const C = n.map((m) => m.option.transactionId), u = await t.query({
10279
10282
  query: EA,
10280
10283
  variables: {
10281
- ids: h
10284
+ ids: C
10282
10285
  },
10283
10286
  errorPolicy: "all",
10284
10287
  fetchPolicy: "no-cache"
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}`);
10288
+ }), D = u.data.transactions;
10289
+ if (D.length !== n.length) {
10290
+ const m = ((f = (p = u.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10291
+ throw new H(`Not all transactions were found: ${m}`);
10289
10292
  }
10290
- return f.map((m, M) => {
10293
+ return D.map((m, y) => {
10291
10294
  var Y;
10292
10295
  return {
10293
10296
  transaction: m,
10294
10297
  workflowId: m.workflowId,
10295
10298
  readOnly: ((Y = n.find((F) => F.option.transactionId === m.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10296
- index: n[M].index
10299
+ index: n[y].index
10297
10300
  };
10298
10301
  });
10299
10302
  }, o = async () => {
10300
- var f, p, D;
10303
+ var D, p, f;
10301
10304
  if (s.length === 0)
10302
10305
  return [];
10303
- const h = await t.mutate({
10306
+ const C = await t.mutate({
10304
10307
  mutation: ca,
10305
10308
  variables: {
10306
10309
  inputs: s.map((m) => ({
@@ -10314,39 +10317,37 @@ class fs {
10314
10317
  },
10315
10318
  errorPolicy: "all",
10316
10319
  fetchPolicy: "no-cache"
10317
- }), u = (f = h.data) == null ? void 0 : f.transactionCreateMany;
10320
+ }), u = (D = C.data) == null ? void 0 : D.transactionCreateMany;
10318
10321
  if (!u || u.length === 0) {
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
+ const m = ((f = (p = C.errors) == null ? void 0 : p[0]) == null ? void 0 : f.message) || "Unknown error";
10323
+ throw new H(`Failed to create transactions: ${m}`);
10321
10324
  }
10322
- return u.map((m, M) => ({
10325
+ return u.map((m, y) => ({
10323
10326
  transaction: m,
10324
10327
  workflowId: m.workflowId,
10325
10328
  readOnly: !1,
10326
- index: s[M].index
10329
+ index: s[y].index
10327
10330
  }));
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
+ }, r = (await Promise.all([i(), o()])).flat(), c = [...new Set(r.map((C) => C.workflowId))], B = await ht(c, e), l = new Map(B.map((C) => [C.id, C])), d = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = r.map(async (C) => {
10332
+ const { transaction: u, workflowId: D, readOnly: p, index: f } = C, m = l.get(D), y = A[f];
10331
10333
  !d.get(u.id) && u.transactionOwnerId && d.set(u.id, u.transactionOwnerId);
10332
10334
  const Y = d.get(u.id) || void 0, F = {
10333
10335
  product: u.product,
10334
10336
  transaction: u,
10335
10337
  layouts: [],
10336
- singleVariantsRenderable: (U = M == null ? void 0 : M.workflowConfiguration) == null ? void 0 : U.singleVariantsRenderable,
10337
10338
  stateMutationFunc: p ? async () => {
10338
10339
  throw new v("State mutation is forbidden in read only mode!");
10339
- } : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
10340
+ } : async (R) => this.updateTransactionState({ ...R, context: { transactionOwnerId: Y } }),
10340
10341
  readOnly: p,
10341
10342
  workflow: m,
10342
- isReloadedTransaction: M.type === "transaction"
10343
+ isReloadedTransaction: y.type === "transaction"
10343
10344
  };
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;
10345
+ if (y.type === "transaction" && u.workflowState) {
10346
+ const R = JSON.parse(u.workflowState);
10347
+ F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10348
+ } else if (!p && y.workflowState) {
10349
+ const R = JSON.parse(y.workflowState);
10350
+ F.layouts = Object.values(R.layouts).map((N) => N.layout), await AA(R), await tA(R), F.reloadedState = R;
10350
10351
  } else
10351
10352
  F.layouts = KA(
10352
10353
  F.transaction,
@@ -10354,12 +10355,12 @@ class fs {
10354
10355
  );
10355
10356
  return F.renderableContextService = new QA(
10356
10357
  F.layouts
10357
- ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: D, options: M };
10358
+ ), this.initialized = !0, this.experienceOptions = F, { experienceOptions: F, index: f, options: y };
10358
10359
  });
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;
10360
+ S.setMap("transactionOwnerIds", d);
10361
+ const Q = (await Promise.all(E)).sort((C, u) => C.index - u.index).map(async (C) => {
10362
+ const { experienceOptions: u, options: D } = C, p = new CA(this, u);
10363
+ return await p.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await p.attachCustomerDetails({ email: this.customer.emailAddress }), p;
10363
10364
  });
10364
10365
  return await Promise.all(Q);
10365
10366
  }
@@ -10371,8 +10372,8 @@ class fs {
10371
10372
  async initFromIntegrationProduct(A) {
10372
10373
  var s;
10373
10374
  if (A === "")
10374
- throw new P("No integration product ID provided.");
10375
- const t = await N.getShadowGraphqlClient().mutate({
10375
+ throw new H("No integration product ID provided.");
10376
+ const t = await x.getShadowGraphqlClient().mutate({
10376
10377
  mutation: ue,
10377
10378
  variables: {
10378
10379
  integrationProductId: A,
@@ -10385,13 +10386,13 @@ class fs {
10385
10386
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
10386
10387
  });
10387
10388
  if (!t.data || !t.data.transactionCreate)
10388
- throw new P("Failed to create transaction!");
10389
+ throw new H("Failed to create transaction!");
10389
10390
  const a = t.data.transactionCreate;
10390
10391
  if (!a.product)
10391
- throw new P("Failed to create transaction, product not available.");
10392
+ throw new H("Failed to create transaction, product not available.");
10392
10393
  this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
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
+ const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10395
+ n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), S.setMap("transactionOwnerIds", n), this.experienceOptions = {
10395
10396
  product: a.product,
10396
10397
  transaction: a,
10397
10398
  layouts: [],
@@ -10407,8 +10408,8 @@ class fs {
10407
10408
  async initFromTransaction(A, e = !1) {
10408
10409
  var i, o, r, c;
10409
10410
  if (A === "")
10410
- throw new P("No transaction ID provided.");
10411
- const t = N.getShadowGraphqlClient(), a = async () => {
10411
+ throw new H("No transaction ID provided.");
10412
+ const t = x.getShadowGraphqlClient(), a = async () => {
10412
10413
  var d, E;
10413
10414
  const l = (d = (await t.query({
10414
10415
  query: EA,
@@ -10417,9 +10418,9 @@ class fs {
10417
10418
  errorPolicy: "all"
10418
10419
  })).data) == null ? void 0 : d.transactions[0];
10419
10420
  if (!l)
10420
- throw new P("Failed to read transaction.");
10421
+ throw new H("Failed to read transaction.");
10421
10422
  if (!l.product)
10422
- throw new P("Failed to load transaction, product not available.");
10423
+ throw new H("Failed to load transaction, product not available.");
10423
10424
  this.currencyCode = (E = l.product.partner) == null ? void 0 : E.currencyCode, this.experienceOptions = {
10424
10425
  product: l.product,
10425
10426
  transaction: l,
@@ -10432,7 +10433,7 @@ class fs {
10432
10433
  };
10433
10434
  if (e)
10434
10435
  return await a();
10435
- const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10436
+ const n = S.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10436
10437
  if (s) {
10437
10438
  eA(s);
10438
10439
  const l = (i = (await t.query({
@@ -10443,9 +10444,9 @@ class fs {
10443
10444
  errorPolicy: "all"
10444
10445
  })).data) == null ? void 0 : i.transactions[0];
10445
10446
  if (!l)
10446
- throw new P("Failed to read transaction.");
10447
+ throw new H("Failed to read transaction.");
10447
10448
  if (!l.product)
10448
- throw new P("Failed to load transaction, product not available.");
10449
+ throw new H("Failed to load transaction, product not available.");
10449
10450
  this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
10450
10451
  product: l.product,
10451
10452
  transaction: l,
@@ -10462,10 +10463,10 @@ class fs {
10462
10463
  errorPolicy: "all"
10463
10464
  })).data) == null ? void 0 : r.transactionClaim;
10464
10465
  if (!l)
10465
- throw new P("Failed to read transaction.");
10466
+ throw new H("Failed to read transaction.");
10466
10467
  if (!l.product)
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
+ throw new H("Failed to load transaction, product not available.");
10469
+ this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), S.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10469
10470
  product: l.product,
10470
10471
  transaction: l,
10471
10472
  layouts: [],
@@ -10473,7 +10474,7 @@ class fs {
10473
10474
  readOnly: e
10474
10475
  }, this.initialized = !0;
10475
10476
  } catch {
10476
- throw new P("Attempted to access a transaction that isn't available.");
10477
+ throw new H("Attempted to access a transaction that isn't available.");
10477
10478
  }
10478
10479
  }
10479
10480
  /**
@@ -10482,7 +10483,7 @@ class fs {
10482
10483
  async getWorkflowExperienceDeprecated(A, e, t) {
10483
10484
  var a, n, s, i;
10484
10485
  if (!this.initialized || !this.experienceOptions)
10485
- throw new P("Cannot launch experience: Not initialized.");
10486
+ throw new H("Cannot launch experience: Not initialized.");
10486
10487
  if (this.experienceOptions.transaction.workflowId) {
10487
10488
  const o = await pA(this.experienceOptions.transaction.workflowId);
10488
10489
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
@@ -10497,7 +10498,7 @@ class fs {
10497
10498
  return await r.getWorkflowManager().getInitializationPromise(), r;
10498
10499
  }
10499
10500
  if (A) {
10500
- const o = N.getShadowGraphqlClient().mutate({
10501
+ const o = x.getShadowGraphqlClient().mutate({
10501
10502
  mutation: Ba,
10502
10503
  variables: {
10503
10504
  workflowId: A,
@@ -10519,7 +10520,7 @@ class fs {
10519
10520
  const c = new CA(this, this.experienceOptions);
10520
10521
  return await c.getWorkflowManager().getInitializationPromise(), c;
10521
10522
  }
10522
- throw new P("No workflow ID provided.");
10523
+ throw new H("No workflow ID provided.");
10523
10524
  }
10524
10525
  /**
10525
10526
  * @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
@@ -10535,7 +10536,7 @@ class fs {
10535
10536
  */
10536
10537
  getProduct() {
10537
10538
  if (!this.initialized || !this.experienceOptions)
10538
- throw new P("Cannot get product: Not initialized.");
10539
+ throw new H("Cannot get product: Not initialized.");
10539
10540
  return this.experienceOptions.product;
10540
10541
  }
10541
10542
  /**
@@ -10544,12 +10545,12 @@ class fs {
10544
10545
  */
10545
10546
  getTransaction() {
10546
10547
  if (!this.initialized || !this.experienceOptions)
10547
- throw new P("Cannot get transaction: Not initialized.");
10548
+ throw new H("Cannot get transaction: Not initialized.");
10548
10549
  return this.experienceOptions.transaction;
10549
10550
  }
10550
10551
  storeCustomer(A) {
10551
- const e = x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10552
- e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10552
+ const e = S.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
10553
+ e.set(A.partner.id, A.id), S.setMap("partnerCustomerIds", e);
10553
10554
  }
10554
10555
  }
10555
10556
  class ks {
@@ -10778,7 +10779,7 @@ export {
10778
10779
  nn as InformationStepHandle,
10779
10780
  ei as LayoutElementFactory,
10780
10781
  ti as LayoutElementType,
10781
- L as LayoutNotFoundError,
10782
+ T as LayoutNotFoundError,
10782
10783
  $a as MaterialStepHandle,
10783
10784
  SA as MisconfigurationError,
10784
10785
  ks as MockWorkflowManager,
@@ -10813,7 +10814,7 @@ export {
10813
10814
  gi as UnitOfMeasurement,
10814
10815
  X as Variant,
10815
10816
  CA as WorkflowExperienceImpl,
10816
- T as assetService,
10817
+ b as assetService,
10817
10818
  Bn as createDesign,
10818
10819
  li as dataUrlFromExternalUrl,
10819
10820
  zA as designService,
@@ -10834,7 +10835,7 @@ export {
10834
10835
  mi as getSvgElement,
10835
10836
  pA as getWorkflow,
10836
10837
  ht as getWorkflows,
10837
- N as graphQlManager,
10838
+ x as graphQlManager,
10838
10839
  fA as illustrationStepService,
10839
10840
  pi as loadFont,
10840
10841
  $e as materialStepService,
@@ -10842,7 +10843,7 @@ export {
10842
10843
  Ya as moduleStepService,
10843
10844
  z as optionService,
10844
10845
  Ii as patternImageDataCache,
10845
- x as persistenceService,
10846
+ S as persistenceService,
10846
10847
  At as pictureStepService,
10847
10848
  et as questionStepService,
10848
10849
  Di as registerFetchImplementation,