@spiffcommerce/core 16.0.0-beta.11 → 16.0.0-beta.13

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 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";
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";
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 (s, i) => {
192
+ }), e = vt(async (n, 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: s, graphQLErrors: i, networkError: o }) => {
197
+ }), t = kt(({ operation: n, graphQLErrors: i, networkError: o }) => {
198
198
  const c = i || [];
199
- o && console.log("GraphQL Network error"), c.forEach(() => console.log("GraphQL Error: " + s.operationName));
199
+ o && console.log("GraphQL Network error"), c.forEach(() => console.log("GraphQL Error: " + n.operationName));
200
200
  });
201
201
  function a() {
202
202
  return {
203
- read(s = null) {
204
- return s;
203
+ read(n = null) {
204
+ return n;
205
205
  },
206
- merge(s, i) {
207
- return i || s || null;
206
+ merge(n, i) {
207
+ return i || n || null;
208
208
  }
209
209
  };
210
210
  }
211
- const n = new Ct({
211
+ const s = 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: n,
249
+ cache: s,
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 s;
361
- return (s = (await N.getShadowGraphqlClient().mutate({
360
+ var n;
361
+ return (n = (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 : s.assetCreate;
372
+ })).data) == null ? void 0 : n.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 = (n, s) => {
378
- const i = atob(n.split(",")[1]), o = [];
377
+ const e = await A.arrayBuffer(), t = await pe(e), a = (s, n) => {
378
+ const i = atob(s.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: s });
381
+ return new Blob([new Uint8Array(o)], { type: n });
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, n) {
433
- const s = await this.dispatchCreateAssetRequest(A, e, a, n);
434
- if (!s)
432
+ async uploadAssetWithProgress(A, e, t, a, s) {
433
+ const n = await this.dispatchCreateAssetRequest(A, e, a, s);
434
+ if (!n)
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", s.assetResponse.uploadUrl, !0), c.setRequestHeader("Content-Type", s.mimeType), c.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), c.upload.onprogress = (r) => {
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) => {
439
439
  r.lengthComputable && t(r.loaded * 100 / r.total);
440
440
  }, c.onload = () => {
441
- const r = s.assetResponse.asset;
442
- LA.add(s.assetResponse.asset), i(r);
441
+ const r = n.assetResponse.asset;
442
+ LA.add(n.assetResponse.asset), i(r);
443
443
  }, c.onerror = o, c.send(A.blob);
444
- }), s.assetResponse.asset;
444
+ }), n.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 n = await this.loadImageAsFileInfo(A);
450
- return await this.uploadAssetWithProgress(n, a, e, !0);
449
+ const s = await this.loadImageAsFileInfo(A);
450
+ return await this.uploadAssetWithProgress(s, a, e, !0);
451
451
  } else {
452
- const n = {
452
+ const s = {
453
453
  name: A.name,
454
454
  blob: new Blob([A], { type: A.type })
455
455
  };
456
- return await T.uploadAssetWithProgress(n, a, e, !0);
456
+ return await T.uploadAssetWithProgress(s, 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 n = A.blob.type ? A.blob.type : this.guessMIME(A.name), s = await Zt(A.name, e, n, t, a);
472
- if (s)
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)
473
473
  return {
474
- assetResponse: s,
475
- mimeType: n
474
+ assetResponse: n,
475
+ mimeType: s
476
476
  };
477
477
  }
478
478
  guessMIME(A) {
@@ -489,7 +489,7 @@ class $t {
489
489
  }
490
490
  }
491
491
  }
492
- const nA = "persistentAssets";
492
+ const sA = "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(nA);
506
- t && t.forEach((a, n) => {
507
- e.set(n, a);
508
- }), x.setMap(nA, e);
505
+ const t = x.getMap(sA);
506
+ t && t.forEach((a, s) => {
507
+ e.set(s, a);
508
+ }), x.setMap(sA, e);
509
509
  }
510
510
  /**
511
511
  * Remove an existing asset from persistence. Noop if the asset doesn't exist.
512
512
  * @param assetKey The key to remove.
513
513
  */
514
514
  static remove(A) {
515
- const e = x.getMap(nA);
515
+ const e = x.getMap(sA);
516
516
  if (!e)
517
517
  return;
518
518
  const t = Array.from(e.entries()).find((a) => a[0] === A);
519
- t && (e.delete(t[0]), x.setMap(nA, e));
519
+ t && (e.delete(t[0]), x.setMap(sA, e));
520
520
  }
521
521
  /**
522
522
  * Get a list of all persisted assets.
523
523
  */
524
524
  static list() {
525
- const A = x.getMap(nA);
525
+ const A = x.getMap(sA);
526
526
  return A ? Array.from(A.entries()).map((e) => ({ assetKey: e[0], src: e[1] })) : [];
527
527
  }
528
528
  }
@@ -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((n) => {
610
- n.asset && T.cacheAsset(n.asset), n.displayImage && T.cacheAsset(n.displayImage), n.thumbnail && T.cacheAsset(n.thumbnail), n.material && T.cacheMaterial(n.material);
609
+ (t = e.defaultVariant) != null && t.asset && 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);
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((s) => BA.get({ id: s })), e = g.filter((s, i) => A[i] === void 0);
614
+ const A = g.map((n) => BA.get({ id: n })), e = g.filter((n, 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
- (s) => BA.set({ id: s }, ta(s, t))
619
- ), n = A.filter((s) => s !== void 0);
620
- return await Promise.all(n.concat(a));
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));
621
621
  };
622
- class na {
622
+ class sa {
623
623
  constructor() {
624
624
  this.getDisplayImageSource = (A) => {
625
625
  var e;
@@ -646,16 +646,16 @@ class na {
646
646
  })();
647
647
  }
648
648
  async getAssetTileImageForVariant(A) {
649
- var a, n;
649
+ var a, s;
650
650
  const e = A.thumbnail;
651
651
  if (e) {
652
- const s = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
653
- return (s == null ? void 0 : s.link) || i;
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;
654
654
  }
655
655
  const t = A.asset;
656
656
  if (t) {
657
- const s = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), i = t.fileLink;
658
- return (s == null ? void 0 : s.link) || i;
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;
659
659
  }
660
660
  return A.material ? A.material.id : "";
661
661
  }
@@ -672,8 +672,8 @@ class na {
672
672
  }
673
673
  }
674
674
  }
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 || {});
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 || {});
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 n = e.data;
1122
- n.varySelection && e.option && A.push({
1121
+ const s = e.data;
1122
+ s.varySelection && e.option && A.push({
1123
1123
  stepName: e.stepName,
1124
1124
  stepType: e.type,
1125
1125
  aspectType: O.Selection
1126
- }), n.varyColors && n.colorPickerEnabled && A.push({
1126
+ }), s.varyColors && s.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
- }, sA = [D.SilentIllustration, D.ProductOverlay], wa = async (g, A, e) => {
1185
+ }, nA = [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 n of g.steps) {
1203
+ for (const s of g.steps) {
1204
1204
  if (A.bulkScene) {
1205
1205
  let i = !1;
1206
- switch (n.type) {
1206
+ switch (s.type) {
1207
1207
  case D.DigitalContent:
1208
- n.data.varyUpload && (i = !0);
1208
+ s.data.varyUpload && (i = !0);
1209
1209
  break;
1210
1210
  case D.Frame:
1211
1211
  {
1212
- const o = n.data;
1213
- o.varyUpload && (o.varySelection || !n.option) && (i = !0);
1212
+ const o = s.data;
1213
+ o.varyUpload && (o.varySelection || !s.option) && (i = !0);
1214
1214
  }
1215
1215
  break;
1216
1216
  case D.Illustration:
1217
1217
  {
1218
- const o = n.data;
1219
- (o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
1218
+ const o = s.data;
1219
+ (o.varySelection || !s.option || (s.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
1220
1220
  }
1221
1221
  break;
1222
1222
  case D.Material:
1223
- n.data.varySelection && (i = !0);
1223
+ s.data.varySelection && (i = !0);
1224
1224
  break;
1225
1225
  case D.Model:
1226
- n.data.varySelection && (i = !0);
1226
+ s.data.varySelection && (i = !0);
1227
1227
  break;
1228
1228
  case D.Picture:
1229
- n.data.varySelection && (i = !0);
1229
+ s.data.varySelection && (i = !0);
1230
1230
  break;
1231
1231
  case D.Question:
1232
- n.data.varySelections && (i = !0);
1232
+ s.data.varySelections && (i = !0);
1233
1233
  break;
1234
1234
  case D.Shape:
1235
- n.data.varySelection && (i = !0);
1235
+ s.data.varySelection && (i = !0);
1236
1236
  break;
1237
1237
  case D.Text:
1238
1238
  {
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);
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);
1241
1241
  }
1242
1242
  break;
1243
1243
  }
1244
1244
  if (i)
1245
1245
  continue;
1246
1246
  }
1247
- const s = Ea(n.stepName, g.stepGroups);
1248
- if (!s)
1247
+ const n = Ea(s.stepName, g.stepGroups);
1248
+ if (!n)
1249
1249
  t.push({
1250
- name: n.stepName,
1251
- title: n.stepTitle,
1252
- renderableSteps: sA.includes(n.type) ? [] : [n],
1253
- silentSteps: sA.includes(n.type) ? [n] : []
1250
+ name: s.stepName,
1251
+ title: s.stepTitle,
1252
+ renderableSteps: nA.includes(s.type) ? [] : [s],
1253
+ silentSteps: nA.includes(s.type) ? [s] : []
1254
1254
  });
1255
1255
  else {
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] : []
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] : []
1262
1262
  });
1263
1263
  }
1264
1264
  }
1265
1265
  if (A.bulkScene) {
1266
- const n = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
1266
+ const s = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
1267
1267
  t.push({
1268
1268
  name: "Bulk",
1269
- title: (n == null ? void 0 : n.sceneTitle) ?? A.bulkSceneTitle,
1269
+ title: (s == null ? void 0 : s.sceneTitle) ?? A.bulkSceneTitle,
1270
1270
  renderableSteps: [
1271
1271
  {
1272
1272
  type: D.Bulk,
1273
1273
  stepName: "Bulk",
1274
- stepTitle: (n == null ? void 0 : n.stepTitle) ?? A.bulkSceneTitle,
1275
- helpText: n == null ? void 0 : n.helpText,
1274
+ stepTitle: (s == null ? void 0 : s.stepTitle) ?? A.bulkSceneTitle,
1275
+ helpText: s == null ? void 0 : s.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
- (n) => a.find((s) => s.id === n) !== void 0
1308
+ (s) => a.find((n) => n.id === s) !== 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 n;
1321
+ var s;
1322
1322
  const e = rA(g, A), t = [];
1323
- for (const s of e)
1324
- for (const i of s.renderableSteps)
1323
+ for (const n of e)
1324
+ for (const i of n.renderableSteps)
1325
1325
  if (i.type === D.Model || i.type === D.Material || i.type === D.Picture || i.type === D.Shape) {
1326
- const o = (((n = i.option) == null ? void 0 : n.variants) || []).length;
1326
+ const o = (((s = i.option) == null ? void 0 : s.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((s) => s.renderableSteps.filter(
1330
+ const a = e.filter((n) => n.renderableSteps.filter(
1331
1331
  (o) => t.includes(o.stepName)
1332
1332
  ).length > 0);
1333
- for (const s of a)
1334
- s.renderableSteps = s.renderableSteps.filter(
1333
+ for (const n of a)
1334
+ n.renderableSteps = n.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, n = e.height * g.zoom;
1404
+ const a = e.width * g.zoom, s = 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 s = g;
1412
- return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
1411
+ const n = g;
1412
+ return n.x = hA(n.x, -a, A.width), n.y = hA(n.y, -s, A.height), n;
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 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);
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);
1436
1436
  }
1437
- n && (this.onFrameDataChangeListeners.forEach(
1438
- (s) => s(this.frameData)
1437
+ s && (this.onFrameDataChangeListeners.forEach(
1438
+ (n) => n(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 n = this.frameData.map((s, i) => {
1503
+ const s = this.frameData.map((n, 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(n, a), this.onZoomChangeListeners.forEach((s) => s(A));
1511
+ this.updateOffsets(s, a), this.onZoomChangeListeners.forEach((n) => n(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((s, i) => !(A[i].x === s.x && A[i].y === s.y && A[i].zoom === s.zoom)) && !t) {
1535
+ if (!this.offsets.some((n, i) => !(A[i].x === n.x && A[i].y === n.y && A[i].zoom === n.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((s, i) => {
1540
- this.offsets[i] = Qa(A[i], s, this.imageData, this.forceImageCover);
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);
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, n) {
1562
+ updateFrameOffsets(A, e, t, a, s) {
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 s = this.workflowManager.getCommandDispatcher();
1567
+ const n = this.workflowManager.getCommandDispatcher();
1568
1568
  a.forEach((i, o) => {
1569
- s(new Ie(i, e, A[o]));
1569
+ n(new Ie(i, e, A[o]));
1570
1570
  }), this.stepName && this.workflowManager.updateStorage(this.stepName, {
1571
1571
  frameOffsetsList: A
1572
- }), n && n();
1572
+ }), s && s();
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 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);
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);
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 n = this.layouts.find((l) => l.panelId === a.panelId);
1596
- if (!n)
1595
+ const s = this.layouts.find((l) => l.panelId === a.panelId);
1596
+ if (!s)
1597
1597
  throw new L(a);
1598
- let s = "";
1598
+ let n = "";
1599
1599
  if (this.configuration.type === D.ProductOverlay) {
1600
1600
  let l = "";
1601
- if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
1601
+ if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), n = 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, n)
1631
+ command: new b(d, s)
1632
1632
  };
1633
1633
  } else {
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) => {
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) => {
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, n)
1666
+ command: new b(C, s)
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, 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();
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();
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, n, s, i, o, c) {
1747
+ async regenerateQRCode(A, e, t, a, s, n, 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 = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
1773
+ const l = n.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + n.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), !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, {
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, {
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 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));
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));
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, n = z.getDefaultVariant(a);
1844
- return n ? this.selectVariantCommand(
1843
+ const a = A.option, s = z.getDefaultVariant(a);
1844
+ return s ? this.selectVariantCommand(
1845
1845
  A,
1846
- n,
1846
+ s,
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 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;
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;
1924
1924
  },
1925
1925
  () => {
1926
- T.getLocalOrFromServer(e.key || "").then((n) => {
1927
- this.loadPatternFromAsset(n, A, t);
1926
+ T.getLocalOrFromServer(e.key || "").then((s) => {
1927
+ this.loadPatternFromAsset(s, 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, n) {
1937
- const s = await this.selectVariantCommand(
1936
+ async selectVariant(A, e, t, a, s) {
1937
+ const n = await this.selectVariantCommand(
1938
1938
  A,
1939
1939
  e,
1940
1940
  t,
1941
1941
  a,
1942
- n
1942
+ s
1943
1943
  );
1944
- s && (s.command && a.getCommandDispatcher()(s.command), s.followup && await s.followup());
1944
+ n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.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, n = t.height, s = {
1977
+ const t = await pt(A), a = t.width, s = t.height, n = {
1978
1978
  src: A,
1979
1979
  width: a,
1980
- height: n,
1981
- aspect: a / n
1980
+ height: s,
1981
+ aspect: a / s
1982
1982
  };
1983
- ge.set(A, s), e.setPatternData(s);
1983
+ ge.set(A, n), e.setPatternData(n);
1984
1984
  } else {
1985
- const t = await fe(A), a = await pe(t), n = {
1985
+ const t = await fe(A), a = await pe(t), s = {
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, n), e.setPatternData(n);
1991
+ ge.set(A, s), e.setPatternData(s);
1992
1992
  }
1993
1993
  }
1994
- async selectVariantCommand(A, e, t, a, n, s) {
1994
+ async selectVariantCommand(A, e, t, a, s, n) {
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
- n && n(!0);
2002
+ s && s(!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
- n && n(!1), await a.setSelectionsAndElements(
2039
+ s && s(!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 }), s) {
2045
+ if (a.updateStorage(A.stepName, { currentFrameSources: o }), n) {
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(s, E);
2051
+ await this.loadPatternFromString(n, 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((n) => n.name === "svg");
2063
+ const e = (a = A.versions) == null ? void 0 : a.find((s) => s.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), n = t.markUpdatePending(), s = (i = t.getStepSpecificServices(e.stepName)) == null ? void 0 : i.frameService;
2074
- if (!s)
2073
+ const a = this.patternSource(A), s = t.markUpdatePending(), n = (i = t.getStepSpecificServices(e.stepName)) == null ? void 0 : i.frameService;
2074
+ if (!n)
2075
2075
  throw new Error("Frame service unavailable, cannot load pattern!");
2076
- await this.loadPatternFromString(a, s), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
2076
+ await this.loadPatternFromString(a, n), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
2077
2077
  framePatternSrc: a
2078
- }), t.markUpdateCompleted(n);
2078
+ }), t.markUpdateCompleted(s);
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 n = z.getDefaultVariant(a);
2134
- if (n)
2135
- return await this.selectVariantCommand(A, n, [], () => {
2133
+ const s = z.getDefaultVariant(a);
2134
+ if (s)
2135
+ return await this.selectVariantCommand(A, s, [], () => {
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((n) => ({
2173
- fill: n.color,
2174
- stroke: n.color,
2175
- variant: n
2172
+ return t ? t ? (a = t.variants) == null ? void 0 : a.map((s) => ({
2173
+ fill: s.color,
2174
+ stroke: s.color,
2175
+ variant: s
2176
2176
  })) : [] : [];
2177
2177
  }
2178
- async changeColorsCommand(A, e, t, a, n) {
2178
+ async changeColorsCommand(A, e, t, a, s) {
2179
2179
  var r;
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 = [];
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 = [];
2184
2184
  for (const B of a) {
2185
- for (const [l, d] of n.entries())
2185
+ for (const [l, d] of s.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, n) {
2191
+ async changeColors(A, e, t, a, s) {
2192
2192
  var d, E;
2193
2193
  if (e.length === 0)
2194
2194
  return;
2195
- const s = FA(
2195
+ const n = FA(
2196
2196
  e[0].id,
2197
2197
  a().map((C) => C.layoutState)
2198
- ), i = { ...s.colors }, o = {};
2198
+ ), i = { ...n.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 n.entries())
2203
+ for (const [C, w] of s.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
- }), !s.svg)
2216
+ }), !n.svg)
2217
2217
  throw new Error("Colors changed before SVG loaded. This should never happen!");
2218
2218
  const l = await this.changeColorsCommand(
2219
- s.svg,
2220
- s.width,
2221
- s.height,
2219
+ n.svg,
2220
+ n.width,
2221
+ n.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, 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());
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());
2232
2232
  }
2233
- async selectVariantCommand(A, e, t, a, n) {
2233
+ async selectVariantCommand(A, e, t, a, s) {
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 s = t.map((Q) => new $(Q.id));
2239
- n.setMandatoryFulfilled(A.stepName, !1);
2238
+ const n = t.map((Q) => new $(Q.id));
2239
+ s.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 = n.getLayouts().find((p) => p.panelId === Q.panelId);
2247
+ const m = s.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), ...s];
2260
+ }, l = A.data.regions.map(B), E = [...l.map((Q) => Q.command), ...n];
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
- })), n.updateMetadata(A.stepName, { colors: C }), {
2268
+ })), s.updateMetadata(A.stepName, { colors: C }), {
2269
2269
  command: new G(E),
2270
2270
  followup: async () => {
2271
- await n.setSelectionsAndElements(
2271
+ await s.setSelectionsAndElements(
2272
2272
  A.stepName,
2273
2273
  [e],
2274
2274
  l.map((Q) => Q.regionElement),
2275
2275
  async () => {
2276
- n.setMandatoryFulfilled(A.stepName, !0), a(!1);
2276
+ s.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 n = z.getDefaultVariant(a);
2293
- if (n)
2294
- return await this.selectVariantLambda(A, n, e, () => {
2292
+ const s = z.getDefaultVariant(a);
2293
+ if (s)
2294
+ return await this.selectVariantLambda(A, s, 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 n = await this.selectVariantLambda(A, e, t, a);
2333
- n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2332
+ const s = await this.selectVariantLambda(A, e, t, a);
2333
+ s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2334
2334
  }
2335
2335
  async selectVariantLambda(A, e, t, a) {
2336
- const n = t.getModelContainer();
2336
+ const s = t.getModelContainer();
2337
2337
  a(!0);
2338
- const s = e.material;
2339
- if (!s)
2338
+ const n = e.material;
2339
+ if (!n)
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
- n && A.data.targetMaterials.forEach((i) => {
2347
- A.option && n.applyMaterialVariant(i, A.option.id || "", s);
2346
+ s && A.data.targetMaterials.forEach((i) => {
2347
+ A.option && s.applyMaterialVariant(i, A.option.id || "", n);
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 n = z.getDefaultVariant(a);
2367
- if (n)
2368
- return await this.selectVariantLambda(A, n, e, () => {
2366
+ const s = z.getDefaultVariant(a);
2367
+ if (s)
2368
+ return await this.selectVariantLambda(A, s, 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 n = await this.selectVariantLambda(A, e, t, a);
2413
- n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2412
+ const s = await this.selectVariantLambda(A, e, t, a);
2413
+ s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2414
2414
  }
2415
2415
  async selectVariantLambda(A, e, t, a) {
2416
- var s;
2416
+ var n;
2417
2417
  a(!0);
2418
- const n = (s = e.asset) == null ? void 0 : s.fileLink;
2419
- if (!n)
2418
+ const s = (n = e.asset) == null ? void 0 : n.fileLink;
2419
+ if (!s)
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: n,
2430
+ model: s,
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, 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());
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());
2466
2466
  }
2467
- async changeTextCommand(A, e, t, a, n) {
2467
+ async changeTextCommand(A, e, t, a, s) {
2468
2468
  var r;
2469
- const s = t.getRegionElements(A.stepName), i = (r = t.getStepSpecificServices(A.stepName)) == null ? void 0 : r.module;
2469
+ const n = 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, n))
2473
+ if (!this.validateInput(A, e, o, s))
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 (s.length > 0) {
2510
- const l = s.map((d) => {
2509
+ if (n.length > 0) {
2510
+ const l = n.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 s = A.data.maxLength;
2541
- if (e.length > s)
2540
+ const n = A.data.maxLength;
2541
+ if (e.length > n)
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 n = XA(e.toLowerCase());
2547
- for (const s of n)
2546
+ const s = XA(e.toLowerCase());
2547
+ for (const n of s)
2548
2548
  for (const i in t) {
2549
2549
  const o = t[i].toLowerCase().replace(/\s/g, "");
2550
- if (s === o)
2550
+ if (n === 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 n = await this.selectVariantCommand(A, e, t, a);
2595
- n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2594
+ const s = await this.selectVariantCommand(A, e, t, a);
2595
+ s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2596
2596
  }
2597
2597
  async selectVariantCommand(A, e, t, a) {
2598
- const n = e.asset;
2599
- if (!n)
2600
- throw new _(e);
2601
- const s = n == null ? void 0 : n.fileLink;
2598
+ const s = e.asset;
2602
2599
  if (!s)
2600
+ throw new _(e);
2601
+ const n = s == null ? void 0 : s.fileLink;
2602
+ if (!n)
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: s,
2617
+ src: n,
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 n = a.variants;
2657
+ const s = a.variants;
2658
2658
  if (z.getDefaultVariant(a)) {
2659
- const i = n == null ? void 0 : n.find((o) => {
2659
+ const i = s == null ? void 0 : s.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 s;
2669
+ var n;
2670
2670
  const a = e.getSerializedStep(
2671
2671
  A.stepName,
2672
2672
  t.serializableWorkflow.steps
2673
- ), n = A.option;
2673
+ ), s = A.option;
2674
2674
  if (a != null && a.selectedVariants) {
2675
2675
  const i = a.selectedVariants[0].id;
2676
- if (n && i) {
2677
- const o = (s = n.variants) == null ? void 0 : s.find((c) => c.id === i);
2676
+ if (s && i) {
2677
+ const o = (n = s.variants) == null ? void 0 : n.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 n = a.variants;
2692
- if (!n)
2693
- return null;
2694
- const s = n.length > 1 ? n.find((i) => i.id === e) : n[0];
2691
+ const s = a.variants;
2695
2692
  if (!s)
2693
+ return null;
2694
+ const n = s.length > 1 ? s.find((i) => i.id === e) : s[0];
2695
+ if (!n)
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, [s], [], async () => {
2700
+ await t.setSelectionsAndElements(A.stepName, [n], [], 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(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
2723
+ const a = t.getLayouts(), n = (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(s)), t.updateStorage(e.stepName, { colour: A });
2729
+ t.getCommandDispatcher()(new G(n)), 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 n = z.getDefaultVariant(a);
2739
- return n ? this.selectVariantCommand(
2738
+ const s = z.getDefaultVariant(a);
2739
+ return s ? this.selectVariantCommand(
2740
2740
  A,
2741
2741
  {
2742
- fill: n.color,
2743
- stroke: n.color,
2744
- variant: n
2742
+ fill: s.color,
2743
+ stroke: s.color,
2744
+ variant: s
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 n = await this.selectVariantCommand(A, e, t, a);
2754
- n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
2753
+ const s = await this.selectVariantCommand(A, e, t, a);
2754
+ s && (s.command && a.getCommandDispatcher()(s.command), s.followup && await s.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 n = a.getLayouts(), s = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
2785
+ const s = a.getLayouts(), n = (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 s || "#FFFFFF";
2788
+ return n || "#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 (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2796
+ if (!s.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 = n.find((m) => m.panelId === d.panelId);
2813
+ const E = s.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 = [], 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));
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));
2926
2926
  for (let o = 0; o < i.length; o++)
2927
- i[o].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(o)));
2927
+ i[o].name === ".notdef" && a.push(String.fromCharCode(n.charCodeAt(o)));
2928
2928
  }
2929
- for (let s = 0; s < a.length; s++)
2930
- t = t.replaceAll(a[s], "");
2929
+ for (let n = 0; n < a.length; n++)
2930
+ t = t.replaceAll(a[n], "");
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 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, "");
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, "");
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 n, s, i;
2949
+ var s, n, 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 = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, r = c ? await VA(c) : void 0, B = r ? {
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 ? {
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: ((s = await this.getDefaultColorVariant(A.data)) == null ? void 0 : s.color) || await this.getDefaultColor(A.data),
2964
+ color: ((n = await this.getDefaultColorVariant(A.data)) == null ? void 0 : n.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((n) => FA(n.id, A.getAllLayoutData()));
2989
+ return A.getRegionElements(e.stepName).map((s) => FA(s.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 n = ((a = t.variants) == null ? void 0 : a.map((s) => ({
3004
- fill: s.color,
3005
- stroke: s.color,
3006
- variant: s
3003
+ const s = ((a = t.variants) == null ? void 0 : a.map((n) => ({
3004
+ fill: n.color,
3005
+ stroke: n.color,
3006
+ variant: n
3007
3007
  }))) || [];
3008
- return this.cachedColors.set(A.stepName, n), n;
3008
+ return this.cachedColors.set(A.stepName, s), s;
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 n = a.getCommandDispatcher();
3016
+ const s = a.getCommandDispatcher();
3017
3017
  e.variant ? a.updateMetadata(A.stepName, { color: e.variant.name }) : a.updateMetadata(A.stepName, { color: e.fill });
3018
- const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
3019
- s ? a.updateStorage(A.stepName, {
3018
+ const n = A.data.colorOption, i = n ? this.createTextFillSpotColor(n, e.variant) : void 0;
3019
+ n ? a.updateStorage(A.stepName, {
3020
3020
  color: e.fill,
3021
- colorProfileAssetKey: (o = s.colorProfile) == null ? void 0 : o.key
3021
+ colorProfileAssetKey: (o = n.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
- n(r);
3029
+ s(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 n = ((a = (t = e.variants) == null ? void 0 : t.map((s) => {
3036
+ const s = ((a = (t = e.variants) == null ? void 0 : t.map((n) => {
3037
3037
  var i;
3038
- return (i = s.asset) == null ? void 0 : i.fileLink;
3039
- })) == null ? void 0 : a.filter((s) => !!s)) || [];
3038
+ return (i = n.asset) == null ? void 0 : i.fileLink;
3039
+ })) == null ? void 0 : a.filter((n) => !!n)) || [];
3040
3040
  return Promise.all(
3041
- n.map(async (s) => {
3042
- const i = await VA(s);
3041
+ s.map(async (n) => {
3042
+ const i = await VA(n);
3043
3043
  return {
3044
- src: s,
3044
+ src: n,
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 n = a.getCommandDispatcher(), s = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((c) => {
3058
+ const s = a.getCommandDispatcher(), n = (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: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
3062
+ a.updateMetadata(A.stepName, { fillImage: n == null ? void 0 : n.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
- n(r);
3067
+ s(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 n = a.getStepStorage(t.stepName), s = this.getProcessedInput(A, t.data, !!n.customiseAllText), i = {
3078
+ const s = a.getStepStorage(t.stepName), n = this.getProcessedInput(A, t.data, !!s.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 - s.length).toString();
3085
+ const o = (t.data.maxLength - n.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
- [s],
3095
+ [n],
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 ? s : (C || []).join(`
3099
+ const w = t.data.curved ? n : (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: s
3105
- }), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(r), i.command.varying = c, i);
3104
+ text: n
3105
+ }), s.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, n) {
3108
- const s = await this.selectVariantCommand(
3107
+ async selectVariant(A, e, t, a, s) {
3108
+ const n = 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
- n
3115
+ s
3116
3116
  );
3117
- s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
3117
+ n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.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, "-"), n = a.lastIndexOf("/"), i = a.slice(n + 1).slice(0, -4);
3122
+ const a = (t.name || "").replace(/\s/g, "-"), s = a.lastIndexOf("/"), i = a.slice(s + 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, n, s, i, o) {
3194
+ async selectVariantCommand(A, e, t, a, s, n, i, o) {
3195
3195
  var B;
3196
- const c = n.markUpdatePending(), r = await this.fontDataFromVariant(e);
3196
+ const c = s.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
- n,
3210
- !!t.customiseAllText,
3211
3209
  s,
3210
+ !!t.customiseAllText,
3211
+ n,
3212
3212
  i
3213
3213
  );
3214
3214
  return d && l.push(d), {
3215
3215
  command: new G(l),
3216
3216
  followup: async () => {
3217
- n.markUpdateCompleted(c), await n.setSelectionsAndElements(A.stepName, [e], a);
3217
+ s.markUpdateCompleted(c), await s.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
- n
3227
+ s
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
- n,
3235
- !!t.customiseAllText,
3236
3234
  s,
3235
+ !!t.customiseAllText,
3236
+ n,
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
- n.markUpdateCompleted(c);
3248
+ s.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, n, s) {
3261
+ async createTextboxRegions(A, e, t, a, s, n) {
3262
3262
  if (!t || !t.regions)
3263
3263
  throw new Error("Step data not supplied");
3264
- const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", c = this.getProcessedInput(o, t, !1), r = async (l) => {
3264
+ const i = n.getTransaction().bulk && t.varyText || !1, o = i ? "" : s.text || t.defaultText || "", c = this.getProcessedInput(o, t, !1), r = async (l) => {
3265
3265
  var w;
3266
- const E = s.getLayouts().find((h) => h.panelId === l.panelId), C = v();
3266
+ const E = n.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), s.updateStorage(A, {
3277
+ Q = this.createTextFillSpotColor(h, k), n.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: n.color ? n.color : u,
3285
+ fill: s.color ? s.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 s.setSelectionsAndElements(
3341
+ return await n.setSelectionsAndElements(
3342
3342
  A,
3343
3343
  [e],
3344
3344
  B.map((l) => l.regionElement),
3345
3345
  async () => {
3346
- s.updateMetadata(A, {
3346
+ n.updateMetadata(A, {
3347
3347
  text: o
3348
- }), s.updateStorage(A, {
3348
+ }), n.updateStorage(A, {
3349
3349
  text: o
3350
3350
  });
3351
3351
  }
3352
3352
  ), B;
3353
3353
  }
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) {
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) {
3357
3357
  const c = new yt(t, A);
3358
- c.varying = n, s.push(c);
3358
+ c.varying = s, n.push(c);
3359
3359
  }
3360
- const o = new G(s);
3361
- return o.varying = n, o;
3360
+ const o = new G(n);
3361
+ return o.varying = s, o;
3362
3362
  }
3363
3363
  /**
3364
3364
  * @deprecated
3365
3365
  */
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();
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();
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 = s.getProfanities(), F = XA(l.toLowerCase());
3382
+ const p = n.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
- s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
3398
+ n.updateStorage(A.stepName, { text: B }), n.updateMetadata(A.stepName, {
3399
3399
  text: this.injectReplaceableText(B, A.data)
3400
3400
  });
3401
- const Q = s.getTransaction().bulk && A.data.varyText || !1;
3402
- n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
3401
+ const Q = n.getTransaction().bulk && A.data.varyText || !1;
3402
+ s.defaultCleared && n.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), ne = (g, A) => {
4685
+ `, H = (g) => Yt("http://www.w3.org/2000/svg", g), se = (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 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}`);
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}`);
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 se(g, A, e, t, a, n) {
4721
- const s = a || 1, i = n || 1, o = {
4720
+ function ne(g, A, e, t, a, s) {
4721
+ const n = a || 1, i = s || 1, o = {
4722
4722
  x: A[0],
4723
4723
  y: A[1],
4724
4724
  width: A[2] - A[0],
@@ -4726,12 +4726,12 @@ function se(g, A, e, t, a, n) {
4726
4726
  };
4727
4727
  if (o.width <= 0)
4728
4728
  return;
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;
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;
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, 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);
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);
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") || "", n = this.parsePath(a);
4753
- return { pathElement: t, pathData: n };
4752
+ const a = t.getAttribute("d") || "", s = this.parsePath(a);
4753
+ return { pathElement: t, pathData: s };
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 = (n) => {
4764
- const s = [], i = n.relative ? n.type : n.type.toUpperCase();
4763
+ const a = (s) => {
4764
+ const n = [], i = s.relative ? s.type : s.type.toUpperCase();
4765
4765
  let o = e !== i;
4766
- const c = Qe[n.type];
4767
- o && (s.push(i), e = i);
4766
+ const c = Qe[s.type];
4767
+ o && (n.push(i), e = i);
4768
4768
  for (const r of c) {
4769
- const B = n[r];
4769
+ const B = s[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 || s.push(" "), s.push(l), o = !1;
4781
+ o || n.push(" "), n.push(l), o = !1;
4782
4782
  }
4783
- return s.join("");
4783
+ return n.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 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];
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];
4792
4792
  if (i.length < c.length)
4793
4793
  throw new oA(
4794
- `Path type "${s}" given ${i.length} arguments, expected ${c.length}.`
4794
+ `Path type "${n}" 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 "${s}" given ${i.length} arguments, not divisible by ${c.length}`
4799
+ `Path type "${n}" 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: s, relative: o };
4802
+ const B = { type: n, 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: s, relative: o });
4808
+ a.push({ type: n, 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 = (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);
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);
4822
4822
  if (r.length < 2)
4823
4823
  throw new oA("Transformer must return at least 2 points.");
4824
- n[i] = r[0], n[o] = r[1];
4824
+ s[i] = r[0], s[o] = r[1];
4825
4825
  }
4826
4826
  }
4827
- return n;
4827
+ return s;
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 n = JSON.parse(JSON.stringify(A[a])), s = e(n);
4835
- Array.isArray(s) ? t.push(...s) : s && t.push(s);
4834
+ const s = JSON.parse(JSON.stringify(A[a])), n = e(s);
4835
+ Array.isArray(n) ? t.push(...n) : n && t.push(n);
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 !== "" ? ((s) => s.charAt(0).toUpperCase() + s.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72);
4858
- return this.brandSvg(n, va);
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);
4859
4859
  }
4860
4860
  brandSvg(A, e) {
4861
- const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
4861
+ const t = A.toSVG(2), a = A.getBoundingBox(), s = a.x2 - a.x1, n = 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 + (n / 2 - S) ** 2 / (n * 2.9)]), p;
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;
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 = ne(l, d);
4879
+ const h = se(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(s);
4886
- return se(Q, u, l, d), at(o.outerHTML);
4885
+ const u = ee(n);
4886
+ return ne(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) : "", 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);
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);
4903
4903
  }
4904
4904
  brandSvg(A, e, t) {
4905
- const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), c = () => {
4905
+ const a = A.toSVG(2), s = A.getBoundingBox(), n = s.y2 - s.y1, i = s.x2 - s.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 - (s - k) * (i - S) / 800, k]), I;
4916
+ ]), R.transform(([S, k]) => [S - (n - 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 = ne(E, C);
4926
+ const m = se(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 se(u, F, E, C), r.outerHTML;
4933
+ return ne(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), 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 = () => {
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 = () => {
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 = ne(e.height, e.width);
4970
+ const C = se(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 se(w, Q, e.height, e.width, 0.35, 0.65), at(l.outerHTML);
4977
+ return ne(w, Q, e.height, e.width, 0.35, 0.65), at(l.outerHTML);
4978
4978
  }
4979
4979
  }
4980
- async function nt(g) {
4980
+ async function st(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, n, s, i, o, c, r, B = !1, l, d = !1) {
5007
+ constructor(A, e, t, a, s, n, 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 = 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(() => {
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(() => {
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 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();
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();
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, n) => n.recordNumber > a ? n.recordNumber : a, 0), t = { ...A, recordNumber: e + 1 };
5066
+ const e = this.variationRecords.reduce((a, s) => s.recordNumber > a ? s.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 n, s;
5271
+ var s, n;
5272
5272
  const a = { stepName: t.stepName };
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(
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(
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
- }, n = JSON.stringify(this.dehydrateState(a));
5319
- return { transaction: e, variation: n };
5318
+ }, s = JSON.stringify(this.dehydrateState(a));
5319
+ return { transaction: e, variation: s };
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((n, s) => {
5337
- const i = [...t[s] || []];
5336
+ const e = (t, a) => Object.keys(t).reduce((s, n) => {
5337
+ const i = [...t[n] || []];
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
- }), n[s] = i, n;
5341
+ }), s[n] = i, s;
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
- }, n = A.filter(
5373
+ }, s = A.filter(
5374
5374
  (c) => !this.stepInitialised[c.stepName]
5375
- ), s = {
5375
+ ), n = {
5376
5376
  stepElements: {},
5377
5377
  commands: []
5378
5378
  }, i = [];
5379
- for (const c of n)
5379
+ for (const c of s)
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
- s.stepElements[c.step.stepName] = c.results.map((r) => r.regionElement), s.commands = [...s.commands, ...c.results.map((r) => r.command)];
5384
- return s;
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;
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 n = this.stepSelections;
5416
+ const s = 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 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(
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(
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 nt(r.data.module)
5490
+ module: await st(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 n = (await Promise.allSettled(t)).map((r) => {
5512
+ const s = (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
- }), 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);
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);
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, 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;
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;
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 st = class ZA {
5671
+ const nt = class ZA {
5672
5672
  constructor(A, e) {
5673
5673
  this.manager = A, this.step = e;
5674
5674
  }
@@ -5755,8 +5755,8 @@ const st = class ZA {
5755
5755
  A && a && A.executeCameraAnimation(a), e && t && e.executeAnimation(t);
5756
5756
  }
5757
5757
  };
5758
- st.updateState = /* @__PURE__ */ new Map();
5759
- let j = st;
5758
+ nt.updateState = /* @__PURE__ */ new Map();
5759
+ let j = nt;
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 An extends j {
5922
+ class As extends j {
5923
5923
  constructor(A, e) {
5924
5924
  super(A, e);
5925
5925
  }
@@ -5937,7 +5937,7 @@ class An extends j {
5937
5937
  );
5938
5938
  }
5939
5939
  }
5940
- class en extends j {
5940
+ class es extends j {
5941
5941
  constructor(A, e) {
5942
5942
  super(A, e);
5943
5943
  }
@@ -5954,7 +5954,7 @@ class en extends j {
5954
5954
  return (A = this.step.option) == null ? void 0 : A.displayType;
5955
5955
  }
5956
5956
  }
5957
- class tn extends j {
5957
+ class ts extends j {
5958
5958
  constructor(A, e) {
5959
5959
  super(A, e);
5960
5960
  }
@@ -6016,7 +6016,7 @@ class tn extends j {
6016
6016
  return A;
6017
6017
  }
6018
6018
  }
6019
- class an extends j {
6019
+ class as extends j {
6020
6020
  constructor(A, e) {
6021
6021
  super(A, e);
6022
6022
  }
@@ -6086,8 +6086,8 @@ class an extends j {
6086
6086
  * @param shouldCustomizeAll When true the user can configure the entire text string.
6087
6087
  */
6088
6088
  setFullTextCustomization(A) {
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;
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;
6091
6091
  return this.manager.updateStorage(this.step.stepName, {
6092
6092
  customiseAllText: A,
6093
6093
  text: a,
@@ -6104,10 +6104,10 @@ class an 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 s = t.length <= 0, i = s ? { inputText: a, text: a } : { inputText: a };
6107
+ const n = t.length <= 0, i = n ? { 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
- }), s)
6110
+ }), n)
6111
6111
  return e;
6112
6112
  const { command: o, errors: c, helperText: r } = K.updateInputText(
6113
6113
  a,
@@ -6189,7 +6189,7 @@ class an extends j {
6189
6189
  return A - e.length;
6190
6190
  }
6191
6191
  }
6192
- class nn extends j {
6192
+ class ss 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 nn(A, e);
6209
+ return new ss(A, e);
6210
6210
  case D.Question:
6211
- return new en(A, e);
6211
+ return new es(A, e);
6212
6212
  case D.Text:
6213
- return new an(A, e);
6213
+ return new as(A, e);
6214
6214
  case D.Illustration:
6215
6215
  return new Za(A, e);
6216
6216
  case D.Picture:
6217
- return new An(A, e);
6217
+ return new As(A, e);
6218
6218
  case D.Shape:
6219
- return new tn(A, e);
6219
+ return new ts(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 ps(A, e);
6225
+ return new pn(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
- `, sn = y`
6250
+ `, ns = 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
- `, on = y`
6282
+ `, is = 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
- `, rn = async (g) => {
6296
+ `, os = async (g) => {
6297
6297
  var e;
6298
6298
  return (e = (await N.getShadowGraphqlClient().mutate({
6299
- mutation: sn,
6299
+ mutation: ns,
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
- }, cn = async (g) => {
6313
+ }, rs = async (g) => {
6314
6314
  var e;
6315
6315
  return (e = (await N.getShadowGraphqlClient().mutate({
6316
- mutation: on,
6316
+ mutation: is,
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 = (n) => {
6334
- const s = {};
6335
- if (n.type === "Frame") {
6336
- const i = g[n.stepName], o = n.data;
6333
+ const t = (s) => {
6334
+ const n = {};
6335
+ if (s.type === "Frame") {
6336
+ const i = g[s.stepName], o = s.data;
6337
6337
  if (!i || o.hideImageInCart && e)
6338
- return s;
6339
- s[`${n.stepTitle} image`] = i.image;
6338
+ return n;
6339
+ n[`${s.stepTitle} image`] = i.image;
6340
6340
  }
6341
- if (n.type === "Illustration") {
6342
- const i = g[n.stepName], o = n.data;
6341
+ if (s.type === "Illustration") {
6342
+ const i = g[s.stepName], o = s.data;
6343
6343
  if (!i || o.hideColorsInCart && e || !i.colors)
6344
- return s;
6344
+ return n;
6345
6345
  if (i.colors.length > 0) {
6346
6346
  const c = i.colors.join(", ").toUpperCase();
6347
- s[`${n.stepTitle} colors`] = c;
6347
+ n[`${s.stepTitle} colors`] = c;
6348
6348
  }
6349
6349
  }
6350
- if (n.type === "Module") {
6351
- const i = g[n.stepName], o = n.data;
6350
+ if (s.type === "Module") {
6351
+ const i = g[s.stepName], o = s.data;
6352
6352
  if (!i || o.hideTextInCart && e)
6353
- return s;
6354
- s[`${n.stepTitle} text`] = i.text;
6353
+ return n;
6354
+ n[`${s.stepTitle} text`] = i.text;
6355
6355
  }
6356
- if (n.type === "Text") {
6357
- const i = g[n.stepName];
6356
+ if (s.type === "Text") {
6357
+ const i = g[s.stepName];
6358
6358
  if (!i)
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);
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);
6362
6362
  }
6363
- return s;
6363
+ return n;
6364
6364
  }, a = {};
6365
- return A.steps.forEach((n) => {
6366
- Object.assign(a, t(n));
6365
+ return A.steps.forEach((s) => {
6366
+ Object.assign(a, t(s));
6367
6367
  }), a;
6368
- }, gn = (g, A, e, t) => {
6368
+ }, cs = (g, A, e, t) => {
6369
6369
  const a = {};
6370
- let n;
6370
+ let s;
6371
6371
  if (e) {
6372
- n = $A(e, A, !1);
6373
- for (const s of Object.keys(n))
6374
- a[s] = {
6375
- value: n[s],
6372
+ s = $A(e, A, !1);
6373
+ for (const n of Object.keys(s))
6374
+ a[n] = {
6375
+ value: s[n],
6376
6376
  priceModifier: 0
6377
6377
  };
6378
6378
  } else if (t) {
6379
- n = t;
6380
- for (const s of Object.keys(n))
6381
- a[s] = {
6382
- value: n[s],
6379
+ s = t;
6380
+ for (const n of Object.keys(s))
6381
+ a[n] = {
6382
+ value: s[n],
6383
6383
  priceModifier: 0
6384
6384
  };
6385
6385
  }
6386
- for (const s of Object.keys(g)) {
6387
- const i = g[s], o = A.steps.find((c) => c.stepTitle === s);
6386
+ for (const n of Object.keys(g)) {
6387
+ const i = g[n], o = A.steps.find((c) => c.stepTitle === n);
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, n, s, i, o, c) => {
6401
+ }, rt = (g, A, e, t, a, s, n, 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: n,
6407
+ exportedData: s,
6408
6408
  externalCartProductId: g.externalCartProductId,
6409
6409
  externalCartProductVariantId: g.externalCartProductVariantId,
6410
- lineItemImageUrl: s || "",
6410
+ lineItemImageUrl: n || "",
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
- }, ln = (g, A, e, t) => {
6421
- const a = (A.basePrice || 0) * (g.variationsCount || 0), n = g.priceModifierTotal || 0, s = {
6420
+ }, gs = (g, A, e, t) => {
6421
+ const a = (A.basePrice || 0) * (g.variationsCount || 0), s = g.priceModifierTotal || 0, n = {
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
- n,
6432
- void 0,
6433
6431
  s,
6432
+ void 0,
6433
+ n,
6434
6434
  e,
6435
6435
  void 0,
6436
6436
  void 0,
6437
6437
  t
6438
6438
  );
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);
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);
6441
6441
  return rt(
6442
6442
  g,
6443
6443
  A,
6444
6444
  o,
6445
6445
  c,
6446
- n,
6447
- r,
6448
6446
  s,
6447
+ r,
6448
+ n,
6449
6449
  t,
6450
6450
  a,
6451
6451
  i
6452
6452
  );
6453
- }, gt = async (g, A, e, t, a, n, s, i, o, c) => {
6453
+ }, gt = async (g, A, e, t, a, s, n, 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(n).length > 0)
6474
- for (const S of Object.keys(n)) {
6475
- const k = n[S], V = A.steps.find((W) => W.stepName === S);
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);
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: s,
6507
+ name: n,
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
- }, Bn = async (g, A, e, t, a, n, s, i, o, c, r, B, l) => {
6534
+ }, ls = async (g, A, e, t, a, s, n, 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
- n,
6543
6542
  s,
6543
+ n,
6544
6544
  i,
6545
6545
  B,
6546
6546
  l
6547
6547
  );
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;
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;
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 n.bulk ? ln(
6554
+ return s.bulk ? gs(
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
- }, dn = async (g, A) => {
6569
+ }, Bs = async (g, A) => {
6570
6570
  A("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
6571
- g.map(async (s) => {
6572
- await s.workflowManager.outstandingRequestsPromise();
6571
+ g.map(async (n) => {
6572
+ await n.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 (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,
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,
6595
6595
  // createPreviewImage,
6596
6596
  () => Promise.resolve(void 0),
6597
- s.workflowMetadata,
6597
+ n.workflowMetadata,
6598
6598
  t ? t[i] : void 0
6599
6599
  ))
6600
6600
  );
6601
6601
  A("workflow.steps.finish.finalize.creatingDesign");
6602
- const n = await cn(a.map((s) => s.designDetails));
6603
- if (!n)
6602
+ const s = await rs(a.map((n) => n.designDetails));
6603
+ if (!s)
6604
6604
  throw new Error("Failed to create designs");
6605
6605
  return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
6606
- n.map(async (s, i) => {
6606
+ s.map(async (n, i) => {
6607
6607
  var B;
6608
- const o = g[i], c = a[i], r = s.transaction;
6608
+ const o = g[i], c = a[i], r = n.transaction;
6609
6609
  return await ct(
6610
6610
  r,
6611
6611
  o.product,
6612
6612
  o.workflow,
6613
6613
  c.cartSelectionsWithPrices,
6614
- s.sku,
6614
+ n.sku,
6615
6615
  c.cartMetadata,
6616
6616
  //lineItemImageLink,
6617
6617
  void 0,
6618
- (B = s.processExecution) == null ? void 0 : B.id
6618
+ (B = n.processExecution) == null ? void 0 : B.id
6619
6619
  );
6620
6620
  })
6621
6621
  );
6622
6622
  };
6623
- class wn {
6623
+ class ds {
6624
6624
  constructor() {
6625
6625
  this.localPersistenceKey = "designTransactions", this.storageMethod = "Local", this.designSavedListeners = [];
6626
6626
  }
@@ -6666,7 +6666,7 @@ class wn {
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((n) => n.transactionId === A);
6669
+ const t = await this.getSavedDesigns(), a = t.find((s) => s.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 wn {
6687
6687
  throw new J("Unexpected storage method requested");
6688
6688
  }
6689
6689
  }
6690
- const zA = new wn();
6690
+ const zA = new ds();
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 (n) => new Promise((s, i) => {
6698
+ }, 2500), this.getCanvasObjectURLAsync = async (s) => new Promise((n, i) => {
6699
6699
  try {
6700
- n.toBlob((o) => {
6700
+ s.toBlob((o) => {
6701
6701
  if (o) {
6702
6702
  const c = URL.createObjectURL(o);
6703
- s(c);
6703
+ n(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((n) => n.word)) || [],
6715
+ ((a = e.product.profanities) == null ? void 0 : a.map((s) => s.word)) || [],
6716
6716
  t,
6717
6717
  this.commandContext,
6718
- (n) => {
6718
+ (s) => {
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(n);
6724
+ return e.stateMutationFunc(s);
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((n) => {
6735
- const s = n.traversableScenes.map((i) => {
6734
+ ), this.workflowManager.addSelectionCallback((s) => {
6735
+ const n = s.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 = s, this.renderableSceneCallbacks.forEach((i) => i(s));
6743
+ this.renderableScenes = n, this.renderableSceneCallbacks.forEach((i) => i(n));
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 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) => {
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) => {
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 = s.getContext("2d");
6797
+ }, l = this.commandContext.getLayoutById(r.layoutState.layout.id), d = n.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(s);
6815
- return s.toDataURL(h);
6814
+ const h = await this.getCanvasObjectURLAsync(n);
6815
+ return n.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, n) => a + n);
6836
+ e += t.selections.map((a) => a.priceModifier).reduce((a, s) => a + s);
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, n, s;
6882
- const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
6881
+ var a, s, n;
6882
+ const t = (n = (s = (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 : n.stakeholders) == null ? void 0 : s.find(
6889
+ })).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : s.stakeholders) == null ? void 0 : n.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 n = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((c) => c.transactionId === n)) == null ? void 0 : o.title;
6915
+ const s = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((c) => c.transactionId === s)) == 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 us({}), n = (i = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : i.id;
6934
- if (!n)
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)
6935
6935
  throw new J("Integration product id is undefined!");
6936
- return await a.initFromIntegrationProduct(n), await a.getWorkflowExperience(t.id, e, void 0);
6936
+ return await a.initFromIntegrationProduct(s), await a.getWorkflowExperience(t.id, e, void 0);
6937
6937
  }
6938
6938
  async onDesignFinished(A, e = !0) {
6939
- return Bn(
6939
+ return ls(
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((n) => {
6968
- const s = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
6969
- if (!s)
6967
+ return Object.keys(e).forEach((s) => {
6968
+ const n = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === s);
6969
+ if (!n)
6970
6970
  return;
6971
- A.has(s.stepTitle) || A.set(s.stepTitle, {});
6972
- const i = e[n];
6971
+ A.has(n.stepTitle) || A.set(n.stepTitle, {});
6972
+ const i = e[s];
6973
6973
  Object.keys(i).forEach((o) => {
6974
- A.get(s.stepTitle)[o] = i[o];
6974
+ A.get(n.stepTitle)[o] = i[o];
6975
6975
  });
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);
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);
6979
6979
  }), A;
6980
6980
  }
6981
6981
  }
6982
- const En = [
6982
+ const ws = [
6983
6983
  "altGlyph",
6984
6984
  "circle",
6985
6985
  "ellipse",
@@ -6991,9 +6991,9 @@ const En = [
6991
6991
  "textPath",
6992
6992
  "tref",
6993
6993
  "tspan"
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) === "/" ? "" : "/");
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) === "/" ? "" : "/");
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 En = [
7018
7018
  } catch (d) {
7019
7019
  return console.error(d), [];
7020
7020
  }
7021
- }, Cn = async (g, A, e, t) => {
7022
- const a = e.data, n = a.assetUrl, s = await VA(n);
7021
+ }, hs = async (g, A, e, t) => {
7022
+ const a = e.data, s = a.assetUrl, n = await VA(s);
7023
7023
  try {
7024
7024
  const i = xt(a, t.option);
7025
7025
  i && (A[t.stepName] = { selectedVariants: [i] });
@@ -7034,7 +7034,7 @@ const En = [
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(s, B, {
7037
+ const E = Ae(n, B, {
7038
7038
  scale: a.scale,
7039
7039
  left: a.x,
7040
7040
  top: a.y
@@ -7064,25 +7064,25 @@ const En = [
7064
7064
  },
7065
7065
  d
7066
7066
  ),
7067
- new Ie(l, s, E)
7067
+ new Ie(l, n, 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
- }, Qn = async (g, A, e, t) => {
7074
+ }, Cs = async (g, A, e, t) => {
7075
7075
  var p, F;
7076
- const a = e.data, n = t.option;
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);
7076
+ const a = e.data, s = t.option;
7080
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);
7080
+ if (!n)
7081
7081
  return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
7082
- if (!s.asset)
7082
+ if (!n.asset)
7083
7083
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
7084
- A[t.stepName] = { selectedVariants: [s] };
7085
- const i = (F = s.asset) == null ? void 0 : F.fileLink;
7084
+ A[t.stepName] = { selectedVariants: [n] };
7085
+ const i = (F = n.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 En = [
7091
7091
  Re(E);
7092
7092
  const C = {};
7093
7093
  Rt(E, (I) => {
7094
- En.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
7094
+ ws.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 En = [
7140
7140
  } catch (I) {
7141
7141
  return console.error(I), [];
7142
7142
  }
7143
- }, un = async (g, A, e) => {
7144
- const t = await nt(e.data.module), a = A.data, n = (i, o) => {
7143
+ }, Qs = async (g, A, e) => {
7144
+ const t = await st(e.data.module), a = A.data, s = (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 En = [
7162
7162
  },
7163
7163
  c
7164
7164
  );
7165
- }, s = e.data.regions;
7165
+ }, n = e.data.regions;
7166
7166
  try {
7167
- return s.map(
7168
- (i) => n(t.svgPrint(a.text, i), i)
7167
+ return n.map(
7168
+ (i) => s(t.svgPrint(a.text, i), i)
7169
7169
  );
7170
7170
  } catch (i) {
7171
7171
  return console.error(i), [];
7172
7172
  }
7173
- }, mn = async (g, A, e, t) => {
7173
+ }, us = async (g, A, e, t) => {
7174
7174
  var r, B;
7175
- const a = e.data, n = t.option;
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);
7175
+ const a = e.data, s = t.option;
7179
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);
7179
+ if (!n)
7180
7180
  return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
7181
- if (!s.asset)
7181
+ if (!n.asset)
7182
7182
  return console.error(`No asset for variant with ID: ${a.pictureVariantId}`), [];
7183
- A[t.stepName] = { selectedVariants: [s] };
7184
- const i = (B = s.asset) == null ? void 0 : B.fileLink;
7183
+ A[t.stepName] = { selectedVariants: [n] };
7184
+ const i = (B = n.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 En = [
7212
7212
  } catch (l) {
7213
7213
  return console.error(l), [];
7214
7214
  }
7215
- }, pn = async (g, A, e, t) => {
7215
+ }, ms = async (g, A, e, t) => {
7216
7216
  var c;
7217
- const a = e.data, n = t.option;
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);
7217
+ const a = e.data, s = t.option;
7221
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);
7221
+ if (!n)
7222
7222
  return console.error(`No variant with ID: ${a.colorVariantId}`), [];
7223
- A[t.stepName] = { selectedVariants: [s] };
7223
+ A[t.stepName] = { selectedVariants: [n] };
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 En = [
7242
7242
  width="1"
7243
7243
  height="1"
7244
7244
  class="spiff-fill-shape"
7245
- fill="${s == null ? void 0 : s.color}"
7245
+ fill="${n == null ? void 0 : n.color}"
7246
7246
  />
7247
7247
  </svg>
7248
- `, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = v();
7248
+ `, E = { "spiff-fill-shape": { browserValue: n.color || "#000000" } }, C = v();
7249
7249
  return new b(
7250
7250
  {
7251
7251
  colors: E,
@@ -7269,11 +7269,11 @@ const En = [
7269
7269
  } catch (r) {
7270
7270
  return console.error(r), [];
7271
7271
  }
7272
- }, In = async (g, A, e) => {
7273
- const t = [], n = (() => {
7272
+ }, ps = async (g, A, e) => {
7273
+ const t = [], s = (() => {
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 = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? P.Image : n.endsWith(".svg") ? P.Illustration : P.Illustration)(), o = A.data.regions;
7276
+ })(), i = (() => s.endsWith(".jpeg") || s.endsWith(".jpg") || s.endsWith(".png") ? P.Image : s.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 En = [
7282
7282
  throw new L(c);
7283
7283
  const B = {
7284
7284
  id: v(),
7285
- src: n,
7285
+ src: s,
7286
7286
  type: i,
7287
7287
  y: c.top,
7288
7288
  x: c.left,
@@ -7303,8 +7303,8 @@ const En = [
7303
7303
  console.error(c);
7304
7304
  }
7305
7305
  else {
7306
- console.log(`fetching ${n}`);
7307
- const c = await Z(n), r = (B) => {
7306
+ console.log(`fetching ${s}`);
7307
+ const c = await Z(s), 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 En = [
7316
7316
  throw new L(B);
7317
7317
  const d = {
7318
7318
  id: v(),
7319
- src: n,
7320
- asset_key: n,
7319
+ src: s,
7320
+ asset_key: s,
7321
7321
  svg: r(c),
7322
7322
  colors: {},
7323
7323
  type: i,
@@ -7337,13 +7337,13 @@ const En = [
7337
7337
  });
7338
7338
  }
7339
7339
  return t;
7340
- }, Dn = async (g, A, e, t) => {
7341
- const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", o = () => {
7340
+ }, Is = async (g, A, e, t) => {
7341
+ const a = [], s = e.data, n = 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 === n.fontVariantId)) || UA(w);
7346
+ const h = ((m = w.variants) == null ? void 0 : m.find((u) => u.id === s.fontVariantId)) || UA(w);
7347
7347
  if (!h || !h.asset)
7348
7348
  return;
7349
7349
  A[t.stepName] = { selectedVariants: [h] };
@@ -7360,7 +7360,7 @@ const En = [
7360
7360
  assetUrl: w,
7361
7361
  name: m.names.fullName.en
7362
7362
  };
7363
- })(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", n.text) : n.text, l = WA(B, {
7363
+ })(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", s.text) : s.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 En = [
7369
7369
  return;
7370
7370
  const Q = z.getDefaultVariant(h);
7371
7371
  return Q == null ? void 0 : Q.color;
7372
- }, E = n.color || await d(t.data), C = t.data.regions;
7372
+ }, E = s.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 En = [
7379
7379
  id: v(),
7380
7380
  align: i(t.data),
7381
7381
  curved: t.data.curved,
7382
- fill: n.color || E || "#000000",
7382
+ fill: s.color || E || "#000000",
7383
7383
  fontData: r,
7384
- fontSize: t.data.size || s,
7384
+ fontSize: t.data.size || n,
7385
7385
  height: w.height,
7386
7386
  layer: w.layer,
7387
7387
  layerIndex: w.layerIndex,
@@ -7397,7 +7397,7 @@ const En = [
7397
7397
  };
7398
7398
  if (r) {
7399
7399
  const [m, u] = pA(
7400
- t.data.size || s,
7400
+ t.data.size || n,
7401
7401
  r,
7402
7402
  w,
7403
7403
  [
@@ -7427,65 +7427,65 @@ const En = [
7427
7427
  a.push(new b(Q, h));
7428
7428
  }
7429
7429
  return a;
7430
- }, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
7430
+ }, Ds = (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
- (n) => a.find((s) => s.id === n) !== void 0
7435
+ (s) => a.find((n) => n.id === s) !== void 0
7436
7436
  );
7437
7437
  }
7438
7438
  return !1;
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);
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);
7443
7443
  if (i)
7444
7444
  switch (i.type) {
7445
7445
  case D.DigitalContent:
7446
7446
  a.push(
7447
- ...await hn(e, s, i)
7447
+ ...await Es(e, n, i)
7448
7448
  );
7449
7449
  break;
7450
7450
  case D.Frame:
7451
7451
  case D.Photo:
7452
7452
  a.push(
7453
- ...await Cn(e, n, s, i)
7453
+ ...await hs(e, s, n, i)
7454
7454
  );
7455
7455
  break;
7456
7456
  case D.Illustration:
7457
7457
  a.push(
7458
- ...await Qn(
7458
+ ...await Cs(
7459
7459
  e,
7460
- n,
7461
7460
  s,
7461
+ n,
7462
7462
  i
7463
7463
  )
7464
7464
  );
7465
7465
  break;
7466
7466
  case D.Module:
7467
- a.push(...await un(e, s, i));
7467
+ a.push(...await Qs(e, n, i));
7468
7468
  break;
7469
7469
  case D.Picture:
7470
7470
  a.push(
7471
- ...await mn(e, n, s, i)
7471
+ ...await us(e, s, n, i)
7472
7472
  );
7473
7473
  break;
7474
7474
  case D.Shape:
7475
7475
  a.push(
7476
- ...await pn(e, n, s, i)
7476
+ ...await ms(e, s, n, i)
7477
7477
  );
7478
7478
  break;
7479
7479
  case D.Text:
7480
7480
  a.push(
7481
- ...await Dn(e, n, s, i)
7481
+ ...await Is(e, s, n, i)
7482
7482
  );
7483
7483
  break;
7484
7484
  }
7485
7485
  }
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)
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)
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 yn(t.id, t.name, this))), this.layouts = e;
7496
+ A.forEach((t) => e.set(t.id, new Ms(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 Mn = () => (uA !== void 0 || (uA = !!MA(500, 500).getContext("webgl2")), uA);
7510
- class yn {
7509
+ const Fs = () => (uA !== void 0 || (uA = !!MA().getContext("webgl2")), uA);
7510
+ class Ms {
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 yn {
7525
7525
  */
7526
7526
  setStaticContext(A) {
7527
7527
  if (this.textureCtx = A, this.lastRequestedRenderArguments) {
7528
- const { workflow: e, layouts: t, variationRecord: a, productOverlayImageUrl: n } = this.lastRequestedRenderArguments;
7529
- this.render(e, t, a, n);
7528
+ const { workflow: e, layouts: t, variationRecord: a, productOverlayImageUrl: s } = this.lastRequestedRenderArguments;
7529
+ this.render(e, t, a, s);
7530
7530
  }
7531
7531
  }
7532
7532
  getStaticContextDirty() {
@@ -7558,37 +7558,37 @@ class yn {
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 n = gA(e);
7561
+ const s = gA(e);
7562
7562
  this.lastRequestedRenderArguments = {
7563
7563
  workflow: A,
7564
- layouts: n,
7564
+ layouts: s,
7565
7565
  variationRecord: t,
7566
7566
  productOverlayImageUrl: a
7567
7567
  };
7568
- const s = this.getStaticContext();
7569
- if (!s) {
7568
+ const n = this.getStaticContext();
7569
+ if (!n) {
7570
7570
  this.markLastCompletedStaticRender(), this.setStaticContextDirty(!1);
7571
7571
  return;
7572
7572
  }
7573
7573
  this.renderQueue.enqueue(
7574
- new Yn(
7574
+ new ys(
7575
7575
  this.getID(),
7576
- s,
7577
- Mn(),
7576
+ n,
7577
+ Fs(),
7578
7578
  () => {
7579
7579
  this.markLastCompletedStaticRender(), this.setStaticContextDirty(!0);
7580
7580
  },
7581
7581
  A,
7582
- n,
7582
+ s,
7583
7583
  t,
7584
7584
  a
7585
7585
  )
7586
7586
  );
7587
7587
  }
7588
7588
  }
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;
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;
7592
7592
  }
7593
7593
  /**
7594
7594
  * Returns the resolution expected for generated textures.
@@ -7612,8 +7612,8 @@ class Yn 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, n = Math.min(t, a);
7616
- return n > 1 ? A : { width: A.width * n, height: A.height * n };
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 };
7617
7617
  }
7618
7618
  /**
7619
7619
  * Render the internally stored layout to the canvas.
@@ -7632,8 +7632,8 @@ class Yn extends Ve {
7632
7632
  stepName: C.stepName,
7633
7633
  stepAspectType: C.aspect,
7634
7634
  value: C.value
7635
- })), d = await xn(
7636
- Sn(l, this.workflow),
7635
+ })), d = await Ss(
7636
+ Ys(l, this.workflow),
7637
7637
  this.workflow,
7638
7638
  this.layouts.map((C) => C.layoutState.layout),
7639
7639
  this.productOverlayImageUrl
@@ -7643,18 +7643,20 @@ class Yn 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, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
7646
+ const t = A.layoutState.layout.width, a = A.layoutState.layout.height, s = this.getDynamicTextureResolution().width, n = this.getDynamicTextureResolution().height;
7647
7647
  let i, o;
7648
7648
  if (this.nonPOTSupport) {
7649
- const l = n / s;
7650
- t / a < l ? (i = n, o = a * (n / t)) : (i = t * (s / a), o = s);
7649
+ const l = s / n;
7650
+ t / a < l ? (i = s, o = a * (s / t)) : (i = t * (n / a), o = n);
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), B = await Pe.from(this.ctx, r, {
7657
+ }), r = ye(c);
7658
+ console.log("SVG", r);
7659
+ const B = await Pe.from(this.ctx, r, {
7658
7660
  anonymousCrossOrigin: !0,
7659
7661
  ignoreDimensions: !this.nonPOTSupport,
7660
7662
  ignoreAnimation: !0,
@@ -7666,13 +7668,13 @@ class Yn extends Ve {
7666
7668
  DOMParser: Se(),
7667
7669
  fetch: xe
7668
7670
  });
7669
- B.resize(i, o), await B.render(), this.onRender();
7671
+ B.resize(i, o), await B.render(), console.log("ctx", this.ctx, this.ctx.canvas), this.onRender();
7670
7672
  }
7671
7673
  }
7672
- const Sn = (g, A) => {
7674
+ const Ys = (g, A) => {
7673
7675
  const e = [];
7674
7676
  return g.forEach((t) => {
7675
- const a = A.steps.find((n) => n.stepName === t.stepName);
7677
+ const a = A.steps.find((s) => s.stepName === t.stepName);
7676
7678
  (a == null ? void 0 : a.type) === D.Text && t.stepAspectType === "Text" && e.push({
7677
7679
  name: a.stepName,
7678
7680
  data: {
@@ -7680,15 +7682,15 @@ const Sn = (g, A) => {
7680
7682
  }
7681
7683
  });
7682
7684
  }), e;
7683
- }, xn = async (g, A, e, t) => {
7685
+ }, Ss = async (g, A, e, t) => {
7684
7686
  let a = {
7685
7687
  serializableWorkflow: { steps: [] },
7686
7688
  layouts: {}
7687
7689
  };
7688
7690
  a = new G(e.map((o) => new Ut(o))).apply(a);
7689
- const s = await Fn(g, A, e, t);
7690
- return new G(s).apply(a);
7691
- }, Nn = y`
7691
+ const n = await fs(g, A, e, t);
7692
+ return new G(n).apply(a);
7693
+ }, xs = y`
7692
7694
  fragment ProductCollectionProductFields on Product {
7693
7695
  id
7694
7696
  basePrice
@@ -7724,7 +7726,7 @@ const Sn = (g, A) => {
7724
7726
  }
7725
7727
  }
7726
7728
  `, lt = y`
7727
- ${Nn}
7729
+ ${xs}
7728
7730
  fragment ProductCollectionFields on ProductCollection {
7729
7731
  id
7730
7732
  name
@@ -7770,7 +7772,7 @@ const Sn = (g, A) => {
7770
7772
  }
7771
7773
  }
7772
7774
  }
7773
- `, Rn = y`
7775
+ `, Ns = y`
7774
7776
  ${lt}
7775
7777
  query GetBundle($id: String!) {
7776
7778
  bundles(ids: [$id]) {
@@ -7792,7 +7794,7 @@ const Sn = (g, A) => {
7792
7794
  }
7793
7795
  }
7794
7796
  }
7795
- `, Hn = y`
7797
+ `, Rs = y`
7796
7798
  query GetBundleStakeholders($id: String!) {
7797
7799
  bundles(ids: [$id]) {
7798
7800
  id
@@ -7812,7 +7814,7 @@ const Sn = (g, A) => {
7812
7814
  }
7813
7815
  }
7814
7816
  }
7815
- `, Pn = y`
7817
+ `, Hs = y`
7816
7818
  query GetBundlesForCustomer($id: String!) {
7817
7819
  customers(ids: [$id]) {
7818
7820
  bundleStakeholders {
@@ -7833,7 +7835,7 @@ const Sn = (g, A) => {
7833
7835
  }
7834
7836
  }
7835
7837
  }
7836
- `, Un = y`
7838
+ `, Ps = y`
7837
7839
  ${lt}
7838
7840
  mutation CreateBundle($collectionId: String) {
7839
7841
  bundleCreate(collectionId: $collectionId) {
@@ -7852,25 +7854,25 @@ const Sn = (g, A) => {
7852
7854
  }
7853
7855
  }
7854
7856
  }
7855
- `, Gn = y`
7857
+ `, Us = y`
7856
7858
  mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
7857
7859
  bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
7858
7860
  id
7859
7861
  }
7860
7862
  }
7861
- `, vn = y`
7863
+ `, Gs = y`
7862
7864
  mutation BundleAddTransaction($id: String!, $transactionId: String!) {
7863
7865
  bundleAddTransaction(id: $id, transactionId: $transactionId) {
7864
7866
  id
7865
7867
  }
7866
7868
  }
7867
- `, kn = y`
7869
+ `, vs = y`
7868
7870
  mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
7869
7871
  bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
7870
7872
  id
7871
7873
  }
7872
7874
  }
7873
- `, Jn = y`
7875
+ `, ks = y`
7874
7876
  mutation BundleRemoveTransaction(
7875
7877
  $id: String!
7876
7878
  $transactionId: String!
@@ -7885,7 +7887,7 @@ const Sn = (g, A) => {
7885
7887
  id
7886
7888
  }
7887
7889
  }
7888
- `, bn = y`
7890
+ `, Js = y`
7889
7891
  mutation BundleRemoveTransactions(
7890
7892
  $id: String!
7891
7893
  $transactionIds: [String!]!
@@ -7900,7 +7902,7 @@ const Sn = (g, A) => {
7900
7902
  id
7901
7903
  }
7902
7904
  }
7903
- `, Tn = y`
7905
+ `, bs = y`
7904
7906
  mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
7905
7907
  bundleAddStakeholder(id: $id, details: $details, type: $type) {
7906
7908
  id
@@ -7920,7 +7922,7 @@ const Sn = (g, A) => {
7920
7922
  }
7921
7923
  }
7922
7924
  }
7923
- `, Ln = y`
7925
+ `, Ts = y`
7924
7926
  mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
7925
7927
  bundleUpdateStakeholders(id: $id, input: $input) {
7926
7928
  id
@@ -7940,14 +7942,14 @@ const Sn = (g, A) => {
7940
7942
  }
7941
7943
  }
7942
7944
  }
7943
- `, On = y`
7945
+ `, Ls = y`
7944
7946
  mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
7945
7947
  bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
7946
7948
  id
7947
7949
  }
7948
7950
  }
7949
7951
  `;
7950
- class zn {
7952
+ class Os {
7951
7953
  constructor(A) {
7952
7954
  this.handleCache = {}, this.bundle = A;
7953
7955
  }
@@ -7984,20 +7986,20 @@ class zn {
7984
7986
  }
7985
7987
  aspectConditionsSatisfied(A, e) {
7986
7988
  return !A.conditions || A.conditions.length === 0 ? !0 : A.conditions.some((t) => {
7987
- const a = e.aspects.find((n) => n.name === t.targetAspectName);
7988
- return a ? t.requiredVariantSelections.some((n) => n === a.value) : !1;
7989
+ const a = e.aspects.find((s) => s.name === t.targetAspectName);
7990
+ return a ? t.requiredVariantSelections.some((s) => s === a.value) : !1;
7989
7991
  });
7990
7992
  }
7991
7993
  async createHandle(A) {
7992
7994
  switch (A.type) {
7993
7995
  case DA.FileUpload:
7994
- return new Kn(this.bundle, A);
7996
+ return new zs(this.bundle, A);
7995
7997
  case DA.Option: {
7996
7998
  const e = A.entityId ? await z.getOption(A.entityId) : void 0;
7997
- return (e == null ? void 0 : e.type) === "Color" ? new Vn(this.bundle, A, e) : new Bt(this.bundle, A, e);
7999
+ return (e == null ? void 0 : e.type) === "Color" ? new js(this.bundle, A, e) : new Bt(this.bundle, A, e);
7998
8000
  }
7999
8001
  case DA.Text:
8000
- return new jn(this.bundle, A);
8002
+ return new Ks(this.bundle, A);
8001
8003
  }
8002
8004
  }
8003
8005
  }
@@ -8041,9 +8043,9 @@ class oe {
8041
8043
  */
8042
8044
  getSharedSteps(A) {
8043
8045
  return (A ?? this.bundle.getWorkflowExperiences()).flatMap(
8044
- (a) => a.getSteps().filter((n) => {
8045
- var s;
8046
- return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
8046
+ (a) => a.getSteps().filter((s) => {
8047
+ var n;
8048
+ return (n = s.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : n.some(
8047
8049
  (i) => {
8048
8050
  var o, c;
8049
8051
  return i.globalPropertyConfigurationId === ((c = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : c.id) && i.aspectName === this.property.name;
@@ -8053,7 +8055,7 @@ class oe {
8053
8055
  );
8054
8056
  }
8055
8057
  }
8056
- class Kn extends oe {
8058
+ class zs extends oe {
8057
8059
  constructor(A, e) {
8058
8060
  super(A, e);
8059
8061
  }
@@ -8076,11 +8078,11 @@ class Kn extends oe {
8076
8078
  return t ? this.applyImageSelection(t, A) : Promise.resolve();
8077
8079
  }
8078
8080
  async applyImageSelection(A, e) {
8079
- const a = this.getSharedSteps(e).map((n) => n.selectImage(A));
8081
+ const a = this.getSharedSteps(e).map((s) => s.selectImage(A));
8080
8082
  await Promise.all(a);
8081
8083
  }
8082
8084
  }
8083
- class jn extends oe {
8085
+ class Ks extends oe {
8084
8086
  constructor(A, e) {
8085
8087
  super(A, e);
8086
8088
  }
@@ -8107,8 +8109,8 @@ class jn extends oe {
8107
8109
  await this.applyTextSelection(e, A);
8108
8110
  }
8109
8111
  async applyTextSelection(A, e) {
8110
- const a = this.getSharedSteps(e).map((n) => {
8111
- n.setText(A);
8112
+ const a = this.getSharedSteps(e).map((s) => {
8113
+ s.setText(A);
8112
8114
  });
8113
8115
  await Promise.all(a);
8114
8116
  }
@@ -8126,13 +8128,13 @@ class Bt extends oe {
8126
8128
  return;
8127
8129
  const A = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8128
8130
  if (A) {
8129
- const a = (t = this.optionResource.variants) == null ? void 0 : t.find((n) => n.id === A);
8131
+ const a = (t = this.optionResource.variants) == null ? void 0 : t.find((s) => s.id === A);
8130
8132
  return a ? new X(a) : void 0;
8131
8133
  } else {
8132
8134
  const a = (e = this.optionResource.variants) == null ? void 0 : e.find(
8133
- (n) => {
8134
- var s, i;
8135
- return n.id === ((i = (s = this.optionResource) == null ? void 0 : s.defaultVariant) == null ? void 0 : i.id);
8135
+ (s) => {
8136
+ var n, i;
8137
+ return s.id === ((i = (n = this.optionResource) == null ? void 0 : n.defaultVariant) == null ? void 0 : i.id);
8136
8138
  }
8137
8139
  );
8138
8140
  return a ? new X(a) : void 0;
@@ -8163,19 +8165,19 @@ class Bt extends oe {
8163
8165
  ]);
8164
8166
  }
8165
8167
  async applyGlobalState(A) {
8166
- var a, n;
8168
+ var a, s;
8167
8169
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
8168
8170
  if (!e)
8169
8171
  return Promise.resolve();
8170
- const t = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((s) => s.id === e);
8172
+ const t = (s = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : s.find((n) => n.id === e);
8171
8173
  return t ? this.applyVariantSelection(new X(t), A) : Promise.resolve();
8172
8174
  }
8173
8175
  async applyVariantSelection(A, e) {
8174
- const a = this.getSharedSteps(e).map((n) => n.selectVariant(A));
8176
+ const a = this.getSharedSteps(e).map((s) => s.selectVariant(A));
8175
8177
  await Promise.all(a);
8176
8178
  }
8177
8179
  }
8178
- class Vn extends Bt {
8180
+ class js extends Bt {
8179
8181
  constructor(A, e, t) {
8180
8182
  super(A, e, t);
8181
8183
  }
@@ -8192,7 +8194,7 @@ class Vn extends Bt {
8192
8194
  return this.getSharedSteps()[0].getCustomColor();
8193
8195
  }
8194
8196
  }
8195
- const Wn = y`
8197
+ const Vs = y`
8196
8198
  mutation CreateGlobalPropertyState($bundleId: String!) {
8197
8199
  globalPropertyStateCreate(bundleId: $bundleId) {
8198
8200
  id
@@ -8202,7 +8204,7 @@ const Wn = y`
8202
8204
  }
8203
8205
  }
8204
8206
  }
8205
- `, Xn = y`
8207
+ `, Ws = y`
8206
8208
  mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
8207
8209
  globalPropertyStateUpdate(id: $id, aspects: $aspects) {
8208
8210
  id
@@ -8212,7 +8214,7 @@ const Wn = y`
8212
8214
  }
8213
8215
  }
8214
8216
  }
8215
- `, qn = y`
8217
+ `, Xs = y`
8216
8218
  query GetGlobalPropertyState($bundleId: String!) {
8217
8219
  globalPropertyState(bundleId: $bundleId) {
8218
8220
  id
@@ -8223,7 +8225,7 @@ const Wn = y`
8223
8225
  }
8224
8226
  }
8225
8227
  `;
8226
- class Zn {
8228
+ class qs {
8227
8229
  constructor(A, e) {
8228
8230
  this.bundleId = A, this.initPromise = this.getOrCreateGlobalPropertyState().then((t) => {
8229
8231
  this.globalPropertyState = t;
@@ -8245,7 +8247,7 @@ class Zn {
8245
8247
  async setAspect(A, e) {
8246
8248
  if (!this.globalPropertyState)
8247
8249
  throw new Error("Global property state not initialized");
8248
- const t = gA(this.globalPropertyState), a = this.globalPropertyState.aspects.find((n) => n.name === A);
8250
+ const t = gA(this.globalPropertyState), a = this.globalPropertyState.aspects.find((s) => s.name === A);
8249
8251
  a ? a.value = e : this.globalPropertyState.aspects.push({ name: A, value: e }), await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
8250
8252
  }
8251
8253
  async updateGlobalPropertyState() {
@@ -8253,7 +8255,7 @@ class Zn {
8253
8255
  if (!this.globalPropertyState)
8254
8256
  throw new Error("Global property state not initialized");
8255
8257
  const A = await N.getShadowGraphqlClient().mutate({
8256
- mutation: Xn,
8258
+ mutation: Ws,
8257
8259
  variables: {
8258
8260
  id: this.globalPropertyState.id,
8259
8261
  aspects: this.globalPropertyState.aspects
@@ -8267,7 +8269,7 @@ class Zn {
8267
8269
  async getOrCreateGlobalPropertyState() {
8268
8270
  var t;
8269
8271
  const A = await N.getShadowGraphqlClient().query({
8270
- query: qn,
8272
+ query: Xs,
8271
8273
  errorPolicy: "all",
8272
8274
  fetchPolicy: "no-cache",
8273
8275
  variables: {
@@ -8277,7 +8279,7 @@ class Zn {
8277
8279
  if (A.data.globalPropertyState && A.data.globalPropertyState.id)
8278
8280
  return A.data.globalPropertyState;
8279
8281
  const e = await N.getShadowGraphqlClient().mutate({
8280
- mutation: Wn,
8282
+ mutation: Vs,
8281
8283
  variables: {
8282
8284
  bundleId: this.bundleId
8283
8285
  }
@@ -8287,7 +8289,7 @@ class Zn {
8287
8289
  throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`);
8288
8290
  }
8289
8291
  }
8290
- class $n {
8292
+ class Zs {
8291
8293
  constructor(A) {
8292
8294
  this.setState(A);
8293
8295
  }
@@ -8295,12 +8297,12 @@ class $n {
8295
8297
  A && (this.state = JSON.parse(A));
8296
8298
  }
8297
8299
  applyStateToWorkflowExperience(A) {
8298
- var a, n;
8300
+ var a, s;
8299
8301
  if (!this.state || !((a = A == null ? void 0 : A.getWorkflowManager()) != null && a.getModelContainer()))
8300
8302
  return;
8301
- const e = (n = this.state.transactions.find(
8302
- (s) => s.transactionId === A.getWorkflowManager().getTransaction().id && s.transform
8303
- )) == null ? void 0 : n.transform;
8303
+ const e = (s = this.state.transactions.find(
8304
+ (n) => n.transactionId === A.getWorkflowManager().getTransaction().id && n.transform
8305
+ )) == null ? void 0 : s.transform;
8304
8306
  if (!e)
8305
8307
  return;
8306
8308
  const t = A.getWorkflowManager().getModelContainer();
@@ -8311,8 +8313,8 @@ class $n {
8311
8313
  }, t.scale = e.scale;
8312
8314
  }
8313
8315
  setWorkflowExperienceTransform(A, e) {
8314
- var s;
8315
- if (!((s = A == null ? void 0 : A.getWorkflowManager()) != null && s.getModelContainer()))
8316
+ var n;
8317
+ if (!((n = A == null ? void 0 : A.getWorkflowManager()) != null && n.getModelContainer()))
8316
8318
  return;
8317
8319
  const t = A.getWorkflowManager().getModelContainer();
8318
8320
  t.position = e.position, t.rotation = {
@@ -8324,8 +8326,8 @@ class $n {
8324
8326
  this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
8325
8327
  transactions: []
8326
8328
  };
8327
- const n = this.state.transactions.find((i) => i.transactionId === a);
8328
- n ? n.transform = e : this.state.transactions.push({
8329
+ const s = this.state.transactions.find((i) => i.transactionId === a);
8330
+ s ? s.transform = e : this.state.transactions.push({
8329
8331
  transactionId: a,
8330
8332
  transform: e
8331
8333
  });
@@ -8341,7 +8343,7 @@ class $n {
8341
8343
  return JSON.stringify(this.state);
8342
8344
  }
8343
8345
  }
8344
- class _n {
8346
+ class $s {
8345
8347
  constructor(A) {
8346
8348
  this.collection = A;
8347
8349
  }
@@ -8361,7 +8363,7 @@ class _n {
8361
8363
  * A list of products in this collections with useful helpers for interacting with them.
8362
8364
  */
8363
8365
  getProducts() {
8364
- return this.collection.products.map((A) => new As(A));
8366
+ return this.collection.products.map((A) => new _s(A));
8365
8367
  }
8366
8368
  /**
8367
8369
  * The raw collection resource. This is generally not needed and should be avoided.
@@ -8370,7 +8372,7 @@ class _n {
8370
8372
  return this.collection;
8371
8373
  }
8372
8374
  }
8373
- class As {
8375
+ class _s {
8374
8376
  constructor(A) {
8375
8377
  this.product = A;
8376
8378
  }
@@ -8394,8 +8396,8 @@ class As {
8394
8396
  */
8395
8397
  getIntegrationByType(A) {
8396
8398
  const t = (this.product.integrationProducts || []).find((a) => {
8397
- var n, s;
8398
- return !!((n = a.integration) != null && n.type) && ((s = a.integration) == null ? void 0 : s.type) === A;
8399
+ var s, n;
8400
+ return !!((s = a.integration) != null && s.type) && ((n = a.integration) == null ? void 0 : n.type) === A;
8399
8401
  });
8400
8402
  if (!t)
8401
8403
  throw new Error(
@@ -8419,11 +8421,11 @@ class As {
8419
8421
  class me {
8420
8422
  /* ThreeDPreviewService */
8421
8423
  constructor(A, e, t, a) {
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(
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(
8424
8426
  this.id,
8425
8427
  this.checkConditionalHandlesChanged.bind(this)
8426
- ), this.globalPropertyHandleService = new zn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
8428
+ ), this.globalPropertyHandleService = new Os(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
8427
8429
  ((i = e.transactions) == null ? void 0 : i.map((o) => o.id)) || [],
8428
8430
  a
8429
8431
  );
@@ -8481,7 +8483,7 @@ class me {
8481
8483
  return this.workflowExperiences.map((A) => A.getTotalPriceSubunits()).reduce((A, e) => A + e, 0);
8482
8484
  }
8483
8485
  getProductCollection() {
8484
- return this.productCollection ? new _n(this.productCollection) : void 0;
8486
+ return this.productCollection ? new $s(this.productCollection) : void 0;
8485
8487
  }
8486
8488
  async addWorkflowExperience(A) {
8487
8489
  await this.appendWorkflowExperience(A), await this.injectExperienceIntoPreviewService(A);
@@ -8489,30 +8491,30 @@ class me {
8489
8491
  await Promise.all(e.map((t) => t.applyGlobalState([A])));
8490
8492
  }
8491
8493
  async addWorkflowExperiences(A) {
8492
- const e = A.map((s) => s.getWorkflowManager().getTransaction().id), t = e.map(
8493
- (s) => this.workflowExperiences.find((i) => i.getWorkflowManager().getTransaction().id === s)
8494
+ const e = A.map((n) => n.getWorkflowManager().getTransaction().id), t = e.map(
8495
+ (n) => this.workflowExperiences.find((i) => i.getWorkflowManager().getTransaction().id === n)
8494
8496
  );
8495
- if (t.some((s) => !!s))
8497
+ if (t.some((n) => !!n))
8496
8498
  throw new Error(
8497
- "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8499
+ "Unable to add transaction to bundle - Already Exists: " + t.filter((n) => !!n).map((n) => n == null ? void 0 : n.getWorkflowManager().getTransaction().id).join(", ")
8498
8500
  );
8499
- const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8501
+ const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = e.map((n) => a.get(n));
8500
8502
  await N.getShadowGraphqlClient().mutate({
8501
- mutation: kn,
8503
+ mutation: vs,
8502
8504
  variables: {
8503
8505
  id: this.id,
8504
8506
  transactionIds: e,
8505
- transactionOwnerIds: n
8507
+ transactionOwnerIds: s
8506
8508
  }
8507
- }).catch((s) => {
8508
- console.error(s);
8509
+ }).catch((n) => {
8510
+ console.error(n);
8509
8511
  }), this.workflowExperiences.push(...A), await Promise.all([
8510
8512
  this.updateTransactionOrder(),
8511
8513
  (async () => {
8512
8514
  for (const i of A)
8513
8515
  await this.injectExperienceIntoPreviewService(i);
8514
- const s = await this.getGlobalProperties();
8515
- await Promise.all(s.map((i) => i.applyGlobalState(A)));
8516
+ const n = await this.getGlobalProperties();
8517
+ await Promise.all(n.map((i) => i.applyGlobalState(A)));
8516
8518
  })()
8517
8519
  ]);
8518
8520
  }
@@ -8522,15 +8524,15 @@ class me {
8522
8524
  (i) => i.getWorkflowManager().getTransaction().id === t
8523
8525
  ))
8524
8526
  throw new Error("Unable to add transaction to bundle - Already Exists!");
8525
- const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8527
+ const n = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8526
8528
  await N.getShadowGraphqlClient().mutate({
8527
- mutation: vn,
8529
+ mutation: Gs,
8528
8530
  variables: {
8529
8531
  id: this.id,
8530
8532
  transactionId: t
8531
8533
  },
8532
8534
  context: {
8533
- transactionOwnerId: s
8535
+ transactionOwnerId: n
8534
8536
  }
8535
8537
  }), e && this.workflowExperiences.push(A);
8536
8538
  }
@@ -8553,15 +8555,15 @@ class me {
8553
8555
  async removeTransaction(A, e, t = !0) {
8554
8556
  if (A > -1) {
8555
8557
  const a = this.workflowExperiences.find(
8556
- (n) => n.getWorkflowManager().getTransaction().id === e.id
8558
+ (s) => s.getWorkflowManager().getTransaction().id === e.id
8557
8559
  );
8558
8560
  this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
8559
- mutation: Jn,
8561
+ mutation: ks,
8560
8562
  variables: {
8561
8563
  id: this.id,
8562
8564
  transactionId: e.id,
8563
8565
  name: this.name,
8564
- metadata: Array.from(this.metadata.entries()).map(([n, s]) => ({ key: n, value: s })),
8566
+ metadata: Array.from(this.metadata.entries()).map(([s, n]) => ({ key: s, value: n })),
8565
8567
  bundleStateData: this.bundleStateManager.getSerializedState()
8566
8568
  }
8567
8569
  }), t && (this.workflowExperiences.splice(A, 1), await this.updateTransactionOrder());
@@ -8570,25 +8572,25 @@ class me {
8570
8572
  }
8571
8573
  async removeTransactions(A) {
8572
8574
  const e = A.map(
8573
- (a) => this.workflowExperiences.findIndex((n) => n.getWorkflowManager().getTransaction().id === a.id)
8575
+ (a) => this.workflowExperiences.findIndex((s) => s.getWorkflowManager().getTransaction().id === a.id)
8574
8576
  );
8575
8577
  if (e.some((a) => a === -1))
8576
8578
  throw new Error(
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(", ")
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(", ")
8578
8580
  );
8579
8581
  const t = A.map(
8580
8582
  (a) => this.workflowExperiences.splice(
8581
- this.workflowExperiences.findIndex((n) => n.getWorkflowManager().getTransaction().id === a.id),
8583
+ this.workflowExperiences.findIndex((s) => s.getWorkflowManager().getTransaction().id === a.id),
8582
8584
  1
8583
8585
  )[0]
8584
8586
  );
8585
8587
  this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
8586
- mutation: bn,
8588
+ mutation: Js,
8587
8589
  variables: {
8588
8590
  id: this.id,
8589
8591
  transactionIds: A.map((a) => a.id),
8590
8592
  name: this.name,
8591
- metadata: Array.from(this.metadata.entries()).map(([a, n]) => ({ key: a, value: n })),
8593
+ metadata: Array.from(this.metadata.entries()).map(([a, s]) => ({ key: a, value: s })),
8592
8594
  bundleStateData: this.bundleStateManager.getSerializedState()
8593
8595
  }
8594
8596
  }), await this.updateTransactionOrder();
@@ -8617,7 +8619,7 @@ class me {
8617
8619
  (async () => {
8618
8620
  await this.injectExperienceIntoPreviewService(e);
8619
8621
  const a = await this.getGlobalProperties();
8620
- await Promise.all(a.map((n) => n.applyGlobalState([e])));
8622
+ await Promise.all(a.map((s) => s.applyGlobalState([e])));
8621
8623
  })()
8622
8624
  ]);
8623
8625
  }
@@ -8639,16 +8641,16 @@ class me {
8639
8641
  return this.workflowExperiences.length;
8640
8642
  }
8641
8643
  async addStakeholder(A, e) {
8642
- var n;
8644
+ var s;
8643
8645
  const t = await N.getShadowGraphqlClient().mutate({
8644
- mutation: Tn,
8646
+ mutation: bs,
8645
8647
  variables: {
8646
8648
  id: this.id,
8647
8649
  details: A,
8648
8650
  type: e || xA.Owner
8649
8651
  }
8650
8652
  });
8651
- if (!((n = t.data) != null && n.bundleAddStakeholder))
8653
+ if (!((s = t.data) != null && s.bundleAddStakeholder))
8652
8654
  throw new Error("Bundle not found!");
8653
8655
  const a = t.data.bundleAddStakeholder.bundleStakeholders || [];
8654
8656
  this.storeStakeholderCustomers(a);
@@ -8656,7 +8658,7 @@ class me {
8656
8658
  async updateStakeholders(A) {
8657
8659
  var a;
8658
8660
  const e = await N.getShadowGraphqlClient().mutate({
8659
- mutation: Ln,
8661
+ mutation: Ts,
8660
8662
  variables: {
8661
8663
  id: this.id,
8662
8664
  input: A
@@ -8669,7 +8671,7 @@ class me {
8669
8671
  }
8670
8672
  async getAllStakeholders() {
8671
8673
  const A = await N.getShadowGraphqlClient().query({
8672
- query: Hn,
8674
+ query: Rs,
8673
8675
  errorPolicy: "all",
8674
8676
  variables: {
8675
8677
  id: this.id
@@ -8686,7 +8688,7 @@ class me {
8686
8688
  });
8687
8689
  }
8688
8690
  async finish(A) {
8689
- return await dn(
8691
+ return await Bs(
8690
8692
  this.workflowExperiences.map((e) => ({
8691
8693
  workflowManager: e.getWorkflowManager(),
8692
8694
  workflow: e.getWorkflowManager().getWorkflow(),
@@ -8721,11 +8723,11 @@ class me {
8721
8723
  }
8722
8724
  onModelSelectedEvent(A, e) {
8723
8725
  if (A && A.metadata && A.metadata instanceof Map && A.metadata.has("workflowManager")) {
8724
- const a = A.metadata.get("workflowManager").getTransaction(), n = this.workflowExperiences.find(
8725
- (s) => s.getWorkflowManager().getTransaction().id === a.id
8726
+ const a = A.metadata.get("workflowManager").getTransaction(), s = this.workflowExperiences.find(
8727
+ (n) => n.getWorkflowManager().getTransaction().id === a.id
8726
8728
  );
8727
- n && this.fireEvent(e ? "workflow-experience-hover-enter" : "workflow-experience-hover-exit", {
8728
- workflowExperience: n
8729
+ s && this.fireEvent(e ? "workflow-experience-hover-enter" : "workflow-experience-hover-exit", {
8730
+ workflowExperience: s
8729
8731
  });
8730
8732
  }
8731
8733
  }
@@ -8757,7 +8759,7 @@ class me {
8757
8759
  async updateBundle() {
8758
8760
  var e;
8759
8761
  if (!((e = (await N.getShadowGraphqlClient().mutate({
8760
- mutation: Gn,
8762
+ mutation: Us,
8761
8763
  variables: {
8762
8764
  id: this.id,
8763
8765
  name: this.name,
@@ -8769,7 +8771,7 @@ class me {
8769
8771
  }
8770
8772
  async updateTransactionOrder() {
8771
8773
  await N.getShadowGraphqlClient().mutate({
8772
- mutation: On,
8774
+ mutation: Ls,
8773
8775
  variables: {
8774
8776
  id: this.id,
8775
8777
  transactionIds: this.workflowExperiences.map((A) => A.getWorkflowManager().getTransaction().id)
@@ -8777,16 +8779,16 @@ class me {
8777
8779
  });
8778
8780
  }
8779
8781
  async checkConditionalHandlesChanged(A, e) {
8780
- const t = await this.globalPropertyHandleService.getHandles(), a = this.globalPropertyHandleService.applyConditionsFromState(t, A), n = this.globalPropertyHandleService.applyConditionsFromState(t, e);
8782
+ const t = await this.globalPropertyHandleService.getHandles(), a = this.globalPropertyHandleService.applyConditionsFromState(t, A), s = this.globalPropertyHandleService.applyConditionsFromState(t, e);
8781
8783
  (() => {
8782
- if (a.length !== n.length)
8784
+ if (a.length !== s.length)
8783
8785
  return !0;
8784
8786
  for (let i = 0; i < a.length; i++)
8785
- if (a[i].getName() !== n[i].getName())
8787
+ if (a[i].getName() !== s[i].getName())
8786
8788
  return !0;
8787
8789
  return !1;
8788
8790
  })() && this.fireEvent("conditional-global-properties-changed", {
8789
- globalProperties: n
8791
+ globalProperties: s
8790
8792
  });
8791
8793
  }
8792
8794
  fireEvent(A, e) {
@@ -8799,7 +8801,7 @@ class me {
8799
8801
  );
8800
8802
  }
8801
8803
  }
8802
- const es = y`
8804
+ const An = y`
8803
8805
  mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
8804
8806
  processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
8805
8807
  id
@@ -8810,25 +8812,25 @@ const es = y`
8810
8812
  }
8811
8813
  }
8812
8814
  `;
8813
- class ts {
8815
+ class en {
8814
8816
  async execute(A, e, t) {
8815
8817
  var c, r, B, l, d, E, C, w;
8816
8818
  if (!((r = (c = (await N.getShadowGraphqlClient().mutate({
8817
- mutation: es,
8819
+ mutation: An,
8818
8820
  variables: {
8819
8821
  processFlowId: A,
8820
8822
  inputs: [...e.map((h) => h.getValueForTransmission())]
8821
8823
  }
8822
8824
  })).data) == null ? void 0 : c.processExecutionCreate) != null && r.id))
8823
8825
  throw new Error("Failed to create process execution.");
8824
- function n(h) {
8826
+ function s(h) {
8825
8827
  return new Promise((Q) => {
8826
8828
  setTimeout(Q, h);
8827
8829
  });
8828
8830
  }
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({
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({
8832
8834
  query: y`
8833
8835
  query getProcessFlowExecution($ids: [String]!) {
8834
8836
  processExecutions(ids: $ids) {
@@ -8848,7 +8850,7 @@ class ts {
8848
8850
  }), !o || !((B = o.data) != null && B.getProcessFlowExecution))
8849
8851
  throw new Error("Failed to retrieve server response for execution.");
8850
8852
  if ((d = (l = o.data) == null ? void 0 : l.getProcessFlowExecution) == null ? void 0 : d.completedAt) {
8851
- s = !0;
8853
+ n = !0;
8852
8854
  break;
8853
8855
  }
8854
8856
  if ((C = (E = o.data) == null ? void 0 : E.getProcessFlowExecution) != null && C.failedAt)
@@ -8873,7 +8875,7 @@ class dt {
8873
8875
  return A.startsWith("[") ? JSON.stringify(JSON.parse(A)) : JSON.stringify(A);
8874
8876
  }
8875
8877
  }
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 || {});
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 || {});
8877
8879
  class wt extends dt {
8878
8880
  constructor(A, e) {
8879
8881
  if (e !== "Asset" && !wt.validUUID(A))
@@ -8884,12 +8886,12 @@ class wt extends dt {
8884
8886
  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);
8885
8887
  }
8886
8888
  }
8887
- class Hs extends dt {
8889
+ class Hn extends dt {
8888
8890
  constructor(A) {
8889
8891
  super(A);
8890
8892
  }
8891
8893
  }
8892
- const ns = y`
8894
+ const an = y`
8893
8895
  fragment RegionFields on Region {
8894
8896
  width
8895
8897
  top
@@ -8907,7 +8909,7 @@ const ns = y`
8907
8909
  height
8908
8910
  }
8909
8911
  }
8910
- `, ss = y`
8912
+ `, sn = y`
8911
8913
  fragment LookAtAnimationFields on LookAtAnimation {
8912
8914
  latDeg
8913
8915
  lonDeg
@@ -8918,7 +8920,7 @@ const ns = y`
8918
8920
  z
8919
8921
  }
8920
8922
  }
8921
- `, is = y`
8923
+ `, nn = y`
8922
8924
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
8923
8925
  antiAliasing {
8924
8926
  samples
@@ -9002,21 +9004,21 @@ const ns = y`
9002
9004
  weight
9003
9005
  }
9004
9006
  }
9005
- `, os = y`
9007
+ `, on = y`
9006
9008
  fragment ModelAnimationFields on ModelAnimation {
9007
9009
  from
9008
9010
  to
9009
9011
  loop
9010
9012
  name
9011
9013
  }
9012
- `, rs = (g) => y`
9014
+ `, rn = (g) => y`
9013
9015
  ${kA(g)}
9014
9016
  ${te}
9015
9017
  ${ze}
9016
- ${ns}
9017
- ${ss}
9018
- ${is}
9019
- ${os}
9018
+ ${an}
9019
+ ${sn}
9020
+ ${nn}
9021
+ ${on}
9020
9022
  query GetWorkflows($ids: [String!]!) {
9021
9023
  workflows(ids: $ids) {
9022
9024
  allowProofDownload
@@ -9404,7 +9406,7 @@ const ns = y`
9404
9406
  }
9405
9407
  }
9406
9408
  }
9407
- `, cs = y`
9409
+ `, cn = y`
9408
9410
  query GetTransactionForPartner($id: String!) {
9409
9411
  transactions(ids: [$id]) {
9410
9412
  id
@@ -9421,7 +9423,7 @@ const ns = y`
9421
9423
  }
9422
9424
  }
9423
9425
  }
9424
- `, gs = y`
9426
+ `, gn = y`
9425
9427
  ${kA(!1)}
9426
9428
  query GetWorkflowForTheme($id: String!) {
9427
9429
  workflow(id: $id) {
@@ -9443,7 +9445,7 @@ const ns = y`
9443
9445
  }
9444
9446
  }
9445
9447
  }
9446
- `, ls = y`
9448
+ `, ln = y`
9447
9449
  query GetCustomer($emailAddress: String!) {
9448
9450
  customer(emailAddress: $emailAddress) {
9449
9451
  id
@@ -9453,7 +9455,7 @@ const ns = y`
9453
9455
  }
9454
9456
  }
9455
9457
  }
9456
- `, Bs = y`
9458
+ `, Bn = y`
9457
9459
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9458
9460
  customerCreate(details: $details) {
9459
9461
  id
@@ -9463,7 +9465,7 @@ const ns = y`
9463
9465
  }
9464
9466
  }
9465
9467
  }
9466
- `, ds = y`
9468
+ `, dn = y`
9467
9469
  mutation CustomerAuthenticate($loginToken: String!) {
9468
9470
  customerAuthenticate(loginToken: $loginToken) {
9469
9471
  id
@@ -9490,11 +9492,11 @@ const ns = y`
9490
9492
  }
9491
9493
  }
9492
9494
  }
9493
- `, ws = y`
9495
+ `, wn = y`
9494
9496
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9495
9497
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9496
9498
  }
9497
- `, Es = y`
9499
+ `, En = y`
9498
9500
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9499
9501
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9500
9502
  id
@@ -9522,10 +9524,10 @@ const ns = y`
9522
9524
  }
9523
9525
  }
9524
9526
  }
9525
- `, hs = async (g, A) => {
9527
+ `, hn = async (g, A) => {
9526
9528
  var a;
9527
9529
  const e = await N.getShadowGraphqlClient().query({
9528
- query: rs(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9530
+ query: rn(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9529
9531
  errorPolicy: "all",
9530
9532
  fetchPolicy: "no-cache",
9531
9533
  variables: {
@@ -9534,15 +9536,15 @@ const ns = y`
9534
9536
  }), t = e.data.workflows;
9535
9537
  if (t === void 0 || t.length !== g.length)
9536
9538
  throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
9537
- return t.forEach((n) => {
9538
- n.steps.forEach((s) => {
9539
+ return t.forEach((s) => {
9540
+ s.steps.forEach((n) => {
9539
9541
  var i, o, c;
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) => {
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) => {
9541
9543
  r.asset && T.cacheAsset(r.asset), r.displayImage && T.cacheAsset(r.displayImage), r.thumbnail && T.cacheAsset(r.thumbnail), r.material && T.cacheMaterial(r.material);
9542
- }), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
9544
+ }), BA.set({ id: n.option.id }, Promise.resolve(n.option)));
9543
9545
  });
9544
9546
  }), t;
9545
- }, Cs = async (g, A) => {
9547
+ }, Cn = async (g, A) => {
9546
9548
  const t = (await A).find((a) => a.id === g);
9547
9549
  if (!t)
9548
9550
  throw new Error(`Workflow not found: ${g}`);
@@ -9551,11 +9553,11 @@ const ns = y`
9551
9553
  const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, o) => e[o] === void 0);
9552
9554
  if (t.length === 0)
9553
9555
  return Promise.all(e);
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) => ({
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) => ({
9559
9561
  id: v(),
9560
9562
  panelId: A.name,
9561
9563
  name: A.name,
@@ -9570,9 +9572,9 @@ const ns = y`
9570
9572
  editableArea: A.editableArea
9571
9573
  })), KA = (g, A) => {
9572
9574
  const e = g.workflowState, t = e ? JSON.parse(e) : void 0;
9573
- return t ? Object.values(t.layouts).map((a) => a.layout) : Qs(A.panels);
9575
+ return t ? Object.values(t.layouts).map((a) => a.layout) : Qn(A.panels);
9574
9576
  };
9575
- class us {
9577
+ class un {
9576
9578
  constructor(A) {
9577
9579
  this.updateTransactionState = async (e) => {
9578
9580
  try {
@@ -9600,7 +9602,7 @@ class us {
9600
9602
  getFlowService() {
9601
9603
  if (!this.options.applicationKey)
9602
9604
  throw new Error("Application key required to use Flow Service.");
9603
- return new ts();
9605
+ return new en();
9604
9606
  }
9605
9607
  // TODO: Authentication functions should probably be moved to a separate class.
9606
9608
  /**
@@ -9609,17 +9611,17 @@ class us {
9609
9611
  * @returns An object containing the success status of the authentication attempt, and the type of stakeholder when successful.
9610
9612
  */
9611
9613
  async authenticateBundleFromLocalStorage(A) {
9612
- var a, n;
9614
+ var a, s;
9613
9615
  const e = x.getMap("bundleOwnerIds");
9614
9616
  if (e != null && e.has(A)) {
9615
- const s = e.get(A);
9616
- return TA(s), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
9617
+ const n = e.get(A);
9618
+ return TA(n), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
9617
9619
  }
9618
9620
  const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9619
9621
  if (t.has(A)) {
9620
- const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9622
+ const n = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(n);
9621
9623
  if (o && await this.authenticateCustomerId(o)) {
9622
- const r = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9624
+ const r = (s = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : s.find(
9623
9625
  (B) => {
9624
9626
  var l;
9625
9627
  return ((l = B.bundle) == null ? void 0 : l.id) === A;
@@ -9647,7 +9649,7 @@ class us {
9647
9649
  async authenticateTransactionFromLocalStorage(A) {
9648
9650
  var r, B, l, d, E, C;
9649
9651
  const e = N.getShadowGraphqlClient(), t = await e.query({
9650
- query: cs,
9652
+ query: cn,
9651
9653
  errorPolicy: "all",
9652
9654
  fetchPolicy: "no-cache",
9653
9655
  variables: {
@@ -9661,9 +9663,9 @@ class us {
9661
9663
  throw new Error(`Unable to read transaction: ${A}`);
9662
9664
  if (a.isOrdered)
9663
9665
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9664
- const s = x.getMap("transactionOwnerIds");
9665
- if (s != null && s.has(A)) {
9666
- const w = s.get(A);
9666
+ const n = x.getMap("transactionOwnerIds");
9667
+ if (n != null && n.has(A)) {
9668
+ const w = n.get(A);
9667
9669
  return eA(w), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
9668
9670
  }
9669
9671
  const i = x.getMap("transactionCustomerIds");
@@ -9689,7 +9691,7 @@ class us {
9689
9691
  }
9690
9692
  }
9691
9693
  const c = (await e.query({
9692
- query: gs,
9694
+ query: gn,
9693
9695
  errorPolicy: "all",
9694
9696
  variables: {
9695
9697
  id: a.workflowId
@@ -9713,19 +9715,19 @@ class us {
9713
9715
  getStakeholderTypeForTransaction(A) {
9714
9716
  var t, a;
9715
9717
  const e = (a = (t = this.customer) == null ? void 0 : t.stakeholders) == null ? void 0 : a.find(
9716
- (n) => {
9717
- var s;
9718
- return ((s = n.transaction) == null ? void 0 : s.id) === A;
9718
+ (s) => {
9719
+ var n;
9720
+ return ((n = s.transaction) == null ? void 0 : n.id) === A;
9719
9721
  }
9720
9722
  );
9721
9723
  if (e)
9722
9724
  return e.type;
9723
9725
  }
9724
9726
  async getOrCreateCustomer(A) {
9725
- var s;
9727
+ var n;
9726
9728
  this.customer = void 0;
9727
9729
  const e = N.getShadowGraphqlClient(), a = (await e.query({
9728
- query: ls,
9730
+ query: ln,
9729
9731
  errorPolicy: "all",
9730
9732
  fetchPolicy: "no-cache",
9731
9733
  variables: {
@@ -9733,8 +9735,8 @@ class us {
9733
9735
  }
9734
9736
  })).data.customer;
9735
9737
  if (!a.id) {
9736
- const o = (s = (await e.mutate({
9737
- mutation: Bs,
9738
+ const o = (n = (await e.mutate({
9739
+ mutation: Bn,
9738
9740
  errorPolicy: "all",
9739
9741
  fetchPolicy: "no-cache",
9740
9742
  variables: {
@@ -9742,7 +9744,7 @@ class us {
9742
9744
  emailAddress: A
9743
9745
  }
9744
9746
  }
9745
- })).data) == null ? void 0 : s.customerCreate;
9747
+ })).data) == null ? void 0 : n.customerCreate;
9746
9748
  if (!o)
9747
9749
  throw new Error("Unable to create customer.");
9748
9750
  return this.storeCustomer(o), this.customer = o, {
@@ -9751,10 +9753,10 @@ class us {
9751
9753
  };
9752
9754
  }
9753
9755
  this.storeCustomer(a);
9754
- const n = await this.authenticateCustomerId(a.id);
9756
+ const s = await this.authenticateCustomerId(a.id);
9755
9757
  return {
9756
9758
  customer: this.customer || a,
9757
- isAuthenticated: n
9759
+ isAuthenticated: s
9758
9760
  };
9759
9761
  }
9760
9762
  async authenticateCustomerId(A) {
@@ -9765,15 +9767,15 @@ class us {
9765
9767
  const a = t.get(A);
9766
9768
  if (!a)
9767
9769
  return !1;
9768
- const s = (i = (await e.mutate({
9769
- mutation: ds,
9770
+ const n = (i = (await e.mutate({
9771
+ mutation: dn,
9770
9772
  errorPolicy: "all",
9771
9773
  fetchPolicy: "no-cache",
9772
9774
  variables: {
9773
9775
  loginToken: a
9774
9776
  }
9775
9777
  })).data) == null ? void 0 : i.customerAuthenticate;
9776
- return s ? (this.storeCustomer(s), Ee(a), this.customer = s, !0) : !1;
9778
+ return n ? (this.storeCustomer(n), Ee(a), this.customer = n, !0) : !1;
9777
9779
  }
9778
9780
  /**
9779
9781
  * Generates a verification code for the given email address.
@@ -9781,7 +9783,7 @@ class us {
9781
9783
  */
9782
9784
  async generateVerificationCode(A) {
9783
9785
  await N.getShadowGraphqlClient().mutate({
9784
- mutation: ws,
9786
+ mutation: wn,
9785
9787
  variables: {
9786
9788
  emailAddress: A
9787
9789
  }
@@ -9794,18 +9796,18 @@ class us {
9794
9796
  * @returns True if the verification was successful, false otherwise.
9795
9797
  */
9796
9798
  async verifyCode(A, e) {
9797
- var n, s;
9798
- const a = (n = (await N.getShadowGraphqlClient().mutate({
9799
- mutation: Es,
9799
+ var s, n;
9800
+ const a = (s = (await N.getShadowGraphqlClient().mutate({
9801
+ mutation: En,
9800
9802
  errorPolicy: "all",
9801
9803
  fetchPolicy: "no-cache",
9802
9804
  variables: {
9803
9805
  emailAddress: A,
9804
9806
  verificationCode: e
9805
9807
  }
9806
- })).data) == null ? void 0 : n.customerVerifyCode;
9808
+ })).data) == null ? void 0 : s.customerVerifyCode;
9807
9809
  if (a != null && a.loginToken) {
9808
- if (!((s = a.partner) != null && s.id))
9810
+ if (!((n = a.partner) != null && n.id))
9809
9811
  throw new Error(`Unable to find customer: ${A}`);
9810
9812
  const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
9811
9813
  return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Ee(a.loginToken), this.customer = {
@@ -9820,20 +9822,20 @@ class us {
9820
9822
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
9821
9823
  */
9822
9824
  async getNewBundle(A) {
9823
- var s;
9824
- const t = (s = (await N.getShadowGraphqlClient().mutate({
9825
- mutation: Un,
9825
+ var n;
9826
+ const t = (n = (await N.getShadowGraphqlClient().mutate({
9827
+ mutation: Ps,
9826
9828
  variables: {
9827
9829
  collectionId: A
9828
9830
  },
9829
9831
  fetchPolicy: "no-cache"
9830
- })).data) == null ? void 0 : s.bundleCreate;
9832
+ })).data) == null ? void 0 : n.bundleCreate;
9831
9833
  if (!(t != null && t.id))
9832
9834
  throw new Error("Unable to create bundle");
9833
9835
  const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9834
9836
  a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
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);
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);
9837
9839
  }
9838
9840
  /**
9839
9841
  * Retrieves an existing bundle from the API, by id.
@@ -9844,18 +9846,18 @@ class us {
9844
9846
  */
9845
9847
  async getExistingBundle(A, e, t) {
9846
9848
  var r, B, l, d;
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,
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,
9851
9853
  variables: {
9852
9854
  id: A
9853
9855
  },
9854
9856
  fetchPolicy: "no-cache"
9855
9857
  });
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]))
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]))
9857
9859
  throw new Error(`Unable to find bundle: ${A}`);
9858
- const i = (d = s.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9860
+ const i = (d = n.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9859
9861
  o.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", o);
9860
9862
  const c = new me(this, i, e, t);
9861
9863
  return await c.getInitializationPromise(), c;
@@ -9865,22 +9867,22 @@ class us {
9865
9867
  * @returns An array of bundle stakeholders.
9866
9868
  */
9867
9869
  async getBundleStakeholders() {
9868
- var n;
9870
+ var s;
9869
9871
  if (!this.customer)
9870
9872
  throw new Error("Customer not authenticated.");
9871
9873
  const A = await N.getShadowGraphqlClient().query({
9872
- query: Pn,
9874
+ query: Hs,
9873
9875
  variables: {
9874
9876
  id: this.customer.id
9875
9877
  },
9876
9878
  fetchPolicy: "no-cache"
9877
9879
  });
9878
- if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
9880
+ if (!((s = A.data) != null && s.customers) || A.data.customers.length === 0)
9879
9881
  throw new Error("Unable to find customer.");
9880
9882
  const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9881
- return t.forEach((s) => {
9883
+ return t.forEach((n) => {
9882
9884
  var i, o;
9883
- (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
9885
+ (i = n.bundle) != null && i.id && ((o = n.bundle.partner) != null && o.id) && a.set(n.bundle.id, n.bundle.partner.id);
9884
9886
  }), x.setMap("bundlePartnerIds", a), t;
9885
9887
  }
9886
9888
  /**
@@ -9895,7 +9897,7 @@ class us {
9895
9897
  var l, d, E, C, w;
9896
9898
  if (!a)
9897
9899
  return await this.getWorkflowExperienceDeprecated(A, e, t);
9898
- const n = async (h) => {
9900
+ const s = async (h) => {
9899
9901
  var Q;
9900
9902
  for (const m in h.layouts) {
9901
9903
  const u = h.layouts[m].elements.filter(
@@ -9913,7 +9915,7 @@ class us {
9913
9915
  (Q = I.fontData) != null && Q.assetUrl && IA(I.fontData.assetUrl);
9914
9916
  }
9915
9917
  }
9916
- }, s = async () => {
9918
+ }, n = async () => {
9917
9919
  var Q, m;
9918
9920
  const h = N.getShadowGraphqlClient();
9919
9921
  if (a.type === "transaction") {
@@ -9963,7 +9965,7 @@ class us {
9963
9965
  return { transaction: F, workflow: I };
9964
9966
  }
9965
9967
  throw new U("No workflow ID provided.");
9966
- }, { transaction: i, workflow: o, readOnly: c } = await s();
9968
+ }, { transaction: i, workflow: o, readOnly: c } = await n();
9967
9969
  this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
9968
9970
  const r = {
9969
9971
  product: i.product,
@@ -9980,10 +9982,10 @@ class us {
9980
9982
  };
9981
9983
  if (a.type === "transaction" && i.workflowState) {
9982
9984
  const h = JSON.parse(i.workflowState);
9983
- r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await n(h), r.reloadedState = h;
9985
+ r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await s(h), r.reloadedState = h;
9984
9986
  } else if (!c && a.workflowState) {
9985
9987
  const h = JSON.parse(a.workflowState);
9986
- r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await n(h), r.reloadedState = h;
9988
+ r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await s(h), r.reloadedState = h;
9987
9989
  } else
9988
9990
  r.layouts = KA(
9989
9991
  r.transaction,
@@ -10018,13 +10020,13 @@ class us {
10018
10020
  async getWorkflowExperiences(A, e) {
10019
10021
  if (A.length === 0)
10020
10022
  throw new U("No options provided!");
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(
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(
10022
10024
  (m) => m.option.type === "integration" || m.option.type === "external"
10023
10025
  ), i = async () => {
10024
10026
  var F, I;
10025
- if (n.length === 0)
10027
+ if (s.length === 0)
10026
10028
  return [];
10027
- const m = n.map((f) => f.option.transactionId), u = await t.query({
10029
+ const m = s.map((f) => f.option.transactionId), u = await t.query({
10028
10030
  query: EA,
10029
10031
  variables: {
10030
10032
  ids: m
@@ -10032,7 +10034,7 @@ class us {
10032
10034
  errorPolicy: "all",
10033
10035
  fetchPolicy: "no-cache"
10034
10036
  }), p = u.data.transactions;
10035
- if (p.length !== n.length) {
10037
+ if (p.length !== s.length) {
10036
10038
  const f = ((I = (F = u.errors) == null ? void 0 : F[0]) == null ? void 0 : I.message) || "Unknown error";
10037
10039
  throw new U(`Not all transactions were found: ${f}`);
10038
10040
  }
@@ -10041,18 +10043,18 @@ class us {
10041
10043
  return {
10042
10044
  transaction: f,
10043
10045
  workflowId: f.workflowId,
10044
- readOnly: ((Y = n.find((R) => R.option.transactionId === f.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10045
- index: n[M].index
10046
+ readOnly: ((Y = s.find((R) => R.option.transactionId === f.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
10047
+ index: s[M].index
10046
10048
  };
10047
10049
  });
10048
10050
  }, o = async () => {
10049
10051
  var p, F, I;
10050
- if (s.length === 0)
10052
+ if (n.length === 0)
10051
10053
  return [];
10052
10054
  const m = await t.mutate({
10053
10055
  mutation: ca,
10054
10056
  variables: {
10055
- inputs: s.map((f) => ({
10057
+ inputs: n.map((f) => ({
10056
10058
  integrationProductId: f.option.type === "integration" ? f.option.integrationProductId : void 0,
10057
10059
  externalIntegrationId: f.option.type === "external" ? f.option.externalIntegrationId : void 0,
10058
10060
  externalProductId: f.option.type === "external" ? f.option.externalProductId : void 0,
@@ -10072,7 +10074,7 @@ class us {
10072
10074
  transaction: f,
10073
10075
  workflowId: f.workflowId,
10074
10076
  readOnly: !1,
10075
- index: s[M].index
10077
+ index: n[M].index
10076
10078
  }));
10077
10079
  }, 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) => {
10078
10080
  var u;
@@ -10134,7 +10136,7 @@ class us {
10134
10136
  * @deprecated Use getWorkflowExperience to initialize the experience.
10135
10137
  */
10136
10138
  async initFromIntegrationProduct(A) {
10137
- var s;
10139
+ var n;
10138
10140
  if (A === "")
10139
10141
  throw new U("No integration product ID provided.");
10140
10142
  const t = await N.getShadowGraphqlClient().mutate({
@@ -10154,9 +10156,9 @@ class us {
10154
10156
  const a = t.data.transactionCreate;
10155
10157
  if (!a.product)
10156
10158
  throw new U("Failed to create transaction, product not available.");
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 = {
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 = {
10160
10162
  product: a.product,
10161
10163
  transaction: a,
10162
10164
  layouts: [],
@@ -10197,9 +10199,9 @@ class us {
10197
10199
  };
10198
10200
  if (e)
10199
10201
  return await a();
10200
- const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10201
- if (s) {
10202
- eA(s);
10202
+ const s = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = s.get(A);
10203
+ if (n) {
10204
+ eA(n);
10203
10205
  const l = (i = (await t.query({
10204
10206
  query: EA,
10205
10207
  variables: {
@@ -10230,7 +10232,7 @@ class us {
10230
10232
  throw new U("Failed to read transaction.");
10231
10233
  if (!l.product)
10232
10234
  throw new U("Failed to load transaction, product not available.");
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 = {
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 = {
10234
10236
  product: l.product,
10235
10237
  transaction: l,
10236
10238
  layouts: [],
@@ -10245,7 +10247,7 @@ class us {
10245
10247
  * @deprecated Remove when the initFrom functions are removed.
10246
10248
  */
10247
10249
  async getWorkflowExperienceDeprecated(A, e, t) {
10248
- var n, s, i, o, c, r;
10250
+ var s, n, i, o, c, r;
10249
10251
  if (!this.initialized || !this.experienceOptions)
10250
10252
  throw new U("Cannot launch experience: Not initialized.");
10251
10253
  const a = async (B) => {
@@ -10273,7 +10275,7 @@ class us {
10273
10275
  const d = JSON.parse(this.experienceOptions.transaction.workflowState);
10274
10276
  this.experienceOptions.layouts = Object.values(d.layouts).map((E) => E.layout), await AA(d), await a(d), this.experienceOptions.reloadedState = d;
10275
10277
  }
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({
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({
10277
10279
  model: this.experienceOptions.product.modelUrl,
10278
10280
  contextService: this.experienceOptions.renderableContextService
10279
10281
  }), this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.getAllModels()[0]);
@@ -10336,7 +10338,7 @@ class us {
10336
10338
  e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10337
10339
  }
10338
10340
  }
10339
- class Ps {
10341
+ class Pn {
10340
10342
  getInitializationPromise() {
10341
10343
  return Promise.resolve();
10342
10344
  }
@@ -10482,8 +10484,8 @@ class Ps {
10482
10484
  ejectFromPreviewService() {
10483
10485
  }
10484
10486
  }
10485
- var ms = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(ms || {});
10486
- class ps extends j {
10487
+ var mn = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(mn || {});
10488
+ class pn extends j {
10487
10489
  constructor(A, e) {
10488
10490
  var t;
10489
10491
  super(A, e), this.frameService = (t = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : t.frameService;
@@ -10531,69 +10533,69 @@ class ps extends j {
10531
10533
  }
10532
10534
  export {
10533
10535
  _ as AssetNotFoundError,
10534
- vs as AssetType,
10535
- ks as BringForwardCommand,
10536
- Js as BringToBackCommand,
10537
- bs as BringToFrontCommand,
10536
+ vn as AssetType,
10537
+ kn as BringForwardCommand,
10538
+ Jn as BringToBackCommand,
10539
+ bn as BringToFrontCommand,
10538
10540
  ia as BulkPriceCalculationStrategy,
10539
10541
  qa as BulkStepHandle,
10540
- Ts as CanvasCommand,
10541
- As as CollectionProduct,
10542
- Ls as CommandContext,
10542
+ Tn as CanvasCommand,
10543
+ _s as CollectionProduct,
10544
+ Ln as CommandContext,
10543
10545
  ra as ConversionDataType,
10544
10546
  oa as ConversionLocation,
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,
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,
10552
10554
  ua as FrameService,
10553
- ms as FrameStep,
10554
- ps as FrameStepHandle,
10555
+ mn as FrameStep,
10556
+ pn as FrameStepHandle,
10555
10557
  oe as GlobalPropertyHandle,
10556
- qs as GroupCommand,
10558
+ qn as GroupCommand,
10557
10559
  Za as IllustrationStepHandle,
10558
10560
  HA as InformationMessageType,
10559
- nn as InformationStepHandle,
10560
- Zs as LayoutElementFactory,
10561
- $s as LayoutElementType,
10561
+ ss as InformationStepHandle,
10562
+ Zn as LayoutElementFactory,
10563
+ $n as LayoutElementType,
10562
10564
  L as LayoutNotFoundError,
10563
10565
  $a as MaterialStepHandle,
10564
10566
  YA as MisconfigurationError,
10565
- Ps as MockWorkflowManager,
10567
+ Pn as MockWorkflowManager,
10566
10568
  _a as ModelStepHandle,
10567
- _s as MoveCommand,
10569
+ _n as MoveCommand,
10568
10570
  wt as ObjectInput,
10569
- as as ObjectInputType,
10571
+ tn as ObjectInputType,
10570
10572
  yA as OptionNotFoundError,
10571
10573
  oA as ParseError,
10572
- An as PictureStepHandle,
10573
- sa as ProductCameraRig,
10574
- _n as ProductCollection,
10574
+ As as PictureStepHandle,
10575
+ na as ProductCameraRig,
10576
+ $s as ProductCollection,
10575
10577
  We as PromiseQueue,
10576
- en as QuestionStepHandle,
10578
+ es as QuestionStepHandle,
10577
10579
  Ve as QueueablePromise,
10578
10580
  Ai as ResizeCommand,
10579
10581
  lA as ResourceNotFoundError,
10580
10582
  ei as RotateCommand,
10581
10583
  ti as SendBackwardsCommand,
10582
- tn as ShapeStepHandle,
10583
- us as SpiffCommerceClient,
10584
+ ts as ShapeStepHandle,
10585
+ un as SpiffCommerceClient,
10584
10586
  xA as StakeholderType,
10585
10587
  ai as StepAspectType,
10586
10588
  j as StepHandle,
10587
- ni as StepType,
10588
- si as TextChangeCommand,
10589
- Hs as TextInput,
10590
- an as TextStepHandle,
10589
+ si as StepType,
10590
+ ni as TextChangeCommand,
10591
+ Hn as TextInput,
10592
+ as as TextStepHandle,
10591
10593
  J as UnhandledBehaviorError,
10592
10594
  ii as UnitOfMeasurement,
10593
10595
  X as Variant,
10594
10596
  CA as WorkflowExperienceImpl,
10595
10597
  T as assetService,
10596
- Bn as createDesign,
10598
+ ls as createDesign,
10597
10599
  oi as dataUrlFromExternalUrl,
10598
10600
  zA as designService,
10599
10601
  ri as determineCorrectFontSizeAndLines,
@@ -10603,9 +10605,9 @@ export {
10603
10605
  qA as frameStepService,
10604
10606
  je as gatherVaryingStepAspects,
10605
10607
  li as generate,
10606
- Fn as generateCommands,
10608
+ fs as generateCommands,
10607
10609
  Bi as generateSVGWithUnknownColors,
10608
- xn as generateStateFromDesignInputSteps,
10610
+ Ss as generateStateFromDesignInputSteps,
10609
10611
  di as getAttributesFromArrayBuffer,
10610
10612
  wi as getAxisAlignedBoundingBox,
10611
10613
  Qa as getBoundedOffsets,
@@ -10631,7 +10633,7 @@ export {
10631
10633
  cA as shapeStepService,
10632
10634
  ma as shortenUrl,
10633
10635
  SA as spiffCoreConfiguration,
10634
- Sn as stepAspectValuesToDesignInputSteps,
10636
+ Ys as stepAspectValuesToDesignInputSteps,
10635
10637
  K as textStepService,
10636
10638
  Ha as toast
10637
10639
  };