@spiffcommerce/core 16.0.0-beta.15 → 16.0.0-beta.17

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,6 +1,6 @@
1
1
  import { createHttpLink as ht, InMemoryCache as Ct, ApolloClient as Qt, from as ut, gql as y } from "@apollo/client/core";
2
2
  import { getAttributesFromArrayBuffer as pe, AssetType as re, StepType as D, StepAspectType as O, getFrameData as _A, frameDataCache as mt, UpdateFramePattern as Ie, calculateOffsets as Ae, LayoutElementType as P, generate as v, CreateElementCommand as b, generateSVGWithUnknownColors as De, svgObjectURL as aA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as ce, GetSVGDimensions as pt, patternImageDataCache as ge, fetchAsArrayBuffer as fe, findElement as FA, modifySVGWithElementProperties as It, IllustrationColorCommand as jA, IllustrationCacheCommand as Dt, getFontMetrics as ft, getPatternImageData as VA, FontColorCommand as Ft, FontImageFillCommand as bA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as pA, FontSourceCommand as le, loadFontFromExternalUrl as IA, TextChangeCommand as Mt, FontSizeCommand as yt, createElementNS as Yt, createElement as wA, loadFontFromDataUrl as PA, UpdateWorkflowStateCommand as Be, CommandContext as St, createCanvas as MA, getSvgElement as Fe, LayoutRenderingPurpose as Me, renderPapyrusComponentAsString as ye, loadImage as Ye, getDomParser as Se, fetch as xe, toBase64 as de, getVariant as xt, generateFrameSVG as Nt, getDefaultVariant as UA, domParser as Ne, sanitizeSvgTree as Re, traverse as Rt, xmlSerializer as He, arrayBufferToDataUrl as Ht, loadFontFaceSet as Pt, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
3
- import { AssetType as vn, BringForwardCommand as kn, BringToBackCommand as Jn, BringToFrontCommand as bn, CanvasCommand as Tn, CommandContext as Ln, CreateElementCommand as On, CreateLayoutCommand as zn, DeleteElementCommand as Kn, FontAlignmentCommand as jn, FontColorCommand as Vn, FontSizeCommand as Wn, FontSourceCommand as Xn, GroupCommand as qn, LayoutElementFactory as Zn, LayoutElementType as $n, MoveCommand as _n, ResizeCommand as Ai, RotateCommand as ei, SendBackwardsCommand as ti, StepAspectType as ai, StepType as si, TextChangeCommand as ni, UnitOfMeasurement as ii, dataUrlFromExternalUrl as oi, determineCorrectFontSizeAndLines as ri, findElement as ci, frameDataCache as gi, generate as li, generateSVGWithUnknownColors as Bi, getAttributesFromArrayBuffer as di, getAxisAlignedBoundingBox as wi, getFrameData as Ei, getSvgElement as hi, loadFontFromDataUrl as Ci, loadFontFromExternalUrl as Qi, patternImageDataCache as ui, registerFetchImplementation as mi, registerWindowImplementation as pi, rehydrateSerializedLayout as Ii } from "@spiffcommerce/papyrus";
3
+ import { AssetType as vs, BringForwardCommand as ks, BringToBackCommand as Js, BringToFrontCommand as bs, CanvasCommand as Ts, CommandContext as Ls, CreateElementCommand as Os, CreateLayoutCommand as zs, DeleteElementCommand as Ks, FontAlignmentCommand as js, FontColorCommand as Vs, FontSizeCommand as Ws, FontSourceCommand as Xs, GroupCommand as qs, LayoutElementFactory as Zs, LayoutElementType as $s, MoveCommand as _s, ResizeCommand as Ai, RotateCommand as ei, SendBackwardsCommand as ti, StepAspectType as ai, StepType as ni, TextChangeCommand as si, UnitOfMeasurement as ii, dataUrlFromExternalUrl as oi, determineCorrectFontSizeAndLines as ri, findElement as ci, frameDataCache as gi, generate as li, generateSVGWithUnknownColors as Bi, getAttributesFromArrayBuffer as di, getAxisAlignedBoundingBox as wi, getFrameData as Ei, getSvgElement as hi, loadFontFromDataUrl as Ci, loadFontFromExternalUrl as Qi, patternImageDataCache as ui, registerFetchImplementation as mi, registerWindowImplementation as pi, rehydrateSerializedLayout as Ii } 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";
6
6
  import { Pith as Pe } from "pith";
@@ -189,26 +189,26 @@ class Kt {
189
189
  const A = ht({
190
190
  uri: `${SA.getServerUrl()}/graphql`,
191
191
  fetch
192
- }), e = vt(async (n, i) => {
192
+ }), e = vt(async (s, i) => {
193
193
  const { headers: o } = i, c = o || {}, r = await zt(), B = i.bearer ?? r.bearer, l = i.partnerId ?? r.partnerId, d = i.activeIntegration ?? r.activeIntegration, E = i.transactionOwnerId ?? r.transactionOwnerId, C = i.customerToken ?? r.customerToken, w = i.applicationKey ?? r.applicationKey, h = i.bundleOwnerId ?? r.bundleOwnerId;
194
194
  return B && (c.Authorization = `Bearer ${B}`), l && (c.partnerId = l), d && (c.activeIntegration = d), E && (c.transactionOwnerId = E), C && (c.customerToken = C), w && (c["X-Application-Key"] = w), h && (c.bundleOwnerId = h), {
195
195
  headers: c
196
196
  };
197
- }), t = kt(({ operation: n, graphQLErrors: i, networkError: o }) => {
197
+ }), t = kt(({ operation: s, graphQLErrors: i, networkError: o }) => {
198
198
  const c = i || [];
199
- o && console.log("GraphQL Network error"), c.forEach(() => console.log("GraphQL Error: " + n.operationName));
199
+ o && console.log("GraphQL Network error"), c.forEach(() => console.log("GraphQL Error: " + s.operationName));
200
200
  });
201
201
  function a() {
202
202
  return {
203
- read(n = null) {
204
- return n;
203
+ read(s = null) {
204
+ return s;
205
205
  },
206
- merge(n, i) {
207
- return i || n || null;
206
+ merge(s, i) {
207
+ return i || s || null;
208
208
  }
209
209
  };
210
210
  }
211
- const s = new Ct({
211
+ const n = new Ct({
212
212
  addTypename: !1,
213
213
  typePolicies: {
214
214
  Transaction: {
@@ -246,7 +246,7 @@ class Kt {
246
246
  });
247
247
  return new Qt({
248
248
  link: ut([t, e, A]),
249
- cache: s,
249
+ cache: n,
250
250
  name: "Core"
251
251
  });
252
252
  }
@@ -357,8 +357,8 @@ const N = new Kt(), jt = y`
357
357
  ids: g
358
358
  }
359
359
  })).data.materials, Zt = async (g, A, e, t, a) => {
360
- var n;
361
- return (n = (await N.getShadowGraphqlClient().mutate({
360
+ var s;
361
+ return (s = (await N.getShadowGraphqlClient().mutate({
362
362
  mutation: Xt,
363
363
  errorPolicy: "all",
364
364
  fetchPolicy: "no-cache",
@@ -369,16 +369,16 @@ const N = new Kt(), jt = y`
369
369
  anonymous: t,
370
370
  temporary: a
371
371
  }
372
- })).data) == null ? void 0 : n.assetCreate;
372
+ })).data) == null ? void 0 : s.assetCreate;
373
373
  };
374
374
  class $t {
375
375
  constructor() {
376
376
  this.cache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (A) => {
377
- const e = await A.arrayBuffer(), t = await pe(e), a = (s, n) => {
378
- const i = atob(s.split(",")[1]), o = [];
377
+ const e = await A.arrayBuffer(), t = await pe(e), a = (n, s) => {
378
+ const i = atob(n.split(",")[1]), o = [];
379
379
  for (let c = 0; c < i.length; c++)
380
380
  o.push(i.charCodeAt(c));
381
- return new Blob([new Uint8Array(o)], { type: n });
381
+ return new Blob([new Uint8Array(o)], { type: s });
382
382
  };
383
383
  return {
384
384
  name: A.name.substring(A.name.lastIndexOf("/") + 1),
@@ -429,31 +429,31 @@ class $t {
429
429
  * Upload a user asset to the server. Using callbacks to notify important events.
430
430
  * The asset will be stored via the persistence service for future access, if available.
431
431
  */
432
- async uploadAssetWithProgress(A, e, t, a, s) {
433
- const n = await this.dispatchCreateAssetRequest(A, e, a, s);
434
- if (!n)
432
+ async uploadAssetWithProgress(A, e, t, a, n) {
433
+ const s = await this.dispatchCreateAssetRequest(A, e, a, n);
434
+ if (!s)
435
435
  throw new Error("Failed to create asset.");
436
436
  return await new Promise((i, o) => {
437
437
  const c = new XMLHttpRequest();
438
- c.open("PUT", n.assetResponse.uploadUrl, !0), c.setRequestHeader("Content-Type", n.mimeType), c.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), c.upload.onprogress = (r) => {
438
+ c.open("PUT", s.assetResponse.uploadUrl, !0), c.setRequestHeader("Content-Type", s.mimeType), c.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), c.upload.onprogress = (r) => {
439
439
  r.lengthComputable && t(r.loaded * 100 / r.total);
440
440
  }, c.onload = () => {
441
- const r = n.assetResponse.asset;
442
- LA.add(n.assetResponse.asset), i(r);
441
+ const r = s.assetResponse.asset;
442
+ LA.add(s.assetResponse.asset), i(r);
443
443
  }, c.onerror = o, c.send(A.blob);
444
- }), n.assetResponse.asset;
444
+ }), s.assetResponse.asset;
445
445
  }
446
446
  async uploadFile(A, e) {
447
447
  const t = !(A.type === "image/svg+xml" || A.type === "application/pdf"), a = t ? re.Image : re.Illustration;
448
448
  if (t) {
449
- const s = await this.loadImageAsFileInfo(A);
450
- return await this.uploadAssetWithProgress(s, a, e, !0);
449
+ const n = await this.loadImageAsFileInfo(A);
450
+ return await this.uploadAssetWithProgress(n, a, e, !0);
451
451
  } else {
452
- const s = {
452
+ const n = {
453
453
  name: A.name,
454
454
  blob: new Blob([A], { type: A.type })
455
455
  };
456
- return await T.uploadAssetWithProgress(s, a, e, !0);
456
+ return await T.uploadAssetWithProgress(n, a, e, !0);
457
457
  }
458
458
  }
459
459
  removePersistedAsset(A) {
@@ -468,11 +468,11 @@ class $t {
468
468
  * @param assetType The type of asset we're expecting to upload
469
469
  */
470
470
  async dispatchCreateAssetRequest(A, e, t, a) {
471
- const s = A.blob.type ? A.blob.type : this.guessMIME(A.name), n = await Zt(A.name, e, s, t, a);
472
- if (n)
471
+ const n = A.blob.type ? A.blob.type : this.guessMIME(A.name), s = await Zt(A.name, e, n, t, a);
472
+ if (s)
473
473
  return {
474
- assetResponse: n,
475
- mimeType: s
474
+ assetResponse: s,
475
+ mimeType: n
476
476
  };
477
477
  }
478
478
  guessMIME(A) {
@@ -489,7 +489,7 @@ class $t {
489
489
  }
490
490
  }
491
491
  }
492
- const sA = "persistentAssets";
492
+ const nA = "persistentAssets";
493
493
  class LA {
494
494
  /**
495
495
  * Add a new asset to persistence
@@ -502,27 +502,27 @@ 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);
506
- t && t.forEach((a, s) => {
507
- e.set(s, a);
508
- }), x.setMap(sA, e);
505
+ const t = x.getMap(nA);
506
+ t && t.forEach((a, n) => {
507
+ e.set(n, a);
508
+ }), x.setMap(nA, 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 = x.getMap(nA);
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]), x.setMap(nA, 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 = x.getMap(nA);
526
526
  return A ? Array.from(A.entries()).map((e) => ({ assetKey: e[0], src: e[1] })) : [];
527
527
  }
528
528
  }
@@ -606,20 +606,20 @@ const BA = new _t(), ze = 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((s) => {
610
- s.asset && T.cacheAsset(s.asset), s.displayImage && T.cacheAsset(s.displayImage), s.thumbnail && T.cacheAsset(s.thumbnail), s.material && T.cacheMaterial(s.material);
609
+ (t = e.defaultVariant) != null && t.asset && T.cacheAsset(e.defaultVariant.asset), e.colorProfile && T.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
610
+ n.asset && T.cacheAsset(n.asset), n.displayImage && T.cacheAsset(n.displayImage), n.thumbnail && T.cacheAsset(n.thumbnail), n.material && T.cacheMaterial(n.material);
611
611
  });
612
612
  }), A.data.options;
613
613
  }, ta = async (g, A) => (await A).find((t) => t.id === g), aa = async (g) => {
614
- const A = g.map((n) => BA.get({ id: n })), e = g.filter((n, i) => A[i] === void 0);
614
+ const A = g.map((s) => BA.get({ id: s })), e = g.filter((s, i) => A[i] === void 0);
615
615
  if (e.length === 0)
616
616
  return Promise.all(A);
617
617
  const t = ea(e), a = e.map(
618
- (n) => BA.set({ id: n }, ta(n, t))
619
- ), s = A.filter((n) => n !== void 0);
620
- return await Promise.all(s.concat(a));
618
+ (s) => BA.set({ id: s }, ta(s, t))
619
+ ), n = A.filter((s) => s !== void 0);
620
+ return await Promise.all(n.concat(a));
621
621
  };
622
- class sa {
622
+ class na {
623
623
  constructor() {
624
624
  this.getDisplayImageSource = (A) => {
625
625
  var e;
@@ -646,16 +646,16 @@ class sa {
646
646
  })();
647
647
  }
648
648
  async getAssetTileImageForVariant(A) {
649
- var a, s;
649
+ var a, n;
650
650
  const e = A.thumbnail;
651
651
  if (e) {
652
- const n = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
653
- return (n == null ? void 0 : n.link) || i;
652
+ const s = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
653
+ return (s == null ? void 0 : s.link) || i;
654
654
  }
655
655
  const t = A.asset;
656
656
  if (t) {
657
- const n = (s = t.versions) == null ? void 0 : s.find((o) => o.name === "thumbnail"), i = t.fileLink;
658
- return (n == null ? void 0 : n.link) || i;
657
+ const s = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), i = t.fileLink;
658
+ return (s == null ? void 0 : s.link) || i;
659
659
  }
660
660
  return A.material ? A.material.id : "";
661
661
  }
@@ -672,8 +672,8 @@ class sa {
672
672
  }
673
673
  }
674
674
  }
675
- const z = new sa();
676
- var na = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(na || {}), 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 || {}), xA = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(xA || {});
675
+ const z = new na();
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 || {}), xA = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(xA || {});
677
677
  const he = y`
678
678
  mutation CreateTransaction(
679
679
  $integrationProductId: String
@@ -1118,12 +1118,12 @@ const Ke = y`
1118
1118
  });
1119
1119
  break;
1120
1120
  case D.Illustration:
1121
- const s = e.data;
1122
- s.varySelection && e.option && A.push({
1121
+ const n = e.data;
1122
+ n.varySelection && e.option && A.push({
1123
1123
  stepName: e.stepName,
1124
1124
  stepType: e.type,
1125
1125
  aspectType: O.Selection
1126
- }), s.varyColors && s.colorPickerEnabled && A.push({
1126
+ }), n.varyColors && n.colorPickerEnabled && A.push({
1127
1127
  stepName: e.stepName,
1128
1128
  stepType: e.type,
1129
1129
  aspectType: O.Colors
@@ -1182,7 +1182,7 @@ const Ke = y`
1182
1182
  break;
1183
1183
  }
1184
1184
  return A;
1185
- }, nA = [D.SilentIllustration, D.ProductOverlay], wa = async (g, A, e) => {
1185
+ }, sA = [D.SilentIllustration, D.ProductOverlay], wa = async (g, A, e) => {
1186
1186
  var a;
1187
1187
  const t = [];
1188
1188
  g.introduction && t.push({
@@ -1200,79 +1200,79 @@ const Ke = y`
1200
1200
  ],
1201
1201
  silentSteps: []
1202
1202
  });
1203
- for (const s of g.steps) {
1203
+ for (const n of g.steps) {
1204
1204
  if (A.bulkScene) {
1205
1205
  let i = !1;
1206
- switch (s.type) {
1206
+ switch (n.type) {
1207
1207
  case D.DigitalContent:
1208
- s.data.varyUpload && (i = !0);
1208
+ n.data.varyUpload && (i = !0);
1209
1209
  break;
1210
1210
  case D.Frame:
1211
1211
  {
1212
- const o = s.data;
1213
- o.varyUpload && (o.varySelection || !s.option) && (i = !0);
1212
+ const o = n.data;
1213
+ o.varyUpload && (o.varySelection || !n.option) && (i = !0);
1214
1214
  }
1215
1215
  break;
1216
1216
  case D.Illustration:
1217
1217
  {
1218
- const o = s.data;
1219
- (o.varySelection || !s.option || (s.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
1218
+ const o = n.data;
1219
+ (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
1220
1220
  }
1221
1221
  break;
1222
1222
  case D.Material:
1223
- s.data.varySelection && (i = !0);
1223
+ n.data.varySelection && (i = !0);
1224
1224
  break;
1225
1225
  case D.Model:
1226
- s.data.varySelection && (i = !0);
1226
+ n.data.varySelection && (i = !0);
1227
1227
  break;
1228
1228
  case D.Picture:
1229
- s.data.varySelection && (i = !0);
1229
+ n.data.varySelection && (i = !0);
1230
1230
  break;
1231
1231
  case D.Question:
1232
- s.data.varySelections && (i = !0);
1232
+ n.data.varySelections && (i = !0);
1233
1233
  break;
1234
1234
  case D.Shape:
1235
- s.data.varySelection && (i = !0);
1235
+ n.data.varySelection && (i = !0);
1236
1236
  break;
1237
1237
  case D.Text:
1238
1238
  {
1239
- const o = s.data;
1240
- (o.varySelection || !s.option || (s.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (i = !0);
1239
+ const o = n.data;
1240
+ (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (i = !0);
1241
1241
  }
1242
1242
  break;
1243
1243
  }
1244
1244
  if (i)
1245
1245
  continue;
1246
1246
  }
1247
- const n = Ea(s.stepName, g.stepGroups);
1248
- if (!n)
1247
+ const s = Ea(n.stepName, g.stepGroups);
1248
+ if (!s)
1249
1249
  t.push({
1250
- name: s.stepName,
1251
- title: s.stepTitle,
1252
- renderableSteps: nA.includes(s.type) ? [] : [s],
1253
- silentSteps: nA.includes(s.type) ? [s] : []
1250
+ name: n.stepName,
1251
+ title: n.stepTitle,
1252
+ renderableSteps: sA.includes(n.type) ? [] : [n],
1253
+ silentSteps: sA.includes(n.type) ? [n] : []
1254
1254
  });
1255
1255
  else {
1256
- const i = t.find((o) => o.name === n.name);
1257
- i ? nA.includes(s.type) ? i.silentSteps.push(s) : i.renderableSteps.push(s) : t.push({
1258
- name: n.name,
1259
- title: n.name,
1260
- renderableSteps: nA.includes(s.type) ? [] : [s],
1261
- silentSteps: nA.includes(s.type) ? [s] : []
1256
+ const i = t.find((o) => o.name === s.name);
1257
+ i ? sA.includes(n.type) ? i.silentSteps.push(n) : i.renderableSteps.push(n) : t.push({
1258
+ name: s.name,
1259
+ title: s.name,
1260
+ renderableSteps: sA.includes(n.type) ? [] : [n],
1261
+ silentSteps: sA.includes(n.type) ? [n] : []
1262
1262
  });
1263
1263
  }
1264
1264
  }
1265
1265
  if (A.bulkScene) {
1266
- const s = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
1266
+ const n = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
1267
1267
  t.push({
1268
1268
  name: "Bulk",
1269
- title: (s == null ? void 0 : s.sceneTitle) ?? A.bulkSceneTitle,
1269
+ title: (n == null ? void 0 : n.sceneTitle) ?? A.bulkSceneTitle,
1270
1270
  renderableSteps: [
1271
1271
  {
1272
1272
  type: D.Bulk,
1273
1273
  stepName: "Bulk",
1274
- stepTitle: (s == null ? void 0 : s.stepTitle) ?? A.bulkSceneTitle,
1275
- helpText: s == null ? void 0 : s.helpText,
1274
+ stepTitle: (n == null ? void 0 : n.stepTitle) ?? A.bulkSceneTitle,
1275
+ helpText: n == null ? void 0 : n.helpText,
1276
1276
  data: {
1277
1277
  aspects: je(g)
1278
1278
  },
@@ -1305,7 +1305,7 @@ const Ke = y`
1305
1305
  if (t && t.selectedVariants) {
1306
1306
  const a = t.selectedVariants;
1307
1307
  return e.requiredVariantSelections.some(
1308
- (s) => a.find((n) => n.id === s) !== void 0
1308
+ (n) => a.find((s) => s.id === n) !== void 0
1309
1309
  );
1310
1310
  }
1311
1311
  return !1;
@@ -1318,20 +1318,20 @@ const Ke = y`
1318
1318
  };
1319
1319
  return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
1320
1320
  }, rA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A) => {
1321
- var s;
1321
+ var n;
1322
1322
  const e = rA(g, A), t = [];
1323
- for (const n of e)
1324
- for (const i of n.renderableSteps)
1323
+ for (const s of e)
1324
+ for (const i of s.renderableSteps)
1325
1325
  if (i.type === D.Model || i.type === D.Material || i.type === D.Picture || i.type === D.Shape) {
1326
- const o = (((s = i.option) == null ? void 0 : s.variants) || []).length;
1326
+ const o = (((n = i.option) == null ? void 0 : n.variants) || []).length;
1327
1327
  o && o > 1 && t.push(i.stepName);
1328
1328
  } else
1329
1329
  t.push(i.stepName);
1330
- const a = e.filter((n) => n.renderableSteps.filter(
1330
+ const a = e.filter((s) => s.renderableSteps.filter(
1331
1331
  (o) => t.includes(o.stepName)
1332
1332
  ).length > 0);
1333
- for (const n of a)
1334
- n.renderableSteps = n.renderableSteps.filter(
1333
+ for (const s of a)
1334
+ s.renderableSteps = s.renderableSteps.filter(
1335
1335
  (i) => t.includes(i.stepName)
1336
1336
  );
1337
1337
  return a;
@@ -1401,15 +1401,15 @@ class We {
1401
1401
  }
1402
1402
  }
1403
1403
  function Qa(g, A, e, t) {
1404
- const a = e.width * g.zoom, s = e.height * g.zoom;
1404
+ const a = e.width * g.zoom, n = e.height * g.zoom;
1405
1405
  if (t) {
1406
1406
  const i = g, o = Math.max(A.width / e.width, A.height / e.height);
1407
1407
  i.zoom = Math.max(o, g.zoom);
1408
1408
  const c = e.width * i.zoom, r = e.height * i.zoom;
1409
1409
  return i.x = hA(g.x, A.width - c, 0), i.y = hA(g.y, A.height - r, 0), i;
1410
1410
  }
1411
- const n = g;
1412
- return n.x = hA(n.x, -a, A.width), n.y = hA(n.y, -s, A.height), n;
1411
+ const s = g;
1412
+ return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
1413
1413
  }
1414
1414
  function hA(g, A, e) {
1415
1415
  return Math.min(Math.max(g, A), e);
@@ -1429,13 +1429,13 @@ class ua {
1429
1429
  if (t) {
1430
1430
  const a = t;
1431
1431
  if (a.currentFrameSources) {
1432
- let s = !1;
1433
- for (let n = 0; n < a.currentFrameSources.length; n++) {
1434
- const i = a.currentFrameSources[n], o = await _A(i);
1435
- Ge(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[n] = o, s = !0);
1432
+ let n = !1;
1433
+ for (let s = 0; s < a.currentFrameSources.length; s++) {
1434
+ const i = a.currentFrameSources[s], o = await _A(i);
1435
+ Ge(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = o, n = !0);
1436
1436
  }
1437
- s && (this.onFrameDataChangeListeners.forEach(
1438
- (n) => n(this.frameData)
1437
+ n && (this.onFrameDataChangeListeners.forEach(
1438
+ (s) => s(this.frameData)
1439
1439
  ), this.frameData && this.imageData && (this.recalculateOffsets(this.imageData), this.updateOffsets(this.offsets), this.recalculateZoomLimits(this.imageData, this.frameData)));
1440
1440
  }
1441
1441
  }
@@ -1500,7 +1500,7 @@ class ua {
1500
1500
  setZoom(A, e, t, a) {
1501
1501
  if (this.imageData && this.offsets && this.frameData) {
1502
1502
  (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
1503
- const s = this.frameData.map((n, i) => {
1503
+ const n = this.frameData.map((s, i) => {
1504
1504
  const o = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, c = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, r = e[i] - o * A[i], B = t[i] - c * A[i];
1505
1505
  return {
1506
1506
  x: r,
@@ -1508,7 +1508,7 @@ class ua {
1508
1508
  zoom: this.imageData.width * A[i] / this.imageData.width
1509
1509
  };
1510
1510
  });
1511
- this.updateOffsets(s, a), this.onZoomChangeListeners.forEach((n) => n(A));
1511
+ this.updateOffsets(n, a), this.onZoomChangeListeners.forEach((s) => s(A));
1512
1512
  }
1513
1513
  }
1514
1514
  /**
@@ -1532,12 +1532,12 @@ class ua {
1532
1532
  throw new J(
1533
1533
  "Frame data and offsets are not the same length. This is a bug. Please report it."
1534
1534
  );
1535
- if (!this.offsets.some((n, i) => !(A[i].x === n.x && A[i].y === n.y && A[i].zoom === n.zoom)) && !t) {
1535
+ if (!this.offsets.some((s, i) => !(A[i].x === s.x && A[i].y === s.y && A[i].zoom === s.zoom)) && !t) {
1536
1536
  e && e();
1537
1537
  return;
1538
1538
  }
1539
- (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((n, i) => {
1540
- this.offsets[i] = Qa(A[i], n, this.imageData, this.forceImageCover);
1539
+ (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((s, i) => {
1540
+ this.offsets[i] = Qa(A[i], s, this.imageData, this.forceImageCover);
1541
1541
  }), this._debouncedUpdateFrameOffsets(this.offsets, a, this.frameData, this.targetElements, e);
1542
1542
  }
1543
1543
  // Allows users of the frame service to listen to frame data changes.
@@ -1559,17 +1559,17 @@ class ua {
1559
1559
  * @param targetElements A list of elements that need updating, by ID
1560
1560
  * @param onComplete A callback when the operation is completed.
1561
1561
  */
1562
- updateFrameOffsets(A, e, t, a, s) {
1562
+ updateFrameOffsets(A, e, t, a, n) {
1563
1563
  if (!t || t.length === 0 || t.some((i) => !i))
1564
1564
  throw new J("Frame data not set. This is a bug");
1565
1565
  if (!this.workflowManager)
1566
1566
  throw new J("No workflow manager set, cannot update offsets.");
1567
- const n = this.workflowManager.getCommandDispatcher();
1567
+ const s = this.workflowManager.getCommandDispatcher();
1568
1568
  a.forEach((i, o) => {
1569
- n(new Ie(i, e, A[o]));
1569
+ s(new Ie(i, e, A[o]));
1570
1570
  }), this.stepName && this.workflowManager.updateStorage(this.stepName, {
1571
1571
  frameOffsetsList: A
1572
- }), s && s();
1572
+ }), n && n();
1573
1573
  }
1574
1574
  /**
1575
1575
  * Determines limitations of zoom based on relative size of image and frame.
@@ -1578,8 +1578,8 @@ class ua {
1578
1578
  */
1579
1579
  recalculateZoomLimits(A, e) {
1580
1580
  (this.minZoomScale.length !== e.length || this.maxZoomScale.length !== e.length) && (this.minZoomScale = new Array(e.length), this.maxZoomScale = new Array(e.length)), e.forEach((t, a) => {
1581
- const s = Math.max(t.width / A.width, t.height / A.height);
1582
- this.forceImageCover ? (this.minZoomScale[a] = s, this.maxZoomScale[a] = s * 2.5) : (this.minZoomScale[a] = s / 10, this.maxZoomScale[a] = s * 2.5);
1581
+ const n = Math.max(t.width / A.width, t.height / A.height);
1582
+ this.forceImageCover ? (this.minZoomScale[a] = n, this.maxZoomScale[a] = n * 2.5) : (this.minZoomScale[a] = n / 10, this.maxZoomScale[a] = n * 2.5);
1583
1583
  });
1584
1584
  }
1585
1585
  recalculateOffsets(A) {
@@ -1592,13 +1592,13 @@ class Ce {
1592
1592
  constructor(A, e, t) {
1593
1593
  this.processRegion = async (a) => {
1594
1594
  var o, c, r, B;
1595
- const s = this.layouts.find((l) => l.panelId === a.panelId);
1596
- if (!s)
1595
+ const n = this.layouts.find((l) => l.panelId === a.panelId);
1596
+ if (!n)
1597
1597
  throw new L(a);
1598
- let n = "";
1598
+ let s = "";
1599
1599
  if (this.configuration.type === D.ProductOverlay) {
1600
1600
  let l = "";
1601
- if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), n = l, !l)
1601
+ if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
1602
1602
  throw new YA(this.configuration, "Couldn't find an asset for product overlay step");
1603
1603
  }
1604
1604
  const i = this.evaluateAssetType();
@@ -1628,10 +1628,10 @@ class Ce {
1628
1628
  id: d.id,
1629
1629
  region: a
1630
1630
  },
1631
- command: new b(d, s)
1631
+ command: new b(d, n)
1632
1632
  };
1633
1633
  } else {
1634
- const l = this.configuration.type === D.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : n, E = await De(await (async () => new Promise((w, h) => {
1634
+ const l = this.configuration.type === D.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : s, E = await De(await (async () => new Promise((w, h) => {
1635
1635
  if (!l) {
1636
1636
  h("Undefined vector silent step source");
1637
1637
  return;
@@ -1663,7 +1663,7 @@ class Ce {
1663
1663
  id: C.id,
1664
1664
  region: a
1665
1665
  },
1666
- command: new b(C, s)
1666
+ command: new b(C, n)
1667
1667
  };
1668
1668
  }
1669
1669
  }, this.configuration = A, this.layouts = e, this.product = t || void 0;
@@ -1722,8 +1722,8 @@ class Xe {
1722
1722
  * @param interval The number of milliseconds to wait between each poll.
1723
1723
  * @param maxAttempts The maximum amount of times to check the condition.
1724
1724
  */
1725
- constructor(A, e, t, a = 3e3, s = 10) {
1726
- this.onSuccess = e, this.onFailure = t, this.predicate = A, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts = s, this.poll();
1725
+ constructor(A, e, t, a = 3e3, n = 10) {
1726
+ this.onSuccess = e, this.onFailure = t, this.predicate = A, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts = n, this.poll();
1727
1727
  }
1728
1728
  }
1729
1729
  class pa {
@@ -1744,7 +1744,7 @@ class pa {
1744
1744
  });
1745
1745
  });
1746
1746
  }
1747
- async regenerateQRCode(A, e, t, a, s, n, i, o, c) {
1747
+ async regenerateQRCode(A, e, t, a, n, s, i, o, c) {
1748
1748
  if (!e && t !== "" && a === "") {
1749
1749
  const r = async () => {
1750
1750
  var u, p;
@@ -1770,17 +1770,17 @@ class pa {
1770
1770
  );
1771
1771
  });
1772
1772
  A.forEach((Q) => o(new $(Q.id)));
1773
- const l = n.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + n.data.baseUrl);
1773
+ const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
1774
1774
  d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
1775
1775
  const E = d.toString();
1776
1776
  if (E.length >= 2e3)
1777
1777
  throw new vA("Cannot create QR code, URL too long.");
1778
1778
  const C = await ma(E);
1779
- if (i(C), !n.data || !n.data.regions)
1780
- throw new YA(n, "Missing regions.");
1781
- const w = await this.regionElements(n), h = await this.command(C, w, s, n.stepName);
1782
- h && (h.command && s.getCommandDispatcher()(h.command), h.followup && await h.followup()), await s.setSelectionsAndElements(n.stepName, [], w, async () => {
1783
- s.updateStorage(n.stepName, {
1779
+ if (i(C), !s.data || !s.data.regions)
1780
+ throw new YA(s, "Missing regions.");
1781
+ const w = await this.regionElements(s), h = await this.command(C, w, n, s.stepName);
1782
+ h && (h.command && n.getCommandDispatcher()(h.command), h.followup && await h.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
1783
+ n.updateStorage(s.stepName, {
1784
1784
  videoShortUrl: C,
1785
1785
  videoUrl: a
1786
1786
  }), c(!1);
@@ -1793,8 +1793,8 @@ class pa {
1793
1793
  return A.data.regions.map(e);
1794
1794
  }
1795
1795
  async command(A, e, t, a) {
1796
- const s = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await ve(A, { type: "svg" }))}`, o = e.map((c) => {
1797
- const r = c.region, B = s.find((l) => l.panelId === (r == null ? void 0 : r.panelId));
1796
+ const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await ve(A, { type: "svg" }))}`, o = e.map((c) => {
1797
+ const r = c.region, B = n.find((l) => l.panelId === (r == null ? void 0 : r.panelId));
1798
1798
  if (!B && r)
1799
1799
  throw new L(r);
1800
1800
  if (B && !r)
@@ -1840,10 +1840,10 @@ class Da {
1840
1840
  if (t)
1841
1841
  return await this.reload(A, e, t), null;
1842
1842
  if (e.setMandatoryFulfilled(A.stepName, !1), e.markStepsAsInitialised([A.stepName]), A.option && A.option.variants && A.option.variants.length > 0) {
1843
- const a = A.option, s = z.getDefaultVariant(a);
1844
- return s ? this.selectVariantCommand(
1843
+ const a = A.option, n = z.getDefaultVariant(a);
1844
+ return n ? this.selectVariantCommand(
1845
1845
  A,
1846
- s,
1846
+ n,
1847
1847
  [],
1848
1848
  e,
1849
1849
  void 0,
@@ -1919,12 +1919,12 @@ class Da {
1919
1919
  new Xe(
1920
1920
  async () => {
1921
1921
  var o;
1922
- const n = (o = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((c) => c.name === "svg");
1923
- return n ? (await fetch(n.link)).status === 200 : !1;
1922
+ const s = (o = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((c) => c.name === "svg");
1923
+ return s ? (await fetch(s.link)).status === 200 : !1;
1924
1924
  },
1925
1925
  () => {
1926
- T.getLocalOrFromServer(e.key || "").then((s) => {
1927
- this.loadPatternFromAsset(s, A, t);
1926
+ T.getLocalOrFromServer(e.key || "").then((n) => {
1927
+ this.loadPatternFromAsset(n, A, t);
1928
1928
  });
1929
1929
  },
1930
1930
  () => {
@@ -1933,15 +1933,15 @@ class Da {
1933
1933
  )
1934
1934
  ) : this.loadPatternFromAsset(e, A, t);
1935
1935
  }
1936
- async selectVariant(A, e, t, a, s) {
1937
- const n = await this.selectVariantCommand(
1936
+ async selectVariant(A, e, t, a, n) {
1937
+ const s = await this.selectVariantCommand(
1938
1938
  A,
1939
1939
  e,
1940
1940
  t,
1941
1941
  a,
1942
- s
1942
+ n
1943
1943
  );
1944
- n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
1944
+ s && (s.command && a.getCommandDispatcher()(s.command), s.followup && await s.followup());
1945
1945
  }
1946
1946
  getCreateElementCommand(A, e, t, a) {
1947
1947
  return new b(
@@ -1974,24 +1974,24 @@ class Da {
1974
1974
  }
1975
1975
  async loadPatternFromString(A, e) {
1976
1976
  if (A.endsWith("svg")) {
1977
- const t = await pt(A), a = t.width, s = t.height, n = {
1977
+ const t = await pt(A), a = t.width, n = t.height, s = {
1978
1978
  src: A,
1979
1979
  width: a,
1980
- height: s,
1981
- aspect: a / s
1980
+ height: n,
1981
+ aspect: a / n
1982
1982
  };
1983
- ge.set(A, n), e.setPatternData(n);
1983
+ ge.set(A, s), e.setPatternData(s);
1984
1984
  } else {
1985
- const t = await fe(A), a = await pe(t), s = {
1985
+ const t = await fe(A), a = await pe(t), n = {
1986
1986
  src: A,
1987
1987
  width: a.width,
1988
1988
  height: a.height,
1989
1989
  aspect: a.width / a.height
1990
1990
  };
1991
- ge.set(A, s), e.setPatternData(s);
1991
+ ge.set(A, n), e.setPatternData(n);
1992
1992
  }
1993
1993
  }
1994
- async selectVariantCommand(A, e, t, a, s, n) {
1994
+ async selectVariantCommand(A, e, t, a, n, s) {
1995
1995
  var l;
1996
1996
  const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
1997
1997
  if (!i)
@@ -1999,7 +1999,7 @@ class Da {
1999
1999
  const o = await Promise.all(
2000
2000
  A.data.regions.map((d) => this.frameSourceSvg(e, d))
2001
2001
  );
2002
- s && s(!0);
2002
+ n && n(!0);
2003
2003
  const c = await Promise.all(
2004
2004
  A.data.regions.map(async (d, E) => {
2005
2005
  const C = await _A(o[E]), w = i.getImageData(), h = t.map((I) => new $(I.id)), Q = w ? Ae(w, C) : void 0, m = w ? {
@@ -2036,19 +2036,19 @@ class Da {
2036
2036
  return {
2037
2037
  command: new G([...r, ...B]),
2038
2038
  followup: async () => {
2039
- s && s(!1), await a.setSelectionsAndElements(
2039
+ n && n(!1), await a.setSelectionsAndElements(
2040
2040
  A.stepName,
2041
2041
  e ? [e] : [],
2042
2042
  [...c.map((d) => d.regionEl)],
2043
2043
  async () => {
2044
2044
  var d;
2045
- if (a.updateStorage(A.stepName, { currentFrameSources: o }), n) {
2045
+ if (a.updateStorage(A.stepName, { currentFrameSources: o }), s) {
2046
2046
  const E = (d = a.getStepSpecificServices(
2047
2047
  A.stepName
2048
2048
  )) == null ? void 0 : d.frameService;
2049
2049
  if (!E)
2050
2050
  throw new Error("Frame service unavailable, cannot load pattern!");
2051
- await this.loadPatternFromString(n, E);
2051
+ await this.loadPatternFromString(s, E);
2052
2052
  }
2053
2053
  }
2054
2054
  );
@@ -2060,7 +2060,7 @@ class Da {
2060
2060
  */
2061
2061
  patternSource(A) {
2062
2062
  var a;
2063
- const e = (a = A.versions) == null ? void 0 : a.find((s) => s.name === "svg");
2063
+ const e = (a = A.versions) == null ? void 0 : a.find((n) => n.name === "svg");
2064
2064
  if (e)
2065
2065
  return e.link;
2066
2066
  const t = A.fileLink;
@@ -2070,12 +2070,12 @@ class Da {
2070
2070
  }
2071
2071
  async loadPatternFromAsset(A, e, t) {
2072
2072
  var i;
2073
- const a = this.patternSource(A), s = t.markUpdatePending(), n = (i = t.getStepSpecificServices(e.stepName)) == null ? void 0 : i.frameService;
2074
- if (!n)
2073
+ const a = this.patternSource(A), n = t.markUpdatePending(), s = (i = t.getStepSpecificServices(e.stepName)) == null ? void 0 : i.frameService;
2074
+ if (!s)
2075
2075
  throw new Error("Frame service unavailable, cannot load pattern!");
2076
- await this.loadPatternFromString(a, n), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
2076
+ await this.loadPatternFromString(a, s), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
2077
2077
  framePatternSrc: a
2078
- }), t.markUpdateCompleted(s);
2078
+ }), t.markUpdateCompleted(n);
2079
2079
  }
2080
2080
  }
2081
2081
  const qA = new Da();
@@ -2130,9 +2130,9 @@ class fa {
2130
2130
  if (t)
2131
2131
  return this.reload(A, e, t);
2132
2132
  {
2133
- const s = z.getDefaultVariant(a);
2134
- if (s)
2135
- return await this.selectVariantCommand(A, s, [], () => {
2133
+ const n = z.getDefaultVariant(a);
2134
+ if (n)
2135
+ return await this.selectVariantCommand(A, n, [], () => {
2136
2136
  }, e);
2137
2137
  }
2138
2138
  return null;
@@ -2169,38 +2169,38 @@ class fa {
2169
2169
  async availableColors(A, e) {
2170
2170
  var a;
2171
2171
  const t = A.data.colorOption;
2172
- return t ? t ? (a = t.variants) == null ? void 0 : a.map((s) => ({
2173
- fill: s.color,
2174
- stroke: s.color,
2175
- variant: s
2172
+ return t ? t ? (a = t.variants) == null ? void 0 : a.map((n) => ({
2173
+ fill: n.color,
2174
+ stroke: n.color,
2175
+ variant: n
2176
2176
  })) : [] : [];
2177
2177
  }
2178
- async changeColorsCommand(A, e, t, a, s) {
2178
+ async changeColorsCommand(A, e, t, a, n) {
2179
2179
  var r;
2180
- const n = {};
2181
- for (const [B, l] of s.entries())
2182
- n[B] = { browserValue: l, spotColor: (r = n[B]) == null ? void 0 : r.spotColor };
2183
- const i = It(A, e, t, n), o = await aA(i), c = [];
2180
+ const s = {};
2181
+ for (const [B, l] of n.entries())
2182
+ s[B] = { browserValue: l, spotColor: (r = s[B]) == null ? void 0 : r.spotColor };
2183
+ const i = It(A, e, t, s), o = await aA(i), c = [];
2184
2184
  for (const B of a) {
2185
- for (const [l, d] of s.entries())
2185
+ for (const [l, d] of n.entries())
2186
2186
  c.push(new jA(B, l, d));
2187
2187
  c.push(new Dt(B, i, o));
2188
2188
  }
2189
2189
  return new G(c);
2190
2190
  }
2191
- async changeColors(A, e, t, a, s) {
2191
+ async changeColors(A, e, t, a, n) {
2192
2192
  var d, E;
2193
2193
  if (e.length === 0)
2194
2194
  return;
2195
- const n = FA(
2195
+ const s = FA(
2196
2196
  e[0].id,
2197
2197
  a().map((C) => C.layoutState)
2198
- ), i = { ...n.colors }, o = {};
2198
+ ), i = { ...s.colors }, o = {};
2199
2199
  Object.entries(i).forEach(([C, w]) => {
2200
2200
  const h = { browserValue: w.browserValue }, Q = w.spotColor;
2201
2201
  Q && (h.spotColor = { profileName: Q.profileName, namedColor: Q.namedColor }), o[C] = h;
2202
2202
  });
2203
- for (const [C, w] of s.entries())
2203
+ for (const [C, w] of n.entries())
2204
2204
  i[C] = { browserValue: w, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, o[C] = { browserValue: w };
2205
2205
  let c = Array.from(Object.values(i)).map((C) => C.browserValue);
2206
2206
  const r = A.data.colorOption;
@@ -2213,12 +2213,12 @@ class fa {
2213
2213
  const B = /* @__PURE__ */ new Map();
2214
2214
  if (Object.entries(i).forEach(([C, w]) => {
2215
2215
  B.set(C, w.browserValue);
2216
- }), !n.svg)
2216
+ }), !s.svg)
2217
2217
  throw new Error("Colors changed before SVG loaded. This should never happen!");
2218
2218
  const l = await this.changeColorsCommand(
2219
- n.svg,
2220
- n.width,
2221
- n.height,
2219
+ s.svg,
2220
+ s.width,
2221
+ s.height,
2222
2222
  e.map((C) => C.id),
2223
2223
  B
2224
2224
  );
@@ -2226,17 +2226,17 @@ class fa {
2226
2226
  colors: o
2227
2227
  }), t.getCommandDispatcher()(l);
2228
2228
  }
2229
- async selectVariant(A, e, t, a, s) {
2230
- const n = await this.selectVariantCommand(A, e, t, a, s);
2231
- n && (n.command && s.getCommandDispatcher()(n.command), n.followup && await n.followup());
2229
+ async selectVariant(A, e, t, a, n) {
2230
+ const s = await this.selectVariantCommand(A, e, t, a, n);
2231
+ s && (s.command && n.getCommandDispatcher()(s.command), s.followup && await s.followup());
2232
2232
  }
2233
- async selectVariantCommand(A, e, t, a, s) {
2233
+ async selectVariantCommand(A, e, t, a, n) {
2234
2234
  var h;
2235
2235
  if (!A.data || !A.data.regions)
2236
2236
  throw new YA(A, "Missing regions.");
2237
2237
  a(!0);
2238
- const n = t.map((Q) => new $(Q.id));
2239
- s.setMandatoryFulfilled(A.stepName, !1);
2238
+ const s = t.map((Q) => new $(Q.id));
2239
+ n.setMandatoryFulfilled(A.stepName, !1);
2240
2240
  const i = e.asset;
2241
2241
  if (!i)
2242
2242
  throw new _(e);
@@ -2244,7 +2244,7 @@ class fa {
2244
2244
  if (!o)
2245
2245
  throw new lA(i);
2246
2246
  const c = await De(await this.getIllustrationBody(o)), r = await aA(c.svg), B = (Q) => {
2247
- const m = s.getLayouts().find((p) => p.panelId === Q.panelId);
2247
+ const m = n.getLayouts().find((p) => p.panelId === Q.panelId);
2248
2248
  if (!m)
2249
2249
  throw new L(Q);
2250
2250
  const u = v();
@@ -2257,7 +2257,7 @@ class fa {
2257
2257
  svg: c
2258
2258
  })
2259
2259
  };
2260
- }, l = A.data.regions.map(B), E = [...l.map((Q) => Q.command), ...n];
2260
+ }, l = A.data.regions.map(B), E = [...l.map((Q) => Q.command), ...s];
2261
2261
  let C = Array.from(Object.values(c.colors)).map((Q) => Q.browserValue);
2262
2262
  const w = A.data.colorOption;
2263
2263
  return w && ((h = w.variants) == null || h.forEach((Q) => {
@@ -2265,15 +2265,15 @@ class fa {
2265
2265
  var u;
2266
2266
  return m.toLowerCase() === ((u = Q.color) == null ? void 0 : u.toLowerCase()) ? Q.name : m;
2267
2267
  });
2268
- })), s.updateMetadata(A.stepName, { colors: C }), {
2268
+ })), n.updateMetadata(A.stepName, { colors: C }), {
2269
2269
  command: new G(E),
2270
2270
  followup: async () => {
2271
- await s.setSelectionsAndElements(
2271
+ await n.setSelectionsAndElements(
2272
2272
  A.stepName,
2273
2273
  [e],
2274
2274
  l.map((Q) => Q.regionElement),
2275
2275
  async () => {
2276
- s.setMandatoryFulfilled(A.stepName, !0), a(!1);
2276
+ n.setMandatoryFulfilled(A.stepName, !0), a(!1);
2277
2277
  }
2278
2278
  );
2279
2279
  }
@@ -2289,9 +2289,9 @@ class Fa {
2289
2289
  if (t)
2290
2290
  await this.reload(A, e, t);
2291
2291
  else {
2292
- const s = z.getDefaultVariant(a);
2293
- if (s)
2294
- return await this.selectVariantLambda(A, s, e, () => {
2292
+ const n = z.getDefaultVariant(a);
2293
+ if (n)
2294
+ return await this.selectVariantLambda(A, n, e, () => {
2295
2295
  });
2296
2296
  }
2297
2297
  return null;
@@ -2329,22 +2329,22 @@ class Fa {
2329
2329
  }
2330
2330
  }
2331
2331
  async selectVariant(A, e, t, a) {
2332
- const s = await this.selectVariantLambda(A, e, t, a);
2333
- s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2332
+ const n = await this.selectVariantLambda(A, e, t, a);
2333
+ n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2334
2334
  }
2335
2335
  async selectVariantLambda(A, e, t, a) {
2336
- const s = t.getModelContainer();
2336
+ const n = t.getModelContainer();
2337
2337
  a(!0);
2338
- const n = e.material;
2339
- if (!n)
2338
+ const s = e.material;
2339
+ if (!s)
2340
2340
  throw a(!1), new _(e);
2341
2341
  return {
2342
2342
  command: void 0,
2343
2343
  followup: async () => {
2344
2344
  await t.setSelectionsAndElements(A.stepName, [e], [], async () => {
2345
2345
  try {
2346
- s && A.data.targetMaterials.forEach((i) => {
2347
- A.option && s.applyMaterialVariant(i, A.option.id || "", n);
2346
+ n && A.data.targetMaterials.forEach((i) => {
2347
+ A.option && n.applyMaterialVariant(i, A.option.id || "", s);
2348
2348
  }), t.setMandatoryFulfilled(A.stepName, !0);
2349
2349
  } finally {
2350
2350
  a(!1);
@@ -2363,9 +2363,9 @@ class Ma {
2363
2363
  if (t)
2364
2364
  await this.reload(A, e, t);
2365
2365
  else {
2366
- const s = z.getDefaultVariant(a);
2367
- if (s)
2368
- return await this.selectVariantLambda(A, s, e, () => {
2366
+ const n = z.getDefaultVariant(a);
2367
+ if (n)
2368
+ return await this.selectVariantLambda(A, n, e, () => {
2369
2369
  });
2370
2370
  }
2371
2371
  return null;
@@ -2409,14 +2409,14 @@ class Ma {
2409
2409
  }
2410
2410
  }
2411
2411
  async selectVariant(A, e, t, a) {
2412
- const s = await this.selectVariantLambda(A, e, t, a);
2413
- s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2412
+ const n = await this.selectVariantLambda(A, e, t, a);
2413
+ n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2414
2414
  }
2415
2415
  async selectVariantLambda(A, e, t, a) {
2416
- var n;
2416
+ var s;
2417
2417
  a(!0);
2418
- const s = (n = e.asset) == null ? void 0 : n.fileLink;
2419
- if (!s)
2418
+ const n = (s = e.asset) == null ? void 0 : s.fileLink;
2419
+ if (!n)
2420
2420
  throw new _(e);
2421
2421
  return {
2422
2422
  command: void 0,
@@ -2427,7 +2427,7 @@ class Ma {
2427
2427
  i && A.option && i.applyModelVariant(
2428
2428
  A.option.id || "",
2429
2429
  {
2430
- model: s,
2430
+ model: n,
2431
2431
  contextService: t.getLayoutPreviewService()
2432
2432
  },
2433
2433
  A.data.replaceProductModel || !1
@@ -2460,17 +2460,17 @@ class ya {
2460
2460
  e.updateStorage(A.stepName, { text: (c = a == null ? void 0 : a.storage) == null ? void 0 : c.text }), e.setMandatoryFulfilled(A.stepName, ((r = a == null ? void 0 : a.storage) == null ? void 0 : r.text) !== "");
2461
2461
  });
2462
2462
  }
2463
- async changeText(A, e, t, a, s) {
2464
- const n = await this.changeTextCommand(A, e, t, a, s);
2465
- n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2463
+ async changeText(A, e, t, a, n) {
2464
+ const s = await this.changeTextCommand(A, e, t, a, n);
2465
+ s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2466
2466
  }
2467
- async changeTextCommand(A, e, t, a, s) {
2467
+ async changeTextCommand(A, e, t, a, n) {
2468
2468
  var r;
2469
- const n = t.getRegionElements(A.stepName), i = (r = t.getStepSpecificServices(A.stepName)) == null ? void 0 : r.module;
2469
+ const s = t.getRegionElements(A.stepName), i = (r = t.getStepSpecificServices(A.stepName)) == null ? void 0 : r.module;
2470
2470
  if (!i)
2471
2471
  return console.error("Missing module."), null;
2472
2472
  const o = t.getProfanities();
2473
- if (!this.validateInput(A, e, o, s))
2473
+ if (!this.validateInput(A, e, o, n))
2474
2474
  return t.setMandatoryFulfilled(A.stepName, !1), console.error(a), null;
2475
2475
  if (t.setMandatoryFulfilled(A.stepName, e !== ""), !A.data || !A.data.regions || A.data.regions.length <= 0)
2476
2476
  return console.error("Missing configuration."), null;
@@ -2506,8 +2506,8 @@ class ya {
2506
2506
  command: new G(h)
2507
2507
  };
2508
2508
  };
2509
- if (n.length > 0) {
2510
- const l = n.map((d) => {
2509
+ if (s.length > 0) {
2510
+ const l = s.map((d) => {
2511
2511
  if (!d.region)
2512
2512
  return null;
2513
2513
  const E = i.svgPrint(e, d.region);
@@ -2537,17 +2537,17 @@ class ya {
2537
2537
  }
2538
2538
  validateInput(A, e, t, a) {
2539
2539
  if (A.data && A.data.maxLength) {
2540
- const n = A.data.maxLength;
2541
- if (e.length > n)
2540
+ const s = A.data.maxLength;
2541
+ if (e.length > s)
2542
2542
  return a("Too many characters."), !1;
2543
2543
  }
2544
2544
  if (!/^$|^[a-zA-Z0-9 ]+$/.test(e))
2545
2545
  return a("Unsupported characters."), !1;
2546
- const s = XA(e.toLowerCase());
2547
- for (const n of s)
2546
+ const n = XA(e.toLowerCase());
2547
+ for (const s of n)
2548
2548
  for (const i in t) {
2549
2549
  const o = t[i].toLowerCase().replace(/\s/g, "");
2550
- if (n === o)
2550
+ if (s === o)
2551
2551
  return a("Blocked profanity."), !1;
2552
2552
  }
2553
2553
  return a(""), !0;
@@ -2591,15 +2591,15 @@ class Sa {
2591
2591
  }
2592
2592
  }
2593
2593
  async selectVariant(A, e, t, a) {
2594
- const s = await this.selectVariantCommand(A, e, t, a);
2595
- s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2594
+ const n = await this.selectVariantCommand(A, e, t, a);
2595
+ n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2596
2596
  }
2597
2597
  async selectVariantCommand(A, e, t, a) {
2598
- const s = e.asset;
2599
- if (!s)
2600
- throw new _(e);
2601
- const n = s == null ? void 0 : s.fileLink;
2598
+ const n = e.asset;
2602
2599
  if (!n)
2600
+ throw new _(e);
2601
+ const s = n == null ? void 0 : n.fileLink;
2602
+ if (!s)
2603
2603
  return console.error("No URL for picture!"), null;
2604
2604
  a(!0), t.setMandatoryFulfilled(A.stepName, !1);
2605
2605
  const o = t.getRegionElements(A.stepName).map((B) => new $(B.id)), c = (B) => {
@@ -2614,7 +2614,7 @@ class Sa {
2614
2614
  stepName: A.stepName,
2615
2615
  stepRegion: B,
2616
2616
  id: E,
2617
- src: n,
2617
+ src: s,
2618
2618
  type: P.Image,
2619
2619
  y: B.top,
2620
2620
  x: B.left,
@@ -2654,9 +2654,9 @@ class xa {
2654
2654
  if (t)
2655
2655
  await this.reload(A, e, t);
2656
2656
  else {
2657
- const s = a.variants;
2657
+ const n = a.variants;
2658
2658
  if (z.getDefaultVariant(a)) {
2659
- const i = s == null ? void 0 : s.find((o) => {
2659
+ const i = n == null ? void 0 : n.find((o) => {
2660
2660
  var c;
2661
2661
  return o.id === ((c = a.defaultVariant) == null ? void 0 : c.id);
2662
2662
  });
@@ -2666,15 +2666,15 @@ class xa {
2666
2666
  return null;
2667
2667
  }
2668
2668
  async reload(A, e, t) {
2669
- var n;
2669
+ var s;
2670
2670
  const a = e.getSerializedStep(
2671
2671
  A.stepName,
2672
2672
  t.serializableWorkflow.steps
2673
- ), s = A.option;
2673
+ ), n = A.option;
2674
2674
  if (a != null && a.selectedVariants) {
2675
2675
  const i = a.selectedVariants[0].id;
2676
- if (s && i) {
2677
- const o = (n = s.variants) == null ? void 0 : n.find((c) => c.id === i);
2676
+ if (n && i) {
2677
+ const o = (s = n.variants) == null ? void 0 : s.find((c) => c.id === i);
2678
2678
  o && await e.setSelectionsAndElements(A.stepName, [o], []);
2679
2679
  }
2680
2680
  }
@@ -2688,16 +2688,16 @@ class xa {
2688
2688
  const a = A.option;
2689
2689
  if (!a)
2690
2690
  return null;
2691
- const s = a.variants;
2692
- if (!s)
2693
- return null;
2694
- const n = s.length > 1 ? s.find((i) => i.id === e) : s[0];
2691
+ const n = a.variants;
2695
2692
  if (!n)
2693
+ return null;
2694
+ const s = n.length > 1 ? n.find((i) => i.id === e) : n[0];
2695
+ if (!s)
2696
2696
  throw new Error("Failed to find selected variant in step variants, this should never happen!");
2697
2697
  return {
2698
2698
  command: void 0,
2699
2699
  followup: async () => {
2700
- await t.setSelectionsAndElements(A.stepName, [n], [], async () => {
2700
+ await t.setSelectionsAndElements(A.stepName, [s], [], async () => {
2701
2701
  t.setMandatoryFulfilled(A.stepName, !0);
2702
2702
  });
2703
2703
  }
@@ -2720,13 +2720,13 @@ class Na {
2720
2720
  }))) || [] : [];
2721
2721
  }
2722
2722
  setCustomColor(A, e, t) {
2723
- const a = t.getLayouts(), n = (t.getRegionElements(e.stepName) || []).map((i) => {
2723
+ const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
2724
2724
  const o = i.region;
2725
2725
  if (!a.find((r) => r.panelId === (o == null ? void 0 : o.panelId)))
2726
2726
  throw new L(o);
2727
2727
  return new jA(i.id, this.shapeFillId, A);
2728
2728
  }).filter((i) => !!i);
2729
- t.getCommandDispatcher()(new G(n)), t.updateStorage(e.stepName, { colour: A });
2729
+ t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
2730
2730
  }
2731
2731
  async init(A, e, t) {
2732
2732
  const a = A.option;
@@ -2735,13 +2735,13 @@ class Na {
2735
2735
  if (t)
2736
2736
  await this.reload(A, e, t);
2737
2737
  else {
2738
- const s = z.getDefaultVariant(a);
2739
- return s ? this.selectVariantCommand(
2738
+ const n = z.getDefaultVariant(a);
2739
+ return n ? this.selectVariantCommand(
2740
2740
  A,
2741
2741
  {
2742
- fill: s.color,
2743
- stroke: s.color,
2744
- variant: s
2742
+ fill: n.color,
2743
+ stroke: n.color,
2744
+ variant: n
2745
2745
  },
2746
2746
  [],
2747
2747
  e
@@ -2750,8 +2750,8 @@ class Na {
2750
2750
  return null;
2751
2751
  }
2752
2752
  async selectVariant(A, e, t, a) {
2753
- const s = await this.selectVariantCommand(A, e, t, a);
2754
- s && (s.command && a.getCommandDispatcher()(s.command), s.followup && await s.followup());
2753
+ const n = await this.selectVariantCommand(A, e, t, a);
2754
+ n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
2755
2755
  }
2756
2756
  async reload(A, e, t) {
2757
2757
  var c;
@@ -2782,10 +2782,10 @@ class Na {
2782
2782
  }
2783
2783
  async selectVariantCommand(A, e, t, a) {
2784
2784
  var o;
2785
- const s = a.getLayouts(), n = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
2785
+ const n = a.getLayouts(), s = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
2786
2786
  var c, r;
2787
2787
  if (((c = e.variant) == null ? void 0 : c.color) === "#custom")
2788
- return n || "#FFFFFF";
2788
+ return s || "#FFFFFF";
2789
2789
  if ((r = e.variant) != null && r.color)
2790
2790
  return e.variant.color;
2791
2791
  throw new Error("Failed to resolve color for shape step.");
@@ -2793,7 +2793,7 @@ class Na {
2793
2793
  if (t.length > 0) {
2794
2794
  const c = (B) => {
2795
2795
  const l = B.region;
2796
- if (!s.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2796
+ if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2797
2797
  throw new L(l);
2798
2798
  const E = i();
2799
2799
  return new jA(B.id, this.shapeFillId, E);
@@ -2810,7 +2810,7 @@ class Na {
2810
2810
  };
2811
2811
  } else {
2812
2812
  const c = (d) => {
2813
- const E = s.find((m) => m.panelId === d.panelId);
2813
+ const E = n.find((m) => m.panelId === d.panelId);
2814
2814
  if (!E)
2815
2815
  throw new L(d);
2816
2816
  const C = i(), w = `
@@ -2920,22 +2920,22 @@ class Ua {
2920
2920
  /(\r\n|\r|(\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,
2921
2921
  ""
2922
2922
  );
2923
- const a = [], s = e ? ft(e.assetUrl) : void 0;
2924
- if (s) {
2925
- const n = t.split("").filter((o) => !Pa.includes(o)).join(""), i = n.split("").map((o) => s.getFont().charToGlyph(o));
2923
+ const a = [], n = e ? ft(e.assetUrl) : void 0;
2924
+ if (n) {
2925
+ const s = t.split("").filter((o) => !Pa.includes(o)).join(""), i = s.split("").map((o) => n.getFont().charToGlyph(o));
2926
2926
  for (let o = 0; o < i.length; o++)
2927
- i[o].name === ".notdef" && a.push(String.fromCharCode(n.charCodeAt(o)));
2927
+ i[o].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(o)));
2928
2928
  }
2929
- for (let n = 0; n < a.length; n++)
2930
- t = t.replaceAll(a[n], "");
2929
+ for (let s = 0; s < a.length; s++)
2930
+ t = t.replaceAll(a[s], "");
2931
2931
  return t;
2932
2932
  }, this.textAlign = (A) => A.vertical ? "center" : A.textAlign || "center", this.getErrorsForText = (A, e, t) => {
2933
2933
  const a = [];
2934
2934
  e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
2935
- const s = t.getProfanities(), n = XA(A.toLowerCase());
2936
- for (const o of n)
2937
- for (const c in s) {
2938
- const r = s[c].toLowerCase().replace(/\s/g, "");
2935
+ const n = t.getProfanities(), s = XA(A.toLowerCase());
2936
+ for (const o of s)
2937
+ for (const c in n) {
2938
+ const r = n[c].toLowerCase().replace(/\s/g, "");
2939
2939
  if (o === r) {
2940
2940
  a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
2941
2941
  break;
@@ -2946,14 +2946,14 @@ class Ua {
2946
2946
  };
2947
2947
  }
2948
2948
  async init(A, e, t) {
2949
- var s, n, i;
2949
+ var n, s, i;
2950
2950
  const a = A.option;
2951
2951
  if (!a)
2952
2952
  return null;
2953
2953
  if (t)
2954
2954
  await this.reload(A, e, t);
2955
2955
  else {
2956
- const o = this.getDefaultImageFillVariant(A.data), c = (s = o == null ? void 0 : o.asset) == null ? void 0 : s.fileLink, r = c ? await VA(c) : void 0, B = r ? {
2956
+ const o = this.getDefaultImageFillVariant(A.data), c = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, r = c ? await VA(c) : void 0, B = r ? {
2957
2957
  src: r.src,
2958
2958
  height: r.height,
2959
2959
  width: r.width,
@@ -2961,7 +2961,7 @@ class Ua {
2961
2961
  } : void 0;
2962
2962
  e.updateStorage(A.stepName, {
2963
2963
  inputText: A.data.defaultText || "",
2964
- color: ((n = await this.getDefaultColorVariant(A.data)) == null ? void 0 : n.color) || await this.getDefaultColor(A.data),
2964
+ color: ((s = await this.getDefaultColorVariant(A.data)) == null ? void 0 : s.color) || await this.getDefaultColor(A.data),
2965
2965
  fillImage: B
2966
2966
  }), e.updateMetadata(A.stepName, {
2967
2967
  text: A.data.defaultText || "",
@@ -2986,7 +2986,7 @@ class Ua {
2986
2986
  return null;
2987
2987
  }
2988
2988
  findLayoutElements(A, e) {
2989
- return A.getRegionElements(e.stepName).map((s) => FA(s.id, A.getAllLayoutData()));
2989
+ return A.getRegionElements(e.stepName).map((n) => FA(n.id, A.getAllLayoutData()));
2990
2990
  }
2991
2991
  /**
2992
2992
  * Get the colors that can be used for a given text step.
@@ -3000,12 +3000,12 @@ class Ua {
3000
3000
  return e;
3001
3001
  const t = A.data.colorOption;
3002
3002
  if (t) {
3003
- const s = ((a = t.variants) == null ? void 0 : a.map((n) => ({
3004
- fill: n.color,
3005
- stroke: n.color,
3006
- variant: n
3003
+ const n = ((a = t.variants) == null ? void 0 : a.map((s) => ({
3004
+ fill: s.color,
3005
+ stroke: s.color,
3006
+ variant: s
3007
3007
  }))) || [];
3008
- return this.cachedColors.set(A.stepName, s), s;
3008
+ return this.cachedColors.set(A.stepName, n), n;
3009
3009
  }
3010
3010
  return [];
3011
3011
  }
@@ -3013,12 +3013,12 @@ class Ua {
3013
3013
  var o;
3014
3014
  if (!A.data || !A.data.regions)
3015
3015
  return;
3016
- const s = a.getCommandDispatcher();
3016
+ const n = a.getCommandDispatcher();
3017
3017
  e.variant ? a.updateMetadata(A.stepName, { color: e.variant.name }) : a.updateMetadata(A.stepName, { color: e.fill });
3018
- const n = A.data.colorOption, i = n ? this.createTextFillSpotColor(n, e.variant) : void 0;
3019
- n ? a.updateStorage(A.stepName, {
3018
+ const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
3019
+ s ? a.updateStorage(A.stepName, {
3020
3020
  color: e.fill,
3021
- colorProfileAssetKey: (o = n.colorProfile) == null ? void 0 : o.key
3021
+ colorProfileAssetKey: (o = s.colorProfile) == null ? void 0 : o.key
3022
3022
  }) : a.updateStorage(A.stepName, {
3023
3023
  color: e.fill
3024
3024
  });
@@ -3026,22 +3026,22 @@ class Ua {
3026
3026
  if (!e.fill)
3027
3027
  throw new Error("Fill not set on new color selection!");
3028
3028
  const r = new Ft(c.id, e.fill, i);
3029
- s(r);
3029
+ n(r);
3030
3030
  }
3031
3031
  }
3032
3032
  async availableFillImages(A) {
3033
3033
  var t, a;
3034
3034
  const e = A.data.imageFillOption;
3035
3035
  if (e) {
3036
- const s = ((a = (t = e.variants) == null ? void 0 : t.map((n) => {
3036
+ const n = ((a = (t = e.variants) == null ? void 0 : t.map((s) => {
3037
3037
  var i;
3038
- return (i = n.asset) == null ? void 0 : i.fileLink;
3039
- })) == null ? void 0 : a.filter((n) => !!n)) || [];
3038
+ return (i = s.asset) == null ? void 0 : i.fileLink;
3039
+ })) == null ? void 0 : a.filter((s) => !!s)) || [];
3040
3040
  return Promise.all(
3041
- s.map(async (n) => {
3042
- const i = await VA(n);
3041
+ n.map(async (s) => {
3042
+ const i = await VA(s);
3043
3043
  return {
3044
- src: n,
3044
+ src: s,
3045
3045
  width: i.width,
3046
3046
  height: i.height,
3047
3047
  scale: A.data.imageFillScale || 1
@@ -3055,16 +3055,16 @@ class Ua {
3055
3055
  var i, o;
3056
3056
  if (!A.data || !A.data.regions)
3057
3057
  return;
3058
- const s = a.getCommandDispatcher(), n = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((c) => {
3058
+ const n = a.getCommandDispatcher(), s = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((c) => {
3059
3059
  var r;
3060
3060
  return ((r = c.asset) == null ? void 0 : r.fileLink) === e.src;
3061
3061
  });
3062
- a.updateMetadata(A.stepName, { fillImage: n == null ? void 0 : n.name }), a.updateStorage(A.stepName, {
3062
+ a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
3063
3063
  fillImage: e
3064
3064
  });
3065
3065
  for (const c of t) {
3066
3066
  const r = new bA(c.id, e);
3067
- s(r);
3067
+ n(r);
3068
3068
  }
3069
3069
  }
3070
3070
  getProcessedInput(A, e, t) {
@@ -3075,14 +3075,14 @@ class Ua {
3075
3075
  });
3076
3076
  }
3077
3077
  updateInputText(A, e, t, a) {
3078
- const s = a.getStepStorage(t.stepName), n = this.getProcessedInput(A, t.data, !!s.customiseAllText), i = {
3078
+ const n = a.getStepStorage(t.stepName), s = this.getProcessedInput(A, t.data, !!n.customiseAllText), i = {
3079
3079
  command: void 0,
3080
3080
  helperText: "",
3081
3081
  errors: this.getErrorsForText(A, t, a)
3082
3082
  };
3083
3083
  if (i.errors.length > 0)
3084
3084
  return i.helperText = i.errors[0].localizationKey, i;
3085
- const o = (t.data.maxLength - n.length).toString();
3085
+ const o = (t.data.maxLength - s.length).toString();
3086
3086
  i.helperText = `${o} characters remaining`;
3087
3087
  const c = a.getTransaction().bulk && t.data.varyText || !1, r = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
3088
3088
  for (const d of e) {
@@ -3092,34 +3092,34 @@ class Ua {
3092
3092
  d.fontSize,
3093
3093
  d.fontData,
3094
3094
  { left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
3095
- [n],
3095
+ [s],
3096
3096
  { size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
3097
3097
  );
3098
3098
  B.set(d.id, E), l.set(d.id, C);
3099
- const w = t.data.curved ? n : (C || []).join(`
3099
+ const w = t.data.curved ? s : (C || []).join(`
3100
3100
  `);
3101
3101
  r.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, c));
3102
3102
  }
3103
3103
  return !t.data.curved && e.length > 0 && !Array.from(l.values()).every((E) => E) ? (i.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), i) : (a.updateStorage(t.stepName, { text: A }), a.updateMetadata(t.stepName, {
3104
- text: n
3105
- }), s.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(r), i.command.varying = c, i);
3104
+ text: s
3105
+ }), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(r), i.command.varying = c, i);
3106
3106
  }
3107
- async selectVariant(A, e, t, a, s) {
3108
- const n = await this.selectVariantCommand(
3107
+ async selectVariant(A, e, t, a, n) {
3108
+ const s = await this.selectVariantCommand(
3109
3109
  A,
3110
3110
  e,
3111
3111
  t.getStepStorage(A.stepName) || {},
3112
3112
  t.getRegionElements(A.stepName),
3113
3113
  t,
3114
3114
  a,
3115
- s
3115
+ n
3116
3116
  );
3117
- n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
3117
+ s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
3118
3118
  }
3119
3119
  createTextFillSpotColor(A, e) {
3120
3120
  const t = A.colorProfile;
3121
3121
  if (t) {
3122
- const a = (t.name || "").replace(/\s/g, "-"), s = a.lastIndexOf("/"), i = a.slice(s + 1).slice(0, -4);
3122
+ const a = (t.name || "").replace(/\s/g, "-"), n = a.lastIndexOf("/"), i = a.slice(n + 1).slice(0, -4);
3123
3123
  if (!e.namedColor)
3124
3124
  throw new Error("variant named color not set!");
3125
3125
  return {
@@ -3191,9 +3191,9 @@ class Ua {
3191
3191
  name: a.names.fullName.en
3192
3192
  };
3193
3193
  }
3194
- async selectVariantCommand(A, e, t, a, s, n, i, o) {
3194
+ async selectVariantCommand(A, e, t, a, n, s, i, o) {
3195
3195
  var B;
3196
- const c = s.markUpdatePending(), r = await this.fontDataFromVariant(e);
3196
+ const c = n.markUpdatePending(), r = await this.fontDataFromVariant(e);
3197
3197
  if (a.length > 0) {
3198
3198
  const l = a.map((C) => new le(C.id, r));
3199
3199
  if (o) {
@@ -3206,15 +3206,15 @@ class Ua {
3206
3206
  r,
3207
3207
  t.text || "",
3208
3208
  t,
3209
- s,
3210
- !!t.customiseAllText,
3211
3209
  n,
3210
+ !!t.customiseAllText,
3211
+ s,
3212
3212
  i
3213
3213
  );
3214
3214
  return d && l.push(d), {
3215
3215
  command: new G(l),
3216
3216
  followup: async () => {
3217
- s.markUpdateCompleted(c), await s.setSelectionsAndElements(A.stepName, [e], a);
3217
+ n.markUpdateCompleted(c), await n.setSelectionsAndElements(A.stepName, [e], a);
3218
3218
  }
3219
3219
  };
3220
3220
  } else {
@@ -3224,16 +3224,16 @@ class Ua {
3224
3224
  A.data,
3225
3225
  r,
3226
3226
  t,
3227
- s
3227
+ n
3228
3228
  ), d = await this.changeInputTextWithRegion(
3229
3229
  A,
3230
3230
  A.data.size || OA,
3231
3231
  r,
3232
3232
  ((B = l[0]) == null ? void 0 : B.newElement.input) || t.text || A.data.defaultText || "",
3233
3233
  t,
3234
- s,
3235
- !!t.customiseAllText,
3236
3234
  n,
3235
+ !!t.customiseAllText,
3236
+ s,
3237
3237
  i
3238
3238
  ), E = l.flatMap((w) => w.commands);
3239
3239
  if (o) {
@@ -3245,7 +3245,7 @@ class Ua {
3245
3245
  return d && E.push(d), {
3246
3246
  command: new G(E),
3247
3247
  followup: async () => {
3248
- s.markUpdateCompleted(c);
3248
+ n.markUpdateCompleted(c);
3249
3249
  }
3250
3250
  };
3251
3251
  }
@@ -3258,12 +3258,12 @@ class Ua {
3258
3258
  injectReplaceableText(A, e) {
3259
3259
  return e.replaceableText ? e.replaceableText.replace("{{}}", A) : A;
3260
3260
  }
3261
- async createTextboxRegions(A, e, t, a, s, n) {
3261
+ async createTextboxRegions(A, e, t, a, n, s) {
3262
3262
  if (!t || !t.regions)
3263
3263
  throw new Error("Step data not supplied");
3264
- const i = n.getTransaction().bulk && t.varyText || !1, o = i ? "" : s.text || t.defaultText || "", c = this.getProcessedInput(o, t, !1), r = async (l) => {
3264
+ const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", c = this.getProcessedInput(o, t, !1), r = async (l) => {
3265
3265
  var w;
3266
- const E = n.getLayouts().find((h) => h.panelId === l.panelId), C = v();
3266
+ const E = s.getLayouts().find((h) => h.panelId === l.panelId), C = v();
3267
3267
  try {
3268
3268
  if (!E)
3269
3269
  throw new RA("Failed to find layout for region: " + l.panelId);
@@ -3274,7 +3274,7 @@ class Ua {
3274
3274
  var W;
3275
3275
  return V.id === ((W = h.defaultVariant) == null ? void 0 : W.id);
3276
3276
  }) || h.variants[0];
3277
- Q = this.createTextFillSpotColor(h, k), n.updateStorage(A, {
3277
+ Q = this.createTextFillSpotColor(h, k), s.updateStorage(A, {
3278
3278
  colorProfileAssetKey: (w = h.colorProfile) == null ? void 0 : w.key
3279
3279
  });
3280
3280
  }
@@ -3282,7 +3282,7 @@ class Ua {
3282
3282
  stepRegion: l,
3283
3283
  stepName: A,
3284
3284
  align: this.textAlign(t),
3285
- fill: s.color ? s.color : u,
3285
+ fill: n.color ? n.color : u,
3286
3286
  fontSize: t.size || OA,
3287
3287
  fontData: a,
3288
3288
  id: C,
@@ -3338,33 +3338,33 @@ class Ua {
3338
3338
  }, B = await Promise.all(t.regions.map(r)).catch((l) => {
3339
3339
  throw l instanceof NA ? (Ha.setLatestToast("Failed to load font.", HA.Error), l) : l instanceof RA ? l : new Error(l);
3340
3340
  });
3341
- return await n.setSelectionsAndElements(
3341
+ return await s.setSelectionsAndElements(
3342
3342
  A,
3343
3343
  [e],
3344
3344
  B.map((l) => l.regionElement),
3345
3345
  async () => {
3346
- n.updateMetadata(A, {
3346
+ s.updateMetadata(A, {
3347
3347
  text: o
3348
- }), n.updateStorage(A, {
3348
+ }), s.updateStorage(A, {
3349
3349
  text: o
3350
3350
  });
3351
3351
  }
3352
3352
  ), B;
3353
3353
  }
3354
- generateTextChangeCommandsForRegion(A, e, t, a, s) {
3355
- const n = [], i = new Mt(t, a);
3356
- if (i.varying = s, n.push(i), !e.size) {
3354
+ generateTextChangeCommandsForRegion(A, e, t, a, n) {
3355
+ const s = [], i = new Mt(t, a);
3356
+ if (i.varying = n, s.push(i), !e.size) {
3357
3357
  const c = new yt(t, A);
3358
- c.varying = s, n.push(c);
3358
+ c.varying = n, s.push(c);
3359
3359
  }
3360
- const o = new G(n);
3361
- return o.varying = s, o;
3360
+ const o = new G(s);
3361
+ return o.varying = n, o;
3362
3362
  }
3363
3363
  /**
3364
3364
  * @deprecated
3365
3365
  */
3366
- async changeInputTextWithRegion(A, e, t, a, s, n, i, o, c, r) {
3367
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = n.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
3366
+ async changeInputTextWithRegion(A, e, t, a, n, s, i, o, c, r) {
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(), C = /* @__PURE__ */ new Map();
3368
3368
  for (const p of d)
3369
3369
  if (p.region) {
3370
3370
  const [F, I] = pA(
@@ -3379,7 +3379,7 @@ class Ua {
3379
3379
  const h = (() => {
3380
3380
  if (A.data && A.data.maxLength && l.length > A.data.maxLength)
3381
3381
  return r && r(!0), { info: "0" };
3382
- const p = n.getProfanities(), F = XA(l.toLowerCase());
3382
+ const p = s.getProfanities(), F = XA(l.toLowerCase());
3383
3383
  for (const I of F)
3384
3384
  for (const f in p) {
3385
3385
  const M = p[f].toLowerCase().replace(/\s/g, "");
@@ -3395,11 +3395,11 @@ class Ua {
3395
3395
  }
3396
3396
  if (c(`${h.info} characters remaining` || ""), r)
3397
3397
  return;
3398
- n.updateStorage(A.stepName, { text: B }), n.updateMetadata(A.stepName, {
3398
+ s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
3399
3399
  text: this.injectReplaceableText(B, A.data)
3400
3400
  });
3401
- const Q = n.getTransaction().bulk && A.data.varyText || !1;
3402
- s.defaultCleared && n.setMandatoryFulfilled(A.stepName, !0);
3401
+ const Q = s.getTransaction().bulk && A.data.varyText || !1;
3402
+ n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
3403
3403
  const m = [];
3404
3404
  for (const p of d) {
3405
3405
  const F = A.data.curved ? l : (C.get(p.id) || []).join(`
@@ -4682,7 +4682,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
4682
4682
  </g>
4683
4683
  </svg>
4684
4684
 
4685
- `, H = (g) => Yt("http://www.w3.org/2000/svg", g), se = (g, A) => {
4685
+ `, H = (g) => Yt("http://www.w3.org/2000/svg", g), ne = (g, A) => {
4686
4686
  const e = H("rect");
4687
4687
  return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
4688
4688
  }, ka = () => {
@@ -4707,18 +4707,18 @@ function et(g, A, e) {
4707
4707
  const tt = (g, A, e, t) => {
4708
4708
  const a = wA("filter");
4709
4709
  a.setAttribute("id", t), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
4710
- const s = wA("feOffset");
4711
- a.appendChild(s), s.setAttribute("result", "offOut"), s.setAttribute("in", "SourceAlpha"), s.setAttribute("dx", `${g}`), s.setAttribute("dy", `${A}`);
4712
- const n = wA("feGaussianBlur");
4713
- a.appendChild(n), n.setAttribute("result", "blurOut"), n.setAttribute("in", "offOut"), n.setAttribute("stdDeviation", `${e}`);
4710
+ const n = wA("feOffset");
4711
+ a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${g}`), n.setAttribute("dy", `${A}`);
4712
+ const s = wA("feGaussianBlur");
4713
+ a.appendChild(s), s.setAttribute("result", "blurOut"), s.setAttribute("in", "offOut"), s.setAttribute("stdDeviation", `${e}`);
4714
4714
  const i = wA("feBlend");
4715
4715
  return a.appendChild(i), i.setAttribute("in", "SourceGraphic"), i.setAttribute("in2", "blurOut"), i.setAttribute("mode", "normal"), a;
4716
4716
  }, at = (g) => {
4717
4717
  let A = g;
4718
4718
  return A = A.replace(/feoffset/gi, "feOffset"), A = A.replace(/fegaussianblur/gi, "feGaussianBlur"), A = A.replace(/feblend/gi, "feBlend"), A = A.replace(/lineargradient/gi, "linearGradient"), A = A.replace(/stddeviation/gi, "stdDeviation"), A;
4719
4719
  };
4720
- function ne(g, A, e, t, a, s) {
4721
- const n = a || 1, i = s || 1, o = {
4720
+ function se(g, A, e, t, a, n) {
4721
+ const s = a || 1, i = n || 1, o = {
4722
4722
  x: A[0],
4723
4723
  y: A[1],
4724
4724
  width: A[2] - A[0],
@@ -4726,12 +4726,12 @@ function ne(g, A, e, t, a, s) {
4726
4726
  };
4727
4727
  if (o.width <= 0)
4728
4728
  return;
4729
- const c = Ta(o.height, o.width, e * n, t * i), r = (t - c * o.width) / 2 - c * o.x, B = (e - c * o.height) / 2 - c * o.y;
4729
+ const c = Ta(o.height, o.width, e * s, t * i), r = (t - c * o.width) / 2 - c * o.x, B = (e - c * o.height) / 2 - c * o.y;
4730
4730
  g.setAttribute("transform", `translate(${r} ${B}) scale(${c} ${c})`);
4731
4731
  }
4732
4732
  function Ta(g, A, e, t) {
4733
- const a = e / g, s = t / A;
4734
- return a > 1 && s > 1 ? Math.min(a, s) : a > 1 && s < 1 ? s : a < 1 && s > 1 ? a : Math.min(a, s);
4733
+ const a = e / g, n = t / A;
4734
+ return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
4735
4735
  }
4736
4736
  const Qe = {
4737
4737
  m: ["x", "y"],
@@ -4749,8 +4749,8 @@ class ie {
4749
4749
  constructor(A) {
4750
4750
  const e = Array.from(A.querySelectorAll("path"));
4751
4751
  this.paths = e.map((t) => {
4752
- const a = t.getAttribute("d") || "", s = this.parsePath(a);
4753
- return { pathElement: t, pathData: s };
4752
+ const a = t.getAttribute("d") || "", n = this.parsePath(a);
4753
+ return { pathElement: t, pathData: n };
4754
4754
  });
4755
4755
  }
4756
4756
  transform(A) {
@@ -4760,13 +4760,13 @@ class ie {
4760
4760
  }
4761
4761
  encodePath(A) {
4762
4762
  let e = "";
4763
- const a = (s) => {
4764
- const n = [], i = s.relative ? s.type : s.type.toUpperCase();
4763
+ const a = (n) => {
4764
+ const s = [], i = n.relative ? n.type : n.type.toUpperCase();
4765
4765
  let o = e !== i;
4766
- const c = Qe[s.type];
4767
- o && (n.push(i), e = i);
4766
+ const c = Qe[n.type];
4767
+ o && (s.push(i), e = i);
4768
4768
  for (const r of c) {
4769
- const B = s[r];
4769
+ const B = n[r];
4770
4770
  let l;
4771
4771
  switch (typeof B) {
4772
4772
  case "boolean":
@@ -4778,34 +4778,34 @@ class ie {
4778
4778
  default:
4779
4779
  throw new oA("Failed to encode path.");
4780
4780
  }
4781
- o || n.push(" "), n.push(l), o = !1;
4781
+ o || s.push(" "), s.push(l), o = !1;
4782
4782
  }
4783
- return n.join("");
4783
+ return s.join("");
4784
4784
  };
4785
4785
  return A.map(a).join("");
4786
4786
  }
4787
4787
  parsePath(A) {
4788
4788
  const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
4789
- let s;
4790
- for (e.lastIndex = 0; s = e.exec(A); ) {
4791
- const n = s[1].toLowerCase(), i = (s[2].match(t) || []).map(parseFloat), o = n === s[1], c = Qe[n];
4789
+ let n;
4790
+ for (e.lastIndex = 0; n = e.exec(A); ) {
4791
+ const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), o = s === n[1], c = Qe[s];
4792
4792
  if (i.length < c.length)
4793
4793
  throw new oA(
4794
- `Path type "${n}" given ${i.length} arguments, expected ${c.length}.`
4794
+ `Path type "${s}" given ${i.length} arguments, expected ${c.length}.`
4795
4795
  );
4796
4796
  if (c.length > 0) {
4797
4797
  if (i.length % c.length !== 0)
4798
4798
  throw new oA(
4799
- `Path type "${n}" given ${i.length} arguments, not divisible by ${c.length}`
4799
+ `Path type "${s}" given ${i.length} arguments, not divisible by ${c.length}`
4800
4800
  );
4801
4801
  for (let r = 0; r < i.length / c.length; r++) {
4802
- const B = { type: n, relative: o };
4802
+ const B = { type: s, relative: o };
4803
4803
  for (let l = 0; l < c.length; l++)
4804
4804
  B[c[l]] = i[r * c.length + l];
4805
4805
  a.push(B);
4806
4806
  }
4807
4807
  } else
4808
- a.push({ type: n, relative: o });
4808
+ a.push({ type: s, relative: o });
4809
4809
  }
4810
4810
  return a;
4811
4811
  }
@@ -4814,25 +4814,25 @@ class ie {
4814
4814
  ["x1", "y1"],
4815
4815
  ["x2", "y2"],
4816
4816
  ["x", "y"]
4817
- ], a = (s) => {
4818
- for (let n = 0; n < t.length; n++) {
4819
- const [i, o] = t[n];
4820
- if (i in s && o in s) {
4821
- const c = [s[i], s[o]], r = e(c);
4817
+ ], a = (n) => {
4818
+ for (let s = 0; s < t.length; s++) {
4819
+ const [i, o] = t[s];
4820
+ if (i in n && o in n) {
4821
+ const c = [n[i], n[o]], r = e(c);
4822
4822
  if (r.length < 2)
4823
4823
  throw new oA("Transformer must return at least 2 points.");
4824
- s[i] = r[0], s[o] = r[1];
4824
+ n[i] = r[0], n[o] = r[1];
4825
4825
  }
4826
4826
  }
4827
- return s;
4827
+ return n;
4828
4828
  };
4829
4829
  return this.transformPath(A, a);
4830
4830
  }
4831
4831
  transformPath(A, e) {
4832
4832
  const t = [];
4833
4833
  for (let a = 0; a < A.length; a++) {
4834
- const s = JSON.parse(JSON.stringify(A[a])), n = e(s);
4835
- Array.isArray(n) ? t.push(...n) : n && t.push(n);
4834
+ const n = JSON.parse(JSON.stringify(A[a])), s = e(n);
4835
+ Array.isArray(s) ? t.push(...s) : s && t.push(s);
4836
4836
  }
4837
4837
  return t;
4838
4838
  }
@@ -4854,11 +4854,11 @@ class La extends ae {
4854
4854
  return this.svg(A);
4855
4855
  }
4856
4856
  svg(A) {
4857
- const e = PA(Ga), a = A !== "" ? ((n) => n.charAt(0).toUpperCase() + n.substr(1).toLowerCase())(A) : "", s = e.getPath(a, 0, 72, 72);
4858
- return this.brandSvg(s, va);
4857
+ const e = PA(Ga), a = A !== "" ? ((s) => s.charAt(0).toUpperCase() + s.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72);
4858
+ return this.brandSvg(n, va);
4859
4859
  }
4860
4860
  brandSvg(A, e) {
4861
- const t = A.toSVG(2), a = A.getBoundingBox(), s = a.x2 - a.x1, n = A.toPathData(3), i = () => {
4861
+ const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
4862
4862
  const p = H("g"), F = H("defs");
4863
4863
  p.appendChild(F), F.appendChild(tt(3, 7, 4, "shadow"));
4864
4864
  const I = H("g");
@@ -4868,7 +4868,7 @@ class La extends ae {
4868
4868
  const M = H("g");
4869
4869
  p.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = t;
4870
4870
  const Y = H("g");
4871
- return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = t, new ie(p).transform(([S, k]) => [S, k + (s / 2 - S) ** 2 / (s * 2.9)]), p;
4871
+ return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = t, new ie(p).transform(([S, k]) => [S, k + (n / 2 - S) ** 2 / (n * 2.9)]), p;
4872
4872
  }, [o, c, r] = At(e);
4873
4873
  if (!o)
4874
4874
  return "";
@@ -4876,14 +4876,14 @@ class La extends ae {
4876
4876
  o.appendChild(B), et(o, B, e);
4877
4877
  const l = c * 0.23, d = r * 0.94, E = r * 0.04, C = c * 0.53, w = H("g");
4878
4878
  o.appendChild(w), w.setAttribute("transform", `translate(${E} ${C}) rotate(-21)`);
4879
- const h = se(l, d);
4879
+ const h = ne(l, d);
4880
4880
  h.setAttribute("opacity", "0"), w.appendChild(h);
4881
4881
  const Q = H("g");
4882
4882
  w.appendChild(Q);
4883
4883
  const m = i();
4884
4884
  Q.appendChild(m);
4885
- const u = ee(n);
4886
- return ne(Q, u, l, d), at(o.outerHTML);
4885
+ const u = ee(s);
4886
+ return se(Q, u, l, d), at(o.outerHTML);
4887
4887
  }
4888
4888
  }
4889
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==";
@@ -4898,11 +4898,11 @@ class za extends ae {
4898
4898
  return this.svg(A);
4899
4899
  }
4900
4900
  svg(A) {
4901
- const e = PA(Oa), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "", s = e.getPath(a, 0, 72, 72), n = A.length < this.shortLength, i = n ? this.backgroundShortSvg : this.backgroundSvg;
4902
- return this.brandSvg(s, i, n);
4901
+ const e = PA(Oa), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), s = A.length < this.shortLength, i = s ? this.backgroundShortSvg : this.backgroundSvg;
4902
+ return this.brandSvg(n, i, s);
4903
4903
  }
4904
4904
  brandSvg(A, e, t) {
4905
- const a = A.toSVG(2), s = A.getBoundingBox(), n = s.y2 - s.y1, i = s.x2 - s.x1, o = A.toPathData(3), c = () => {
4905
+ const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), c = () => {
4906
4906
  const I = H("g"), f = H("g");
4907
4907
  I.appendChild(f), f.setAttribute("stroke", "#5C1A0D"), f.setAttribute("stroke-width", "4"), f.setAttribute("transform", "translate(1,1)"), f.innerHTML = a;
4908
4908
  const M = H("g");
@@ -4913,7 +4913,7 @@ class za extends ae {
4913
4913
  return R.transform(([S, k]) => [S, k + ((i - S) * k) ** 2 / (i * 5e4)]), R.transform(([S, k]) => [
4914
4914
  S,
4915
4915
  k + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
4916
- ]), R.transform(([S, k]) => [S - (n - k) * (i - S) / 800, k]), I;
4916
+ ]), R.transform(([S, k]) => [S - (s - k) * (i - S) / 800, k]), I;
4917
4917
  }, [r, B, l] = At(e);
4918
4918
  if (!r)
4919
4919
  return "";
@@ -4923,14 +4923,14 @@ class za extends ae {
4923
4923
  t ? (E = B * 0.25 * (1 + 0.1), C = l / 2 * (1 + 0.1), w = l * 0.22, h = B * 0.32) : (E = B * 0.22 * (1 + 0.1), C = l * 0.8, w = l * 0.067, h = B * 0.33);
4924
4924
  const Q = H("g");
4925
4925
  r.appendChild(Q), Q.setAttribute("transform", `translate(${w} ${h}) rotate(-10)`);
4926
- const m = se(E, C);
4926
+ const m = ne(E, C);
4927
4927
  m.setAttribute("opacity", "0"), Q.appendChild(m);
4928
4928
  const u = H("g");
4929
4929
  Q.appendChild(u);
4930
4930
  const p = c();
4931
4931
  u.appendChild(p);
4932
4932
  const F = ee(o);
4933
- return ne(u, F, E, C), r.outerHTML;
4933
+ return se(u, F, E, C), r.outerHTML;
4934
4934
  }
4935
4935
  // 1 if true, 0 if false.
4936
4936
  }
@@ -4946,7 +4946,7 @@ class ja extends ae {
4946
4946
  return this.svgElement(A, e);
4947
4947
  }
4948
4948
  svgElement(A, e) {
4949
- const t = PA(Ka), s = A !== "" ? ((m) => m.charAt(0).toUpperCase() + m.substr(1).toLowerCase())(A) : "", n = t.getPath(s, 0, 72, 72), i = n.toSVG(2), o = n.getBoundingBox(), c = o.x2 - o.x1, r = n.toPathData(3), B = () => {
4949
+ const t = PA(Ka), n = A !== "" ? ((m) => m.charAt(0).toUpperCase() + m.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), c = o.x2 - o.x1, r = s.toPathData(3), B = () => {
4950
4950
  const m = H("g");
4951
4951
  m.classList.add("module-text-group");
4952
4952
  const u = H("defs");
@@ -4967,17 +4967,17 @@ class ja extends ae {
4967
4967
  l.appendChild(d);
4968
4968
  const E = H("g");
4969
4969
  E.classList.add("module-bounds"), l.appendChild(E);
4970
- const C = se(e.height, e.width);
4970
+ const C = ne(e.height, e.width);
4971
4971
  C.setAttribute("opacity", "0"), E.appendChild(C);
4972
4972
  const w = H("g");
4973
4973
  w.classList.add("module-text-enclosure"), l.appendChild(w);
4974
4974
  const h = B();
4975
4975
  w.appendChild(h);
4976
4976
  const Q = ee(r);
4977
- return ne(w, Q, e.height, e.width, 0.35, 0.65), at(l.outerHTML);
4977
+ return se(w, Q, e.height, e.width, 0.35, 0.65), at(l.outerHTML);
4978
4978
  }
4979
4979
  }
4980
- async function st(g) {
4980
+ async function nt(g) {
4981
4981
  if (g === "Favourites")
4982
4982
  return new La();
4983
4983
  if (g === "Maltesers") {
@@ -5004,7 +5004,7 @@ class ue extends Ve {
5004
5004
  }
5005
5005
  class Wa {
5006
5006
  // True when the transaction is being reloaded, rather than newly created.
5007
- constructor(A, e, t, a, s, n, i, o, c, r, B = !1, l, d = !1) {
5007
+ constructor(A, e, t, a, n, s, i, o, c, r, B = !1, l, d = !1) {
5008
5008
  this.workflowStatePromiseQueue = new We(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.render3DScene = () => {
5009
5009
  var w;
5010
5010
  if (!this.previewService)
@@ -5018,7 +5018,7 @@ class Wa {
5018
5018
  this.getCurrentVariationRecord(),
5019
5019
  this.getProduct().overlayImageUrl
5020
5020
  );
5021
- }, this.updateTransaction = s, this.commandContext = a, this.reloadedState = r, this.transaction = n, 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.invalidModelVariants = [], this.currentAdjustingStepId = "", this.renderableContextService = c, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, n), this.initializationPromise.then(() => {
5021
+ }, this.updateTransaction = n, this.commandContext = a, this.reloadedState = r, 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.invalidModelVariants = [], this.currentAdjustingStepId = "", this.renderableContextService = c, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
5022
5022
  this.initialized = !0;
5023
5023
  }), this.initializationPromise.catch((E) => {
5024
5024
  throw console.error(E), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
@@ -5050,8 +5050,8 @@ class Wa {
5050
5050
  },
5051
5051
  e
5052
5052
  );
5053
- const s = rA(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(s, !!this.reloadedState);
5054
- this.commandContext.apply(new G(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.render3DScene(), this.reloadedState && t();
5053
+ const n = rA(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: s, commands: i } = await this.stepElementsForIntroducedSilentSteps(n, !!this.reloadedState);
5054
+ this.commandContext.apply(new G(i), !0), this.stepElements = { ...this.stepElements, ...s }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.render3DScene(), this.reloadedState && t();
5055
5055
  }
5056
5056
  getProduct() {
5057
5057
  return this.product;
@@ -5063,7 +5063,7 @@ class Wa {
5063
5063
  return this.initialized;
5064
5064
  }
5065
5065
  addVariationRecord(A) {
5066
- const e = this.variationRecords.reduce((a, s) => s.recordNumber > a ? s.recordNumber : a, 0), t = { ...A, recordNumber: e + 1 };
5066
+ const e = this.variationRecords.reduce((a, n) => n.recordNumber > a ? n.recordNumber : a, 0), t = { ...A, recordNumber: e + 1 };
5067
5067
  return this.variationRecords.push(t), this.onVariationRecordsChange(), t;
5068
5068
  }
5069
5069
  removeVariationRecord(A) {
@@ -5268,9 +5268,9 @@ class Wa {
5268
5268
  const A = [];
5269
5269
  return this.allScenes.forEach((e) => {
5270
5270
  e.renderableSteps.forEach((t) => {
5271
- var s, n;
5271
+ var n, s;
5272
5272
  const a = { stepName: t.stepName };
5273
- a.storage = this.storage[t.stepName], a.selectedVariants = (n = (s = this.stepSelections[t.stepName]) == null ? void 0 : s.selectedVariants) == null ? void 0 : n.map(
5273
+ a.storage = this.storage[t.stepName], a.selectedVariants = (s = (n = this.stepSelections[t.stepName]) == null ? void 0 : n.selectedVariants) == null ? void 0 : s.map(
5274
5274
  (i) => ({ id: i.id, priceModifier: i.priceModifier })
5275
5275
  ), A.push(a);
5276
5276
  });
@@ -5315,8 +5315,8 @@ class Wa {
5315
5315
  layouts: {},
5316
5316
  serializableWorkflow: { steps: [] },
5317
5317
  ...gA(t) || {}
5318
- }, s = JSON.stringify(this.dehydrateState(a));
5319
- return { transaction: e, variation: s };
5318
+ }, n = JSON.stringify(this.dehydrateState(a));
5319
+ return { transaction: e, variation: n };
5320
5320
  }
5321
5321
  dehydrateState(A) {
5322
5322
  for (const e of Object.values(A.layouts).map((t) => t.elements).flat())
@@ -5333,12 +5333,12 @@ class Wa {
5333
5333
  }, this.onMetadataChange();
5334
5334
  }
5335
5335
  removeElements(A) {
5336
- const e = (t, a) => Object.keys(t).reduce((s, n) => {
5337
- const i = [...t[n] || []];
5336
+ const e = (t, a) => Object.keys(t).reduce((n, s) => {
5337
+ const i = [...t[s] || []];
5338
5338
  return a.forEach((o) => {
5339
5339
  const c = i.findIndex((r) => r.id === o.id);
5340
5340
  c > -1 && i.splice(c, 1);
5341
- }), s[n] = i, s;
5341
+ }), n[s] = i, n;
5342
5342
  }, {});
5343
5343
  this.stepElements = e(this.stepElements, A);
5344
5344
  }
@@ -5370,18 +5370,18 @@ class Wa {
5370
5370
  return { step: c, results: l };
5371
5371
  }
5372
5372
  return Promise.reject("Unknown silent step. This is a bug");
5373
- }, s = A.filter(
5373
+ }, n = A.filter(
5374
5374
  (c) => !this.stepInitialised[c.stepName]
5375
- ), n = {
5375
+ ), s = {
5376
5376
  stepElements: {},
5377
5377
  commands: []
5378
5378
  }, i = [];
5379
- for (const c of s)
5379
+ for (const c of n)
5380
5380
  this.markStepsAsInitialised([c.stepName]), e || i.push(a(c, this.layouts, t));
5381
5381
  const o = await Promise.all(i);
5382
5382
  for (const c of o)
5383
- n.stepElements[c.step.stepName] = c.results.map((r) => r.regionElement), n.commands = [...n.commands, ...c.results.map((r) => r.command)];
5384
- return n;
5383
+ s.stepElements[c.step.stepName] = c.results.map((r) => r.regionElement), s.commands = [...s.commands, ...c.results.map((r) => r.command)];
5384
+ return s;
5385
5385
  }
5386
5386
  getStepStorage(A) {
5387
5387
  return this.storage[A];
@@ -5413,14 +5413,14 @@ class Wa {
5413
5413
  }
5414
5414
  async setSelectionsAndElements(A, e, t, a) {
5415
5415
  var m;
5416
- const s = this.stepSelections;
5416
+ const n = this.stepSelections;
5417
5417
  this.stepSelections = {
5418
5418
  ...this.stepSelections,
5419
5419
  [A]: { selectedVariants: e }
5420
5420
  }, this.selectionCost = Object.values(this.stepSelections).reduce((u, p) => u + p.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, I) => F + I, 0), 0), this.workflow.steps.forEach((u) => {
5421
5421
  tA(u, this.stepSelections) || (this.stepInitialised[u.stepName] = !1, delete this.stepMetadata[u.stepName], delete this.stepSelections[u.stepName], delete this.storage[u.stepName]);
5422
5422
  });
5423
- const n = this.allScenes, i = rA(n, s), o = rA(n, this.stepSelections), c = i.map((u) => u.silentSteps).flat(), B = o.map((u) => u.silentSteps).flat().filter(
5423
+ const s = this.allScenes, i = rA(s, n), o = rA(s, this.stepSelections), c = i.map((u) => u.silentSteps).flat(), B = o.map((u) => u.silentSteps).flat().filter(
5424
5424
  (u) => !c.some((p) => p.stepName === u.stepName)
5425
5425
  );
5426
5426
  c.forEach((u) => {
@@ -5487,7 +5487,7 @@ class Wa {
5487
5487
  break;
5488
5488
  case D.Module:
5489
5489
  this.stepSpecificServices[r.stepName] = {
5490
- module: await st(r.data.module)
5490
+ module: await nt(r.data.module)
5491
5491
  }, t.push(
5492
5492
  Ya.init(r, this, this.reloadedState)
5493
5493
  );
@@ -5509,12 +5509,12 @@ class Wa {
5509
5509
  t.push(K.init(r, this, this.reloadedState));
5510
5510
  break;
5511
5511
  }
5512
- const s = (await Promise.allSettled(t)).map((r) => {
5512
+ const n = (await Promise.allSettled(t)).map((r) => {
5513
5513
  if (r.status === "rejected")
5514
5514
  throw new Error(`Step initialization failed: ${r.reason}`);
5515
5515
  return r.value;
5516
- }), n = s.filter((r) => !!r && !!r.command).map((r) => r.command), i = s.filter((r) => !!r && !!r.followup).map((r) => r.followup);
5517
- n && n.length > 0 && this.commandContext.apply(new G(n), !0);
5516
+ }), s = n.filter((r) => !!r && !!r.command).map((r) => r.command), i = n.filter((r) => !!r && !!r.followup).map((r) => r.followup);
5517
+ s && s.length > 0 && this.commandContext.apply(new G(s), !0);
5518
5518
  for (const r of i)
5519
5519
  await r();
5520
5520
  i.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
@@ -5631,8 +5631,8 @@ class X {
5631
5631
  * @returns The URL for a thumbnail resource configured on this variant.
5632
5632
  */
5633
5633
  getThumbnail() {
5634
- var t, a, s, n;
5635
- const A = (s = (a = (t = this.variantData.thumbnail) == null ? void 0 : t.versions) == null ? void 0 : a.find((i) => i.name === "thumbnail")) == null ? void 0 : s.link, e = (n = this.variantData.thumbnail) == null ? void 0 : n.fileLink;
5634
+ var t, a, n, s;
5635
+ const A = (n = (a = (t = this.variantData.thumbnail) == null ? void 0 : t.versions) == null ? void 0 : a.find((i) => i.name === "thumbnail")) == null ? void 0 : n.link, e = (s = this.variantData.thumbnail) == null ? void 0 : s.fileLink;
5636
5636
  return A || e;
5637
5637
  }
5638
5638
  /**
@@ -5668,7 +5668,7 @@ class X {
5668
5668
  return this.variantData.enabled;
5669
5669
  }
5670
5670
  }
5671
- const nt = class ZA {
5671
+ const st = class ZA {
5672
5672
  constructor(A, e) {
5673
5673
  this.manager = A, this.step = e;
5674
5674
  }
@@ -5755,8 +5755,8 @@ const nt = class ZA {
5755
5755
  A && a && A.executeCameraAnimation(a), e && t && e.executeAnimation(t);
5756
5756
  }
5757
5757
  };
5758
- nt.updateState = /* @__PURE__ */ new Map();
5759
- let j = nt;
5758
+ st.updateState = /* @__PURE__ */ new Map();
5759
+ let j = st;
5760
5760
  const it = y`
5761
5761
  mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
5762
5762
  transactionAddStakeholder(id: $id, details: $details, type: $type) {
@@ -5919,7 +5919,7 @@ class _a extends j {
5919
5919
  );
5920
5920
  }
5921
5921
  }
5922
- class As extends j {
5922
+ class An extends j {
5923
5923
  constructor(A, e) {
5924
5924
  super(A, e);
5925
5925
  }
@@ -5937,7 +5937,7 @@ class As extends j {
5937
5937
  );
5938
5938
  }
5939
5939
  }
5940
- class es extends j {
5940
+ class en extends j {
5941
5941
  constructor(A, e) {
5942
5942
  super(A, e);
5943
5943
  }
@@ -5954,7 +5954,7 @@ class es extends j {
5954
5954
  return (A = this.step.option) == null ? void 0 : A.displayType;
5955
5955
  }
5956
5956
  }
5957
- class ts extends j {
5957
+ class tn extends j {
5958
5958
  constructor(A, e) {
5959
5959
  super(A, e);
5960
5960
  }
@@ -6016,7 +6016,7 @@ class ts extends j {
6016
6016
  return A;
6017
6017
  }
6018
6018
  }
6019
- class as extends j {
6019
+ class an extends j {
6020
6020
  constructor(A, e) {
6021
6021
  super(A, e);
6022
6022
  }
@@ -6086,8 +6086,8 @@ class as extends j {
6086
6086
  * @param shouldCustomizeAll When true the user can configure the entire text string.
6087
6087
  */
6088
6088
  setFullTextCustomization(A) {
6089
- var n;
6090
- const e = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.inputText) || "", t = this.step.data.replaceableText !== void 0 ? this.step.data.replaceableText.replace("{{}}", e) : e, a = A ? t : this.step.data.defaultText;
6089
+ var s;
6090
+ const e = ((s = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : s.inputText) || "", t = this.step.data.replaceableText !== void 0 ? this.step.data.replaceableText.replace("{{}}", e) : e, a = A ? t : this.step.data.defaultText;
6091
6091
  return this.manager.updateStorage(this.step.stepName, {
6092
6092
  customiseAllText: A,
6093
6093
  text: a,
@@ -6104,10 +6104,10 @@ class as extends j {
6104
6104
  input: A
6105
6105
  }, t = K.findLayoutElements(this.manager, this.step), a = K.filterUnsupportedCharacters(A, (d = t[0]) == null ? void 0 : d.fontData);
6106
6106
  !!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (e.input = a);
6107
- const n = t.length <= 0, i = n ? { inputText: a, text: a } : { inputText: a };
6107
+ const s = t.length <= 0, i = s ? { inputText: a, text: a } : { inputText: a };
6108
6108
  if (this.manager.updateStorage(this.step.stepName, i), this.manager.updateMetadata(this.step.stepName, {
6109
6109
  text: a
6110
- }), n)
6110
+ }), s)
6111
6111
  return e;
6112
6112
  const { command: o, errors: c, helperText: r } = K.updateInputText(
6113
6113
  a,
@@ -6189,7 +6189,7 @@ class as extends j {
6189
6189
  return A - e.length;
6190
6190
  }
6191
6191
  }
6192
- class ss extends j {
6192
+ class nn extends j {
6193
6193
  constructor(A, e) {
6194
6194
  super(A, e);
6195
6195
  }
@@ -6206,23 +6206,23 @@ class iA {
6206
6206
  static get(A, e) {
6207
6207
  switch (e.type) {
6208
6208
  case D.Information:
6209
- return new ss(A, e);
6209
+ return new nn(A, e);
6210
6210
  case D.Question:
6211
- return new es(A, e);
6211
+ return new en(A, e);
6212
6212
  case D.Text:
6213
- return new as(A, e);
6213
+ return new an(A, e);
6214
6214
  case D.Illustration:
6215
6215
  return new Za(A, e);
6216
6216
  case D.Picture:
6217
- return new As(A, e);
6217
+ return new An(A, e);
6218
6218
  case D.Shape:
6219
- return new ts(A, e);
6219
+ return new tn(A, e);
6220
6220
  case D.Material:
6221
6221
  return new $a(A, e);
6222
6222
  case D.Model:
6223
6223
  return new _a(A, e);
6224
6224
  case D.Frame:
6225
- return new pn(A, e);
6225
+ return new ps(A, e);
6226
6226
  case D.Bulk:
6227
6227
  return new qa(A, e);
6228
6228
  default:
@@ -6247,7 +6247,7 @@ const ot = y`
6247
6247
  workflowViewerLink
6248
6248
  workflowViewerReadOnlyLink
6249
6249
  }
6250
- `, ns = y`
6250
+ `, sn = y`
6251
6251
  ${ot}
6252
6252
  mutation CreateDesign(
6253
6253
  $name: String!
@@ -6279,7 +6279,7 @@ const ot = y`
6279
6279
  }
6280
6280
  }
6281
6281
  }
6282
- `, is = y`
6282
+ `, on = y`
6283
6283
  ${ot}
6284
6284
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
6285
6285
  designCreateMany(inputs: $inputs) {
@@ -6293,10 +6293,10 @@ const ot = y`
6293
6293
  }
6294
6294
  }
6295
6295
  }
6296
- `, os = async (g) => {
6296
+ `, rn = async (g) => {
6297
6297
  var e;
6298
6298
  return (e = (await N.getShadowGraphqlClient().mutate({
6299
- mutation: ns,
6299
+ mutation: sn,
6300
6300
  errorPolicy: "all",
6301
6301
  fetchPolicy: "no-cache",
6302
6302
  variables: {
@@ -6310,10 +6310,10 @@ const ot = y`
6310
6310
  selectedVariants: g.selectedVariants
6311
6311
  }
6312
6312
  })).data) == null ? void 0 : e.designCreate;
6313
- }, rs = async (g) => {
6313
+ }, cn = async (g) => {
6314
6314
  var e;
6315
6315
  return (e = (await N.getShadowGraphqlClient().mutate({
6316
- mutation: is,
6316
+ mutation: on,
6317
6317
  errorPolicy: "all",
6318
6318
  fetchPolicy: "no-cache",
6319
6319
  variables: {
@@ -6330,61 +6330,61 @@ const ot = y`
6330
6330
  }
6331
6331
  })).data) == null ? void 0 : e.designCreateMany;
6332
6332
  }, $A = (g, A, e) => {
6333
- const t = (s) => {
6334
- const n = {};
6335
- if (s.type === "Frame") {
6336
- const i = g[s.stepName], o = s.data;
6333
+ const t = (n) => {
6334
+ const s = {};
6335
+ if (n.type === "Frame") {
6336
+ const i = g[n.stepName], o = n.data;
6337
6337
  if (!i || o.hideImageInCart && e)
6338
- return n;
6339
- n[`${s.stepTitle} image`] = i.image;
6338
+ return s;
6339
+ s[`${n.stepTitle} image`] = i.image;
6340
6340
  }
6341
- if (s.type === "Illustration") {
6342
- const i = g[s.stepName], o = s.data;
6341
+ if (n.type === "Illustration") {
6342
+ const i = g[n.stepName], o = n.data;
6343
6343
  if (!i || o.hideColorsInCart && e || !i.colors)
6344
- return n;
6344
+ return s;
6345
6345
  if (i.colors.length > 0) {
6346
6346
  const c = i.colors.join(", ").toUpperCase();
6347
- n[`${s.stepTitle} colors`] = c;
6347
+ s[`${n.stepTitle} colors`] = c;
6348
6348
  }
6349
6349
  }
6350
- if (s.type === "Module") {
6351
- const i = g[s.stepName], o = s.data;
6350
+ if (n.type === "Module") {
6351
+ const i = g[n.stepName], o = n.data;
6352
6352
  if (!i || o.hideTextInCart && e)
6353
- return n;
6354
- n[`${s.stepTitle} text`] = i.text;
6353
+ return s;
6354
+ s[`${n.stepTitle} text`] = i.text;
6355
6355
  }
6356
- if (s.type === "Text") {
6357
- const i = g[s.stepName];
6356
+ if (n.type === "Text") {
6357
+ const i = g[n.stepName];
6358
6358
  if (!i)
6359
- return n;
6360
- const o = s.data;
6361
- (!o.hideTextInCart || !e) && (n[`${s.stepTitle} text`] = i.text), i.color && (!o.hideColorInCart || !e) && (n[`${s.stepTitle} color`] = i.color);
6359
+ return s;
6360
+ const o = n.data;
6361
+ (!o.hideTextInCart || !e) && (s[`${n.stepTitle} text`] = i.text), i.color && (!o.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
6362
6362
  }
6363
- return n;
6363
+ return s;
6364
6364
  }, a = {};
6365
- return A.steps.forEach((s) => {
6366
- Object.assign(a, t(s));
6365
+ return A.steps.forEach((n) => {
6366
+ Object.assign(a, t(n));
6367
6367
  }), a;
6368
- }, cs = (g, A, e, t) => {
6368
+ }, gn = (g, A, e, t) => {
6369
6369
  const a = {};
6370
- let s;
6370
+ let n;
6371
6371
  if (e) {
6372
- s = $A(e, A, !1);
6373
- for (const n of Object.keys(s))
6374
- a[n] = {
6375
- value: s[n],
6372
+ n = $A(e, A, !1);
6373
+ for (const s of Object.keys(n))
6374
+ a[s] = {
6375
+ value: n[s],
6376
6376
  priceModifier: 0
6377
6377
  };
6378
6378
  } else if (t) {
6379
- s = t;
6380
- for (const n of Object.keys(s))
6381
- a[n] = {
6382
- value: s[n],
6379
+ n = t;
6380
+ for (const s of Object.keys(n))
6381
+ a[s] = {
6382
+ value: n[s],
6383
6383
  priceModifier: 0
6384
6384
  };
6385
6385
  }
6386
- for (const n of Object.keys(g)) {
6387
- const i = g[n], o = A.steps.find((c) => c.stepTitle === n);
6386
+ for (const s of Object.keys(g)) {
6387
+ const i = g[s], o = A.steps.find((c) => c.stepTitle === s);
6388
6388
  if (i.length === 1)
6389
6389
  a[`${o == null ? void 0 : o.stepTitle} selection`] = {
6390
6390
  value: i[0].name,
@@ -6398,16 +6398,16 @@ const ot = y`
6398
6398
  };
6399
6399
  }
6400
6400
  return a;
6401
- }, rt = (g, A, e, t, a, s, n, i, o, c) => {
6401
+ }, rt = (g, A, e, t, a, n, s, i, o, c) => {
6402
6402
  const B = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
6403
6403
  baseCost: e,
6404
6404
  designProductId: g.externalDesignProductId,
6405
6405
  designProductVariantId: g.externalDesignProductVariantId,
6406
6406
  event: "onComplete",
6407
- exportedData: s,
6407
+ exportedData: n,
6408
6408
  externalCartProductId: g.externalCartProductId,
6409
6409
  externalCartProductVariantId: g.externalCartProductVariantId,
6410
- lineItemImageUrl: n || "",
6410
+ lineItemImageUrl: s || "",
6411
6411
  optionsCost: t,
6412
6412
  processExecutionId: c,
6413
6413
  transactionId: g.id,
@@ -6417,8 +6417,8 @@ const ot = y`
6417
6417
  workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
6418
6418
  };
6419
6419
  return a && (l.metadata = a), i && (l.selectedVariants = i), o && (l.sku = o), l;
6420
- }, gs = (g, A, e, t) => {
6421
- const a = (A.basePrice || 0) * (g.variationsCount || 0), s = g.priceModifierTotal || 0, n = {
6420
+ }, ln = (g, A, e, t) => {
6421
+ const a = (A.basePrice || 0) * (g.variationsCount || 0), n = g.priceModifierTotal || 0, s = {
6422
6422
  items: {
6423
6423
  value: g.variationsCount ? `${g.variationsCount}` : "0",
6424
6424
  priceModifier: 0
@@ -6428,29 +6428,29 @@ const ot = y`
6428
6428
  g,
6429
6429
  A,
6430
6430
  a,
6431
- s,
6432
- void 0,
6433
6431
  n,
6432
+ void 0,
6433
+ s,
6434
6434
  e,
6435
6435
  void 0,
6436
6436
  void 0,
6437
6437
  t
6438
6438
  );
6439
- }, ct = async (g, A, e, t, a, s, n, i) => {
6440
- const o = A.basePrice || 0, c = g.priceModifierTotal || 0, r = cs(t, e, void 0, s);
6439
+ }, ct = async (g, A, e, t, a, n, s, i) => {
6440
+ const o = A.basePrice || 0, c = g.priceModifierTotal || 0, r = gn(t, e, void 0, n);
6441
6441
  return rt(
6442
6442
  g,
6443
6443
  A,
6444
6444
  o,
6445
6445
  c,
6446
- s,
6447
- r,
6448
6446
  n,
6447
+ r,
6448
+ s,
6449
6449
  t,
6450
6450
  a,
6451
6451
  i
6452
6452
  );
6453
- }, gt = async (g, A, e, t, a, s, n, i, o, c) => {
6453
+ }, gt = async (g, A, e, t, a, n, s, i, o, c) => {
6454
6454
  var f;
6455
6455
  await (async () => {
6456
6456
  var S;
@@ -6470,9 +6470,9 @@ const ot = y`
6470
6470
  const l = g.getPreviewService(), d = (f = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : f.lookAtAnimation, E = l && l.getSceneInitializationProgress() === 100 && A.showModelOnFinishStep && !!d, C = o && $A(o, A, !0), w = o && $A(o, A, !1), h = async (M) => {
6471
6471
  const Y = {};
6472
6472
  let R = 0;
6473
- if (Object.keys(s).length > 0)
6474
- for (const S of Object.keys(s)) {
6475
- const k = s[S], V = A.steps.find((W) => W.stepName === S);
6473
+ if (Object.keys(n).length > 0)
6474
+ for (const S of Object.keys(n)) {
6475
+ const k = n[S], V = A.steps.find((W) => W.stepName === S);
6476
6476
  for (let W = 0; W < k.selections.length; ++W) {
6477
6477
  const q = k.selections[W];
6478
6478
  if (V && (!M || V.option && (V.option.variants || []).length > 1 && !V.data.hideSelectionInCart && !V.data.hideSelectionsInCart)) {
@@ -6504,7 +6504,7 @@ const ot = y`
6504
6504
  return {
6505
6505
  designDetails: (() => {
6506
6506
  const M = {
6507
- name: n,
6507
+ name: s,
6508
6508
  layouts: e.map((Y) => ({
6509
6509
  index: Y.index,
6510
6510
  panelId: Y.panelId
@@ -6531,7 +6531,7 @@ const ot = y`
6531
6531
  cartSelectionsWithPrices: Q,
6532
6532
  cartMetadata: C
6533
6533
  };
6534
- }, ls = async (g, A, e, t, a, s, n, i, o, c, r, B, l) => {
6534
+ }, Bn = async (g, A, e, t, a, n, s, i, o, c, r, B, l) => {
6535
6535
  var m, u, p;
6536
6536
  o("workflow.steps.finish.finalize.buildingLayouts");
6537
6537
  const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await gt(
@@ -6539,19 +6539,19 @@ const ot = y`
6539
6539
  A,
6540
6540
  e,
6541
6541
  t,
6542
- s,
6543
6542
  n,
6543
+ s,
6544
6544
  i,
6545
6545
  B,
6546
6546
  l
6547
6547
  );
6548
- o("workflow.steps.finish.finalize.creatingDesign"), s.bulk && await c(r);
6549
- const w = await os(d), h = (m = w == null ? void 0 : w.transaction) == null ? void 0 : m.previewImageLink;
6548
+ o("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await c(r);
6549
+ const w = await rn(d), h = (m = w == null ? void 0 : w.transaction) == null ? void 0 : m.previewImageLink;
6550
6550
  if (!(w != null && w.transaction))
6551
6551
  throw new Error("Failed to create design");
6552
6552
  o("workflow.steps.finish.finalize.updatingTransaction");
6553
6553
  const Q = w.transaction;
6554
- return s.bulk ? gs(
6554
+ return n.bulk ? ln(
6555
6555
  Q,
6556
6556
  a,
6557
6557
  h,
@@ -6566,10 +6566,10 @@ const ot = y`
6566
6566
  h,
6567
6567
  (p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
6568
6568
  );
6569
- }, Bs = async (g, A) => {
6569
+ }, dn = async (g, A) => {
6570
6570
  A("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
6571
- g.map(async (n) => {
6572
- await n.workflowManager.outstandingRequestsPromise();
6571
+ g.map(async (s) => {
6572
+ await s.workflowManager.outstandingRequestsPromise();
6573
6573
  })
6574
6574
  );
6575
6575
  const t = await (async () => {
@@ -6584,43 +6584,43 @@ const ot = y`
6584
6584
  i.errors && console.log("Server Error:", c.message);
6585
6585
  }), null) : (o = i.data) != null && o.transactions ? i.data.transactions.map((c) => c.workflowState ?? null) : null;
6586
6586
  })(), a = await Promise.all(
6587
- g.map(async (n, i) => await gt(
6588
- n.workflowManager,
6589
- n.workflow,
6590
- n.layouts,
6591
- n.getReducerState,
6592
- n.transaction,
6593
- n.workflowSelections,
6594
- n.designName,
6587
+ g.map(async (s, i) => await gt(
6588
+ s.workflowManager,
6589
+ s.workflow,
6590
+ s.layouts,
6591
+ s.getReducerState,
6592
+ s.transaction,
6593
+ s.workflowSelections,
6594
+ s.designName,
6595
6595
  // createPreviewImage,
6596
6596
  () => Promise.resolve(void 0),
6597
- n.workflowMetadata,
6597
+ s.workflowMetadata,
6598
6598
  t ? t[i] : void 0
6599
6599
  ))
6600
6600
  );
6601
6601
  A("workflow.steps.finish.finalize.creatingDesign");
6602
- const s = await rs(a.map((n) => n.designDetails));
6603
- if (!s)
6602
+ const n = await cn(a.map((s) => s.designDetails));
6603
+ if (!n)
6604
6604
  throw new Error("Failed to create designs");
6605
6605
  return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
6606
- s.map(async (n, i) => {
6606
+ n.map(async (s, i) => {
6607
6607
  var B;
6608
- const o = g[i], c = a[i], r = n.transaction;
6608
+ const o = g[i], c = a[i], r = s.transaction;
6609
6609
  return await ct(
6610
6610
  r,
6611
6611
  o.product,
6612
6612
  o.workflow,
6613
6613
  c.cartSelectionsWithPrices,
6614
- n.sku,
6614
+ s.sku,
6615
6615
  c.cartMetadata,
6616
6616
  //lineItemImageLink,
6617
6617
  void 0,
6618
- (B = n.processExecution) == null ? void 0 : B.id
6618
+ (B = s.processExecution) == null ? void 0 : B.id
6619
6619
  );
6620
6620
  })
6621
6621
  );
6622
6622
  };
6623
- class ds {
6623
+ class wn {
6624
6624
  constructor() {
6625
6625
  this.localPersistenceKey = "designTransactions", this.storageMethod = "Local", this.designSavedListeners = [];
6626
6626
  }
@@ -6666,7 +6666,7 @@ class ds {
6666
6666
  * Change the user's name of the given saved design.
6667
6667
  */
6668
6668
  async renameDesign(A, e) {
6669
- const t = await this.getSavedDesigns(), a = t.find((s) => s.transactionId === A);
6669
+ const t = await this.getSavedDesigns(), a = t.find((n) => n.transactionId === A);
6670
6670
  if (!a)
6671
6671
  throw new Error(`No saved design for transaction ${A}.`);
6672
6672
  a.title = e, await this.setDesigns(t);
@@ -6687,7 +6687,7 @@ class ds {
6687
6687
  throw new J("Unexpected storage method requested");
6688
6688
  }
6689
6689
  }
6690
- const zA = new ds();
6690
+ const zA = new wn();
6691
6691
  class CA {
6692
6692
  constructor(A, e) {
6693
6693
  var a;
@@ -6695,12 +6695,12 @@ class CA {
6695
6695
  await zA.getSavedDesignByTransaction(
6696
6696
  this.getWorkflowManager().getTransaction().id
6697
6697
  ) && this.save();
6698
- }, 2500), this.getCanvasObjectURLAsync = async (s) => new Promise((n, i) => {
6698
+ }, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((s, i) => {
6699
6699
  try {
6700
- s.toBlob((o) => {
6700
+ n.toBlob((o) => {
6701
6701
  if (o) {
6702
6702
  const c = URL.createObjectURL(o);
6703
- n(c);
6703
+ s(c);
6704
6704
  }
6705
6705
  });
6706
6706
  } catch (o) {
@@ -6712,16 +6712,16 @@ class CA {
6712
6712
  const t = e.layouts;
6713
6713
  this.commandContext = new St(), this.commandContext.initialize(t, e.reloadedState), this.isReadOnly = e.transaction.isOrdered || !!e.readOnly, this.workflowManager = new Wa(
6714
6714
  e.workflow,
6715
- ((a = e.product.profanities) == null ? void 0 : a.map((s) => s.word)) || [],
6715
+ ((a = e.product.profanities) == null ? void 0 : a.map((n) => n.word)) || [],
6716
6716
  t,
6717
6717
  this.commandContext,
6718
- (s) => {
6718
+ (n) => {
6719
6719
  try {
6720
6720
  this.debouncedSavedDesignUpdate();
6721
6721
  } catch {
6722
6722
  console.error("Failed to update saved design details.");
6723
6723
  }
6724
- return e.stateMutationFunc(s);
6724
+ return e.stateMutationFunc(n);
6725
6725
  },
6726
6726
  e.transaction,
6727
6727
  e.product,
@@ -6731,8 +6731,8 @@ class CA {
6731
6731
  e.readOnly,
6732
6732
  e.modelContainer,
6733
6733
  e.isReloadedTransaction
6734
- ), this.workflowManager.addSelectionCallback((s) => {
6735
- const n = s.traversableScenes.map((i) => {
6734
+ ), this.workflowManager.addSelectionCallback((n) => {
6735
+ const s = n.traversableScenes.map((i) => {
6736
6736
  const o = i.renderableSteps.map((c) => c.stepName);
6737
6737
  return {
6738
6738
  id: i.name,
@@ -6740,7 +6740,7 @@ class CA {
6740
6740
  renderableSteps: o
6741
6741
  };
6742
6742
  });
6743
- this.renderableScenes = n, this.renderableSceneCallbacks.forEach((i) => i(n));
6743
+ this.renderableScenes = s, this.renderableSceneCallbacks.forEach((i) => i(s));
6744
6744
  });
6745
6745
  }
6746
6746
  getClient() {
@@ -6779,9 +6779,9 @@ class CA {
6779
6779
  throw new Error("Failed to generate cart preview image!");
6780
6780
  return await ((m = this.workflowManager.getPreviewService()) == null ? void 0 : m.renderSceneScreenshot(512, a)) || "";
6781
6781
  }
6782
- let s = 2048;
6783
- e && e <= 2048 && (s = e);
6784
- const n = MA(s, s), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, c = t.panels[o], r = i.find((u) => {
6782
+ let n = 2048;
6783
+ e && e <= 2048 && (n = e);
6784
+ const s = MA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, c = t.panels[o], r = i.find((u) => {
6785
6785
  var p;
6786
6786
  return ((p = u.layoutState) == null ? void 0 : p.layout.panelId) === (c == null ? void 0 : c.name);
6787
6787
  }) || i[0], B = r.layoutState.layout.previewRegion ? {
@@ -6794,7 +6794,7 @@ class CA {
6794
6794
  y: 0,
6795
6795
  width: r.layoutState.layout.width,
6796
6796
  height: r.layoutState.layout.height
6797
- }, l = this.commandContext.getLayoutById(r.layoutState.layout.id), d = n.getContext("2d");
6797
+ }, l = this.commandContext.getLayoutById(r.layoutState.layout.id), d = s.getContext("2d");
6798
6798
  if (!d)
6799
6799
  throw new vA("Failed to obtain 2D context for preview image creation");
6800
6800
  const E = Fe(l.layoutState.layout, l.layoutState.elements, {
@@ -6811,8 +6811,8 @@ class CA {
6811
6811
  DOMParser: Se(),
6812
6812
  fetch: xe
6813
6813
  })).render();
6814
- const h = await this.getCanvasObjectURLAsync(n);
6815
- return n.toDataURL(h);
6814
+ const h = await this.getCanvasObjectURLAsync(s);
6815
+ return s.toDataURL(h);
6816
6816
  }
6817
6817
  getStepById(A) {
6818
6818
  const e = this.getWorkflowManager().getWorkflow().steps.find((t) => t.stepName === A);
@@ -6833,7 +6833,7 @@ class CA {
6833
6833
  const A = this.getWorkflowManager().getWorkflowSelections();
6834
6834
  let e = 0;
6835
6835
  return Object.values(A).forEach((t) => {
6836
- e += t.selections.map((a) => a.priceModifier).reduce((a, s) => a + s);
6836
+ e += t.selections.map((a) => a.priceModifier).reduce((a, n) => a + n);
6837
6837
  }), e;
6838
6838
  }
6839
6839
  getBasePriceSubunits() {
@@ -6878,15 +6878,15 @@ class CA {
6878
6878
  return this.assignCustomerDetails({ emailAddress: A.email });
6879
6879
  }
6880
6880
  async assignCustomerDetails(A) {
6881
- var a, s, n;
6882
- const t = (n = (s = (a = (await N.getShadowGraphqlClient().mutate({
6881
+ var a, n, s;
6882
+ const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
6883
6883
  mutation: it,
6884
6884
  variables: {
6885
6885
  id: this.getWorkflowManager().getTransaction().id,
6886
6886
  details: A,
6887
6887
  type: "Owner"
6888
6888
  }
6889
- })).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : s.stakeholders) == null ? void 0 : n.find(
6889
+ })).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : n.stakeholders) == null ? void 0 : s.find(
6890
6890
  (i) => {
6891
6891
  var o;
6892
6892
  return ((o = i.customer) == null ? void 0 : o.emailAddress) === A.emailAddress;
@@ -6912,7 +6912,7 @@ class CA {
6912
6912
  var o;
6913
6913
  if (A)
6914
6914
  return A;
6915
- const s = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((c) => c.transactionId === s)) == null ? void 0 : o.title;
6915
+ const n = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((c) => c.transactionId === n)) == null ? void 0 : o.title;
6916
6916
  return i || "My design";
6917
6917
  })(),
6918
6918
  thumbnail: await this.createPreviewImage(!1, 256),
@@ -6930,13 +6930,13 @@ class CA {
6930
6930
  const A = gA(this.getCommandContext().getState());
6931
6931
  if (!A)
6932
6932
  throw new J("Internal state is undefined! Cannot copy experience!");
6933
- const e = JSON.stringify(A.transaction), t = this.getWorkflowManager().getWorkflow(), a = new un({}), s = (i = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : i.id;
6934
- if (!s)
6933
+ const e = JSON.stringify(A.transaction), t = this.getWorkflowManager().getWorkflow(), a = new us({}), n = (i = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : i.id;
6934
+ if (!n)
6935
6935
  throw new J("Integration product id is undefined!");
6936
- return await a.initFromIntegrationProduct(s), await a.getWorkflowExperience(t.id, e, void 0);
6936
+ return await a.initFromIntegrationProduct(n), await a.getWorkflowExperience(t.id, e, void 0);
6937
6937
  }
6938
6938
  async onDesignFinished(A, e = !0) {
6939
- return ls(
6939
+ return Bn(
6940
6940
  this.workflowManager,
6941
6941
  this.workflowManager.getWorkflow(),
6942
6942
  this.workflowManager.getLayouts(),
@@ -6964,22 +6964,22 @@ class CA {
6964
6964
  getExportedData() {
6965
6965
  var a;
6966
6966
  const A = /* @__PURE__ */ new Map(), e = this.getWorkflowManager().getWorkflowMetadata(), t = this.getWorkflowManager().getWorkflowSelections();
6967
- return Object.keys(e).forEach((s) => {
6968
- const n = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === s);
6969
- if (!n)
6967
+ return Object.keys(e).forEach((n) => {
6968
+ const s = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
6969
+ if (!s)
6970
6970
  return;
6971
- A.has(n.stepTitle) || A.set(n.stepTitle, {});
6972
- const i = e[s];
6971
+ A.has(s.stepTitle) || A.set(s.stepTitle, {});
6972
+ const i = e[n];
6973
6973
  Object.keys(i).forEach((o) => {
6974
- A.get(n.stepTitle)[o] = i[o];
6974
+ A.get(s.stepTitle)[o] = i[o];
6975
6975
  });
6976
- }), (a = Object.keys(t)) == null || a.forEach((s) => {
6977
- const n = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === s);
6978
- n && (A.has(n.stepTitle) || A.set(n.stepTitle, {}), A.get(n.stepTitle).selection = t[s].selections[0].name);
6976
+ }), (a = Object.keys(t)) == null || a.forEach((n) => {
6977
+ const s = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === n);
6978
+ s && (A.has(s.stepTitle) || A.set(s.stepTitle, {}), A.get(s.stepTitle).selection = t[n].selections[0].name);
6979
6979
  }), A;
6980
6980
  }
6981
6981
  }
6982
- const ws = [
6982
+ const En = [
6983
6983
  "altGlyph",
6984
6984
  "circle",
6985
6985
  "ellipse",
@@ -6991,9 +6991,9 @@ const ws = [
6991
6991
  "textPath",
6992
6992
  "tref",
6993
6993
  "tspan"
6994
- ], Es = async (g, A, e) => {
6995
- const t = A.data, a = e.data.baseUrl, s = t.assetUrl.replace("localhost", "localstack"), n = a.slice(0, 4) === "http" ? "" : "https://", i = new URL(n + a);
6996
- i.searchParams.append("video", de(JSON.stringify([{ href: s }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
6994
+ ], hn = async (g, A, e) => {
6995
+ 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);
6996
+ i.searchParams.append("video", de(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
6997
6997
  const o = i.toString(), r = `data:image/svg+xml;base64,${de(await ve(o, { type: "svg" }))}`, B = (d) => {
6998
6998
  const E = g.find((w) => w.panelId === d.panelId);
6999
6999
  if (!E)
@@ -7018,8 +7018,8 @@ const ws = [
7018
7018
  } catch (d) {
7019
7019
  return console.error(d), [];
7020
7020
  }
7021
- }, hs = async (g, A, e, t) => {
7022
- const a = e.data, s = a.assetUrl, n = await VA(s);
7021
+ }, Cn = async (g, A, e, t) => {
7022
+ const a = e.data, n = a.assetUrl, s = await VA(n);
7023
7023
  try {
7024
7024
  const i = xt(a, t.option);
7025
7025
  i && (A[t.stepName] = { selectedVariants: [i] });
@@ -7034,7 +7034,7 @@ const ws = [
7034
7034
  ), B = await _A(r), l = v(), d = g.find((w) => w.panelId === c.panelId);
7035
7035
  if (!d)
7036
7036
  throw new L(c);
7037
- const E = Ae(n, B, {
7037
+ const E = Ae(s, B, {
7038
7038
  scale: a.scale,
7039
7039
  left: a.x,
7040
7040
  top: a.y
@@ -7064,25 +7064,25 @@ const ws = [
7064
7064
  },
7065
7065
  d
7066
7066
  ),
7067
- new Ie(l, n, E)
7067
+ new Ie(l, s, E)
7068
7068
  ];
7069
7069
  };
7070
7070
  return (await Promise.all(t.data.regions.map((c) => o(c)))).flat();
7071
7071
  } catch (i) {
7072
7072
  return console.error(i), [];
7073
7073
  }
7074
- }, Cs = async (g, A, e, t) => {
7074
+ }, Qn = async (g, A, e, t) => {
7075
7075
  var p, F;
7076
- const a = e.data, s = t.option;
7077
- if (!s)
7078
- return console.error(`No option for step ${t.stepName}.`), [];
7079
- const n = ((p = s.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || UA(s);
7076
+ const a = e.data, n = t.option;
7080
7077
  if (!n)
7078
+ return console.error(`No option for step ${t.stepName}.`), [];
7079
+ const s = ((p = n.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || UA(n);
7080
+ if (!s)
7081
7081
  return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
7082
- if (!n.asset)
7082
+ if (!s.asset)
7083
7083
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
7084
- A[t.stepName] = { selectedVariants: [n] };
7085
- const i = (F = n.asset) == null ? void 0 : F.fileLink;
7084
+ A[t.stepName] = { selectedVariants: [s] };
7085
+ const i = (F = s.asset) == null ? void 0 : F.fileLink;
7086
7086
  if (!i)
7087
7087
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7088
7088
  const o = await Z(i), c = /<svg.*?<\/svg>/s, r = o.match(c) || [], B = (r == null ? void 0 : r.length) > 0 ? r[0] : "", E = Ne().parseFromString(B, "image/svg+xml").firstElementChild;
@@ -7091,7 +7091,7 @@ const ws = [
7091
7091
  Re(E);
7092
7092
  const C = {};
7093
7093
  Rt(E, (I) => {
7094
- ws.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
7094
+ En.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
7095
7095
  const f = I.attributes.getNamedItem("fill");
7096
7096
  if (f && f.value !== "none") {
7097
7097
  const Y = f.value, S = `spiff-fill-${Y.replace(/\W/g, "")}`;
@@ -7140,8 +7140,8 @@ const ws = [
7140
7140
  } catch (I) {
7141
7141
  return console.error(I), [];
7142
7142
  }
7143
- }, Qs = async (g, A, e) => {
7144
- const t = await st(e.data.module), a = A.data, s = (i, o) => {
7143
+ }, un = async (g, A, e) => {
7144
+ const t = await nt(e.data.module), a = A.data, n = (i, o) => {
7145
7145
  const c = g.find((B) => B.panelId === o.panelId);
7146
7146
  if (!c)
7147
7147
  throw new L(o);
@@ -7162,26 +7162,26 @@ const ws = [
7162
7162
  },
7163
7163
  c
7164
7164
  );
7165
- }, n = e.data.regions;
7165
+ }, s = e.data.regions;
7166
7166
  try {
7167
- return n.map(
7168
- (i) => s(t.svgPrint(a.text, i), i)
7167
+ return s.map(
7168
+ (i) => n(t.svgPrint(a.text, i), i)
7169
7169
  );
7170
7170
  } catch (i) {
7171
7171
  return console.error(i), [];
7172
7172
  }
7173
- }, us = async (g, A, e, t) => {
7173
+ }, mn = async (g, A, e, t) => {
7174
7174
  var r, B;
7175
- const a = e.data, s = t.option;
7176
- if (!s)
7177
- return console.error(`No option for step ${t.stepName}.`), [];
7178
- const n = ((r = s.variants) == null ? void 0 : r.find((l) => l.id === a.pictureVariantId)) || UA(s);
7175
+ const a = e.data, n = t.option;
7179
7176
  if (!n)
7177
+ return console.error(`No option for step ${t.stepName}.`), [];
7178
+ const s = ((r = n.variants) == null ? void 0 : r.find((l) => l.id === a.pictureVariantId)) || UA(n);
7179
+ if (!s)
7180
7180
  return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
7181
- if (!n.asset)
7181
+ if (!s.asset)
7182
7182
  return console.error(`No asset for variant with ID: ${a.pictureVariantId}`), [];
7183
- A[t.stepName] = { selectedVariants: [n] };
7184
- const i = (B = n.asset) == null ? void 0 : B.fileLink;
7183
+ A[t.stepName] = { selectedVariants: [s] };
7184
+ const i = (B = s.asset) == null ? void 0 : B.fileLink;
7185
7185
  if (!i)
7186
7186
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
7187
7187
  const o = (l) => {
@@ -7212,15 +7212,15 @@ const ws = [
7212
7212
  } catch (l) {
7213
7213
  return console.error(l), [];
7214
7214
  }
7215
- }, ms = async (g, A, e, t) => {
7215
+ }, pn = async (g, A, e, t) => {
7216
7216
  var c;
7217
- const a = e.data, s = t.option;
7218
- if (!s)
7219
- return console.error(`No option for step ${t.stepName}.`), [];
7220
- const n = ((c = s.variants) == null ? void 0 : c.find((r) => r.id === a.colorVariantId)) || UA(s);
7217
+ const a = e.data, n = t.option;
7221
7218
  if (!n)
7219
+ return console.error(`No option for step ${t.stepName}.`), [];
7220
+ const s = ((c = n.variants) == null ? void 0 : c.find((r) => r.id === a.colorVariantId)) || UA(n);
7221
+ if (!s)
7222
7222
  return console.error(`No variant with ID: ${a.colorVariantId}`), [];
7223
- A[t.stepName] = { selectedVariants: [n] };
7223
+ A[t.stepName] = { selectedVariants: [s] };
7224
7224
  const i = (r) => {
7225
7225
  const B = g.find((w) => w.panelId === r.panelId);
7226
7226
  if (!B)
@@ -7242,10 +7242,10 @@ const ws = [
7242
7242
  width="1"
7243
7243
  height="1"
7244
7244
  class="spiff-fill-shape"
7245
- fill="${n == null ? void 0 : n.color}"
7245
+ fill="${s == null ? void 0 : s.color}"
7246
7246
  />
7247
7247
  </svg>
7248
- `, E = { "spiff-fill-shape": { browserValue: n.color || "#000000" } }, C = v();
7248
+ `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = v();
7249
7249
  return new b(
7250
7250
  {
7251
7251
  colors: E,
@@ -7269,11 +7269,11 @@ const ws = [
7269
7269
  } catch (r) {
7270
7270
  return console.error(r), [];
7271
7271
  }
7272
- }, ps = async (g, A, e) => {
7273
- const t = [], s = (() => {
7272
+ }, In = async (g, A, e) => {
7273
+ const t = [], n = (() => {
7274
7274
  var c, r;
7275
7275
  return A.type === D.ProductOverlay ? e || ((c = A.data.asset) == null ? void 0 : c.fileLink) || "" : ((r = A.data.asset) == null ? void 0 : r.fileLink) || "";
7276
- })(), i = (() => s.endsWith(".jpeg") || s.endsWith(".jpg") || s.endsWith(".png") ? P.Image : s.endsWith(".svg") ? P.Illustration : P.Illustration)(), o = A.data.regions;
7276
+ })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? P.Image : n.endsWith(".svg") ? P.Illustration : P.Illustration)(), o = A.data.regions;
7277
7277
  if (i === "image")
7278
7278
  try {
7279
7279
  o.forEach((c) => {
@@ -7282,7 +7282,7 @@ const ws = [
7282
7282
  throw new L(c);
7283
7283
  const B = {
7284
7284
  id: v(),
7285
- src: s,
7285
+ src: n,
7286
7286
  type: i,
7287
7287
  y: c.top,
7288
7288
  x: c.left,
@@ -7303,8 +7303,8 @@ const ws = [
7303
7303
  console.error(c);
7304
7304
  }
7305
7305
  else {
7306
- console.log(`fetching ${s}`);
7307
- const c = await Z(s), r = (B) => {
7306
+ console.log(`fetching ${n}`);
7307
+ const c = await Z(n), r = (B) => {
7308
7308
  const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], E = (d == null ? void 0 : d.length) > 0 ? d[0] : "", h = Ne().parseFromString(E, "image/svg+xml").firstElementChild;
7309
7309
  if (!h)
7310
7310
  throw new oA("Failed to read SVG.");
@@ -7316,8 +7316,8 @@ const ws = [
7316
7316
  throw new L(B);
7317
7317
  const d = {
7318
7318
  id: v(),
7319
- src: s,
7320
- asset_key: s,
7319
+ src: n,
7320
+ asset_key: n,
7321
7321
  svg: r(c),
7322
7322
  colors: {},
7323
7323
  type: i,
@@ -7337,13 +7337,13 @@ const ws = [
7337
7337
  });
7338
7338
  }
7339
7339
  return t;
7340
- }, Is = async (g, A, e, t) => {
7341
- const a = [], s = e.data, n = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", o = () => {
7340
+ }, Dn = async (g, A, e, t) => {
7341
+ const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", o = () => {
7342
7342
  var m;
7343
7343
  const w = t.option;
7344
7344
  if (!w)
7345
7345
  return;
7346
- const h = ((m = w.variants) == null ? void 0 : m.find((u) => u.id === s.fontVariantId)) || UA(w);
7346
+ const h = ((m = w.variants) == null ? void 0 : m.find((u) => u.id === n.fontVariantId)) || UA(w);
7347
7347
  if (!h || !h.asset)
7348
7348
  return;
7349
7349
  A[t.stepName] = { selectedVariants: [h] };
@@ -7360,7 +7360,7 @@ const ws = [
7360
7360
  assetUrl: w,
7361
7361
  name: m.names.fullName.en
7362
7362
  };
7363
- })(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", s.text) : s.text, l = WA(B, {
7363
+ })(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", n.text) : n.text, l = WA(B, {
7364
7364
  vertical: t.data.vertical,
7365
7365
  uppercase: t.data.uppercase
7366
7366
  }), d = async (w) => {
@@ -7369,7 +7369,7 @@ const ws = [
7369
7369
  return;
7370
7370
  const Q = z.getDefaultVariant(h);
7371
7371
  return Q == null ? void 0 : Q.color;
7372
- }, E = s.color || await d(t.data), C = t.data.regions;
7372
+ }, E = n.color || await d(t.data), C = t.data.regions;
7373
7373
  for (const w of C) {
7374
7374
  const h = g.find((m) => m.panelId === w.panelId);
7375
7375
  if (!h)
@@ -7379,9 +7379,9 @@ const ws = [
7379
7379
  id: v(),
7380
7380
  align: i(t.data),
7381
7381
  curved: t.data.curved,
7382
- fill: s.color || E || "#000000",
7382
+ fill: n.color || E || "#000000",
7383
7383
  fontData: r,
7384
- fontSize: t.data.size || n,
7384
+ fontSize: t.data.size || s,
7385
7385
  height: w.height,
7386
7386
  layer: w.layer,
7387
7387
  layerIndex: w.layerIndex,
@@ -7397,7 +7397,7 @@ const ws = [
7397
7397
  };
7398
7398
  if (r) {
7399
7399
  const [m, u] = pA(
7400
- t.data.size || n,
7400
+ t.data.size || s,
7401
7401
  r,
7402
7402
  w,
7403
7403
  [
@@ -7427,65 +7427,65 @@ const ws = [
7427
7427
  a.push(new b(Q, h));
7428
7428
  }
7429
7429
  return a;
7430
- }, Ds = (g, A) => g.conditions ? g.conditions.every((e) => {
7430
+ }, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
7431
7431
  const t = A[e.targetStepName];
7432
7432
  if (t && t.selectedVariants) {
7433
7433
  const a = t.selectedVariants;
7434
7434
  return e.requiredVariantSelections.some(
7435
- (s) => a.find((n) => n.id === s) !== void 0
7435
+ (n) => a.find((s) => s.id === n) !== void 0
7436
7436
  );
7437
7437
  }
7438
7438
  return !1;
7439
- }) : !0, fs = async (g, A, e, t) => {
7440
- const a = [], s = {};
7441
- for (const n of g) {
7442
- const i = A.steps.find((o) => o.stepName === n.name);
7439
+ }) : !0, Fn = async (g, A, e, t) => {
7440
+ const a = [], n = {};
7441
+ for (const s of g) {
7442
+ const i = A.steps.find((o) => o.stepName === s.name);
7443
7443
  if (i)
7444
7444
  switch (i.type) {
7445
7445
  case D.DigitalContent:
7446
7446
  a.push(
7447
- ...await Es(e, n, i)
7447
+ ...await hn(e, s, i)
7448
7448
  );
7449
7449
  break;
7450
7450
  case D.Frame:
7451
7451
  case D.Photo:
7452
7452
  a.push(
7453
- ...await hs(e, s, n, i)
7453
+ ...await Cn(e, n, s, i)
7454
7454
  );
7455
7455
  break;
7456
7456
  case D.Illustration:
7457
7457
  a.push(
7458
- ...await Cs(
7458
+ ...await Qn(
7459
7459
  e,
7460
- s,
7461
7460
  n,
7461
+ s,
7462
7462
  i
7463
7463
  )
7464
7464
  );
7465
7465
  break;
7466
7466
  case D.Module:
7467
- a.push(...await Qs(e, n, i));
7467
+ a.push(...await un(e, s, i));
7468
7468
  break;
7469
7469
  case D.Picture:
7470
7470
  a.push(
7471
- ...await us(e, s, n, i)
7471
+ ...await mn(e, n, s, i)
7472
7472
  );
7473
7473
  break;
7474
7474
  case D.Shape:
7475
7475
  a.push(
7476
- ...await ms(e, s, n, i)
7476
+ ...await pn(e, n, s, i)
7477
7477
  );
7478
7478
  break;
7479
7479
  case D.Text:
7480
7480
  a.push(
7481
- ...await Is(e, s, n, i)
7481
+ ...await Dn(e, n, s, i)
7482
7482
  );
7483
7483
  break;
7484
7484
  }
7485
7485
  }
7486
- for (const n of A.steps)
7487
- n.type !== D.SilentIllustration && n.type !== D.ProductOverlay || Ds(n, s) && a.push(
7488
- ...await ps(e, n, t)
7486
+ for (const s of A.steps)
7487
+ s.type !== D.SilentIllustration && s.type !== D.ProductOverlay || fn(s, n) && a.push(
7488
+ ...await In(e, s, t)
7489
7489
  );
7490
7490
  return a;
7491
7491
  };
@@ -7493,7 +7493,7 @@ class QA {
7493
7493
  constructor(A) {
7494
7494
  this.handleCompleteRender = null;
7495
7495
  const e = /* @__PURE__ */ new Map();
7496
- A.forEach((t) => e.set(t.id, new Ms(t.id, t.name, this))), this.layouts = e;
7496
+ A.forEach((t) => e.set(t.id, new yn(t.id, t.name, this))), this.layouts = e;
7497
7497
  }
7498
7498
  setCompleteRenderCallback(A) {
7499
7499
  this.handleCompleteRender = A, A(Array.from(this.layouts.values()));
@@ -7506,8 +7506,8 @@ class QA {
7506
7506
  }
7507
7507
  }
7508
7508
  let uA;
7509
- const Fs = () => (uA !== void 0 || (uA = !!MA().getContext("webgl2")), uA);
7510
- class Ms {
7509
+ const Mn = () => (uA !== void 0 || (uA = !!MA().getContext("webgl2")), uA);
7510
+ class yn {
7511
7511
  constructor(A, e, t) {
7512
7512
  this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new We(2), this.id = A, this.name = e, this.service = t;
7513
7513
  }
@@ -7525,8 +7525,8 @@ class Ms {
7525
7525
  */
7526
7526
  setStaticContext(A) {
7527
7527
  if (this.textureCtx = A, this.lastRequestedRenderArguments) {
7528
- const { workflow: e, layouts: t, variationRecord: a, productOverlayImageUrl: s } = this.lastRequestedRenderArguments;
7529
- this.render(e, t, a, s);
7528
+ const { workflow: e, layouts: t, variationRecord: a, productOverlayImageUrl: n } = this.lastRequestedRenderArguments;
7529
+ this.render(e, t, a, n);
7530
7530
  }
7531
7531
  }
7532
7532
  getStaticContextDirty() {
@@ -7558,37 +7558,37 @@ class Ms {
7558
7558
  * Actions to perform when a static render event is fired for this canvas.
7559
7559
  */
7560
7560
  async render(A, e, t, a) {
7561
- const s = gA(e);
7561
+ const n = gA(e);
7562
7562
  this.lastRequestedRenderArguments = {
7563
7563
  workflow: A,
7564
- layouts: s,
7564
+ layouts: n,
7565
7565
  variationRecord: t,
7566
7566
  productOverlayImageUrl: a
7567
7567
  };
7568
- const n = this.getStaticContext();
7569
- if (!n) {
7568
+ const s = this.getStaticContext();
7569
+ if (!s) {
7570
7570
  this.markLastCompletedStaticRender(), this.setStaticContextDirty(!1);
7571
7571
  return;
7572
7572
  }
7573
7573
  this.renderQueue.enqueue(
7574
- new ys(
7574
+ new Yn(
7575
7575
  this.getID(),
7576
- n,
7577
- Fs(),
7576
+ s,
7577
+ Mn(),
7578
7578
  () => {
7579
7579
  this.markLastCompletedStaticRender(), this.setStaticContextDirty(!0);
7580
7580
  },
7581
7581
  A,
7582
- s,
7582
+ n,
7583
7583
  t,
7584
7584
  a
7585
7585
  )
7586
7586
  );
7587
7587
  }
7588
7588
  }
7589
- class ys extends Ve {
7590
- constructor(A, e, t, a, s, n, i, o) {
7591
- super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = s, this.layouts = n, this.variationRecord = i, this.productOverlayImageUrl = o;
7589
+ class Yn extends Ve {
7590
+ constructor(A, e, t, a, n, s, i, o) {
7591
+ super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.variationRecord = i, this.productOverlayImageUrl = o;
7592
7592
  }
7593
7593
  /**
7594
7594
  * Returns the resolution expected for generated textures.
@@ -7612,8 +7612,8 @@ class ys extends Ve {
7612
7612
  return navigator.userAgent.includes("SamsungBrowser") ? !1 : !!window.Worker && !!window.OffscreenCanvas;
7613
7613
  }
7614
7614
  resizeFit(A, e = 4096) {
7615
- const t = e / A.width, a = e / A.height, s = Math.min(t, a);
7616
- return s > 1 ? A : { width: A.width * s, height: A.height * s };
7615
+ const t = e / A.width, a = e / A.height, n = Math.min(t, a);
7616
+ return n > 1 ? A : { width: A.width * n, height: A.height * n };
7617
7617
  }
7618
7618
  /**
7619
7619
  * Render the internally stored layout to the canvas.
@@ -7632,8 +7632,8 @@ class ys extends Ve {
7632
7632
  stepName: C.stepName,
7633
7633
  stepAspectType: C.aspect,
7634
7634
  value: C.value
7635
- })), d = await Ss(
7636
- Ys(l, this.workflow),
7635
+ })), d = await xn(
7636
+ Sn(l, this.workflow),
7637
7637
  this.workflow,
7638
7638
  this.layouts.map((C) => C.layoutState.layout),
7639
7639
  this.productOverlayImageUrl
@@ -7643,20 +7643,18 @@ class ys extends Ve {
7643
7643
  w && w.type === P.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
7644
7644
  }), Gt(e);
7645
7645
  }
7646
- const t = A.layoutState.layout.width, a = A.layoutState.layout.height, s = this.getDynamicTextureResolution().width, n = this.getDynamicTextureResolution().height;
7646
+ const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
7647
7647
  let i, o;
7648
7648
  if (this.nonPOTSupport) {
7649
- const l = s / n;
7650
- t / a < l ? (i = s, o = a * (s / t)) : (i = t * (n / a), o = n);
7649
+ const l = n / s;
7650
+ t / a < l ? (i = n, o = a * (n / t)) : (i = t * (s / a), o = s);
7651
7651
  const E = this.resizeFit({ width: i, height: o });
7652
7652
  i = E.width, o = E.height;
7653
7653
  } else
7654
7654
  i = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
7655
7655
  const c = Fe(A.layoutState.layout, e, {
7656
7656
  renderingConfiguration: { purpose: Me.ThreeD }
7657
- }), r = ye(c);
7658
- console.log("SVG", r);
7659
- const B = await Pe.from(this.ctx, r, {
7657
+ }), r = ye(c), B = await Pe.from(this.ctx, r, {
7660
7658
  anonymousCrossOrigin: !0,
7661
7659
  ignoreDimensions: !this.nonPOTSupport,
7662
7660
  ignoreAnimation: !0,
@@ -7668,13 +7666,13 @@ class ys extends Ve {
7668
7666
  DOMParser: Se(),
7669
7667
  fetch: xe
7670
7668
  });
7671
- B.resize(i, o), await B.render(), console.log("ctx", this.ctx, this.ctx.canvas), this.onRender();
7669
+ B.resize(i, o), await B.render(), this.onRender();
7672
7670
  }
7673
7671
  }
7674
- const Ys = (g, A) => {
7672
+ const Sn = (g, A) => {
7675
7673
  const e = [];
7676
7674
  return g.forEach((t) => {
7677
- const a = A.steps.find((s) => s.stepName === t.stepName);
7675
+ const a = A.steps.find((n) => n.stepName === t.stepName);
7678
7676
  (a == null ? void 0 : a.type) === D.Text && t.stepAspectType === "Text" && e.push({
7679
7677
  name: a.stepName,
7680
7678
  data: {
@@ -7682,15 +7680,15 @@ const Ys = (g, A) => {
7682
7680
  }
7683
7681
  });
7684
7682
  }), e;
7685
- }, Ss = async (g, A, e, t) => {
7683
+ }, xn = async (g, A, e, t) => {
7686
7684
  let a = {
7687
7685
  serializableWorkflow: { steps: [] },
7688
7686
  layouts: {}
7689
7687
  };
7690
7688
  a = new G(e.map((o) => new Ut(o))).apply(a);
7691
- const n = await fs(g, A, e, t);
7692
- return new G(n).apply(a);
7693
- }, xs = y`
7689
+ const s = await Fn(g, A, e, t);
7690
+ return new G(s).apply(a);
7691
+ }, Nn = y`
7694
7692
  fragment ProductCollectionProductFields on Product {
7695
7693
  id
7696
7694
  basePrice
@@ -7726,7 +7724,7 @@ const Ys = (g, A) => {
7726
7724
  }
7727
7725
  }
7728
7726
  `, lt = y`
7729
- ${xs}
7727
+ ${Nn}
7730
7728
  fragment ProductCollectionFields on ProductCollection {
7731
7729
  id
7732
7730
  name
@@ -7772,7 +7770,7 @@ const Ys = (g, A) => {
7772
7770
  }
7773
7771
  }
7774
7772
  }
7775
- `, Ns = y`
7773
+ `, Rn = y`
7776
7774
  ${lt}
7777
7775
  query GetBundle($id: String!) {
7778
7776
  bundles(ids: [$id]) {
@@ -7794,7 +7792,7 @@ const Ys = (g, A) => {
7794
7792
  }
7795
7793
  }
7796
7794
  }
7797
- `, Rs = y`
7795
+ `, Hn = y`
7798
7796
  query GetBundleStakeholders($id: String!) {
7799
7797
  bundles(ids: [$id]) {
7800
7798
  id
@@ -7814,7 +7812,7 @@ const Ys = (g, A) => {
7814
7812
  }
7815
7813
  }
7816
7814
  }
7817
- `, Hs = y`
7815
+ `, Pn = y`
7818
7816
  query GetBundlesForCustomer($id: String!) {
7819
7817
  customers(ids: [$id]) {
7820
7818
  bundleStakeholders {
@@ -7835,7 +7833,7 @@ const Ys = (g, A) => {
7835
7833
  }
7836
7834
  }
7837
7835
  }
7838
- `, Ps = y`
7836
+ `, Un = y`
7839
7837
  ${lt}
7840
7838
  mutation CreateBundle($collectionId: String) {
7841
7839
  bundleCreate(collectionId: $collectionId) {
@@ -7854,25 +7852,25 @@ const Ys = (g, A) => {
7854
7852
  }
7855
7853
  }
7856
7854
  }
7857
- `, Us = y`
7855
+ `, Gn = y`
7858
7856
  mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
7859
7857
  bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
7860
7858
  id
7861
7859
  }
7862
7860
  }
7863
- `, Gs = y`
7861
+ `, vn = y`
7864
7862
  mutation BundleAddTransaction($id: String!, $transactionId: String!) {
7865
7863
  bundleAddTransaction(id: $id, transactionId: $transactionId) {
7866
7864
  id
7867
7865
  }
7868
7866
  }
7869
- `, vs = y`
7867
+ `, kn = y`
7870
7868
  mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
7871
7869
  bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
7872
7870
  id
7873
7871
  }
7874
7872
  }
7875
- `, ks = y`
7873
+ `, Jn = y`
7876
7874
  mutation BundleRemoveTransaction(
7877
7875
  $id: String!
7878
7876
  $transactionId: String!
@@ -7887,7 +7885,7 @@ const Ys = (g, A) => {
7887
7885
  id
7888
7886
  }
7889
7887
  }
7890
- `, Js = y`
7888
+ `, bn = y`
7891
7889
  mutation BundleRemoveTransactions(
7892
7890
  $id: String!
7893
7891
  $transactionIds: [String!]!
@@ -7902,7 +7900,7 @@ const Ys = (g, A) => {
7902
7900
  id
7903
7901
  }
7904
7902
  }
7905
- `, bs = y`
7903
+ `, Tn = y`
7906
7904
  mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
7907
7905
  bundleAddStakeholder(id: $id, details: $details, type: $type) {
7908
7906
  id
@@ -7922,7 +7920,7 @@ const Ys = (g, A) => {
7922
7920
  }
7923
7921
  }
7924
7922
  }
7925
- `, Ts = y`
7923
+ `, Ln = y`
7926
7924
  mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
7927
7925
  bundleUpdateStakeholders(id: $id, input: $input) {
7928
7926
  id
@@ -7942,14 +7940,14 @@ const Ys = (g, A) => {
7942
7940
  }
7943
7941
  }
7944
7942
  }
7945
- `, Ls = y`
7943
+ `, On = y`
7946
7944
  mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
7947
7945
  bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
7948
7946
  id
7949
7947
  }
7950
7948
  }
7951
7949
  `;
7952
- class Os {
7950
+ class zn {
7953
7951
  constructor(A) {
7954
7952
  this.handleCache = {}, this.bundle = A;
7955
7953
  }
@@ -7986,20 +7984,20 @@ class Os {
7986
7984
  }
7987
7985
  aspectConditionsSatisfied(A, e) {
7988
7986
  return !A.conditions || A.conditions.length === 0 ? !0 : A.conditions.some((t) => {
7989
- const a = e.aspects.find((s) => s.name === t.targetAspectName);
7990
- return a ? t.requiredVariantSelections.some((s) => s === a.value) : !1;
7987
+ const a = e.aspects.find((n) => n.name === t.targetAspectName);
7988
+ return a ? t.requiredVariantSelections.some((n) => n === a.value) : !1;
7991
7989
  });
7992
7990
  }
7993
7991
  async createHandle(A) {
7994
7992
  switch (A.type) {
7995
7993
  case DA.FileUpload:
7996
- return new zs(this.bundle, A);
7994
+ return new Kn(this.bundle, A);
7997
7995
  case DA.Option: {
7998
7996
  const e = A.entityId ? await z.getOption(A.entityId) : void 0;
7999
- return (e == null ? void 0 : e.type) === "Color" ? new js(this.bundle, A, e) : new Bt(this.bundle, A, e);
7997
+ return (e == null ? void 0 : e.type) === "Color" ? new Vn(this.bundle, A, e) : new Bt(this.bundle, A, e);
8000
7998
  }
8001
7999
  case DA.Text:
8002
- return new Ks(this.bundle, A);
8000
+ return new jn(this.bundle, A);
8003
8001
  }
8004
8002
  }
8005
8003
  }
@@ -8043,9 +8041,9 @@ class oe {
8043
8041
  */
8044
8042
  getSharedSteps(A) {
8045
8043
  return (A ?? this.bundle.getWorkflowExperiences()).flatMap(
8046
- (a) => a.getSteps().filter((s) => {
8047
- var n;
8048
- return (n = s.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : n.some(
8044
+ (a) => a.getSteps().filter((n) => {
8045
+ var s;
8046
+ return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
8049
8047
  (i) => {
8050
8048
  var o, c;
8051
8049
  return i.globalPropertyConfigurationId === ((c = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : c.id) && i.aspectName === this.property.name;
@@ -8055,7 +8053,7 @@ class oe {
8055
8053
  );
8056
8054
  }
8057
8055
  }
8058
- class zs extends oe {
8056
+ class Kn extends oe {
8059
8057
  constructor(A, e) {
8060
8058
  super(A, e);
8061
8059
  }
@@ -8078,11 +8076,11 @@ class zs extends oe {
8078
8076
  return t ? this.applyImageSelection(t, A) : Promise.resolve();
8079
8077
  }
8080
8078
  async applyImageSelection(A, e) {
8081
- const a = this.getSharedSteps(e).map((s) => s.selectImage(A));
8079
+ const a = this.getSharedSteps(e).map((n) => n.selectImage(A));
8082
8080
  await Promise.all(a);
8083
8081
  }
8084
8082
  }
8085
- class Ks extends oe {
8083
+ class jn extends oe {
8086
8084
  constructor(A, e) {
8087
8085
  super(A, e);
8088
8086
  }
@@ -8109,8 +8107,8 @@ class Ks extends oe {
8109
8107
  await this.applyTextSelection(e, A);
8110
8108
  }
8111
8109
  async applyTextSelection(A, e) {
8112
- const a = this.getSharedSteps(e).map((s) => {
8113
- s.setText(A);
8110
+ const a = this.getSharedSteps(e).map((n) => {
8111
+ n.setText(A);
8114
8112
  });
8115
8113
  await Promise.all(a);
8116
8114
  }
@@ -8128,13 +8126,13 @@ class Bt extends oe {
8128
8126
  return;
8129
8127
  const A = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8130
8128
  if (A) {
8131
- const a = (t = this.optionResource.variants) == null ? void 0 : t.find((s) => s.id === A);
8129
+ const a = (t = this.optionResource.variants) == null ? void 0 : t.find((n) => n.id === A);
8132
8130
  return a ? new X(a) : void 0;
8133
8131
  } else {
8134
8132
  const a = (e = this.optionResource.variants) == null ? void 0 : e.find(
8135
- (s) => {
8136
- var n, i;
8137
- return s.id === ((i = (n = this.optionResource) == null ? void 0 : n.defaultVariant) == null ? void 0 : i.id);
8133
+ (n) => {
8134
+ var s, i;
8135
+ return n.id === ((i = (s = this.optionResource) == null ? void 0 : s.defaultVariant) == null ? void 0 : i.id);
8138
8136
  }
8139
8137
  );
8140
8138
  return a ? new X(a) : void 0;
@@ -8165,19 +8163,19 @@ class Bt extends oe {
8165
8163
  ]);
8166
8164
  }
8167
8165
  async applyGlobalState(A) {
8168
- var a, s;
8166
+ var a, n;
8169
8167
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8170
8168
  if (!e)
8171
8169
  return Promise.resolve();
8172
- const t = (s = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : s.find((n) => n.id === e);
8170
+ const t = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((s) => s.id === e);
8173
8171
  return t ? this.applyVariantSelection(new X(t), A) : Promise.resolve();
8174
8172
  }
8175
8173
  async applyVariantSelection(A, e) {
8176
- const a = this.getSharedSteps(e).map((s) => s.selectVariant(A));
8174
+ const a = this.getSharedSteps(e).map((n) => n.selectVariant(A));
8177
8175
  await Promise.all(a);
8178
8176
  }
8179
8177
  }
8180
- class js extends Bt {
8178
+ class Vn extends Bt {
8181
8179
  constructor(A, e, t) {
8182
8180
  super(A, e, t);
8183
8181
  }
@@ -8194,7 +8192,7 @@ class js extends Bt {
8194
8192
  return this.getSharedSteps()[0].getCustomColor();
8195
8193
  }
8196
8194
  }
8197
- const Vs = y`
8195
+ const Wn = y`
8198
8196
  mutation CreateGlobalPropertyState($bundleId: String!) {
8199
8197
  globalPropertyStateCreate(bundleId: $bundleId) {
8200
8198
  id
@@ -8204,7 +8202,7 @@ const Vs = y`
8204
8202
  }
8205
8203
  }
8206
8204
  }
8207
- `, Ws = y`
8205
+ `, Xn = y`
8208
8206
  mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
8209
8207
  globalPropertyStateUpdate(id: $id, aspects: $aspects) {
8210
8208
  id
@@ -8214,7 +8212,7 @@ const Vs = y`
8214
8212
  }
8215
8213
  }
8216
8214
  }
8217
- `, Xs = y`
8215
+ `, qn = y`
8218
8216
  query GetGlobalPropertyState($bundleId: String!) {
8219
8217
  globalPropertyState(bundleId: $bundleId) {
8220
8218
  id
@@ -8225,7 +8223,7 @@ const Vs = y`
8225
8223
  }
8226
8224
  }
8227
8225
  `;
8228
- class qs {
8226
+ class Zn {
8229
8227
  constructor(A, e) {
8230
8228
  this.bundleId = A, this.initPromise = this.getOrCreateGlobalPropertyState().then((t) => {
8231
8229
  this.globalPropertyState = t;
@@ -8247,7 +8245,7 @@ class qs {
8247
8245
  async setAspect(A, e) {
8248
8246
  if (!this.globalPropertyState)
8249
8247
  throw new Error("Global property state not initialized");
8250
- const t = gA(this.globalPropertyState), a = this.globalPropertyState.aspects.find((s) => s.name === A);
8248
+ const t = gA(this.globalPropertyState), a = this.globalPropertyState.aspects.find((n) => n.name === A);
8251
8249
  a ? a.value = e : this.globalPropertyState.aspects.push({ name: A, value: e }), await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
8252
8250
  }
8253
8251
  async updateGlobalPropertyState() {
@@ -8255,7 +8253,7 @@ class qs {
8255
8253
  if (!this.globalPropertyState)
8256
8254
  throw new Error("Global property state not initialized");
8257
8255
  const A = await N.getShadowGraphqlClient().mutate({
8258
- mutation: Ws,
8256
+ mutation: Xn,
8259
8257
  variables: {
8260
8258
  id: this.globalPropertyState.id,
8261
8259
  aspects: this.globalPropertyState.aspects
@@ -8269,7 +8267,7 @@ class qs {
8269
8267
  async getOrCreateGlobalPropertyState() {
8270
8268
  var t;
8271
8269
  const A = await N.getShadowGraphqlClient().query({
8272
- query: Xs,
8270
+ query: qn,
8273
8271
  errorPolicy: "all",
8274
8272
  fetchPolicy: "no-cache",
8275
8273
  variables: {
@@ -8279,7 +8277,7 @@ class qs {
8279
8277
  if (A.data.globalPropertyState && A.data.globalPropertyState.id)
8280
8278
  return A.data.globalPropertyState;
8281
8279
  const e = await N.getShadowGraphqlClient().mutate({
8282
- mutation: Vs,
8280
+ mutation: Wn,
8283
8281
  variables: {
8284
8282
  bundleId: this.bundleId
8285
8283
  }
@@ -8289,7 +8287,7 @@ class qs {
8289
8287
  throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`);
8290
8288
  }
8291
8289
  }
8292
- class Zs {
8290
+ class $n {
8293
8291
  constructor(A) {
8294
8292
  this.setState(A);
8295
8293
  }
@@ -8297,12 +8295,12 @@ class Zs {
8297
8295
  A && (this.state = JSON.parse(A));
8298
8296
  }
8299
8297
  applyStateToWorkflowExperience(A) {
8300
- var a, s;
8298
+ var a, n;
8301
8299
  if (!this.state || !((a = A == null ? void 0 : A.getWorkflowManager()) != null && a.getModelContainer()))
8302
8300
  return;
8303
- const e = (s = this.state.transactions.find(
8304
- (n) => n.transactionId === A.getWorkflowManager().getTransaction().id && n.transform
8305
- )) == null ? void 0 : s.transform;
8301
+ const e = (n = this.state.transactions.find(
8302
+ (s) => s.transactionId === A.getWorkflowManager().getTransaction().id && s.transform
8303
+ )) == null ? void 0 : n.transform;
8306
8304
  if (!e)
8307
8305
  return;
8308
8306
  const t = A.getWorkflowManager().getModelContainer();
@@ -8313,8 +8311,8 @@ class Zs {
8313
8311
  }, t.scale = e.scale;
8314
8312
  }
8315
8313
  setWorkflowExperienceTransform(A, e) {
8316
- var n;
8317
- if (!((n = A == null ? void 0 : A.getWorkflowManager()) != null && n.getModelContainer()))
8314
+ var s;
8315
+ if (!((s = A == null ? void 0 : A.getWorkflowManager()) != null && s.getModelContainer()))
8318
8316
  return;
8319
8317
  const t = A.getWorkflowManager().getModelContainer();
8320
8318
  t.position = e.position, t.rotation = {
@@ -8326,8 +8324,8 @@ class Zs {
8326
8324
  this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
8327
8325
  transactions: []
8328
8326
  };
8329
- const s = this.state.transactions.find((i) => i.transactionId === a);
8330
- s ? s.transform = e : this.state.transactions.push({
8327
+ const n = this.state.transactions.find((i) => i.transactionId === a);
8328
+ n ? n.transform = e : this.state.transactions.push({
8331
8329
  transactionId: a,
8332
8330
  transform: e
8333
8331
  });
@@ -8343,7 +8341,7 @@ class Zs {
8343
8341
  return JSON.stringify(this.state);
8344
8342
  }
8345
8343
  }
8346
- class $s {
8344
+ class _n {
8347
8345
  constructor(A) {
8348
8346
  this.collection = A;
8349
8347
  }
@@ -8363,7 +8361,7 @@ class $s {
8363
8361
  * A list of products in this collections with useful helpers for interacting with them.
8364
8362
  */
8365
8363
  getProducts() {
8366
- return this.collection.products.map((A) => new _s(A));
8364
+ return this.collection.products.map((A) => new As(A));
8367
8365
  }
8368
8366
  /**
8369
8367
  * The raw collection resource. This is generally not needed and should be avoided.
@@ -8372,7 +8370,7 @@ class $s {
8372
8370
  return this.collection;
8373
8371
  }
8374
8372
  }
8375
- class _s {
8373
+ class As {
8376
8374
  constructor(A) {
8377
8375
  this.product = A;
8378
8376
  }
@@ -8396,8 +8394,8 @@ class _s {
8396
8394
  */
8397
8395
  getIntegrationByType(A) {
8398
8396
  const t = (this.product.integrationProducts || []).find((a) => {
8399
- var s, n;
8400
- return !!((s = a.integration) != null && s.type) && ((n = a.integration) == null ? void 0 : n.type) === A;
8397
+ var n, s;
8398
+ return !!((n = a.integration) != null && n.type) && ((s = a.integration) == null ? void 0 : s.type) === A;
8401
8399
  });
8402
8400
  if (!t)
8403
8401
  throw new Error(
@@ -8421,11 +8419,11 @@ class _s {
8421
8419
  class me {
8422
8420
  /* ThreeDPreviewService */
8423
8421
  constructor(A, e, t, a) {
8424
- var s, n, i;
8425
- this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((s = e.metadata) == null ? void 0 : s.map((o) => [o.key, o.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new Zs(e.bundleStateData), this.globalConfiguration = (n = this.productCollection) == null ? void 0 : n.globalPropertyConfiguration, this.globalPropertyStateManager = new qs(
8422
+ var n, s, i;
8423
+ this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((o) => [o.key, o.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new $n(e.bundleStateData), this.globalConfiguration = (s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration, this.globalPropertyStateManager = new Zn(
8426
8424
  this.id,
8427
8425
  this.checkConditionalHandlesChanged.bind(this)
8428
- ), this.globalPropertyHandleService = new Os(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
8426
+ ), this.globalPropertyHandleService = new zn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
8429
8427
  ((i = e.transactions) == null ? void 0 : i.map((o) => o.id)) || [],
8430
8428
  a
8431
8429
  );
@@ -8483,7 +8481,7 @@ class me {
8483
8481
  return this.workflowExperiences.map((A) => A.getTotalPriceSubunits()).reduce((A, e) => A + e, 0);
8484
8482
  }
8485
8483
  getProductCollection() {
8486
- return this.productCollection ? new $s(this.productCollection) : void 0;
8484
+ return this.productCollection ? new _n(this.productCollection) : void 0;
8487
8485
  }
8488
8486
  async addWorkflowExperience(A) {
8489
8487
  await this.appendWorkflowExperience(A), await this.injectExperienceIntoPreviewService(A);
@@ -8491,30 +8489,30 @@ class me {
8491
8489
  await Promise.all(e.map((t) => t.applyGlobalState([A])));
8492
8490
  }
8493
8491
  async addWorkflowExperiences(A) {
8494
- const e = A.map((n) => n.getWorkflowManager().getTransaction().id), t = e.map(
8495
- (n) => this.workflowExperiences.find((i) => i.getWorkflowManager().getTransaction().id === n)
8492
+ const e = A.map((s) => s.getWorkflowManager().getTransaction().id), t = e.map(
8493
+ (s) => this.workflowExperiences.find((i) => i.getWorkflowManager().getTransaction().id === s)
8496
8494
  );
8497
- if (t.some((n) => !!n))
8495
+ if (t.some((s) => !!s))
8498
8496
  throw new Error(
8499
- "Unable to add transaction to bundle - Already Exists: " + t.filter((n) => !!n).map((n) => n == null ? void 0 : n.getWorkflowManager().getTransaction().id).join(", ")
8497
+ "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8500
8498
  );
8501
- const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = e.map((n) => a.get(n));
8499
+ const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8502
8500
  await N.getShadowGraphqlClient().mutate({
8503
- mutation: vs,
8501
+ mutation: kn,
8504
8502
  variables: {
8505
8503
  id: this.id,
8506
8504
  transactionIds: e,
8507
- transactionOwnerIds: s
8505
+ transactionOwnerIds: n
8508
8506
  }
8509
- }).catch((n) => {
8510
- console.error(n);
8507
+ }).catch((s) => {
8508
+ console.error(s);
8511
8509
  }), this.workflowExperiences.push(...A), await Promise.all([
8512
8510
  this.updateTransactionOrder(),
8513
8511
  (async () => {
8514
8512
  for (const i of A)
8515
8513
  await this.injectExperienceIntoPreviewService(i);
8516
- const n = await this.getGlobalProperties();
8517
- await Promise.all(n.map((i) => i.applyGlobalState(A)));
8514
+ const s = await this.getGlobalProperties();
8515
+ await Promise.all(s.map((i) => i.applyGlobalState(A)));
8518
8516
  })()
8519
8517
  ]);
8520
8518
  }
@@ -8524,15 +8522,15 @@ class me {
8524
8522
  (i) => i.getWorkflowManager().getTransaction().id === t
8525
8523
  ))
8526
8524
  throw new Error("Unable to add transaction to bundle - Already Exists!");
8527
- const n = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8525
+ const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8528
8526
  await N.getShadowGraphqlClient().mutate({
8529
- mutation: Gs,
8527
+ mutation: vn,
8530
8528
  variables: {
8531
8529
  id: this.id,
8532
8530
  transactionId: t
8533
8531
  },
8534
8532
  context: {
8535
- transactionOwnerId: n
8533
+ transactionOwnerId: s
8536
8534
  }
8537
8535
  }), e && this.workflowExperiences.push(A);
8538
8536
  }
@@ -8555,15 +8553,15 @@ class me {
8555
8553
  async removeTransaction(A, e, t = !0) {
8556
8554
  if (A > -1) {
8557
8555
  const a = this.workflowExperiences.find(
8558
- (s) => s.getWorkflowManager().getTransaction().id === e.id
8556
+ (n) => n.getWorkflowManager().getTransaction().id === e.id
8559
8557
  );
8560
8558
  this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
8561
- mutation: ks,
8559
+ mutation: Jn,
8562
8560
  variables: {
8563
8561
  id: this.id,
8564
8562
  transactionId: e.id,
8565
8563
  name: this.name,
8566
- metadata: Array.from(this.metadata.entries()).map(([s, n]) => ({ key: s, value: n })),
8564
+ metadata: Array.from(this.metadata.entries()).map(([n, s]) => ({ key: n, value: s })),
8567
8565
  bundleStateData: this.bundleStateManager.getSerializedState()
8568
8566
  }
8569
8567
  }), t && (this.workflowExperiences.splice(A, 1), await this.updateTransactionOrder());
@@ -8572,25 +8570,25 @@ class me {
8572
8570
  }
8573
8571
  async removeTransactions(A) {
8574
8572
  const e = A.map(
8575
- (a) => this.workflowExperiences.findIndex((s) => s.getWorkflowManager().getTransaction().id === a.id)
8573
+ (a) => this.workflowExperiences.findIndex((n) => n.getWorkflowManager().getTransaction().id === a.id)
8576
8574
  );
8577
8575
  if (e.some((a) => a === -1))
8578
8576
  throw new Error(
8579
- "Unable to remove workflow experience from bundle - The following aren't included in the bundle: " + A.filter((a, s) => e[s] === -1).map((a) => a.id).join(", ")
8577
+ "Unable to remove workflow experience from bundle - The following aren't included in the bundle: " + A.filter((a, n) => e[n] === -1).map((a) => a.id).join(", ")
8580
8578
  );
8581
8579
  const t = A.map(
8582
8580
  (a) => this.workflowExperiences.splice(
8583
- this.workflowExperiences.findIndex((s) => s.getWorkflowManager().getTransaction().id === a.id),
8581
+ this.workflowExperiences.findIndex((n) => n.getWorkflowManager().getTransaction().id === a.id),
8584
8582
  1
8585
8583
  )[0]
8586
8584
  );
8587
8585
  this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
8588
- mutation: Js,
8586
+ mutation: bn,
8589
8587
  variables: {
8590
8588
  id: this.id,
8591
8589
  transactionIds: A.map((a) => a.id),
8592
8590
  name: this.name,
8593
- metadata: Array.from(this.metadata.entries()).map(([a, s]) => ({ key: a, value: s })),
8591
+ metadata: Array.from(this.metadata.entries()).map(([a, n]) => ({ key: a, value: n })),
8594
8592
  bundleStateData: this.bundleStateManager.getSerializedState()
8595
8593
  }
8596
8594
  }), await this.updateTransactionOrder();
@@ -8619,7 +8617,7 @@ class me {
8619
8617
  (async () => {
8620
8618
  await this.injectExperienceIntoPreviewService(e);
8621
8619
  const a = await this.getGlobalProperties();
8622
- await Promise.all(a.map((s) => s.applyGlobalState([e])));
8620
+ await Promise.all(a.map((n) => n.applyGlobalState([e])));
8623
8621
  })()
8624
8622
  ]);
8625
8623
  }
@@ -8641,16 +8639,16 @@ class me {
8641
8639
  return this.workflowExperiences.length;
8642
8640
  }
8643
8641
  async addStakeholder(A, e) {
8644
- var s;
8642
+ var n;
8645
8643
  const t = await N.getShadowGraphqlClient().mutate({
8646
- mutation: bs,
8644
+ mutation: Tn,
8647
8645
  variables: {
8648
8646
  id: this.id,
8649
8647
  details: A,
8650
8648
  type: e || xA.Owner
8651
8649
  }
8652
8650
  });
8653
- if (!((s = t.data) != null && s.bundleAddStakeholder))
8651
+ if (!((n = t.data) != null && n.bundleAddStakeholder))
8654
8652
  throw new Error("Bundle not found!");
8655
8653
  const a = t.data.bundleAddStakeholder.bundleStakeholders || [];
8656
8654
  this.storeStakeholderCustomers(a);
@@ -8658,7 +8656,7 @@ class me {
8658
8656
  async updateStakeholders(A) {
8659
8657
  var a;
8660
8658
  const e = await N.getShadowGraphqlClient().mutate({
8661
- mutation: Ts,
8659
+ mutation: Ln,
8662
8660
  variables: {
8663
8661
  id: this.id,
8664
8662
  input: A
@@ -8671,7 +8669,7 @@ class me {
8671
8669
  }
8672
8670
  async getAllStakeholders() {
8673
8671
  const A = await N.getShadowGraphqlClient().query({
8674
- query: Rs,
8672
+ query: Hn,
8675
8673
  errorPolicy: "all",
8676
8674
  variables: {
8677
8675
  id: this.id
@@ -8688,7 +8686,7 @@ class me {
8688
8686
  });
8689
8687
  }
8690
8688
  async finish(A) {
8691
- return await Bs(
8689
+ return await dn(
8692
8690
  this.workflowExperiences.map((e) => ({
8693
8691
  workflowManager: e.getWorkflowManager(),
8694
8692
  workflow: e.getWorkflowManager().getWorkflow(),
@@ -8723,11 +8721,11 @@ class me {
8723
8721
  }
8724
8722
  onModelSelectedEvent(A, e) {
8725
8723
  if (A && A.metadata && A.metadata instanceof Map && A.metadata.has("workflowManager")) {
8726
- const a = A.metadata.get("workflowManager").getTransaction(), s = this.workflowExperiences.find(
8727
- (n) => n.getWorkflowManager().getTransaction().id === a.id
8724
+ const a = A.metadata.get("workflowManager").getTransaction(), n = this.workflowExperiences.find(
8725
+ (s) => s.getWorkflowManager().getTransaction().id === a.id
8728
8726
  );
8729
- s && this.fireEvent(e ? "workflow-experience-hover-enter" : "workflow-experience-hover-exit", {
8730
- workflowExperience: s
8727
+ n && this.fireEvent(e ? "workflow-experience-hover-enter" : "workflow-experience-hover-exit", {
8728
+ workflowExperience: n
8731
8729
  });
8732
8730
  }
8733
8731
  }
@@ -8759,7 +8757,7 @@ class me {
8759
8757
  async updateBundle() {
8760
8758
  var e;
8761
8759
  if (!((e = (await N.getShadowGraphqlClient().mutate({
8762
- mutation: Us,
8760
+ mutation: Gn,
8763
8761
  variables: {
8764
8762
  id: this.id,
8765
8763
  name: this.name,
@@ -8771,7 +8769,7 @@ class me {
8771
8769
  }
8772
8770
  async updateTransactionOrder() {
8773
8771
  await N.getShadowGraphqlClient().mutate({
8774
- mutation: Ls,
8772
+ mutation: On,
8775
8773
  variables: {
8776
8774
  id: this.id,
8777
8775
  transactionIds: this.workflowExperiences.map((A) => A.getWorkflowManager().getTransaction().id)
@@ -8779,16 +8777,16 @@ class me {
8779
8777
  });
8780
8778
  }
8781
8779
  async checkConditionalHandlesChanged(A, e) {
8782
- const t = await this.globalPropertyHandleService.getHandles(), a = this.globalPropertyHandleService.applyConditionsFromState(t, A), s = this.globalPropertyHandleService.applyConditionsFromState(t, e);
8780
+ const t = await this.globalPropertyHandleService.getHandles(), a = this.globalPropertyHandleService.applyConditionsFromState(t, A), n = this.globalPropertyHandleService.applyConditionsFromState(t, e);
8783
8781
  (() => {
8784
- if (a.length !== s.length)
8782
+ if (a.length !== n.length)
8785
8783
  return !0;
8786
8784
  for (let i = 0; i < a.length; i++)
8787
- if (a[i].getName() !== s[i].getName())
8785
+ if (a[i].getName() !== n[i].getName())
8788
8786
  return !0;
8789
8787
  return !1;
8790
8788
  })() && this.fireEvent("conditional-global-properties-changed", {
8791
- globalProperties: s
8789
+ globalProperties: n
8792
8790
  });
8793
8791
  }
8794
8792
  fireEvent(A, e) {
@@ -8801,7 +8799,7 @@ class me {
8801
8799
  );
8802
8800
  }
8803
8801
  }
8804
- const An = y`
8802
+ const es = y`
8805
8803
  mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
8806
8804
  processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
8807
8805
  id
@@ -8812,25 +8810,25 @@ const An = y`
8812
8810
  }
8813
8811
  }
8814
8812
  `;
8815
- class en {
8813
+ class ts {
8816
8814
  async execute(A, e, t) {
8817
8815
  var c, r, B, l, d, E, C, w;
8818
8816
  if (!((r = (c = (await N.getShadowGraphqlClient().mutate({
8819
- mutation: An,
8817
+ mutation: es,
8820
8818
  variables: {
8821
8819
  processFlowId: A,
8822
8820
  inputs: [...e.map((h) => h.getValueForTransmission())]
8823
8821
  }
8824
8822
  })).data) == null ? void 0 : c.processExecutionCreate) != null && r.id))
8825
8823
  throw new Error("Failed to create process execution.");
8826
- function s(h) {
8824
+ function n(h) {
8827
8825
  return new Promise((Q) => {
8828
8826
  setTimeout(Q, h);
8829
8827
  });
8830
8828
  }
8831
- let n = !1, i = 0, o;
8832
- for (; !n; ) {
8833
- if (await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3), o = await N.getShadowGraphqlClient().query({
8829
+ let s = !1, i = 0, o;
8830
+ for (; !s; ) {
8831
+ if (await n(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3), o = await N.getShadowGraphqlClient().query({
8834
8832
  query: y`
8835
8833
  query getProcessFlowExecution($ids: [String]!) {
8836
8834
  processExecutions(ids: $ids) {
@@ -8850,7 +8848,7 @@ class en {
8850
8848
  }), !o || !((B = o.data) != null && B.getProcessFlowExecution))
8851
8849
  throw new Error("Failed to retrieve server response for execution.");
8852
8850
  if ((d = (l = o.data) == null ? void 0 : l.getProcessFlowExecution) == null ? void 0 : d.completedAt) {
8853
- n = !0;
8851
+ s = !0;
8854
8852
  break;
8855
8853
  }
8856
8854
  if ((C = (E = o.data) == null ? void 0 : E.getProcessFlowExecution) != null && C.failedAt)
@@ -8875,7 +8873,7 @@ class dt {
8875
8873
  return A.startsWith("[") ? JSON.stringify(JSON.parse(A)) : JSON.stringify(A);
8876
8874
  }
8877
8875
  }
8878
- var tn = /* @__PURE__ */ ((g) => (g.Transaction = "Transaction", g.Bundle = "Bundle", g.Product = "Product", g.Variant = "Variant", g.Option = "Option", g.LineItem = "LineItem", g.Asset = "Asset", g))(tn || {});
8876
+ var as = /* @__PURE__ */ ((g) => (g.Transaction = "Transaction", g.Bundle = "Bundle", g.Product = "Product", g.Variant = "Variant", g.Option = "Option", g.LineItem = "LineItem", g.Asset = "Asset", g))(as || {});
8879
8877
  class wt extends dt {
8880
8878
  constructor(A, e) {
8881
8879
  if (e !== "Asset" && !wt.validUUID(A))
@@ -8886,12 +8884,12 @@ class wt extends dt {
8886
8884
  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);
8887
8885
  }
8888
8886
  }
8889
- class Hn extends dt {
8887
+ class Hs extends dt {
8890
8888
  constructor(A) {
8891
8889
  super(A);
8892
8890
  }
8893
8891
  }
8894
- const an = y`
8892
+ const ns = y`
8895
8893
  fragment RegionFields on Region {
8896
8894
  width
8897
8895
  top
@@ -8909,7 +8907,7 @@ const an = y`
8909
8907
  height
8910
8908
  }
8911
8909
  }
8912
- `, sn = y`
8910
+ `, ss = y`
8913
8911
  fragment LookAtAnimationFields on LookAtAnimation {
8914
8912
  latDeg
8915
8913
  lonDeg
@@ -8920,7 +8918,7 @@ const an = y`
8920
8918
  z
8921
8919
  }
8922
8920
  }
8923
- `, nn = y`
8921
+ `, is = y`
8924
8922
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
8925
8923
  antiAliasing {
8926
8924
  samples
@@ -9004,21 +9002,21 @@ const an = y`
9004
9002
  weight
9005
9003
  }
9006
9004
  }
9007
- `, on = y`
9005
+ `, os = y`
9008
9006
  fragment ModelAnimationFields on ModelAnimation {
9009
9007
  from
9010
9008
  to
9011
9009
  loop
9012
9010
  name
9013
9011
  }
9014
- `, rn = (g) => y`
9012
+ `, rs = (g) => y`
9015
9013
  ${kA(g)}
9016
9014
  ${te}
9017
9015
  ${ze}
9018
- ${an}
9019
- ${sn}
9020
- ${nn}
9021
- ${on}
9016
+ ${ns}
9017
+ ${ss}
9018
+ ${is}
9019
+ ${os}
9022
9020
  query GetWorkflows($ids: [String!]!) {
9023
9021
  workflows(ids: $ids) {
9024
9022
  allowProofDownload
@@ -9406,7 +9404,7 @@ const an = y`
9406
9404
  }
9407
9405
  }
9408
9406
  }
9409
- `, cn = y`
9407
+ `, cs = y`
9410
9408
  query GetTransactionForPartner($id: String!) {
9411
9409
  transactions(ids: [$id]) {
9412
9410
  id
@@ -9423,7 +9421,7 @@ const an = y`
9423
9421
  }
9424
9422
  }
9425
9423
  }
9426
- `, gn = y`
9424
+ `, gs = y`
9427
9425
  ${kA(!1)}
9428
9426
  query GetWorkflowForTheme($id: String!) {
9429
9427
  workflow(id: $id) {
@@ -9445,7 +9443,7 @@ const an = y`
9445
9443
  }
9446
9444
  }
9447
9445
  }
9448
- `, ln = y`
9446
+ `, ls = y`
9449
9447
  query GetCustomer($emailAddress: String!) {
9450
9448
  customer(emailAddress: $emailAddress) {
9451
9449
  id
@@ -9455,7 +9453,7 @@ const an = y`
9455
9453
  }
9456
9454
  }
9457
9455
  }
9458
- `, Bn = y`
9456
+ `, Bs = y`
9459
9457
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9460
9458
  customerCreate(details: $details) {
9461
9459
  id
@@ -9465,7 +9463,7 @@ const an = y`
9465
9463
  }
9466
9464
  }
9467
9465
  }
9468
- `, dn = y`
9466
+ `, ds = y`
9469
9467
  mutation CustomerAuthenticate($loginToken: String!) {
9470
9468
  customerAuthenticate(loginToken: $loginToken) {
9471
9469
  id
@@ -9492,11 +9490,11 @@ const an = y`
9492
9490
  }
9493
9491
  }
9494
9492
  }
9495
- `, wn = y`
9493
+ `, ws = y`
9496
9494
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9497
9495
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9498
9496
  }
9499
- `, En = y`
9497
+ `, Es = y`
9500
9498
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9501
9499
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9502
9500
  id
@@ -9524,10 +9522,10 @@ const an = y`
9524
9522
  }
9525
9523
  }
9526
9524
  }
9527
- `, hn = async (g, A) => {
9525
+ `, hs = async (g, A) => {
9528
9526
  var a;
9529
9527
  const e = await N.getShadowGraphqlClient().query({
9530
- query: rn(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9528
+ query: rs(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9531
9529
  errorPolicy: "all",
9532
9530
  fetchPolicy: "no-cache",
9533
9531
  variables: {
@@ -9536,15 +9534,15 @@ const an = y`
9536
9534
  }), t = e.data.workflows;
9537
9535
  if (t === void 0 || t.length !== g.length)
9538
9536
  throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
9539
- return t.forEach((s) => {
9540
- s.steps.forEach((n) => {
9537
+ return t.forEach((n) => {
9538
+ n.steps.forEach((s) => {
9541
9539
  var i, o, c;
9542
- delete n.data.__typename, (i = n.option) != null && i.id && ((o = n.option.defaultVariant) != null && o.asset && T.cacheAsset(n.option.defaultVariant.asset), n.option.colorProfile && T.cacheAsset(n.option.colorProfile), (c = n.option.variants) == null || c.forEach((r) => {
9540
+ 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), (c = s.option.variants) == null || c.forEach((r) => {
9543
9541
  r.asset && T.cacheAsset(r.asset), r.displayImage && T.cacheAsset(r.displayImage), r.thumbnail && T.cacheAsset(r.thumbnail), r.material && T.cacheMaterial(r.material);
9544
- }), BA.set({ id: n.option.id }, Promise.resolve(n.option)));
9542
+ }), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
9545
9543
  });
9546
9544
  }), t;
9547
- }, Cn = async (g, A) => {
9545
+ }, Cs = async (g, A) => {
9548
9546
  const t = (await A).find((a) => a.id === g);
9549
9547
  if (!t)
9550
9548
  throw new Error(`Workflow not found: ${g}`);
@@ -9553,11 +9551,11 @@ const an = y`
9553
9551
  const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, o) => e[o] === void 0);
9554
9552
  if (t.length === 0)
9555
9553
  return Promise.all(e);
9556
- const a = hn(t, A), s = t.map(
9557
- (i) => BA.set({ id: i, options: A }, Cn(i, a))
9558
- ), n = e.filter((i) => i !== void 0);
9559
- return await Promise.all(n.concat(s));
9560
- }, mA = async (g, A) => (await Et([g], A))[0], Qn = (g) => g.sort((A, e) => A.index - e.index).map((A) => ({
9554
+ const a = hs(t, A), n = t.map(
9555
+ (i) => BA.set({ id: i, options: A }, Cs(i, a))
9556
+ ), s = e.filter((i) => i !== void 0);
9557
+ return await Promise.all(s.concat(n));
9558
+ }, mA = async (g, A) => (await Et([g], A))[0], Qs = (g) => g.sort((A, e) => A.index - e.index).map((A) => ({
9561
9559
  id: v(),
9562
9560
  panelId: A.name,
9563
9561
  name: A.name,
@@ -9572,9 +9570,9 @@ const an = y`
9572
9570
  editableArea: A.editableArea
9573
9571
  })), KA = (g, A) => {
9574
9572
  const e = g.workflowState, t = e ? JSON.parse(e) : void 0;
9575
- return t ? Object.values(t.layouts).map((a) => a.layout) : Qn(A.panels);
9573
+ return t ? Object.values(t.layouts).map((a) => a.layout) : Qs(A.panels);
9576
9574
  };
9577
- class un {
9575
+ class us {
9578
9576
  constructor(A) {
9579
9577
  this.updateTransactionState = async (e) => {
9580
9578
  try {
@@ -9602,7 +9600,7 @@ class un {
9602
9600
  getFlowService() {
9603
9601
  if (!this.options.applicationKey)
9604
9602
  throw new Error("Application key required to use Flow Service.");
9605
- return new en();
9603
+ return new ts();
9606
9604
  }
9607
9605
  // TODO: Authentication functions should probably be moved to a separate class.
9608
9606
  /**
@@ -9611,17 +9609,17 @@ class un {
9611
9609
  * @returns An object containing the success status of the authentication attempt, and the type of stakeholder when successful.
9612
9610
  */
9613
9611
  async authenticateBundleFromLocalStorage(A) {
9614
- var a, s;
9612
+ var a, n;
9615
9613
  const e = x.getMap("bundleOwnerIds");
9616
9614
  if (e != null && e.has(A)) {
9617
- const n = e.get(A);
9618
- return TA(n), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
9615
+ const s = e.get(A);
9616
+ return TA(s), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
9619
9617
  }
9620
9618
  const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9621
9619
  if (t.has(A)) {
9622
- const n = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(n);
9620
+ const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9623
9621
  if (o && await this.authenticateCustomerId(o)) {
9624
- const r = (s = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : s.find(
9622
+ const r = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9625
9623
  (B) => {
9626
9624
  var l;
9627
9625
  return ((l = B.bundle) == null ? void 0 : l.id) === A;
@@ -9649,7 +9647,7 @@ class un {
9649
9647
  async authenticateTransactionFromLocalStorage(A) {
9650
9648
  var r, B, l, d, E, C;
9651
9649
  const e = N.getShadowGraphqlClient(), t = await e.query({
9652
- query: cn,
9650
+ query: cs,
9653
9651
  errorPolicy: "all",
9654
9652
  fetchPolicy: "no-cache",
9655
9653
  variables: {
@@ -9663,9 +9661,9 @@ class un {
9663
9661
  throw new Error(`Unable to read transaction: ${A}`);
9664
9662
  if (a.isOrdered)
9665
9663
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9666
- const n = x.getMap("transactionOwnerIds");
9667
- if (n != null && n.has(A)) {
9668
- const w = n.get(A);
9664
+ const s = x.getMap("transactionOwnerIds");
9665
+ if (s != null && s.has(A)) {
9666
+ const w = s.get(A);
9669
9667
  return eA(w), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
9670
9668
  }
9671
9669
  const i = x.getMap("transactionCustomerIds");
@@ -9691,7 +9689,7 @@ class un {
9691
9689
  }
9692
9690
  }
9693
9691
  const c = (await e.query({
9694
- query: gn,
9692
+ query: gs,
9695
9693
  errorPolicy: "all",
9696
9694
  variables: {
9697
9695
  id: a.workflowId
@@ -9715,19 +9713,19 @@ class un {
9715
9713
  getStakeholderTypeForTransaction(A) {
9716
9714
  var t, a;
9717
9715
  const e = (a = (t = this.customer) == null ? void 0 : t.stakeholders) == null ? void 0 : a.find(
9718
- (s) => {
9719
- var n;
9720
- return ((n = s.transaction) == null ? void 0 : n.id) === A;
9716
+ (n) => {
9717
+ var s;
9718
+ return ((s = n.transaction) == null ? void 0 : s.id) === A;
9721
9719
  }
9722
9720
  );
9723
9721
  if (e)
9724
9722
  return e.type;
9725
9723
  }
9726
9724
  async getOrCreateCustomer(A) {
9727
- var n;
9725
+ var s;
9728
9726
  this.customer = void 0;
9729
9727
  const e = N.getShadowGraphqlClient(), a = (await e.query({
9730
- query: ln,
9728
+ query: ls,
9731
9729
  errorPolicy: "all",
9732
9730
  fetchPolicy: "no-cache",
9733
9731
  variables: {
@@ -9735,8 +9733,8 @@ class un {
9735
9733
  }
9736
9734
  })).data.customer;
9737
9735
  if (!a.id) {
9738
- const o = (n = (await e.mutate({
9739
- mutation: Bn,
9736
+ const o = (s = (await e.mutate({
9737
+ mutation: Bs,
9740
9738
  errorPolicy: "all",
9741
9739
  fetchPolicy: "no-cache",
9742
9740
  variables: {
@@ -9744,7 +9742,7 @@ class un {
9744
9742
  emailAddress: A
9745
9743
  }
9746
9744
  }
9747
- })).data) == null ? void 0 : n.customerCreate;
9745
+ })).data) == null ? void 0 : s.customerCreate;
9748
9746
  if (!o)
9749
9747
  throw new Error("Unable to create customer.");
9750
9748
  return this.storeCustomer(o), this.customer = o, {
@@ -9753,10 +9751,10 @@ class un {
9753
9751
  };
9754
9752
  }
9755
9753
  this.storeCustomer(a);
9756
- const s = await this.authenticateCustomerId(a.id);
9754
+ const n = await this.authenticateCustomerId(a.id);
9757
9755
  return {
9758
9756
  customer: this.customer || a,
9759
- isAuthenticated: s
9757
+ isAuthenticated: n
9760
9758
  };
9761
9759
  }
9762
9760
  async authenticateCustomerId(A) {
@@ -9767,15 +9765,15 @@ class un {
9767
9765
  const a = t.get(A);
9768
9766
  if (!a)
9769
9767
  return !1;
9770
- const n = (i = (await e.mutate({
9771
- mutation: dn,
9768
+ const s = (i = (await e.mutate({
9769
+ mutation: ds,
9772
9770
  errorPolicy: "all",
9773
9771
  fetchPolicy: "no-cache",
9774
9772
  variables: {
9775
9773
  loginToken: a
9776
9774
  }
9777
9775
  })).data) == null ? void 0 : i.customerAuthenticate;
9778
- return n ? (this.storeCustomer(n), Ee(a), this.customer = n, !0) : !1;
9776
+ return s ? (this.storeCustomer(s), Ee(a), this.customer = s, !0) : !1;
9779
9777
  }
9780
9778
  /**
9781
9779
  * Generates a verification code for the given email address.
@@ -9783,7 +9781,7 @@ class un {
9783
9781
  */
9784
9782
  async generateVerificationCode(A) {
9785
9783
  await N.getShadowGraphqlClient().mutate({
9786
- mutation: wn,
9784
+ mutation: ws,
9787
9785
  variables: {
9788
9786
  emailAddress: A
9789
9787
  }
@@ -9796,18 +9794,18 @@ class un {
9796
9794
  * @returns True if the verification was successful, false otherwise.
9797
9795
  */
9798
9796
  async verifyCode(A, e) {
9799
- var s, n;
9800
- const a = (s = (await N.getShadowGraphqlClient().mutate({
9801
- mutation: En,
9797
+ var n, s;
9798
+ const a = (n = (await N.getShadowGraphqlClient().mutate({
9799
+ mutation: Es,
9802
9800
  errorPolicy: "all",
9803
9801
  fetchPolicy: "no-cache",
9804
9802
  variables: {
9805
9803
  emailAddress: A,
9806
9804
  verificationCode: e
9807
9805
  }
9808
- })).data) == null ? void 0 : s.customerVerifyCode;
9806
+ })).data) == null ? void 0 : n.customerVerifyCode;
9809
9807
  if (a != null && a.loginToken) {
9810
- if (!((n = a.partner) != null && n.id))
9808
+ if (!((s = a.partner) != null && s.id))
9811
9809
  throw new Error(`Unable to find customer: ${A}`);
9812
9810
  const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
9813
9811
  return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Ee(a.loginToken), this.customer = {
@@ -9822,20 +9820,20 @@ class un {
9822
9820
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
9823
9821
  */
9824
9822
  async getNewBundle(A) {
9825
- var n;
9826
- const t = (n = (await N.getShadowGraphqlClient().mutate({
9827
- mutation: Ps,
9823
+ var s;
9824
+ const t = (s = (await N.getShadowGraphqlClient().mutate({
9825
+ mutation: Un,
9828
9826
  variables: {
9829
9827
  collectionId: A
9830
9828
  },
9831
9829
  fetchPolicy: "no-cache"
9832
- })).data) == null ? void 0 : n.bundleCreate;
9830
+ })).data) == null ? void 0 : s.bundleCreate;
9833
9831
  if (!(t != null && t.id))
9834
9832
  throw new Error("Unable to create bundle");
9835
9833
  const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9836
9834
  a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
9837
- const s = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
9838
- return s.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", s), new me(this, t);
9835
+ const n = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
9836
+ return n.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", n), new me(this, t);
9839
9837
  }
9840
9838
  /**
9841
9839
  * Retrieves an existing bundle from the API, by id.
@@ -9846,18 +9844,18 @@ class un {
9846
9844
  */
9847
9845
  async getExistingBundle(A, e, t) {
9848
9846
  var r, B, l, d;
9849
- const a = x.getMap("bundleOwnerIds"), s = a == null ? void 0 : a.get(A);
9850
- s && TA(s);
9851
- const n = await N.getShadowGraphqlClient().query({
9852
- query: Ns,
9847
+ const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
9848
+ n && TA(n);
9849
+ const s = await N.getShadowGraphqlClient().query({
9850
+ query: Rn,
9853
9851
  variables: {
9854
9852
  id: A
9855
9853
  },
9856
9854
  fetchPolicy: "no-cache"
9857
9855
  });
9858
- if (!((r = n.data) != null && r.bundles) || ((B = n.data) == null ? void 0 : B.bundles.length) === 0 || !((l = n.data) != null && l.bundles[0]))
9856
+ if (!((r = s.data) != null && r.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
9859
9857
  throw new Error(`Unable to find bundle: ${A}`);
9860
- const i = (d = n.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9858
+ const i = (d = s.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9861
9859
  o.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", o);
9862
9860
  const c = new me(this, i, e, t);
9863
9861
  return await c.getInitializationPromise(), c;
@@ -9867,22 +9865,22 @@ class un {
9867
9865
  * @returns An array of bundle stakeholders.
9868
9866
  */
9869
9867
  async getBundleStakeholders() {
9870
- var s;
9868
+ var n;
9871
9869
  if (!this.customer)
9872
9870
  throw new Error("Customer not authenticated.");
9873
9871
  const A = await N.getShadowGraphqlClient().query({
9874
- query: Hs,
9872
+ query: Pn,
9875
9873
  variables: {
9876
9874
  id: this.customer.id
9877
9875
  },
9878
9876
  fetchPolicy: "no-cache"
9879
9877
  });
9880
- if (!((s = A.data) != null && s.customers) || A.data.customers.length === 0)
9878
+ if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
9881
9879
  throw new Error("Unable to find customer.");
9882
9880
  const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9883
- return t.forEach((n) => {
9881
+ return t.forEach((s) => {
9884
9882
  var i, o;
9885
- (i = n.bundle) != null && i.id && ((o = n.bundle.partner) != null && o.id) && a.set(n.bundle.id, n.bundle.partner.id);
9883
+ (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
9886
9884
  }), x.setMap("bundlePartnerIds", a), t;
9887
9885
  }
9888
9886
  /**
@@ -9897,7 +9895,7 @@ class un {
9897
9895
  var l, d, E, C, w;
9898
9896
  if (!a)
9899
9897
  return await this.getWorkflowExperienceDeprecated(A, e, t);
9900
- const s = async (h) => {
9898
+ const n = async (h) => {
9901
9899
  var Q;
9902
9900
  for (const m in h.layouts) {
9903
9901
  const u = h.layouts[m].elements.filter(
@@ -9915,7 +9913,7 @@ class un {
9915
9913
  (Q = I.fontData) != null && Q.assetUrl && IA(I.fontData.assetUrl);
9916
9914
  }
9917
9915
  }
9918
- }, n = async () => {
9916
+ }, s = async () => {
9919
9917
  var Q, m;
9920
9918
  const h = N.getShadowGraphqlClient();
9921
9919
  if (a.type === "transaction") {
@@ -9965,7 +9963,7 @@ class un {
9965
9963
  return { transaction: F, workflow: I };
9966
9964
  }
9967
9965
  throw new U("No workflow ID provided.");
9968
- }, { transaction: i, workflow: o, readOnly: c } = await n();
9966
+ }, { transaction: i, workflow: o, readOnly: c } = await s();
9969
9967
  this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
9970
9968
  const r = {
9971
9969
  product: i.product,
@@ -9982,10 +9980,10 @@ class un {
9982
9980
  };
9983
9981
  if (a.type === "transaction" && i.workflowState) {
9984
9982
  const h = JSON.parse(i.workflowState);
9985
- r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await s(h), r.reloadedState = h;
9983
+ r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await n(h), r.reloadedState = h;
9986
9984
  } else if (!c && a.workflowState) {
9987
9985
  const h = JSON.parse(a.workflowState);
9988
- r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await s(h), r.reloadedState = h;
9986
+ r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await n(h), r.reloadedState = h;
9989
9987
  } else
9990
9988
  r.layouts = KA(
9991
9989
  r.transaction,
@@ -10020,13 +10018,13 @@ class un {
10020
10018
  async getWorkflowExperiences(A, e) {
10021
10019
  if (A.length === 0)
10022
10020
  throw new U("No options provided!");
10023
- const t = N.getShadowGraphqlClient(), a = A.map((m, u) => ({ option: m, index: u })), s = a.filter((m) => m.option.type === "transaction"), n = a.filter(
10021
+ const t = N.getShadowGraphqlClient(), a = A.map((m, u) => ({ option: m, index: u })), n = a.filter((m) => m.option.type === "transaction"), s = a.filter(
10024
10022
  (m) => m.option.type === "integration" || m.option.type === "external"
10025
10023
  ), i = async () => {
10026
10024
  var F, I;
10027
- if (s.length === 0)
10025
+ if (n.length === 0)
10028
10026
  return [];
10029
- const m = s.map((f) => f.option.transactionId), u = await t.query({
10027
+ const m = n.map((f) => f.option.transactionId), u = await t.query({
10030
10028
  query: EA,
10031
10029
  variables: {
10032
10030
  ids: m
@@ -10034,7 +10032,7 @@ class un {
10034
10032
  errorPolicy: "all",
10035
10033
  fetchPolicy: "no-cache"
10036
10034
  }), p = u.data.transactions;
10037
- if (p.length !== s.length) {
10035
+ if (p.length !== n.length) {
10038
10036
  const f = ((I = (F = u.errors) == null ? void 0 : F[0]) == null ? void 0 : I.message) || "Unknown error";
10039
10037
  throw new U(`Not all transactions were found: ${f}`);
10040
10038
  }
@@ -10043,18 +10041,18 @@ class un {
10043
10041
  return {
10044
10042
  transaction: f,
10045
10043
  workflowId: f.workflowId,
10046
- readOnly: ((Y = s.find((R) => R.option.transactionId === f.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10047
- index: s[M].index
10044
+ readOnly: ((Y = n.find((R) => R.option.transactionId === f.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10045
+ index: n[M].index
10048
10046
  };
10049
10047
  });
10050
10048
  }, o = async () => {
10051
10049
  var p, F, I;
10052
- if (n.length === 0)
10050
+ if (s.length === 0)
10053
10051
  return [];
10054
10052
  const m = await t.mutate({
10055
10053
  mutation: ca,
10056
10054
  variables: {
10057
- inputs: n.map((f) => ({
10055
+ inputs: s.map((f) => ({
10058
10056
  integrationProductId: f.option.type === "integration" ? f.option.integrationProductId : void 0,
10059
10057
  externalIntegrationId: f.option.type === "external" ? f.option.externalIntegrationId : void 0,
10060
10058
  externalProductId: f.option.type === "external" ? f.option.externalProductId : void 0,
@@ -10074,7 +10072,7 @@ class un {
10074
10072
  transaction: f,
10075
10073
  workflowId: f.workflowId,
10076
10074
  readOnly: !1,
10077
- index: n[M].index
10075
+ index: s[M].index
10078
10076
  }));
10079
10077
  }, c = (await Promise.all([i(), o()])).flat(), r = [...new Set(c.map((m) => m.workflowId))], B = await Et(r, e), l = new Map(B.map((m) => [m.id, m])), d = async (m) => {
10080
10078
  var u;
@@ -10136,7 +10134,7 @@ class un {
10136
10134
  * @deprecated Use getWorkflowExperience to initialize the experience.
10137
10135
  */
10138
10136
  async initFromIntegrationProduct(A) {
10139
- var n;
10137
+ var s;
10140
10138
  if (A === "")
10141
10139
  throw new U("No integration product ID provided.");
10142
10140
  const t = await N.getShadowGraphqlClient().mutate({
@@ -10156,9 +10154,9 @@ class un {
10156
10154
  const a = t.data.transactionCreate;
10157
10155
  if (!a.product)
10158
10156
  throw new U("Failed to create transaction, product not available.");
10159
- this.currencyCode = (n = a.product.partner) == null ? void 0 : n.currencyCode;
10160
- const s = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10161
- s.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", s), this.experienceOptions = {
10157
+ this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
10158
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10159
+ n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
10162
10160
  product: a.product,
10163
10161
  transaction: a,
10164
10162
  layouts: [],
@@ -10199,9 +10197,9 @@ class un {
10199
10197
  };
10200
10198
  if (e)
10201
10199
  return await a();
10202
- const s = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = s.get(A);
10203
- if (n) {
10204
- eA(n);
10200
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10201
+ if (s) {
10202
+ eA(s);
10205
10203
  const l = (i = (await t.query({
10206
10204
  query: EA,
10207
10205
  variables: {
@@ -10232,7 +10230,7 @@ class un {
10232
10230
  throw new U("Failed to read transaction.");
10233
10231
  if (!l.product)
10234
10232
  throw new U("Failed to load transaction, product not available.");
10235
- this.currencyCode = (r = l.product.partner) == null ? void 0 : r.currencyCode, l.transactionOwnerId && (s.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), x.setMap("transactionOwnerIds", s)), this.experienceOptions = {
10233
+ this.currencyCode = (r = l.product.partner) == null ? void 0 : r.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), x.setMap("transactionOwnerIds", n)), this.experienceOptions = {
10236
10234
  product: l.product,
10237
10235
  transaction: l,
10238
10236
  layouts: [],
@@ -10247,7 +10245,7 @@ class un {
10247
10245
  * @deprecated Remove when the initFrom functions are removed.
10248
10246
  */
10249
10247
  async getWorkflowExperienceDeprecated(A, e, t) {
10250
- var s, n, i, o, c, r;
10248
+ var n, s, i, o, c, r;
10251
10249
  if (!this.initialized || !this.experienceOptions)
10252
10250
  throw new U("Cannot launch experience: Not initialized.");
10253
10251
  const a = async (B) => {
@@ -10275,7 +10273,7 @@ class un {
10275
10273
  const d = JSON.parse(this.experienceOptions.transaction.workflowState);
10276
10274
  this.experienceOptions.layouts = Object.values(d.layouts).map((E) => E.layout), await AA(d), await a(d), this.experienceOptions.reloadedState = d;
10277
10275
  }
10278
- this.experienceOptions.previewService = t && t(B), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (s = this.experienceOptions.product) != null && s.modelUrl && ((n = this.experienceOptions.previewService) == null || n.initialize({
10276
+ this.experienceOptions.previewService = t && t(B), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (n = this.experienceOptions.product) != null && n.modelUrl && ((s = this.experienceOptions.previewService) == null || s.initialize({
10279
10277
  model: this.experienceOptions.product.modelUrl,
10280
10278
  contextService: this.experienceOptions.renderableContextService
10281
10279
  }), this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.getAllModels()[0]);
@@ -10338,7 +10336,7 @@ class un {
10338
10336
  e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10339
10337
  }
10340
10338
  }
10341
- class Pn {
10339
+ class Ps {
10342
10340
  getInitializationPromise() {
10343
10341
  return Promise.resolve();
10344
10342
  }
@@ -10484,8 +10482,8 @@ class Pn {
10484
10482
  ejectFromPreviewService() {
10485
10483
  }
10486
10484
  }
10487
- var mn = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(mn || {});
10488
- class pn extends j {
10485
+ var ms = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(ms || {});
10486
+ class ps extends j {
10489
10487
  constructor(A, e) {
10490
10488
  var t;
10491
10489
  super(A, e), this.frameService = (t = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : t.frameService;
@@ -10533,69 +10531,69 @@ class pn extends j {
10533
10531
  }
10534
10532
  export {
10535
10533
  _ as AssetNotFoundError,
10536
- vn as AssetType,
10537
- kn as BringForwardCommand,
10538
- Jn as BringToBackCommand,
10539
- bn as BringToFrontCommand,
10534
+ vs as AssetType,
10535
+ ks as BringForwardCommand,
10536
+ Js as BringToBackCommand,
10537
+ bs as BringToFrontCommand,
10540
10538
  ia as BulkPriceCalculationStrategy,
10541
10539
  qa as BulkStepHandle,
10542
- Tn as CanvasCommand,
10543
- _s as CollectionProduct,
10544
- Ln as CommandContext,
10540
+ Ts as CanvasCommand,
10541
+ As as CollectionProduct,
10542
+ Ls as CommandContext,
10545
10543
  ra as ConversionDataType,
10546
10544
  oa as ConversionLocation,
10547
- On as CreateElementCommand,
10548
- zn as CreateLayoutCommand,
10549
- Kn as DeleteElementCommand,
10550
- jn as FontAlignmentCommand,
10551
- Vn as FontColorCommand,
10552
- Wn as FontSizeCommand,
10553
- Xn as FontSourceCommand,
10545
+ Os as CreateElementCommand,
10546
+ zs as CreateLayoutCommand,
10547
+ Ks as DeleteElementCommand,
10548
+ js as FontAlignmentCommand,
10549
+ Vs as FontColorCommand,
10550
+ Ws as FontSizeCommand,
10551
+ Xs as FontSourceCommand,
10554
10552
  ua as FrameService,
10555
- mn as FrameStep,
10556
- pn as FrameStepHandle,
10553
+ ms as FrameStep,
10554
+ ps as FrameStepHandle,
10557
10555
  oe as GlobalPropertyHandle,
10558
- qn as GroupCommand,
10556
+ qs as GroupCommand,
10559
10557
  Za as IllustrationStepHandle,
10560
10558
  HA as InformationMessageType,
10561
- ss as InformationStepHandle,
10562
- Zn as LayoutElementFactory,
10563
- $n as LayoutElementType,
10559
+ nn as InformationStepHandle,
10560
+ Zs as LayoutElementFactory,
10561
+ $s as LayoutElementType,
10564
10562
  L as LayoutNotFoundError,
10565
10563
  $a as MaterialStepHandle,
10566
10564
  YA as MisconfigurationError,
10567
- Pn as MockWorkflowManager,
10565
+ Ps as MockWorkflowManager,
10568
10566
  _a as ModelStepHandle,
10569
- _n as MoveCommand,
10567
+ _s as MoveCommand,
10570
10568
  wt as ObjectInput,
10571
- tn as ObjectInputType,
10569
+ as as ObjectInputType,
10572
10570
  yA as OptionNotFoundError,
10573
10571
  oA as ParseError,
10574
- As as PictureStepHandle,
10575
- na as ProductCameraRig,
10576
- $s as ProductCollection,
10572
+ An as PictureStepHandle,
10573
+ sa as ProductCameraRig,
10574
+ _n as ProductCollection,
10577
10575
  We as PromiseQueue,
10578
- es as QuestionStepHandle,
10576
+ en as QuestionStepHandle,
10579
10577
  Ve as QueueablePromise,
10580
10578
  Ai as ResizeCommand,
10581
10579
  lA as ResourceNotFoundError,
10582
10580
  ei as RotateCommand,
10583
10581
  ti as SendBackwardsCommand,
10584
- ts as ShapeStepHandle,
10585
- un as SpiffCommerceClient,
10582
+ tn as ShapeStepHandle,
10583
+ us as SpiffCommerceClient,
10586
10584
  xA as StakeholderType,
10587
10585
  ai as StepAspectType,
10588
10586
  j as StepHandle,
10589
- si as StepType,
10590
- ni as TextChangeCommand,
10591
- Hn as TextInput,
10592
- as as TextStepHandle,
10587
+ ni as StepType,
10588
+ si as TextChangeCommand,
10589
+ Hs as TextInput,
10590
+ an as TextStepHandle,
10593
10591
  J as UnhandledBehaviorError,
10594
10592
  ii as UnitOfMeasurement,
10595
10593
  X as Variant,
10596
10594
  CA as WorkflowExperienceImpl,
10597
10595
  T as assetService,
10598
- ls as createDesign,
10596
+ Bn as createDesign,
10599
10597
  oi as dataUrlFromExternalUrl,
10600
10598
  zA as designService,
10601
10599
  ri as determineCorrectFontSizeAndLines,
@@ -10605,9 +10603,9 @@ export {
10605
10603
  qA as frameStepService,
10606
10604
  je as gatherVaryingStepAspects,
10607
10605
  li as generate,
10608
- fs as generateCommands,
10606
+ Fn as generateCommands,
10609
10607
  Bi as generateSVGWithUnknownColors,
10610
- Ss as generateStateFromDesignInputSteps,
10608
+ xn as generateStateFromDesignInputSteps,
10611
10609
  di as getAttributesFromArrayBuffer,
10612
10610
  wi as getAxisAlignedBoundingBox,
10613
10611
  Qa as getBoundedOffsets,
@@ -10633,7 +10631,7 @@ export {
10633
10631
  cA as shapeStepService,
10634
10632
  ma as shortenUrl,
10635
10633
  SA as spiffCoreConfiguration,
10636
- Ys as stepAspectValuesToDesignInputSteps,
10634
+ Sn as stepAspectValuesToDesignInputSteps,
10637
10635
  K as textStepService,
10638
10636
  Ha as toast
10639
10637
  };