@spiffcommerce/core 18.3.0 → 18.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createHttpLink as ct, InMemoryCache as gt, ApolloClient as lt, from as Bt, gql as M } from "@apollo/client/core";
2
2
  import { fetch as qA, getAttributesFromArrayBuffer as pe, AssetType as re, StepType as f, getFrameData as ZA, frameDataCache as dt, GroupCommand as R, UpdateFramePattern as De, UpdateFrameThresholdSettingsCommand as wt, calculateOffsets as $A, LayoutElementType as U, generate as k, CreateElementCommand as b, generateSVGWithUnknownColors as fe, svgObjectURL as pA, fetchAsString as q, DeleteElementCommand as Z, generateDefaultRectangleFrameSvg as ce, GetSVGDimensions as Et, patternImageDataCache as ge, fetchAsArrayBuffer as ht, findElement as DA, modifySVGWithElementProperties as Ct, IllustrationColorCommand as TA, IllustrationCacheCommand as Qt, getFontMetrics as ut, getPatternImageData as zA, FontAlignmentCommand as mt, FontColorCommand as It, FontImageFillCommand as kA, applyTextTransformations as KA, determineCorrectFontSizeAndLines as uA, FontSourceCommand as le, loadFont as _A, TextChangeCommand as pt, FontSizeCommand as Dt, createElementNS as ft, createElement as lA, _loadFontExternalDataURL as Ae, UpdateWorkflowStateCommand as Be, CommandContext as Ft, createCanvas as fA, getSvgElement as Fe, LayoutRenderingPurpose as Me, renderPapyrusComponentAsString as ye, loadImage as Ye, getDomParser as Se, toBase64 as de, getVariant as Mt, generateFrameSVG as yt, getDefaultVariant as NA, domParser as xe, sanitizeSvgTree as Pe, traverse as Yt, xmlSerializer as Ne, CreateLayoutCommand as St, AspectType as mA, rehydrateSerializedLayout as _ } from "@spiffcommerce/papyrus";
3
- import { AssetType as Ns, BringForwardCommand as Hs, BringToBackCommand as Rs, BringToFrontCommand as Us, CanvasCommand as Gs, CommandContext as vs, CreateElementCommand as ks, CreateLayoutCommand as Js, DeleteElementCommand as bs, FontAlignmentCommand as Ls, FontColorCommand as Os, FontSizeCommand as Ts, FontSourceCommand as zs, GroupCommand as Ks, LayoutElementFactory as js, LayoutElementType as Vs, MoveCommand as Ws, ResizeCommand as Xs, RotateCommand as qs, SendBackwardsCommand as Zs, StepAspectType as $s, StepType as _s, TextChangeCommand as Ai, UnitOfMeasurement as ei, dataUrlFromExternalUrl as ti, determineCorrectFontSizeAndLines as ai, findElement as ni, frameDataCache as si, generate as ii, generateSVGWithUnknownColors as oi, getAttributesFromArrayBuffer as ri, getAxisAlignedBoundingBox as ci, getFrameData as gi, getSvgElement as li, loadFont as Bi, patternImageDataCache as di, registerFetchImplementation as wi, registerWindowImplementation as Ei, rehydrateSerializedLayout as hi, setCanvasModule as Ci } from "@spiffcommerce/papyrus";
3
+ import { AssetType as Ni, BringForwardCommand as Hi, BringToBackCommand as Ri, BringToFrontCommand as Ui, CanvasCommand as Gi, CommandContext as vi, CreateElementCommand as ki, CreateLayoutCommand as Ji, DeleteElementCommand as bi, FontAlignmentCommand as Li, FontColorCommand as Oi, FontSizeCommand as Ti, FontSourceCommand as zi, GroupCommand as Ki, LayoutElementFactory as ji, LayoutElementType as Vi, MoveCommand as Wi, ResizeCommand as Xi, RotateCommand as qi, SendBackwardsCommand as Zi, StepAspectType as $i, StepType as _i, TextChangeCommand as As, UnitOfMeasurement as es, dataUrlFromExternalUrl as ts, determineCorrectFontSizeAndLines as as, findElement as ns, frameDataCache as is, generate as ss, generateSVGWithUnknownColors as os, getAttributesFromArrayBuffer as rs, getAxisAlignedBoundingBox as cs, getFrameData as gs, getSvgElement as ls, loadFont as Bs, patternImageDataCache as ds, registerFetchImplementation as ws, registerWindowImplementation as Es, rehydrateSerializedLayout as hs, setCanvasModule as Cs } from "@spiffcommerce/papyrus";
4
4
  import { setContext as xt } from "@apollo/client/link/context";
5
5
  import { onError as Pt } from "@apollo/client/link/error";
6
6
  import { Pith as He } from "pith";
@@ -55,7 +55,7 @@ class v extends RA {
55
55
  super(`Unhandled Behavior Encountered: ${A}`);
56
56
  }
57
57
  }
58
- class sA extends RA {
58
+ class iA extends RA {
59
59
  constructor(A) {
60
60
  super(`Parsing Error: ${A}`);
61
61
  }
@@ -179,8 +179,8 @@ class kt {
179
179
  const A = ct({
180
180
  uri: `${yA.getServerUrl()}/graphql`,
181
181
  fetch: qA
182
- }), e = xt(async (s, i) => {
183
- const { headers: o } = i, r = o || {}, g = await vt(), B = i.bearer ?? g.bearer, l = i.partnerId ?? g.partnerId, d = i.activeIntegration ?? g.activeIntegration, w = i.transactionOwnerId, C = i.customerToken ?? g.customerToken, E = i.applicationKey ?? g.applicationKey, Q = i.bundleOwnerId;
182
+ }), e = xt(async (i, s) => {
183
+ const { headers: o } = s, r = o || {}, g = await vt(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, C = s.customerToken ?? g.customerToken, E = s.applicationKey ?? g.applicationKey, Q = s.bundleOwnerId;
184
184
  try {
185
185
  if (window && window.__SENTRY__) {
186
186
  const h = window.__SENTRY__.hub;
@@ -196,17 +196,17 @@ class kt {
196
196
  return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), w && (r.transactionOwnerId = w), C && (r.customerToken = C), E && (r["X-Application-Key"] = E), Q && (r.bundleOwnerId = Q), {
197
197
  headers: r
198
198
  };
199
- }), t = Pt(({ operation: s, graphQLErrors: i, networkError: o }) => {
200
- const r = i || [];
201
- o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + s.operationName));
199
+ }), t = Pt(({ operation: i, graphQLErrors: s, networkError: o }) => {
200
+ const r = s || [];
201
+ o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + i.operationName));
202
202
  });
203
203
  function a() {
204
204
  return {
205
- read(s = null) {
206
- return s;
205
+ read(i = null) {
206
+ return i;
207
207
  },
208
- merge(s, i) {
209
- return i || s || null;
208
+ merge(i, s) {
209
+ return s || i || null;
210
210
  }
211
211
  };
212
212
  }
@@ -362,8 +362,8 @@ const P = new kt(), Jt = M`
362
362
  ids: c
363
363
  }
364
364
  })).data.materials, zt = async (c, A, e, t, a) => {
365
- var s;
366
- return (s = (await P.getShadowGraphqlClient().mutate({
365
+ var i;
366
+ return (i = (await P.getShadowGraphqlClient().mutate({
367
367
  mutation: Ot,
368
368
  errorPolicy: "all",
369
369
  fetchPolicy: "no-cache",
@@ -374,16 +374,16 @@ const P = new kt(), Jt = M`
374
374
  anonymous: t,
375
375
  temporary: a
376
376
  }
377
- })).data) == null ? void 0 : s.assetCreate;
377
+ })).data) == null ? void 0 : i.assetCreate;
378
378
  };
379
379
  class Kt {
380
380
  constructor() {
381
381
  this.cache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (A) => {
382
- const e = await A.arrayBuffer(), t = await pe(e), a = (n, s) => {
383
- const i = atob(n.split(",")[1]), o = [];
384
- for (let r = 0; r < i.length; r++)
385
- o.push(i.charCodeAt(r));
386
- return new Blob([new Uint8Array(o)], { type: s });
382
+ const e = await A.arrayBuffer(), t = await pe(e), a = (n, i) => {
383
+ const s = atob(n.split(",")[1]), o = [];
384
+ for (let r = 0; r < s.length; r++)
385
+ o.push(s.charCodeAt(r));
386
+ return new Blob([new Uint8Array(o)], { type: i });
387
387
  };
388
388
  return {
389
389
  name: A.name.substring(A.name.lastIndexOf("/") + 1),
@@ -435,18 +435,18 @@ class Kt {
435
435
  * The asset will be stored via the persistence service for future access, if available.
436
436
  */
437
437
  async uploadAssetWithProgress(A, e, t, a, n) {
438
- const s = await this.dispatchCreateAssetRequest(A, e, a, n);
439
- if (!s)
438
+ const i = await this.dispatchCreateAssetRequest(A, e, a, n);
439
+ if (!i)
440
440
  throw new Error("Failed to create asset.");
441
- return await new Promise((i, o) => {
441
+ return await new Promise((s, o) => {
442
442
  const r = new XMLHttpRequest();
443
- r.open("PUT", s.assetResponse.uploadUrl, !0), r.setRequestHeader("Content-Type", s.mimeType), r.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), r.upload.onprogress = (g) => {
443
+ r.open("PUT", i.assetResponse.uploadUrl, !0), r.setRequestHeader("Content-Type", i.mimeType), r.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), r.upload.onprogress = (g) => {
444
444
  g.lengthComputable && t(g.loaded * 100 / g.total);
445
445
  }, r.onload = () => {
446
- const g = s.assetResponse.asset;
447
- JA.add(s.assetResponse.asset), i(g);
446
+ const g = i.assetResponse.asset;
447
+ JA.add(i.assetResponse.asset), s(g);
448
448
  }, r.onerror = o, r.send(A.blob);
449
- }), s.assetResponse.asset;
449
+ }), i.assetResponse.asset;
450
450
  }
451
451
  async uploadFile(A, e) {
452
452
  const t = !(A.type === "image/svg+xml" || A.type === "application/pdf"), a = t ? re.Image : re.Illustration;
@@ -473,10 +473,10 @@ class Kt {
473
473
  * @param assetType The type of asset we're expecting to upload
474
474
  */
475
475
  async dispatchCreateAssetRequest(A, e, t, a) {
476
- const n = A.blob.type ? A.blob.type : this.guessMIME(A.name), s = await zt(A.name, e, n, t, a);
477
- if (s)
476
+ const n = A.blob.type ? A.blob.type : this.guessMIME(A.name), i = await zt(A.name, e, n, t, a);
477
+ if (i)
478
478
  return {
479
- assetResponse: s,
479
+ assetResponse: i,
480
480
  mimeType: n
481
481
  };
482
482
  }
@@ -628,12 +628,12 @@ const rA = new jt(), Le = M`
628
628
  });
629
629
  }), A.data.options;
630
630
  }, Xt = async (c, A) => (await A).find((t) => t.id === c), qt = async (c) => {
631
- const A = c.map((s) => rA.get({ id: s })), e = c.filter((s, i) => A[i] === void 0);
631
+ const A = c.map((i) => rA.get({ id: i })), e = c.filter((i, s) => A[s] === void 0);
632
632
  if (e.length === 0)
633
633
  return Promise.all(A);
634
634
  const t = Wt(e), a = e.map(
635
- (s) => rA.set({ id: s }, Xt(s, t))
636
- ), n = A.filter((s) => s !== void 0);
635
+ (i) => rA.set({ id: i }, Xt(i, t))
636
+ ), n = A.filter((i) => i !== void 0);
637
637
  return await Promise.all(n.concat(a));
638
638
  };
639
639
  class Zt {
@@ -666,13 +666,13 @@ class Zt {
666
666
  var a, n;
667
667
  const e = A.thumbnail;
668
668
  if (e) {
669
- const s = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
670
- return (s == null ? void 0 : s.link) || i;
669
+ const i = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), s = e.fileLink;
670
+ return (i == null ? void 0 : i.link) || s;
671
671
  }
672
672
  const t = A.asset;
673
673
  if (t) {
674
- const s = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), i = t.fileLink;
675
- return (s == null ? void 0 : s.link) || i;
674
+ const i = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), s = t.fileLink;
675
+ return (i == null ? void 0 : i.link) || s;
676
676
  }
677
677
  return A.material ? A.material.id : "";
678
678
  }
@@ -1035,7 +1035,7 @@ const gA = M`
1035
1035
  id
1036
1036
  }
1037
1037
  }
1038
- `, sa = M`
1038
+ `, ia = M`
1039
1039
  mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
1040
1040
  transactionUpdate(id: $id, workflowId: $workflowId) {
1041
1041
  id
@@ -1089,7 +1089,7 @@ const Oe = M`
1089
1089
  workflowState
1090
1090
  }
1091
1091
  }
1092
- `, nA = [f.SilentIllustration, f.ProductOverlay], ia = async (c) => {
1092
+ `, nA = [f.SilentIllustration, f.ProductOverlay], sa = async (c) => {
1093
1093
  const A = [];
1094
1094
  c.introduction && A.push({
1095
1095
  name: "Introduction",
@@ -1116,7 +1116,7 @@ const Oe = M`
1116
1116
  silentSteps: nA.includes(t.type) ? [t] : []
1117
1117
  });
1118
1118
  else {
1119
- const n = A.find((s) => s.name === a.name);
1119
+ const n = A.find((i) => i.name === a.name);
1120
1120
  n ? nA.includes(t.type) ? n.silentSteps.push(t) : n.renderableSteps.push(t) : A.push({
1121
1121
  name: a.name,
1122
1122
  title: a.name,
@@ -1149,7 +1149,7 @@ const Oe = M`
1149
1149
  if (t && t.selectedVariants) {
1150
1150
  const a = t.selectedVariants;
1151
1151
  return e.requiredVariantSelections.some(
1152
- (n) => a.find((s) => s.id === n) !== void 0
1152
+ (n) => a.find((i) => i.id === n) !== void 0
1153
1153
  );
1154
1154
  }
1155
1155
  return !1;
@@ -1162,18 +1162,18 @@ const Oe = M`
1162
1162
  };
1163
1163
  return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
1164
1164
  }, eA = (c, A) => c.map((e) => ra(e, A)).filter((e) => e !== null), ca = async (c, A, e = !1) => {
1165
- var s;
1165
+ var i;
1166
1166
  const t = eA(c, A), a = [];
1167
- for (const i of t)
1168
- for (const o of i.renderableSteps) {
1169
- const r = (((s = o.option) == null ? void 0 : s.variants) || []).length;
1167
+ for (const s of t)
1168
+ for (const o of s.renderableSteps) {
1169
+ const r = (((i = o.option) == null ? void 0 : i.variants) || []).length;
1170
1170
  o.silent || (o.type === f.Model || o.type === f.Material || o.type === f.Picture || o.type === f.Shape ? (r > 1 || e) && a.push(o.stepName) : a.push(o.stepName));
1171
1171
  }
1172
- const n = t.filter((i) => i.renderableSteps.filter(
1172
+ const n = t.filter((s) => s.renderableSteps.filter(
1173
1173
  (r) => a.includes(r.stepName)
1174
1174
  ).length > 0);
1175
- for (const i of n)
1176
- i.renderableSteps = i.renderableSteps.filter(
1175
+ for (const s of n)
1176
+ s.renderableSteps = s.renderableSteps.filter(
1177
1177
  (o) => a.includes(o.stepName)
1178
1178
  );
1179
1179
  return n;
@@ -1245,13 +1245,13 @@ class ze {
1245
1245
  function ga(c, A, e, t) {
1246
1246
  const a = e.width * c.zoom, n = e.height * c.zoom;
1247
1247
  if (t) {
1248
- const i = c, o = Math.max(A.width / e.width, A.height / e.height);
1249
- i.zoom = Math.max(o, c.zoom);
1250
- const r = e.width * i.zoom, g = e.height * i.zoom;
1251
- return i.x = dA(c.x, A.width - r, 0), i.y = dA(c.y, A.height - g, 0), i;
1248
+ const s = c, o = Math.max(A.width / e.width, A.height / e.height);
1249
+ s.zoom = Math.max(o, c.zoom);
1250
+ const r = e.width * s.zoom, g = e.height * s.zoom;
1251
+ return s.x = dA(c.x, A.width - r, 0), s.y = dA(c.y, A.height - g, 0), s;
1252
1252
  }
1253
- const s = c;
1254
- return s.x = dA(s.x, -a, A.width), s.y = dA(s.y, -n, A.height), s;
1253
+ const i = c;
1254
+ return i.x = dA(i.x, -a, A.width), i.y = dA(i.y, -n, A.height), i;
1255
1255
  }
1256
1256
  function dA(c, A, e) {
1257
1257
  return Math.min(Math.max(c, A), e);
@@ -1272,12 +1272,12 @@ class la {
1272
1272
  const a = t;
1273
1273
  if (a.currentFrameSources) {
1274
1274
  let n = !1;
1275
- for (let s = 0; s < a.currentFrameSources.length; s++) {
1276
- const i = a.currentFrameSources[s], o = await ZA(i);
1277
- Ue(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = o, n = !0);
1275
+ for (let i = 0; i < a.currentFrameSources.length; i++) {
1276
+ const s = a.currentFrameSources[i], o = await ZA(s);
1277
+ Ue(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
1278
1278
  }
1279
1279
  n && (this.onFrameDataChangeListeners.forEach(
1280
- (s) => s(this.frameData)
1280
+ (i) => i(this.frameData)
1281
1281
  ), this.frameData && this.imageData && (this.recalculateOffsets(this.imageData), this.updateOffsets(this.offsets), this.recalculateZoomLimits(this.imageData, this.frameData)));
1282
1282
  }
1283
1283
  }
@@ -1342,15 +1342,15 @@ class la {
1342
1342
  setZoom(A, e, t, a) {
1343
1343
  if (this.imageData && this.offsets && this.frameData) {
1344
1344
  (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
1345
- const n = this.frameData.map((s, i) => {
1346
- const o = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, r = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, g = e[i] - o * A[i], B = t[i] - r * A[i];
1345
+ const n = this.frameData.map((i, s) => {
1346
+ const o = (e[s] - this.offsets[s].x) / this.offsets[s].zoom, r = (t[s] - this.offsets[s].y) / this.offsets[s].zoom, g = e[s] - o * A[s], B = t[s] - r * A[s];
1347
1347
  return {
1348
1348
  x: g,
1349
1349
  y: B,
1350
- zoom: this.imageData.width * A[i] / this.imageData.width
1350
+ zoom: this.imageData.width * A[s] / this.imageData.width
1351
1351
  };
1352
1352
  });
1353
- this.updateOffsets(n, a), this.onZoomChangeListeners.forEach((s) => s(A));
1353
+ this.updateOffsets(n, a), this.onZoomChangeListeners.forEach((i) => i(A));
1354
1354
  }
1355
1355
  }
1356
1356
  /**
@@ -1374,12 +1374,12 @@ class la {
1374
1374
  throw new v(
1375
1375
  "Frame data and offsets are not the same length. This is a bug. Please report it."
1376
1376
  );
1377
- if (!this.offsets.some((s, i) => !(A[i].x === s.x && A[i].y === s.y && A[i].zoom === s.zoom)) && !t) {
1377
+ if (!this.offsets.some((i, s) => !(A[s].x === i.x && A[s].y === i.y && A[s].zoom === i.zoom)) && !t) {
1378
1378
  e && e();
1379
1379
  return;
1380
1380
  }
1381
- (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((s, i) => {
1382
- this.offsets[i] = ga(A[i], s, this.imageData, this.forceImageCover);
1381
+ (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((i, s) => {
1382
+ this.offsets[s] = ga(A[s], i, this.imageData, this.forceImageCover);
1383
1383
  }), this._debouncedUpdateFrameOffsets(this.offsets, a, this.frameData, this.thresholdSettings, this.targetElements, e);
1384
1384
  }
1385
1385
  getThresholdSettings() {
@@ -1407,14 +1407,14 @@ class la {
1407
1407
  * @param targetElements A list of elements that need updating, by ID
1408
1408
  * @param onComplete A callback when the operation is completed.
1409
1409
  */
1410
- updateFrameOffsets(A, e, t, a, n, s) {
1410
+ updateFrameOffsets(A, e, t, a, n, i) {
1411
1411
  if (!t || t.length === 0 || t.some((o) => !o))
1412
1412
  throw new v("Frame data not set. This is a bug");
1413
1413
  if (!this.workflowManager)
1414
1414
  throw new v("No workflow manager set, cannot update offsets.");
1415
- const i = this.workflowManager.getCommandDispatcher();
1415
+ const s = this.workflowManager.getCommandDispatcher();
1416
1416
  n.forEach((o, r) => {
1417
- i(
1417
+ s(
1418
1418
  new R([
1419
1419
  new De(o, e, A[r]),
1420
1420
  new wt(o, a.useThreshold, a.invertThreshold, a.threshold, a.thresholdSaturation)
@@ -1422,7 +1422,7 @@ class la {
1422
1422
  );
1423
1423
  }), this.stepName && this.workflowManager.updateStorage(this.stepName, {
1424
1424
  frameOffsetsList: A
1425
- }), s && s();
1425
+ }), i && i();
1426
1426
  }
1427
1427
  /**
1428
1428
  * Determines limitations of zoom based on relative size of image and frame.
@@ -1448,14 +1448,14 @@ class Ce {
1448
1448
  const n = this.layouts.find((l) => l.panelId === a.panelId);
1449
1449
  if (!n)
1450
1450
  throw new O(a);
1451
- let s = "";
1451
+ let i = "";
1452
1452
  if (this.configuration.type === f.ProductOverlay) {
1453
1453
  let l = "";
1454
- if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
1454
+ if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1455
1455
  throw new MA(this.configuration, "Couldn't find an asset for product overlay step");
1456
1456
  }
1457
- const i = this.evaluateAssetType();
1458
- if (i === U.Image) {
1457
+ const s = this.evaluateAssetType();
1458
+ if (s === U.Image) {
1459
1459
  const l = this.configuration.type === f.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
1460
1460
  if (!l)
1461
1461
  throw new Error("Undefined raster silent step source");
@@ -1463,7 +1463,7 @@ class Ce {
1463
1463
  stepName: this.configuration.stepName,
1464
1464
  id: k(),
1465
1465
  src: l,
1466
- type: i,
1466
+ type: s,
1467
1467
  y: a.top,
1468
1468
  x: a.left,
1469
1469
  width: a.width,
@@ -1484,7 +1484,7 @@ class Ce {
1484
1484
  command: new b(d, n)
1485
1485
  };
1486
1486
  } else {
1487
- const l = this.configuration.type === f.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : s, w = await fe(await (async () => new Promise((E, Q) => {
1487
+ const l = this.configuration.type === f.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await fe(await (async () => new Promise((E, Q) => {
1488
1488
  if (!l) {
1489
1489
  Q("Undefined vector silent step source");
1490
1490
  return;
@@ -1499,7 +1499,7 @@ class Ce {
1499
1499
  src: l,
1500
1500
  svg: w.svg,
1501
1501
  colors: w.colors,
1502
- type: i,
1502
+ type: s,
1503
1503
  y: a.top,
1504
1504
  x: a.left,
1505
1505
  width: a.width,
@@ -1597,7 +1597,7 @@ class da {
1597
1597
  });
1598
1598
  });
1599
1599
  }
1600
- async regenerateQRCode(A, e, t, a, n, s, i, o, r) {
1600
+ async regenerateQRCode(A, e, t, a, n, i, s, o, r) {
1601
1601
  if (!e && t !== "" && a === "") {
1602
1602
  const g = async () => {
1603
1603
  var u, D;
@@ -1623,17 +1623,17 @@ class da {
1623
1623
  );
1624
1624
  });
1625
1625
  A.forEach((h) => o(new Z(h.id)));
1626
- const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
1626
+ const l = i.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + i.data.baseUrl);
1627
1627
  d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
1628
1628
  const w = d.toString();
1629
1629
  if (w.length >= 2e3)
1630
1630
  throw new UA("Cannot create QR code, URL too long.");
1631
1631
  const C = await Ba(w);
1632
- if (i(C), !s.data || !s.data.regions)
1633
- throw new MA(s, "Missing regions.");
1634
- const E = await this.regionElements(s), Q = await this.command(C, E, n, s.stepName);
1635
- Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(s.stepName, [], E, async () => {
1636
- n.updateStorage(s.stepName, {
1632
+ if (s(C), !i.data || !i.data.regions)
1633
+ throw new MA(i, "Missing regions.");
1634
+ const E = await this.regionElements(i), Q = await this.command(C, E, n, i.stepName);
1635
+ Q && (Q.command && n.getCommandDispatcher()(Q.command), Q.followup && await Q.followup()), await n.setSelectionsAndElements(i.stepName, [], E, async () => {
1636
+ n.updateStorage(i.stepName, {
1637
1637
  videoShortUrl: C,
1638
1638
  videoUrl: a
1639
1639
  }), r(!1);
@@ -1646,7 +1646,7 @@ class da {
1646
1646
  return A.data.regions.map(e);
1647
1647
  }
1648
1648
  async command(A, e, t, a) {
1649
- const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await Ge(A, { type: "svg" }))}`, o = e.map((r) => {
1649
+ const n = t.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await Ge(A, { type: "svg" }))}`, o = e.map((r) => {
1650
1650
  const g = r.region, B = n.find((l) => l.panelId === (g == null ? void 0 : g.panelId));
1651
1651
  if (!B && g)
1652
1652
  throw new O(g);
@@ -1659,7 +1659,7 @@ class da {
1659
1659
  stepRegion: g,
1660
1660
  stepName: a,
1661
1661
  id: r.id,
1662
- src: i,
1662
+ src: s,
1663
1663
  type: U.Image,
1664
1664
  y: g.top,
1665
1665
  x: g.left,
@@ -1772,8 +1772,8 @@ class Ea {
1772
1772
  new Ke(
1773
1773
  async () => {
1774
1774
  var o;
1775
- const s = (o = (await L.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1776
- return s ? (await fetch(s.link)).status === 200 : !1;
1775
+ const i = (o = (await L.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((r) => r.name === "svg");
1776
+ return i ? (await fetch(i.link)).status === 200 : !1;
1777
1777
  },
1778
1778
  () => {
1779
1779
  L.getLocalOrFromServer(e.key || "").then((n) => {
@@ -1787,14 +1787,14 @@ class Ea {
1787
1787
  ) : this.loadPatternFromAsset(e, A, t);
1788
1788
  }
1789
1789
  async selectVariant(A, e, t, a, n) {
1790
- const s = await this.selectVariantCommand(
1790
+ const i = await this.selectVariantCommand(
1791
1791
  A,
1792
1792
  e,
1793
1793
  t,
1794
1794
  a,
1795
1795
  n
1796
1796
  );
1797
- s && (s.command && a.getCommandDispatcher()(s.command), s.followup && await s.followup());
1797
+ i && (i.command && a.getCommandDispatcher()(i.command), i.followup && await i.followup());
1798
1798
  }
1799
1799
  getCreateElementCommand(A, e, t, a) {
1800
1800
  return new b(
@@ -1827,13 +1827,13 @@ class Ea {
1827
1827
  }
1828
1828
  async loadPatternFromString(A, e) {
1829
1829
  if (A.endsWith("svg")) {
1830
- const t = await Et(A), a = t.width, n = t.height, s = {
1830
+ const t = await Et(A), a = t.width, n = t.height, i = {
1831
1831
  src: A,
1832
1832
  width: a,
1833
1833
  height: n,
1834
1834
  aspect: a / n
1835
1835
  };
1836
- ge.set(A, s), e.setPatternData(s);
1836
+ ge.set(A, i), e.setPatternData(i);
1837
1837
  } else {
1838
1838
  const t = await ht(A, !0), a = await pe(t), n = {
1839
1839
  src: A,
@@ -1844,10 +1844,10 @@ class Ea {
1844
1844
  ge.set(A, n), e.setPatternData(n);
1845
1845
  }
1846
1846
  }
1847
- async selectVariantCommand(A, e, t, a, n, s) {
1847
+ async selectVariantCommand(A, e, t, a, n, i) {
1848
1848
  var l;
1849
- const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
1850
- if (!i)
1849
+ const s = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
1850
+ if (!s)
1851
1851
  throw new Error("Frame service unavailable, cannot load pattern!");
1852
1852
  const o = await Promise.all(
1853
1853
  A.data.regions.map((d) => this.frameSourceSvg(e, d))
@@ -1855,7 +1855,7 @@ class Ea {
1855
1855
  n && n(!0);
1856
1856
  const r = await Promise.all(
1857
1857
  A.data.regions.map(async (d, w) => {
1858
- const C = await ZA(o[w]), E = i.getImageData(), Q = t.map((I) => new Z(I.id)), h = E ? $A(E, C) : void 0, m = E ? {
1858
+ const C = await ZA(o[w]), E = s.getImageData(), Q = t.map((I) => new Z(I.id)), h = E ? $A(E, C) : void 0, m = E ? {
1859
1859
  id: k(),
1860
1860
  src: E.src,
1861
1861
  x: (h == null ? void 0 : h.x) || 0,
@@ -1895,13 +1895,13 @@ class Ea {
1895
1895
  [...r.map((d) => d.regionEl)],
1896
1896
  async () => {
1897
1897
  var d;
1898
- if (a.updateStorage(A.stepName, { currentFrameSources: o }), s) {
1898
+ if (a.updateStorage(A.stepName, { currentFrameSources: o }), i) {
1899
1899
  const w = (d = a.getStepSpecificServices(
1900
1900
  A.stepName
1901
1901
  )) == null ? void 0 : d.frameService;
1902
1902
  if (!w)
1903
1903
  throw new Error("Frame service unavailable, cannot load pattern!");
1904
- await this.loadPatternFromString(s, w);
1904
+ await this.loadPatternFromString(i, w);
1905
1905
  }
1906
1906
  }
1907
1907
  );
@@ -1922,11 +1922,11 @@ class Ea {
1922
1922
  throw new oA(A);
1923
1923
  }
1924
1924
  async loadPatternFromAsset(A, e, t) {
1925
- var i;
1926
- const a = this.patternSource(A), n = t.markUpdatePending(), s = (i = t.getStepSpecificServices(e.stepName)) == null ? void 0 : i.frameService;
1927
- if (!s)
1925
+ var s;
1926
+ const a = this.patternSource(A), n = t.markUpdatePending(), i = (s = t.getStepSpecificServices(e.stepName)) == null ? void 0 : s.frameService;
1927
+ if (!i)
1928
1928
  throw new Error("Frame service unavailable, cannot load pattern!");
1929
- await this.loadPatternFromString(a, s), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
1929
+ await this.loadPatternFromString(a, i), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
1930
1930
  framePatternSrc: a
1931
1931
  }), t.markUpdateCompleted(n);
1932
1932
  }
@@ -1995,13 +1995,13 @@ class ha {
1995
1995
  const a = e.getSerializedStep(
1996
1996
  A.stepName,
1997
1997
  t.serializableWorkflow.steps
1998
- ), i = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
1998
+ ), s = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
1999
1999
  if (a != null && a.selectedVariants) {
2000
2000
  const g = a.selectedVariants[0].id;
2001
2001
  if (o && g) {
2002
2002
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
2003
2003
  if (B) {
2004
- const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2004
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
2005
2005
  await e.setSelectionsAndElements(
2006
2006
  A.stepName,
2007
2007
  [B],
@@ -2030,14 +2030,14 @@ class ha {
2030
2030
  }
2031
2031
  async changeColorsCommand(A, e, t, a, n) {
2032
2032
  var g;
2033
- const s = {};
2033
+ const i = {};
2034
2034
  for (const [B, l] of n.entries())
2035
- s[B] = { browserValue: l, spotColor: (g = s[B]) == null ? void 0 : g.spotColor };
2036
- const i = Ct(A, e, t, s), o = await pA(i), r = [];
2035
+ i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
2036
+ const s = Ct(A, e, t, i), o = await pA(s), r = [];
2037
2037
  for (const B of a) {
2038
2038
  for (const [l, d] of n.entries())
2039
2039
  r.push(new TA(B, l, d));
2040
- r.push(new Qt(B, i, o));
2040
+ r.push(new Qt(B, s, o));
2041
2041
  }
2042
2042
  return new R(r);
2043
2043
  }
@@ -2045,17 +2045,17 @@ class ha {
2045
2045
  var d, w;
2046
2046
  if (e.length === 0)
2047
2047
  return;
2048
- const s = DA(
2048
+ const i = DA(
2049
2049
  e[0].id,
2050
2050
  a().map((C) => C.layoutState)
2051
- ), i = { ...s.colors }, o = {};
2052
- Object.entries(i).forEach(([C, E]) => {
2051
+ ), s = { ...i.colors }, o = {};
2052
+ Object.entries(s).forEach(([C, E]) => {
2053
2053
  const Q = { browserValue: E.browserValue }, h = E.spotColor;
2054
2054
  h && (Q.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), o[C] = Q;
2055
2055
  });
2056
2056
  for (const [C, E] of n.entries())
2057
- i[C] = { browserValue: E, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, o[C] = { browserValue: E };
2058
- let r = Array.from(Object.values(i)).map((C) => C.browserValue);
2057
+ s[C] = { browserValue: E, spotColor: (d = s[C]) == null ? void 0 : d.spotColor }, o[C] = { browserValue: E };
2058
+ let r = Array.from(Object.values(s)).map((C) => C.browserValue);
2059
2059
  const g = A.data.colorOption;
2060
2060
  g && ((w = g.variants) == null || w.forEach((C) => {
2061
2061
  r = r.map((E) => {
@@ -2064,14 +2064,14 @@ class ha {
2064
2064
  });
2065
2065
  })), t.updateMetadata(A.stepName, { colors: r });
2066
2066
  const B = /* @__PURE__ */ new Map();
2067
- if (Object.entries(i).forEach(([C, E]) => {
2067
+ if (Object.entries(s).forEach(([C, E]) => {
2068
2068
  B.set(C, E.browserValue);
2069
- }), !s.svg)
2069
+ }), !i.svg)
2070
2070
  throw new Error("Colors changed before SVG loaded. This should never happen!");
2071
2071
  const l = await this.changeColorsCommand(
2072
- s.svg,
2073
- s.width,
2074
- s.height,
2072
+ i.svg,
2073
+ i.width,
2074
+ i.height,
2075
2075
  e.map((C) => C.id),
2076
2076
  B
2077
2077
  );
@@ -2080,22 +2080,22 @@ class ha {
2080
2080
  }), t.getCommandDispatcher()(l);
2081
2081
  }
2082
2082
  async selectVariant(A, e, t, a, n) {
2083
- const s = await this.selectVariantCommand(A, e, t, a, n);
2084
- s && (s.command && n.getCommandDispatcher()(s.command), s.followup && await s.followup());
2083
+ const i = await this.selectVariantCommand(A, e, t, a, n);
2084
+ i && (i.command && n.getCommandDispatcher()(i.command), i.followup && await i.followup());
2085
2085
  }
2086
2086
  async selectVariantCommand(A, e, t, a, n) {
2087
2087
  var Q;
2088
2088
  if (!A.data || !A.data.regions)
2089
2089
  throw new MA(A, "Missing regions.");
2090
2090
  a(!0);
2091
- const s = t.map((h) => new Z(h.id));
2091
+ const i = t.map((h) => new Z(h.id));
2092
2092
  n.setMandatoryFulfilled(A.stepName, !1);
2093
- const i = e.asset;
2094
- if (!i)
2093
+ const s = e.asset;
2094
+ if (!s)
2095
2095
  throw new $(e);
2096
- const o = i.fileLink;
2096
+ const o = s.fileLink;
2097
2097
  if (!o)
2098
- throw new oA(i);
2098
+ throw new oA(s);
2099
2099
  const r = await fe(await this.getIllustrationBody(o)), g = await pA(r.svg), B = (h) => {
2100
2100
  const m = n.getLayouts().find((D) => D.panelId === h.panelId);
2101
2101
  if (!m)
@@ -2110,7 +2110,7 @@ class ha {
2110
2110
  svg: r
2111
2111
  })
2112
2112
  };
2113
- }, l = A.data.regions.map(B), w = [...l.map((h) => h.command), ...s];
2113
+ }, l = A.data.regions.map(B), w = [...l.map((h) => h.command), ...i];
2114
2114
  let C = Array.from(Object.values(r.colors)).map((h) => h.browserValue);
2115
2115
  const E = A.data.colorOption;
2116
2116
  return E && ((Q = E.variants) == null || Q.forEach((h) => {
@@ -2165,7 +2165,7 @@ class Ca {
2165
2165
  const a = e.getSerializedStep(
2166
2166
  A.stepName,
2167
2167
  t.serializableWorkflow.steps
2168
- ), i = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2168
+ ), s = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2169
2169
  if (!o)
2170
2170
  throw new FA(A);
2171
2171
  if (a != null && a.selectedVariants) {
@@ -2173,7 +2173,7 @@ class Ca {
2173
2173
  if (g) {
2174
2174
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
2175
2175
  if (B) {
2176
- const l = B.material, d = i.map((w) => ({ id: w.id, region: w.stepRegion }));
2176
+ const l = B.material, d = s.map((w) => ({ id: w.id, region: w.stepRegion }));
2177
2177
  await e.setSelectionsAndElements(
2178
2178
  A.stepName,
2179
2179
  [B],
@@ -2199,16 +2199,16 @@ class Ca {
2199
2199
  async selectVariantLambda(A, e, t, a) {
2200
2200
  const n = t.getModelContainer();
2201
2201
  a(!0);
2202
- const s = e.material;
2203
- if (!s)
2202
+ const i = e.material;
2203
+ if (!i)
2204
2204
  throw a(!1), new $(e);
2205
2205
  return {
2206
2206
  command: void 0,
2207
2207
  followup: async () => {
2208
2208
  await t.setSelectionsAndElements(A.stepName, [e], [], async () => {
2209
2209
  try {
2210
- n && A.data.targetMaterials.forEach((i) => {
2211
- A.option && n.applyMaterialVariant(i, A.option.id || "", s);
2210
+ n && A.data.targetMaterials.forEach((s) => {
2211
+ A.option && n.applyMaterialVariant(s, A.option.id || "", i);
2212
2212
  }), t.setMandatoryFulfilled(A.stepName, !0);
2213
2213
  } finally {
2214
2214
  a(!1);
@@ -2239,13 +2239,13 @@ class Qa {
2239
2239
  const a = e.getSerializedStep(
2240
2240
  A.stepName,
2241
2241
  t.serializableWorkflow.steps
2242
- ), i = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2242
+ ), s = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2243
2243
  if (a != null && a.selectedVariants) {
2244
2244
  const g = a.selectedVariants[0].id;
2245
2245
  if (o && g) {
2246
2246
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
2247
2247
  if (B) {
2248
- const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2248
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
2249
2249
  await e.setSelectionsAndElements(
2250
2250
  A.stepName,
2251
2251
  [B],
@@ -2277,9 +2277,9 @@ class Qa {
2277
2277
  n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
2278
2278
  }
2279
2279
  async selectVariantLambda(A, e, t, a) {
2280
- var s;
2280
+ var i;
2281
2281
  a(!0);
2282
- const n = (s = e.asset) == null ? void 0 : s.fileLink;
2282
+ const n = (i = e.asset) == null ? void 0 : i.fileLink;
2283
2283
  if (!n)
2284
2284
  throw new $(e);
2285
2285
  return {
@@ -2287,8 +2287,8 @@ class Qa {
2287
2287
  followup: async () => {
2288
2288
  await t.setSelectionsAndElements(A.stepName, [e], [], async () => {
2289
2289
  try {
2290
- const i = t.getModelContainer();
2291
- i && await i.applyModelVariant(
2290
+ const s = t.getModelContainer();
2291
+ s && await s.applyModelVariant(
2292
2292
  A.stepName,
2293
2293
  {
2294
2294
  model: n,
@@ -2325,13 +2325,13 @@ class ua {
2325
2325
  });
2326
2326
  }
2327
2327
  async changeText(A, e, t, a, n) {
2328
- const s = await this.changeTextCommand(A, e, t, a, n);
2329
- s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2328
+ const i = await this.changeTextCommand(A, e, t, a, n);
2329
+ i && (i.command && t.getCommandDispatcher()(i.command), i.followup && await i.followup());
2330
2330
  }
2331
2331
  async changeTextCommand(A, e, t, a, n) {
2332
2332
  var g;
2333
- const s = t.getRegionElements(A.stepName), i = (g = t.getStepSpecificServices(A.stepName)) == null ? void 0 : g.module;
2334
- if (!i)
2333
+ const i = t.getRegionElements(A.stepName), s = (g = t.getStepSpecificServices(A.stepName)) == null ? void 0 : g.module;
2334
+ if (!s)
2335
2335
  return console.error("Missing module."), null;
2336
2336
  const o = t.getProfanities();
2337
2337
  if (!this.validateInput(A, e, o, n))
@@ -2370,11 +2370,11 @@ class ua {
2370
2370
  command: new R(Q)
2371
2371
  };
2372
2372
  };
2373
- if (s.length > 0) {
2374
- const l = s.map((d) => {
2373
+ if (i.length > 0) {
2374
+ const l = i.map((d) => {
2375
2375
  if (!d.region)
2376
2376
  return null;
2377
- const w = i.svgPrint(e, d.region);
2377
+ const w = s.svgPrint(e, d.region);
2378
2378
  return r(w, d.region, d.id);
2379
2379
  }).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
2380
2380
  return {
@@ -2384,7 +2384,7 @@ class ua {
2384
2384
  };
2385
2385
  } else {
2386
2386
  const B = A.data.regions.map(
2387
- (d) => r(i.svgPrint(e, d), d)
2387
+ (d) => r(s.svgPrint(e, d), d)
2388
2388
  ), l = B.filter((d) => !!d).map((d) => d && d.command);
2389
2389
  return {
2390
2390
  command: new R(l),
@@ -2401,17 +2401,17 @@ class ua {
2401
2401
  }
2402
2402
  validateInput(A, e, t, a) {
2403
2403
  if (A.data && A.data.maxLength) {
2404
- const s = A.data.maxLength;
2405
- if (e.length > s)
2404
+ const i = A.data.maxLength;
2405
+ if (e.length > i)
2406
2406
  return a("Too many characters."), !1;
2407
2407
  }
2408
2408
  if (!/^$|^[a-zA-Z0-9 ]+$/.test(e))
2409
2409
  return a("Unsupported characters."), !1;
2410
2410
  const n = jA(e.toLowerCase());
2411
- for (const s of n)
2412
- for (const i in t) {
2413
- const o = t[i].toLowerCase().replace(/\s/g, "");
2414
- if (s === o)
2411
+ for (const i of n)
2412
+ for (const s in t) {
2413
+ const o = t[s].toLowerCase().replace(/\s/g, "");
2414
+ if (i === o)
2415
2415
  return a("Blocked profanity."), !1;
2416
2416
  }
2417
2417
  return a(""), !0;
@@ -2435,13 +2435,13 @@ class Ia {
2435
2435
  const a = e.getSerializedStep(
2436
2436
  A.stepName,
2437
2437
  t.serializableWorkflow.steps
2438
- ), i = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2438
+ ), s = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2439
2439
  if (a != null && a.selectedVariants) {
2440
2440
  const g = a.selectedVariants[0].id;
2441
2441
  if (o && g) {
2442
2442
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
2443
2443
  if (B) {
2444
- const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2444
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
2445
2445
  await e.setSelectionsAndElements(
2446
2446
  A.stepName,
2447
2447
  [B],
@@ -2462,8 +2462,8 @@ class Ia {
2462
2462
  const n = e.asset;
2463
2463
  if (!n)
2464
2464
  throw new $(e);
2465
- const s = n == null ? void 0 : n.fileLink;
2466
- if (!s)
2465
+ const i = n == null ? void 0 : n.fileLink;
2466
+ if (!i)
2467
2467
  return console.error("No URL for picture!"), null;
2468
2468
  a(!0), t.setMandatoryFulfilled(A.stepName, !1);
2469
2469
  const o = t.getRegionElements(A.stepName).map((B) => new Z(B.id)), r = (B) => {
@@ -2478,7 +2478,7 @@ class Ia {
2478
2478
  stepName: A.stepName,
2479
2479
  stepRegion: B,
2480
2480
  id: w,
2481
- src: s,
2481
+ src: i,
2482
2482
  type: U.Image,
2483
2483
  y: B.top,
2484
2484
  x: B.left,
@@ -2520,25 +2520,25 @@ class pa {
2520
2520
  else {
2521
2521
  const n = a.variants;
2522
2522
  if (K.getDefaultVariant(a)) {
2523
- const i = n == null ? void 0 : n.find((o) => {
2523
+ const s = n == null ? void 0 : n.find((o) => {
2524
2524
  var r;
2525
2525
  return o.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
2526
2526
  });
2527
- return this.selectVariantLambda(A, (i == null ? void 0 : i.id) || "", e);
2527
+ return this.selectVariantLambda(A, (s == null ? void 0 : s.id) || "", e);
2528
2528
  }
2529
2529
  }
2530
2530
  return null;
2531
2531
  }
2532
2532
  async reload(A, e, t) {
2533
- var s;
2533
+ var i;
2534
2534
  const a = e.getSerializedStep(
2535
2535
  A.stepName,
2536
2536
  t.serializableWorkflow.steps
2537
2537
  ), n = A.option;
2538
2538
  if (a != null && a.selectedVariants) {
2539
- const i = a.selectedVariants[0].id;
2540
- if (n && i) {
2541
- const o = (s = n.variants) == null ? void 0 : s.find((r) => r.id === i);
2539
+ const s = a.selectedVariants[0].id;
2540
+ if (n && s) {
2541
+ const o = (i = n.variants) == null ? void 0 : i.find((r) => r.id === s);
2542
2542
  o && await e.setSelectionsAndElements(A.stepName, [o], []);
2543
2543
  }
2544
2544
  }
@@ -2555,13 +2555,13 @@ class pa {
2555
2555
  const n = a.variants;
2556
2556
  if (!n)
2557
2557
  return null;
2558
- const s = n.length > 1 ? n.find((i) => i.id === e) : n[0];
2559
- if (!s)
2558
+ const i = n.length > 1 ? n.find((s) => s.id === e) : n[0];
2559
+ if (!i)
2560
2560
  throw new Error("Failed to find selected variant in step variants, this should never happen!");
2561
2561
  return {
2562
2562
  command: void 0,
2563
2563
  followup: async () => {
2564
- await t.setSelectionsAndElements(A.stepName, [s], [], async () => {
2564
+ await t.setSelectionsAndElements(A.stepName, [i], [], async () => {
2565
2565
  t.setMandatoryFulfilled(A.stepName, !0);
2566
2566
  });
2567
2567
  }
@@ -2584,13 +2584,13 @@ class Da {
2584
2584
  }))) || [] : [];
2585
2585
  }
2586
2586
  setCustomColor(A, e, t) {
2587
- const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
2588
- const o = i.region;
2587
+ const a = t.getLayouts(), i = (t.getRegionElements(e.stepName) || []).map((s) => {
2588
+ const o = s.region;
2589
2589
  if (!a.find((g) => g.panelId === (o == null ? void 0 : o.panelId)))
2590
2590
  throw new O(o);
2591
- return new TA(i.id, this.shapeFillId, A);
2592
- }).filter((i) => !!i);
2593
- t.getCommandDispatcher()(new R(s)), t.updateStorage(e.stepName, { colour: A });
2591
+ return new TA(s.id, this.shapeFillId, A);
2592
+ }).filter((s) => !!s);
2593
+ t.getCommandDispatcher()(new R(i)), t.updateStorage(e.stepName, { colour: A });
2594
2594
  }
2595
2595
  async init(A, e, t) {
2596
2596
  const a = A.option;
@@ -2622,13 +2622,13 @@ class Da {
2622
2622
  const a = e.getSerializedStep(
2623
2623
  A.stepName,
2624
2624
  t.serializableWorkflow.steps
2625
- ), i = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2625
+ ), s = Object.values(t.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === A.stepName), o = A.option;
2626
2626
  if (a != null && a.selectedVariants) {
2627
2627
  const g = a.selectedVariants[0].id;
2628
2628
  if (o && g) {
2629
2629
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
2630
2630
  if (B) {
2631
- const l = i.map((d) => ({ id: d.id, region: d.stepRegion }));
2631
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
2632
2632
  await e.setSelectionsAndElements(
2633
2633
  A.stepName,
2634
2634
  [B],
@@ -2646,10 +2646,10 @@ class Da {
2646
2646
  }
2647
2647
  async selectVariantCommand(A, e, t, a) {
2648
2648
  var o;
2649
- const n = a.getLayouts(), s = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
2649
+ const n = a.getLayouts(), i = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, s = () => {
2650
2650
  var r, g;
2651
2651
  if (((r = e.variant) == null ? void 0 : r.color) === "#custom")
2652
- return s || "#FFFFFF";
2652
+ return i || "#FFFFFF";
2653
2653
  if ((g = e.variant) != null && g.color)
2654
2654
  return e.variant.color;
2655
2655
  throw new Error("Failed to resolve color for shape step.");
@@ -2659,7 +2659,7 @@ class Da {
2659
2659
  const l = B.region;
2660
2660
  if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
2661
2661
  throw new O(l);
2662
- const w = i();
2662
+ const w = s();
2663
2663
  return new TA(B.id, this.shapeFillId, w);
2664
2664
  }, g = t.map(r).filter((B) => !!B);
2665
2665
  return {
@@ -2669,7 +2669,7 @@ class Da {
2669
2669
  A.stepName,
2670
2670
  e.variant ? [e.variant] : [],
2671
2671
  t
2672
- ), a.updateStorage(A.stepName, { colour: i() });
2672
+ ), a.updateStorage(A.stepName, { colour: s() });
2673
2673
  }
2674
2674
  };
2675
2675
  } else {
@@ -2677,7 +2677,7 @@ class Da {
2677
2677
  const w = n.find((m) => m.panelId === d.panelId);
2678
2678
  if (!w)
2679
2679
  throw new O(d);
2680
- const C = i(), E = `
2680
+ const C = s(), E = `
2681
2681
  <svg
2682
2682
  xmlns="http://www.w3.org/2000/svg"
2683
2683
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -2733,7 +2733,7 @@ class Da {
2733
2733
  e.variant ? [e.variant] : [],
2734
2734
  l,
2735
2735
  async () => {
2736
- a.updateStorage(A.stepName, { colour: i() });
2736
+ a.updateStorage(A.stepName, { colour: s() });
2737
2737
  }
2738
2738
  );
2739
2739
  }
@@ -2741,7 +2741,7 @@ class Da {
2741
2741
  }
2742
2742
  }
2743
2743
  }
2744
- const iA = new Da();
2744
+ const sA = new Da();
2745
2745
  class fa {
2746
2746
  constructor() {
2747
2747
  this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
@@ -2786,18 +2786,18 @@ class ya {
2786
2786
  );
2787
2787
  const a = [], n = e ? ut(e.assetUrl) : void 0;
2788
2788
  if (n) {
2789
- const s = t.split("").filter((o) => !Ma.includes(o)).join(""), i = s.split("").map((o) => n.getFont().charToGlyph(o));
2790
- for (let o = 0; o < i.length; o++)
2791
- i[o].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(o)));
2789
+ const i = t.split("").filter((o) => !Ma.includes(o)).join(""), s = i.split("").map((o) => n.getFont().charToGlyph(o));
2790
+ for (let o = 0; o < s.length; o++)
2791
+ s[o].name === ".notdef" && a.push(String.fromCharCode(i.charCodeAt(o)));
2792
2792
  }
2793
- for (let s = 0; s < a.length; s++)
2794
- t = t.replaceAll(a[s], "");
2793
+ for (let i = 0; i < a.length; i++)
2794
+ t = t.replaceAll(a[i], "");
2795
2795
  return t;
2796
2796
  }, this.textAlign = (A) => A.vertical ? "center" : A.textAlign || "center", this.getErrorsForText = (A, e, t) => {
2797
2797
  const a = [];
2798
2798
  e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
2799
- const n = t.getProfanities(), s = jA(A.toLowerCase());
2800
- for (const o of s)
2799
+ const n = t.getProfanities(), i = jA(A.toLowerCase());
2800
+ for (const o of i)
2801
2801
  for (const r in n) {
2802
2802
  const g = n[r].toLowerCase().replace(/\s/g, "");
2803
2803
  if (o === g) {
@@ -2810,7 +2810,7 @@ class ya {
2810
2810
  };
2811
2811
  }
2812
2812
  async init(A, e, t) {
2813
- var n, s, i;
2813
+ var n, i, s;
2814
2814
  const a = A.option;
2815
2815
  if (!a)
2816
2816
  return null;
@@ -2825,11 +2825,11 @@ class ya {
2825
2825
  } : void 0;
2826
2826
  e.updateStorage(A.stepName, {
2827
2827
  inputText: A.data.defaultText || "",
2828
- color: ((s = await this.getDefaultColorVariant(A.data)) == null ? void 0 : s.color) || await this.getDefaultColor(A.data),
2828
+ color: ((i = await this.getDefaultColorVariant(A.data)) == null ? void 0 : i.color) || await this.getDefaultColor(A.data),
2829
2829
  fillImage: B
2830
2830
  }), e.updateMetadata(A.stepName, {
2831
2831
  text: A.data.defaultText || "",
2832
- color: ((i = await this.getDefaultColorVariant(A.data)) == null ? void 0 : i.name) || await this.getDefaultColor(A.data),
2832
+ color: ((s = await this.getDefaultColorVariant(A.data)) == null ? void 0 : s.name) || await this.getDefaultColor(A.data),
2833
2833
  fillImage: o == null ? void 0 : o.name
2834
2834
  });
2835
2835
  const l = K.getDefaultVariant(a);
@@ -2864,10 +2864,10 @@ class ya {
2864
2864
  return e;
2865
2865
  const t = A.data.colorOption;
2866
2866
  if (t) {
2867
- const n = ((a = t.variants) == null ? void 0 : a.map((s) => ({
2868
- fill: s.color,
2869
- stroke: s.color,
2870
- variant: s
2867
+ const n = ((a = t.variants) == null ? void 0 : a.map((i) => ({
2868
+ fill: i.color,
2869
+ stroke: i.color,
2870
+ variant: i
2871
2871
  }))) || [];
2872
2872
  return this.cachedColors.set(A.stepName, n), n;
2873
2873
  }
@@ -2877,9 +2877,9 @@ class ya {
2877
2877
  if (!A.data || !A.data.regions)
2878
2878
  return;
2879
2879
  const n = a.getCommandDispatcher();
2880
- for (const s of t) {
2881
- const i = new mt(s.id, e);
2882
- n(i);
2880
+ for (const i of t) {
2881
+ const s = new mt(i.id, e);
2882
+ n(s);
2883
2883
  }
2884
2884
  }
2885
2885
  async changeFillColor(A, e, t, a) {
@@ -2888,17 +2888,17 @@ class ya {
2888
2888
  return;
2889
2889
  const n = a.getCommandDispatcher();
2890
2890
  e.variant ? a.updateMetadata(A.stepName, { color: e.variant.name }) : a.updateMetadata(A.stepName, { color: e.fill });
2891
- const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
2892
- s ? a.updateStorage(A.stepName, {
2891
+ const i = A.data.colorOption, s = i ? this.createTextFillSpotColor(i, e.variant) : void 0;
2892
+ i ? a.updateStorage(A.stepName, {
2893
2893
  color: e.fill,
2894
- colorProfileAssetKey: (o = s.colorProfile) == null ? void 0 : o.key
2894
+ colorProfileAssetKey: (o = i.colorProfile) == null ? void 0 : o.key
2895
2895
  }) : a.updateStorage(A.stepName, {
2896
2896
  color: e.fill
2897
2897
  });
2898
2898
  for (const r of t) {
2899
2899
  if (!e.fill)
2900
2900
  throw new Error("Fill not set on new color selection!");
2901
- const g = new It(r.id, e.fill, i);
2901
+ const g = new It(r.id, e.fill, s);
2902
2902
  n(g);
2903
2903
  }
2904
2904
  }
@@ -2906,17 +2906,17 @@ class ya {
2906
2906
  var t, a;
2907
2907
  const e = A.data.imageFillOption;
2908
2908
  if (e) {
2909
- const n = ((a = (t = e.variants) == null ? void 0 : t.map((s) => {
2910
- var i;
2911
- return (i = s.asset) == null ? void 0 : i.fileLink;
2912
- })) == null ? void 0 : a.filter((s) => !!s)) || [];
2909
+ const n = ((a = (t = e.variants) == null ? void 0 : t.map((i) => {
2910
+ var s;
2911
+ return (s = i.asset) == null ? void 0 : s.fileLink;
2912
+ })) == null ? void 0 : a.filter((i) => !!i)) || [];
2913
2913
  return Promise.all(
2914
- n.map(async (s) => {
2915
- const i = await zA(s);
2914
+ n.map(async (i) => {
2915
+ const s = await zA(i);
2916
2916
  return {
2917
- src: s,
2918
- width: i.width,
2919
- height: i.height,
2917
+ src: i,
2918
+ width: s.width,
2919
+ height: s.height,
2920
2920
  scale: A.data.imageFillScale || 1
2921
2921
  };
2922
2922
  })
@@ -2925,14 +2925,14 @@ class ya {
2925
2925
  return Promise.resolve([]);
2926
2926
  }
2927
2927
  async changeFillImage(A, e, t, a) {
2928
- var i, o;
2928
+ var s, o;
2929
2929
  if (!A.data || !A.data.regions)
2930
2930
  return;
2931
- const n = a.getCommandDispatcher(), s = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((r) => {
2931
+ const n = a.getCommandDispatcher(), i = (o = (s = A.option) == null ? void 0 : s.variants) == null ? void 0 : o.find((r) => {
2932
2932
  var g;
2933
2933
  return ((g = r.asset) == null ? void 0 : g.fileLink) === e.src;
2934
2934
  });
2935
- a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
2935
+ a.updateMetadata(A.stepName, { fillImage: i == null ? void 0 : i.name }), a.updateStorage(A.stepName, {
2936
2936
  fillImage: e
2937
2937
  });
2938
2938
  for (const r of t) {
@@ -2948,15 +2948,15 @@ class ya {
2948
2948
  });
2949
2949
  }
2950
2950
  updateInputText(A, e, t, a) {
2951
- const n = a.getStepStorage(t.stepName), s = this.getProcessedInput(A, t.data, !!n.customiseAllText), i = {
2951
+ const n = a.getStepStorage(t.stepName), i = this.getProcessedInput(A, t.data, !!n.customiseAllText), s = {
2952
2952
  command: void 0,
2953
2953
  helperText: "",
2954
2954
  errors: this.getErrorsForText(A, t, a)
2955
2955
  };
2956
- if (i.errors.length > 0)
2957
- return i.helperText = i.errors[0].localizationKey, i;
2958
- const o = (t.data.maxLength - s.length).toString();
2959
- i.helperText = `${o} characters remaining`;
2956
+ if (s.errors.length > 0)
2957
+ return s.helperText = s.errors[0].localizationKey, s;
2958
+ const o = (t.data.maxLength - i.length).toString();
2959
+ s.helperText = `${o} characters remaining`;
2960
2960
  const r = [], g = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map();
2961
2961
  for (const l of e) {
2962
2962
  if (!l.fontData)
@@ -2965,20 +2965,20 @@ class ya {
2965
2965
  l.fontSize,
2966
2966
  l.fontData,
2967
2967
  { left: l.x, top: l.y, width: l.width, height: l.height, rotation: l.rotation, panelId: "" },
2968
- [s],
2968
+ [i],
2969
2969
  { size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
2970
2970
  );
2971
2971
  g.set(l.id, d), B.set(l.id, w);
2972
- const C = t.data.curved ? s : (w || []).join(`
2972
+ const C = t.data.curved ? i : (w || []).join(`
2973
2973
  `);
2974
2974
  r.push(this.generateTextChangeCommandsForRegion(d, t.data, l.id, C));
2975
2975
  }
2976
- return !t.data.curved && e.length > 0 && !Array.from(B.values()).every((d) => d) ? (i.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), i) : (a.updateStorage(t.stepName, { text: A }), a.updateMetadata(t.stepName, {
2977
- text: s
2978
- }), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new R(r), i);
2976
+ return !t.data.curved && e.length > 0 && !Array.from(B.values()).every((d) => d) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(t.stepName, { text: A }), a.updateMetadata(t.stepName, {
2977
+ text: i
2978
+ }), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), s.command = new R(r), s);
2979
2979
  }
2980
2980
  async selectVariant(A, e, t, a, n) {
2981
- const s = await this.selectVariantCommand(
2981
+ const i = await this.selectVariantCommand(
2982
2982
  A,
2983
2983
  e,
2984
2984
  t.getStepStorage(A.stepName) || {},
@@ -2987,16 +2987,16 @@ class ya {
2987
2987
  a,
2988
2988
  n
2989
2989
  );
2990
- s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
2990
+ i && (i.command && t.getCommandDispatcher()(i.command), i.followup && await i.followup());
2991
2991
  }
2992
2992
  createTextFillSpotColor(A, e) {
2993
2993
  const t = A.colorProfile;
2994
2994
  if (t) {
2995
- const a = (t.name || "").replace(/\s/g, "-"), n = a.lastIndexOf("/"), i = a.slice(n + 1).slice(0, -4);
2995
+ const a = (t.name || "").replace(/\s/g, "-"), n = a.lastIndexOf("/"), s = a.slice(n + 1).slice(0, -4);
2996
2996
  if (!e.namedColor)
2997
2997
  throw new Error("variant named color not set!");
2998
2998
  return {
2999
- profileName: i,
2999
+ profileName: s,
3000
3000
  namedColor: e.namedColor
3001
3001
  };
3002
3002
  }
@@ -3006,26 +3006,26 @@ class ya {
3006
3006
  const a = e.getSerializedStep(
3007
3007
  A.stepName,
3008
3008
  t.serializableWorkflow.steps
3009
- ), i = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), o = A.option;
3009
+ ), s = Object.values(t.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === A.stepName), o = A.option;
3010
3010
  if (a != null && a.selectedVariants) {
3011
3011
  const l = a.selectedVariants[0].id;
3012
3012
  if (o && l) {
3013
3013
  const d = (r = o.variants) == null ? void 0 : r.find((w) => w.id === l);
3014
3014
  if (d) {
3015
- const w = await this.fontDataFromVariant(d), C = i.map((m) => ({ id: m.id, region: m.stepRegion })), E = (g = a.storage) == null ? void 0 : g.color, Q = (B = a.storage) == null ? void 0 : B.text;
3015
+ const w = await this.fontDataFromVariant(d), C = s.map((m) => ({ id: m.id, region: m.stepRegion })), E = (g = a.storage) == null ? void 0 : g.color, Q = (B = a.storage) == null ? void 0 : B.text;
3016
3016
  await e.setSelectionsAndElements(
3017
3017
  A.stepName,
3018
3018
  [d],
3019
3019
  C,
3020
3020
  async () => {
3021
3021
  e.updateMetadata(A.stepName, { color: E, text: Q }), e.updateStorage(A.stepName, { text: Q, inputText: Q });
3022
- const m = i.map((D) => new le(D.id, w)), u = new R(m);
3022
+ const m = s.map((D) => new le(D.id, w)), u = new R(m);
3023
3023
  e.getCommandDispatcher()(u), e.setMandatoryFulfilled(A.stepName, !0);
3024
3024
  }
3025
3025
  );
3026
3026
  const { command: h } = z.updateInputText(
3027
3027
  Q || "",
3028
- i,
3028
+ s,
3029
3029
  A,
3030
3030
  e
3031
3031
  );
@@ -3064,7 +3064,7 @@ class ya {
3064
3064
  name: a.names.fullName.en
3065
3065
  };
3066
3066
  }
3067
- async selectVariantCommand(A, e, t, a, n, s, i, o) {
3067
+ async selectVariantCommand(A, e, t, a, n, i, s, o) {
3068
3068
  var B;
3069
3069
  const r = n.markUpdatePending(), g = await this.fontDataFromVariant(e);
3070
3070
  if (a.length > 0) {
@@ -3081,8 +3081,8 @@ class ya {
3081
3081
  t,
3082
3082
  n,
3083
3083
  !!t.customiseAllText,
3084
- s,
3085
- i
3084
+ i,
3085
+ s
3086
3086
  );
3087
3087
  return d && l.push(d), {
3088
3088
  command: new R(l),
@@ -3106,8 +3106,8 @@ class ya {
3106
3106
  t,
3107
3107
  n,
3108
3108
  !!t.customiseAllText,
3109
- s,
3110
- i
3109
+ i,
3110
+ s
3111
3111
  ), w = l.flatMap((E) => E.commands);
3112
3112
  if (o) {
3113
3113
  const E = l.map(
@@ -3131,12 +3131,12 @@ class ya {
3131
3131
  injectReplaceableText(A, e) {
3132
3132
  return e.replaceableText ? e.replaceableText.replace("{{}}", A) : A;
3133
3133
  }
3134
- async createTextboxRegions(A, e, t, a, n, s) {
3134
+ async createTextboxRegions(A, e, t, a, n, i) {
3135
3135
  if (!t || !t.regions)
3136
3136
  throw new Error("Step data not supplied");
3137
- const i = n.text || t.defaultText || "", o = this.getProcessedInput(i, t, !1), r = async (B) => {
3137
+ const s = n.text || t.defaultText || "", o = this.getProcessedInput(s, t, !1), r = async (B) => {
3138
3138
  var C;
3139
- const d = s.getLayouts().find((E) => E.panelId === B.panelId), w = k();
3139
+ const d = i.getLayouts().find((E) => E.panelId === B.panelId), w = k();
3140
3140
  try {
3141
3141
  if (!d)
3142
3142
  throw new xA("Failed to find layout for region: " + B.panelId);
@@ -3147,7 +3147,7 @@ class ya {
3147
3147
  var T;
3148
3148
  return J.id === ((T = E.defaultVariant) == null ? void 0 : T.id);
3149
3149
  }) || E.variants[0];
3150
- Q = this.createTextFillSpotColor(E, S), s.updateStorage(A, {
3150
+ Q = this.createTextFillSpotColor(E, S), i.updateStorage(A, {
3151
3151
  colorProfileAssetKey: (C = E.colorProfile) == null ? void 0 : C.key
3152
3152
  });
3153
3153
  }
@@ -3163,7 +3163,7 @@ class ya {
3163
3163
  layerIndex: B.layerIndex,
3164
3164
  rotation: B.rotation,
3165
3165
  text: o,
3166
- input: i,
3166
+ input: s,
3167
3167
  type: U.Textbox,
3168
3168
  vertical: t.vertical,
3169
3169
  x: B.left,
@@ -3211,22 +3211,22 @@ class ya {
3211
3211
  }, g = await Promise.all(t.regions.map(r)).catch((B) => {
3212
3212
  throw B instanceof SA ? (Fa.setLatestToast("Failed to load font.", PA.Error), B) : B instanceof xA ? B : new Error(B);
3213
3213
  });
3214
- return await s.setSelectionsAndElements(
3214
+ return await i.setSelectionsAndElements(
3215
3215
  A,
3216
3216
  [e],
3217
3217
  g.map((B) => B.regionElement),
3218
3218
  async () => {
3219
- s.updateMetadata(A, {
3220
- text: i
3221
- }), s.updateStorage(A, {
3222
- text: i
3219
+ i.updateMetadata(A, {
3220
+ text: s
3221
+ }), i.updateStorage(A, {
3222
+ text: s
3223
3223
  });
3224
3224
  }
3225
3225
  ), g;
3226
3226
  }
3227
3227
  generateTextChangeCommandsForRegion(A, e, t, a) {
3228
- const n = [], s = new pt(t, a);
3229
- if (n.push(s), !e.size) {
3228
+ const n = [], i = new pt(t, a);
3229
+ if (n.push(i), !e.size) {
3230
3230
  const o = new Dt(t, A);
3231
3231
  n.push(o);
3232
3232
  }
@@ -3235,8 +3235,8 @@ class ya {
3235
3235
  /**
3236
3236
  * @deprecated
3237
3237
  */
3238
- async changeInputTextWithRegion(A, e, t, a, n, s, i, o, r, g) {
3239
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), w = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
3238
+ async changeInputTextWithRegion(A, e, t, a, n, i, s, o, r, g) {
3239
+ const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, s), d = i.getRegionElements(A.stepName), w = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
3240
3240
  for (const u of d)
3241
3241
  if (u.region) {
3242
3242
  const [D, p] = uA(
@@ -3251,7 +3251,7 @@ class ya {
3251
3251
  const Q = (() => {
3252
3252
  if (A.data && A.data.maxLength && l.length > A.data.maxLength)
3253
3253
  return g && g(!0), { info: "0" };
3254
- const u = s.getProfanities(), D = jA(l.toLowerCase());
3254
+ const u = i.getProfanities(), D = jA(l.toLowerCase());
3255
3255
  for (const p of D)
3256
3256
  for (const I in u) {
3257
3257
  const F = u[I].toLowerCase().replace(/\s/g, "");
@@ -3267,9 +3267,9 @@ class ya {
3267
3267
  }
3268
3268
  if (r(`${Q.info} characters remaining` || ""), g)
3269
3269
  return;
3270
- s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
3270
+ i.updateStorage(A.stepName, { text: B }), i.updateMetadata(A.stepName, {
3271
3271
  text: this.injectReplaceableText(B, A.data)
3272
- }), n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
3272
+ }), n.defaultCleared && i.setMandatoryFulfilled(A.stepName, !0);
3273
3273
  const h = [];
3274
3274
  for (const u of d) {
3275
3275
  const D = A.data.curved ? l : (C.get(u.id) || []).join(`
@@ -4577,16 +4577,16 @@ const $e = (c, A, e, t) => {
4577
4577
  a.setAttribute("id", t), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
4578
4578
  const n = lA("feOffset");
4579
4579
  a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${A}`);
4580
- const s = lA("feGaussianBlur");
4581
- a.appendChild(s), s.setAttribute("result", "blurOut"), s.setAttribute("in", "offOut"), s.setAttribute("stdDeviation", `${e}`);
4582
- const i = lA("feBlend");
4583
- return a.appendChild(i), i.setAttribute("in", "SourceGraphic"), i.setAttribute("in2", "blurOut"), i.setAttribute("mode", "normal"), a;
4580
+ const i = lA("feGaussianBlur");
4581
+ a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${e}`);
4582
+ const s = lA("feBlend");
4583
+ return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
4584
4584
  }, _e = (c) => {
4585
4585
  let A = c;
4586
4586
  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;
4587
4587
  };
4588
- function se(c, A, e, t, a, n) {
4589
- const s = a || 1, i = n || 1, o = {
4588
+ function ie(c, A, e, t, a, n) {
4589
+ const i = a || 1, s = n || 1, o = {
4590
4590
  x: A[0],
4591
4591
  y: A[1],
4592
4592
  width: A[2] - A[0],
@@ -4594,7 +4594,7 @@ function se(c, A, e, t, a, n) {
4594
4594
  };
4595
4595
  if (o.width <= 0)
4596
4596
  return;
4597
- const r = Ha(o.height, o.width, e * s, t * i), g = (t - r * o.width) / 2 - r * o.x, B = (e - r * o.height) / 2 - r * o.y;
4597
+ const r = Ha(o.height, o.width, e * i, t * s), g = (t - r * o.width) / 2 - r * o.x, B = (e - r * o.height) / 2 - r * o.y;
4598
4598
  c.setAttribute("transform", `translate(${g} ${B}) scale(${r} ${r})`);
4599
4599
  }
4600
4600
  function Ha(c, A, e, t) {
@@ -4613,7 +4613,7 @@ const Qe = {
4613
4613
  t: ["x", "y"],
4614
4614
  a: ["rx", "ry", "xRotation", "largeArc", "sweep", "x", "y"]
4615
4615
  };
4616
- class ie {
4616
+ class se {
4617
4617
  constructor(A) {
4618
4618
  const e = Array.from(A.querySelectorAll("path"));
4619
4619
  this.paths = e.map((t) => {
@@ -4629,10 +4629,10 @@ class ie {
4629
4629
  encodePath(A) {
4630
4630
  let e = "";
4631
4631
  const a = (n) => {
4632
- const s = [], i = n.relative ? n.type : n.type.toUpperCase();
4633
- let o = e !== i;
4632
+ const i = [], s = n.relative ? n.type : n.type.toUpperCase();
4633
+ let o = e !== s;
4634
4634
  const r = Qe[n.type];
4635
- o && (s.push(i), e = i);
4635
+ o && (i.push(s), e = s);
4636
4636
  for (const g of r) {
4637
4637
  const B = n[g];
4638
4638
  let l;
@@ -4644,11 +4644,11 @@ class ie {
4644
4644
  l = (B * 100 | 0) / 100;
4645
4645
  break;
4646
4646
  default:
4647
- throw new sA("Failed to encode path.");
4647
+ throw new iA("Failed to encode path.");
4648
4648
  }
4649
- o || s.push(" "), s.push(l), o = !1;
4649
+ o || i.push(" "), i.push(l), o = !1;
4650
4650
  }
4651
- return s.join("");
4651
+ return i.join("");
4652
4652
  };
4653
4653
  return A.map(a).join("");
4654
4654
  }
@@ -4656,24 +4656,24 @@ class ie {
4656
4656
  const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
4657
4657
  let n;
4658
4658
  for (e.lastIndex = 0; n = e.exec(A); ) {
4659
- const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), o = s === n[1], r = Qe[s];
4660
- if (i.length < r.length)
4661
- throw new sA(
4662
- `Path type "${s}" given ${i.length} arguments, expected ${r.length}.`
4659
+ const i = n[1].toLowerCase(), s = (n[2].match(t) || []).map(parseFloat), o = i === n[1], r = Qe[i];
4660
+ if (s.length < r.length)
4661
+ throw new iA(
4662
+ `Path type "${i}" given ${s.length} arguments, expected ${r.length}.`
4663
4663
  );
4664
4664
  if (r.length > 0) {
4665
- if (i.length % r.length !== 0)
4666
- throw new sA(
4667
- `Path type "${s}" given ${i.length} arguments, not divisible by ${r.length}`
4665
+ if (s.length % r.length !== 0)
4666
+ throw new iA(
4667
+ `Path type "${i}" given ${s.length} arguments, not divisible by ${r.length}`
4668
4668
  );
4669
- for (let g = 0; g < i.length / r.length; g++) {
4670
- const B = { type: s, relative: o };
4669
+ for (let g = 0; g < s.length / r.length; g++) {
4670
+ const B = { type: i, relative: o };
4671
4671
  for (let l = 0; l < r.length; l++)
4672
- B[r[l]] = i[g * r.length + l];
4672
+ B[r[l]] = s[g * r.length + l];
4673
4673
  a.push(B);
4674
4674
  }
4675
4675
  } else
4676
- a.push({ type: s, relative: o });
4676
+ a.push({ type: i, relative: o });
4677
4677
  }
4678
4678
  return a;
4679
4679
  }
@@ -4683,13 +4683,13 @@ class ie {
4683
4683
  ["x2", "y2"],
4684
4684
  ["x", "y"]
4685
4685
  ], a = (n) => {
4686
- for (let s = 0; s < t.length; s++) {
4687
- const [i, o] = t[s];
4688
- if (i in n && o in n) {
4689
- const r = [n[i], n[o]], g = e(r);
4686
+ for (let i = 0; i < t.length; i++) {
4687
+ const [s, o] = t[i];
4688
+ if (s in n && o in n) {
4689
+ const r = [n[s], n[o]], g = e(r);
4690
4690
  if (g.length < 2)
4691
- throw new sA("Transformer must return at least 2 points.");
4692
- n[i] = g[0], n[o] = g[1];
4691
+ throw new iA("Transformer must return at least 2 points.");
4692
+ n[s] = g[0], n[o] = g[1];
4693
4693
  }
4694
4694
  }
4695
4695
  return n;
@@ -4699,8 +4699,8 @@ class ie {
4699
4699
  transformPath(A, e) {
4700
4700
  const t = [];
4701
4701
  for (let a = 0; a < A.length; a++) {
4702
- const n = JSON.parse(JSON.stringify(A[a])), s = e(n);
4703
- Array.isArray(s) ? t.push(...s) : s && t.push(s);
4702
+ const n = JSON.parse(JSON.stringify(A[a])), i = e(n);
4703
+ Array.isArray(i) ? t.push(...i) : i && t.push(i);
4704
4704
  }
4705
4705
  return t;
4706
4706
  }
@@ -4722,11 +4722,11 @@ class Ra extends ae {
4722
4722
  return this.svg(A);
4723
4723
  }
4724
4724
  svg(A) {
4725
- const e = Ae(Ya), a = A !== "" ? ((s) => s.charAt(0).toUpperCase() + s.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72);
4725
+ const e = Ae(Ya), a = A !== "" ? ((i) => i.charAt(0).toUpperCase() + i.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72);
4726
4726
  return this.brandSvg(n, Sa);
4727
4727
  }
4728
4728
  brandSvg(A, e) {
4729
- const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
4729
+ const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, i = A.toPathData(3), s = () => {
4730
4730
  const D = N("g"), p = N("defs");
4731
4731
  D.appendChild(p), p.appendChild($e(3, 7, 4, "shadow"));
4732
4732
  const I = N("g");
@@ -4736,7 +4736,7 @@ class Ra extends ae {
4736
4736
  const Y = N("g");
4737
4737
  D.appendChild(Y), Y.setAttribute("fill", "#9d2621"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = t;
4738
4738
  const y = N("g");
4739
- return D.appendChild(y), y.setAttribute("fill", "yellow"), y.innerHTML = t, new ie(D).transform(([S, J]) => [S, J + (n / 2 - S) ** 2 / (n * 2.9)]), D;
4739
+ return D.appendChild(y), y.setAttribute("fill", "yellow"), y.innerHTML = t, new se(D).transform(([S, J]) => [S, J + (n / 2 - S) ** 2 / (n * 2.9)]), D;
4740
4740
  }, [o, r, g] = qe(e);
4741
4741
  if (!o)
4742
4742
  return "";
@@ -4748,10 +4748,10 @@ class Ra extends ae {
4748
4748
  Q.setAttribute("opacity", "0"), E.appendChild(Q);
4749
4749
  const h = N("g");
4750
4750
  E.appendChild(h);
4751
- const m = i();
4751
+ const m = s();
4752
4752
  h.appendChild(m);
4753
- const u = ee(s);
4754
- return se(h, u, l, d), _e(o.outerHTML);
4753
+ const u = ee(i);
4754
+ return ie(h, u, l, d), _e(o.outerHTML);
4755
4755
  }
4756
4756
  }
4757
4757
  const Ua = "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==";
@@ -4766,22 +4766,22 @@ class Ga extends ae {
4766
4766
  return this.svg(A);
4767
4767
  }
4768
4768
  svg(A) {
4769
- const e = Ae(Ua), 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;
4770
- return this.brandSvg(n, i, s);
4769
+ const e = Ae(Ua), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), i = A.length < this.shortLength, s = i ? this.backgroundShortSvg : this.backgroundSvg;
4770
+ return this.brandSvg(n, s, i);
4771
4771
  }
4772
4772
  brandSvg(A, e, t) {
4773
- const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), r = () => {
4773
+ const a = A.toSVG(2), n = A.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = A.toPathData(3), r = () => {
4774
4774
  const I = N("g"), F = N("g");
4775
4775
  I.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
4776
4776
  const Y = N("g");
4777
4777
  I.appendChild(Y), Y.setAttribute("fill", "#FFE386"), Y.setAttribute("transform", "translate(1,1)"), Y.innerHTML = a;
4778
4778
  const y = N("g");
4779
4779
  I.appendChild(y), y.setAttribute("fill", "white"), y.innerHTML = a;
4780
- const G = new ie(I);
4781
- return G.transform(([S, J]) => [S, J + ((i - S) * J) ** 2 / (i * 5e4)]), G.transform(([S, J]) => [
4780
+ const G = new se(I);
4781
+ return G.transform(([S, J]) => [S, J + ((s - S) * J) ** 2 / (s * 5e4)]), G.transform(([S, J]) => [
4782
4782
  S,
4783
- J + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
4784
- ]), G.transform(([S, J]) => [S - (s - J) * (i - S) / 800, J]), I;
4783
+ J + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
4784
+ ]), G.transform(([S, J]) => [S - (i - J) * (s - S) / 800, J]), I;
4785
4785
  }, [g, B, l] = qe(e);
4786
4786
  if (!g)
4787
4787
  return "";
@@ -4798,7 +4798,7 @@ class Ga extends ae {
4798
4798
  const D = r();
4799
4799
  u.appendChild(D);
4800
4800
  const p = ee(o);
4801
- return se(u, p, w, C), g.outerHTML;
4801
+ return ie(u, p, w, C), g.outerHTML;
4802
4802
  }
4803
4803
  // 1 if true, 0 if false.
4804
4804
  }
@@ -4814,7 +4814,7 @@ class ka extends ae {
4814
4814
  return this.svgElement(A, e);
4815
4815
  }
4816
4816
  svgElement(A, e) {
4817
- const t = Ae(va), 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(), r = o.x2 - o.x1, g = s.toPathData(3), B = () => {
4817
+ const t = Ae(va), n = A !== "" ? ((m) => m.charAt(0).toUpperCase() + m.substr(1).toLowerCase())(A) : "", i = t.getPath(n, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, g = i.toPathData(3), B = () => {
4818
4818
  const m = N("g");
4819
4819
  m.classList.add("module-text-group");
4820
4820
  const u = N("defs");
@@ -4824,11 +4824,11 @@ class ka extends ae {
4824
4824
  const p = N("g");
4825
4825
  p.classList.add("module-layer0"), m.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = D.outerHTML;
4826
4826
  const I = N("g");
4827
- I.classList.add("module-layer1"), m.appendChild(I), I.setAttribute("stroke-width", "3"), I.setAttribute("stroke", "rgb(45,41,38)"), I.setAttribute("fill", "rgb(45,41,38)"), I.setAttribute("transform", "translate(0.5,0)"), I.innerHTML = i;
4827
+ I.classList.add("module-layer1"), m.appendChild(I), I.setAttribute("stroke-width", "3"), I.setAttribute("stroke", "rgb(45,41,38)"), I.setAttribute("fill", "rgb(45,41,38)"), I.setAttribute("transform", "translate(0.5,0)"), I.innerHTML = s;
4828
4828
  const F = N("g");
4829
- F.classList.add("module-layer2"), m.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = i;
4829
+ F.classList.add("module-layer2"), m.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
4830
4830
  const Y = N("g");
4831
- return Y.classList.add("module-layer3"), m.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = i, new ie(m).transform(([G, S]) => [G, S + (r / 2 - G) ** 2 / (r * 6)]), m;
4831
+ return Y.classList.add("module-layer3"), m.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = s, new se(m).transform(([G, S]) => [G, S + (r / 2 - G) ** 2 / (r * 6)]), m;
4832
4832
  }, l = N("g");
4833
4833
  l.classList.add("module-root");
4834
4834
  const d = N("defs");
@@ -4842,7 +4842,7 @@ class ka extends ae {
4842
4842
  const Q = B();
4843
4843
  E.appendChild(Q);
4844
4844
  const h = ee(g);
4845
- return se(E, h, e.height, e.width, 0.35, 0.65), _e(l.outerHTML);
4845
+ return ie(E, h, e.height, e.width, 0.35, 0.65), _e(l.outerHTML);
4846
4846
  }
4847
4847
  }
4848
4848
  async function At(c) {
@@ -4871,7 +4871,7 @@ class ue extends Te {
4871
4871
  }
4872
4872
  }
4873
4873
  class ba {
4874
- constructor(A, e, t, a, n, s, i, o, r, g, B = !1, l, d = !1, w = !1) {
4874
+ constructor(A, e, t, a, n, i, s, o, r, g, B = !1, l, d = !1, w = !1) {
4875
4875
  this.workflowStatePromiseQueue = new ze(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
4876
4876
  var Q;
4877
4877
  if (!this.previewService)
@@ -4884,7 +4884,7 @@ class ba {
4884
4884
  C,
4885
4885
  this.getProduct().overlayImageUrl
4886
4886
  );
4887
- }, this.updateTransaction = n, this.commandContext = a, this.reloadedState = g, this.transaction = s, this.readOnly = B, this.singleVariantsRenderable = w, 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.currentAdjustingStepId = "", this.renderableContextService = r, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
4887
+ }, this.updateTransaction = n, this.commandContext = a, this.reloadedState = g, this.transaction = i, this.readOnly = B, this.singleVariantsRenderable = w, 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 = s, 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.currentAdjustingStepId = "", this.renderableContextService = r, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
4888
4888
  this.initialized = !0;
4889
4889
  }), this.initializationPromise.catch((C) => {
4890
4890
  throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
@@ -4897,17 +4897,17 @@ class ba {
4897
4897
  async initializeDefaultWorkflowState(A) {
4898
4898
  const e = () => {
4899
4899
  var g, B;
4900
- const i = this.workflow.finalizeStepConfig;
4901
- if (!i)
4900
+ const s = this.workflow.finalizeStepConfig;
4901
+ if (!s)
4902
4902
  return;
4903
- const o = i.lookAtAnimation, r = i.modelAnimation;
4903
+ const o = s.lookAtAnimation, r = s.modelAnimation;
4904
4904
  o && ((g = this.previewService) == null || g.executeCameraAnimation(o)), r && ((B = this.modelContainer) == null || B.executeAnimation(r));
4905
4905
  };
4906
- this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((i) => {
4907
- this.storage[i.stepName] = i.storage || {};
4908
- }), this.allScenes = await ia(A);
4909
- const a = eA(this.allScenes, this.stepSelections).map((i) => i.silentSteps).flat(), { stepElements: n, commands: s } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
4910
- this.commandContext.apply(new R(s), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && e();
4906
+ this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((s) => {
4907
+ this.storage[s.stepName] = s.storage || {};
4908
+ }), this.allScenes = await sa(A);
4909
+ const a = eA(this.allScenes, this.stepSelections).map((s) => s.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
4910
+ this.commandContext.apply(new R(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && e();
4911
4911
  }
4912
4912
  getProduct() {
4913
4913
  return this.product;
@@ -5078,18 +5078,18 @@ class ba {
5078
5078
  console.error(`Failed to read option id from step: ${n.stepName}`);
5079
5079
  return;
5080
5080
  }
5081
- const s = ((r = this.stepSelections[n.stepName]) == null ? void 0 : r.selectedVariants) || [];
5082
- if (s.length === 0)
5081
+ const i = ((r = this.stepSelections[n.stepName]) == null ? void 0 : r.selectedVariants) || [];
5082
+ if (i.length === 0)
5083
5083
  return;
5084
- const i = s[0];
5084
+ const s = i[0];
5085
5085
  if (n.type === f.Model) {
5086
5086
  if (!this.modelContainer)
5087
5087
  throw new v(
5088
5088
  "We should always have a model container when injecting a preview!"
5089
5089
  );
5090
- const B = (g = i.asset) == null ? void 0 : g.fileLink;
5090
+ const B = (g = s.asset) == null ? void 0 : g.fileLink;
5091
5091
  if (!B) {
5092
- console.error(`Failed to read model url from variant: ${i.id} for step: ${n.stepName}`);
5092
+ console.error(`Failed to read model url from variant: ${s.id} for step: ${n.stepName}`);
5093
5093
  return;
5094
5094
  }
5095
5095
  const l = n.data;
@@ -5102,9 +5102,9 @@ class ba {
5102
5102
  l.replaceProductModel || !1
5103
5103
  );
5104
5104
  } else {
5105
- const B = i.material;
5105
+ const B = s.material;
5106
5106
  if (!B) {
5107
- console.error(`Failed to read material from variant: ${i.id} for step: ${n.stepName}`);
5107
+ console.error(`Failed to read material from variant: ${s.id} for step: ${n.stepName}`);
5108
5108
  return;
5109
5109
  }
5110
5110
  n.data.targetMaterials.forEach((d) => {
@@ -5140,10 +5140,10 @@ class ba {
5140
5140
  const A = [];
5141
5141
  return this.allScenes.forEach((e) => {
5142
5142
  e.renderableSteps.forEach((t) => {
5143
- var n, s;
5143
+ var n, i;
5144
5144
  const a = { stepName: t.stepName };
5145
- a.storage = this.storage[t.stepName], a.selectedVariants = (s = (n = this.stepSelections[t.stepName]) == null ? void 0 : n.selectedVariants) == null ? void 0 : s.map(
5146
- (i) => ({ id: i.id, priceModifier: i.priceModifier })
5145
+ a.storage = this.storage[t.stepName], a.selectedVariants = (i = (n = this.stepSelections[t.stepName]) == null ? void 0 : n.selectedVariants) == null ? void 0 : i.map(
5146
+ (s) => ({ id: s.id, priceModifier: s.priceModifier })
5147
5147
  ), A.push(a);
5148
5148
  });
5149
5149
  }), { steps: A };
@@ -5197,12 +5197,12 @@ class ba {
5197
5197
  }, this.onMetadataChange();
5198
5198
  }
5199
5199
  removeElements(A) {
5200
- const e = (t, a) => Object.keys(t).reduce((n, s) => {
5201
- const i = [...t[s] || []];
5200
+ const e = (t, a) => Object.keys(t).reduce((n, i) => {
5201
+ const s = [...t[i] || []];
5202
5202
  return a.forEach((o) => {
5203
- const r = i.findIndex((g) => g.id === o.id);
5204
- r > -1 && i.splice(r, 1);
5205
- }), n[s] = i, n;
5203
+ const r = s.findIndex((g) => g.id === o.id);
5204
+ r > -1 && s.splice(r, 1);
5205
+ }), n[i] = s, n;
5206
5206
  }, {});
5207
5207
  this.stepElements = e(this.stepElements, A);
5208
5208
  }
@@ -5233,16 +5233,16 @@ class ba {
5233
5233
  return Promise.reject("Unknown silent step. This is a bug");
5234
5234
  }, n = A.filter(
5235
5235
  (r) => !this.stepInitialised[r.stepName]
5236
- ), s = {
5236
+ ), i = {
5237
5237
  stepElements: {},
5238
5238
  commands: []
5239
- }, i = [];
5239
+ }, s = [];
5240
5240
  for (const r of n)
5241
- this.markStepsAsInitialised([r.stepName]), e || i.push(a(r, this.layouts, t));
5242
- const o = await Promise.all(i);
5241
+ this.markStepsAsInitialised([r.stepName]), e || s.push(a(r, this.layouts, t));
5242
+ const o = await Promise.all(s);
5243
5243
  for (const r of o)
5244
- s.stepElements[r.step.stepName] = r.results.map((g) => g.regionElement), s.commands = [...s.commands, ...r.results.map((g) => g.command)];
5245
- return s;
5244
+ i.stepElements[r.step.stepName] = r.results.map((g) => g.regionElement), i.commands = [...i.commands, ...r.results.map((g) => g.command)];
5245
+ return i;
5246
5246
  }
5247
5247
  getStepStorage(A) {
5248
5248
  return this.storage[A];
@@ -5275,7 +5275,7 @@ class ba {
5275
5275
  }, this.selectionCost = Object.values(this.stepSelections).reduce((p, I) => p + I.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, Y) => F + Y, 0), 0), this.workflow.steps.forEach((p) => {
5276
5276
  tA(p, this.stepSelections) || (this.stepInitialised[p.stepName] = !1, delete this.stepMetadata[p.stepName], delete this.stepSelections[p.stepName], delete this.storage[p.stepName]);
5277
5277
  });
5278
- const s = this.allScenes, i = eA(s, n), o = eA(s, this.stepSelections), r = i.map((p) => p.silentSteps).flat(), B = o.map((p) => p.silentSteps).flat().filter(
5278
+ const i = this.allScenes, s = eA(i, n), o = eA(i, this.stepSelections), r = s.map((p) => p.silentSteps).flat(), B = o.map((p) => p.silentSteps).flat().filter(
5279
5279
  (p) => !r.some((I) => I.stepName === p.stepName)
5280
5280
  );
5281
5281
  r.forEach((p) => {
@@ -5365,7 +5365,7 @@ class ba {
5365
5365
  );
5366
5366
  break;
5367
5367
  case f.Shape:
5368
- t.push(iA.init(o, this, this.reloadedState));
5368
+ t.push(sA.init(o, this, this.reloadedState));
5369
5369
  break;
5370
5370
  case f.Text:
5371
5371
  t.push(z.init(o, this, this.reloadedState));
@@ -5375,11 +5375,11 @@ class ba {
5375
5375
  if (o.status === "rejected")
5376
5376
  throw new Error(`Step initialization failed: ${o.reason}`);
5377
5377
  return o.value;
5378
- }), s = n.filter((o) => !!o && !!o.command).map((o) => o.command), i = n.filter((o) => !!o && !!o.followup).map((o) => o.followup);
5379
- s && s.length > 0 && this.commandContext.apply(new R(s), !0);
5380
- for (const o of i)
5378
+ }), i = n.filter((o) => !!o && !!o.command).map((o) => o.command), s = n.filter((o) => !!o && !!o.followup).map((o) => o.followup);
5379
+ i && i.length > 0 && this.commandContext.apply(new R(i), !0);
5380
+ for (const o of s)
5381
5381
  await o();
5382
- i.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
5382
+ s.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
5383
5383
  }
5384
5384
  onConfirmChange() {
5385
5385
  this.confirmCallbacks.forEach((A) => A(this.confirmedDesign));
@@ -5482,8 +5482,8 @@ class V {
5482
5482
  * @returns The URL for a thumbnail resource configured on this variant.
5483
5483
  */
5484
5484
  getThumbnail() {
5485
- var t, a, n, s;
5486
- 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;
5485
+ var t, a, n, i;
5486
+ const A = (n = (a = (t = this.variantData.thumbnail) == null ? void 0 : t.versions) == null ? void 0 : a.find((s) => s.name === "thumbnail")) == null ? void 0 : n.link, e = (i = this.variantData.thumbnail) == null ? void 0 : i.fileLink;
5487
5487
  return A || e;
5488
5488
  }
5489
5489
  /**
@@ -5730,7 +5730,7 @@ class ja extends j {
5730
5730
  }
5731
5731
  selectVariant(A) {
5732
5732
  const e = A.getResource();
5733
- return iA.selectVariant(
5733
+ return sA.selectVariant(
5734
5734
  this.step,
5735
5735
  {
5736
5736
  fill: e.color,
@@ -5748,7 +5748,7 @@ class ja extends j {
5748
5748
  * @deprecated The shape step can now pass through colors returned by getColors via selectVariant. Please swap setColor for selectVariant.
5749
5749
  */
5750
5750
  setColor(A) {
5751
- return iA.selectVariant(
5751
+ return sA.selectVariant(
5752
5752
  this.step,
5753
5753
  A,
5754
5754
  this.manager.getRegionElements(this.step.stepName) || [],
@@ -5760,7 +5760,7 @@ class ja extends j {
5760
5760
  * @returns A list of color definitions that are currently applied to the illustration.
5761
5761
  */
5762
5762
  getColors() {
5763
- return iA.availableColours(this.step);
5763
+ return sA.availableColours(this.step);
5764
5764
  }
5765
5765
  /**
5766
5766
  * Allows for setting a custom color when the custom variant is selected. Will
@@ -5772,7 +5772,7 @@ class ja extends j {
5772
5772
  throw new Error(
5773
5773
  "Custom colors can only be set on a non-custom variant. Please add a custom variant to the step."
5774
5774
  );
5775
- return iA.setCustomColor(A, this.step, this.manager);
5775
+ return sA.setCustomColor(A, this.step, this.manager);
5776
5776
  }
5777
5777
  getCustomColor() {
5778
5778
  var e, t;
@@ -5864,8 +5864,8 @@ class Va extends j {
5864
5864
  * @param shouldCustomizeAll When true the user can configure the entire text string.
5865
5865
  */
5866
5866
  setFullTextCustomization(A) {
5867
- var s;
5868
- 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;
5867
+ var i;
5868
+ const e = ((i = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : i.inputText) || "", t = this.step.data.replaceableText !== void 0 ? this.step.data.replaceableText.replace("{{}}", e) : e, a = A ? t : this.step.data.defaultText;
5869
5869
  return this.manager.updateStorage(this.step.stepName, {
5870
5870
  customiseAllText: A,
5871
5871
  text: a,
@@ -5882,10 +5882,10 @@ class Va extends j {
5882
5882
  input: A
5883
5883
  }, t = z.findLayoutElements(this.manager, this.step), a = z.filterUnsupportedCharacters(A, (d = t[0]) == null ? void 0 : d.fontData);
5884
5884
  !!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (e.input = a);
5885
- const s = t.length <= 0, i = s ? { inputText: a, text: a } : { inputText: a };
5886
- if (this.manager.updateStorage(this.step.stepName, i), this.manager.updateMetadata(this.step.stepName, {
5885
+ const i = t.length <= 0, s = i ? { inputText: a, text: a } : { inputText: a };
5886
+ if (this.manager.updateStorage(this.step.stepName, s), this.manager.updateMetadata(this.step.stepName, {
5887
5887
  text: a
5888
- }), s)
5888
+ }), i)
5889
5889
  return e;
5890
5890
  const { command: o, errors: r, helperText: g } = z.updateInputText(
5891
5891
  a,
@@ -5991,7 +5991,7 @@ class wA {
5991
5991
  case f.Model:
5992
5992
  return new Ta(A, e);
5993
5993
  case f.Frame:
5994
- return new Es(A, e);
5994
+ return new Ei(A, e);
5995
5995
  default:
5996
5996
  throw new v(`Step type ${e.type} not yet supported in Core SDK`);
5997
5997
  }
@@ -6100,36 +6100,36 @@ const tt = M`
6100
6100
  })).data) == null ? void 0 : e.designCreateMany;
6101
6101
  }, XA = (c, A, e) => {
6102
6102
  const t = (n) => {
6103
- const s = {};
6103
+ const i = {};
6104
6104
  if (n.type === "Frame") {
6105
- const i = c[n.stepName], o = n.data;
6106
- if (!i || !i.image || o.hideImageInCart && e)
6107
- return s;
6108
- s[`${n.stepTitle} image`] = i.image;
6105
+ const s = c[n.stepName], o = n.data;
6106
+ if (!s || !s.image || o.hideImageInCart && e)
6107
+ return i;
6108
+ i[`${n.stepTitle} image`] = s.image;
6109
6109
  }
6110
6110
  if (n.type === "Illustration") {
6111
- const i = c[n.stepName], o = n.data;
6112
- if (!i || o.hideColorsInCart && e || !i.colors)
6113
- return s;
6114
- if (i.colors.length > 0) {
6115
- const r = i.colors.join(", ").toUpperCase();
6116
- s[`${n.stepTitle} colors`] = r;
6111
+ const s = c[n.stepName], o = n.data;
6112
+ if (!s || o.hideColorsInCart && e || !s.colors)
6113
+ return i;
6114
+ if (s.colors.length > 0) {
6115
+ const r = s.colors.join(", ").toUpperCase();
6116
+ i[`${n.stepTitle} colors`] = r;
6117
6117
  }
6118
6118
  }
6119
6119
  if (n.type === "Module") {
6120
- const i = c[n.stepName], o = n.data;
6121
- if (!i || i.text === void 0 || i.text === null || o.hideTextInCart && e)
6122
- return s;
6123
- s[`${n.stepTitle} text`] = i.text;
6120
+ const s = c[n.stepName], o = n.data;
6121
+ if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && e)
6122
+ return i;
6123
+ i[`${n.stepTitle} text`] = s.text;
6124
6124
  }
6125
6125
  if (n.type === "Text") {
6126
- const i = c[n.stepName];
6127
- if (!i)
6128
- return s;
6126
+ const s = c[n.stepName];
6127
+ if (!s)
6128
+ return i;
6129
6129
  const o = n.data;
6130
- (!o.hideTextInCart || !e && i.text !== void 0 && i.text !== null) && (s[`${n.stepTitle} text`] = i.text), i.color && (!o.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
6130
+ (!o.hideTextInCart || !e && s.text !== void 0 && s.text !== null) && (i[`${n.stepTitle} text`] = s.text), s.color && (!o.hideColorInCart || !e) && (i[`${n.stepTitle} color`] = s.color);
6131
6131
  }
6132
- return s;
6132
+ return i;
6133
6133
  }, a = {};
6134
6134
  return A.steps.forEach((n) => {
6135
6135
  Object.assign(a, t(n));
@@ -6139,35 +6139,35 @@ const tt = M`
6139
6139
  let n;
6140
6140
  if (e) {
6141
6141
  n = XA(e, A, !1);
6142
- for (const s of Object.keys(n))
6143
- a[s] = {
6144
- value: n[s],
6142
+ for (const i of Object.keys(n))
6143
+ a[i] = {
6144
+ value: n[i],
6145
6145
  priceModifier: 0
6146
6146
  };
6147
6147
  } else if (t) {
6148
6148
  n = t;
6149
- for (const s of Object.keys(n))
6150
- a[s] = {
6151
- value: n[s],
6149
+ for (const i of Object.keys(n))
6150
+ a[i] = {
6151
+ value: n[i],
6152
6152
  priceModifier: 0
6153
6153
  };
6154
6154
  }
6155
- for (const s of Object.keys(c)) {
6156
- const i = c[s], o = A.steps.find((r) => r.stepTitle === s);
6157
- if (i.length === 1)
6155
+ for (const i of Object.keys(c)) {
6156
+ const s = c[i], o = A.steps.find((r) => r.stepTitle === i);
6157
+ if (s.length === 1)
6158
6158
  a[`${o == null ? void 0 : o.stepTitle} selection`] = {
6159
- value: i[0].name,
6160
- priceModifier: i[0].priceModifier
6159
+ value: s[0].name,
6160
+ priceModifier: s[0].priceModifier
6161
6161
  };
6162
- else if (i.length > 1)
6163
- for (let r = 0; r < i.length; r++)
6162
+ else if (s.length > 1)
6163
+ for (let r = 0; r < s.length; r++)
6164
6164
  a[`${o == null ? void 0 : o.stepTitle} selection ${r + 1}`] = {
6165
- value: i[r].name,
6166
- priceModifier: i[r].priceModifier
6165
+ value: s[r].name,
6166
+ priceModifier: s[r].priceModifier
6167
6167
  };
6168
6168
  }
6169
6169
  return a;
6170
- }, at = (c, A, e, t, a, n, s, i) => {
6170
+ }, at = (c, A, e, t, a, n, i, s) => {
6171
6171
  var w, C;
6172
6172
  const o = A.basePrice || 0, r = c.priceModifierTotal || 0, g = _a(t, e, void 0, n), l = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
6173
6173
  additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
@@ -6179,9 +6179,9 @@ const tt = M`
6179
6179
  exportedData: g,
6180
6180
  externalCartProductId: c.externalCartProductId,
6181
6181
  externalCartProductVariantId: c.externalCartProductVariantId,
6182
- lineItemImageUrl: s || "",
6182
+ lineItemImageUrl: i || "",
6183
6183
  optionsCost: r,
6184
- processExecutionId: i,
6184
+ processExecutionId: s,
6185
6185
  transactionId: c.id,
6186
6186
  transactionOwnerId: l,
6187
6187
  weight: A.weight,
@@ -6189,7 +6189,7 @@ const tt = M`
6189
6189
  workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
6190
6190
  };
6191
6191
  return n && (d.metadata = n), t && (d.selectedVariants = t), a && (d.sku = a), d;
6192
- }, nt = async (c, A, e, t, a, n, s, i, o, r) => {
6192
+ }, nt = async (c, A, e, t, a, n, i, s, o, r) => {
6193
6193
  var F;
6194
6194
  await (async () => {
6195
6195
  var T;
@@ -6242,11 +6242,11 @@ const tt = M`
6242
6242
  Y,
6243
6243
  u[Y].map((y) => y.id)
6244
6244
  ])
6245
- ), p = await i(w, a.id);
6245
+ ), p = await s(w, a.id);
6246
6246
  return {
6247
6247
  designDetails: (() => {
6248
6248
  const Y = {
6249
- name: s,
6249
+ name: i,
6250
6250
  layouts: e.map((y) => ({
6251
6251
  index: y.index,
6252
6252
  panelId: y.panelId
@@ -6273,7 +6273,7 @@ const tt = M`
6273
6273
  cartSelectionsWithPrices: h,
6274
6274
  cartMetadata: C
6275
6275
  };
6276
- }, An = async (c, A, e, t, a, n, s, i, o, r, g) => {
6276
+ }, An = async (c, A, e, t, a, n, i, s, o, r, g) => {
6277
6277
  var Q, h;
6278
6278
  o("workflow.steps.finish.finalize.buildingLayouts");
6279
6279
  const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await nt(
@@ -6282,8 +6282,8 @@ const tt = M`
6282
6282
  e,
6283
6283
  t,
6284
6284
  n,
6285
- s,
6286
6285
  i,
6286
+ s,
6287
6287
  r,
6288
6288
  g
6289
6289
  );
@@ -6305,8 +6305,8 @@ const tt = M`
6305
6305
  );
6306
6306
  }, en = async (c, A, e) => {
6307
6307
  A("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
6308
- c.map(async (i) => {
6309
- await i.workflowManager.outstandingRequestsPromise();
6308
+ c.map(async (s) => {
6309
+ await s.workflowManager.outstandingRequestsPromise();
6310
6310
  })
6311
6311
  );
6312
6312
  const a = await (async () => {
@@ -6321,37 +6321,37 @@ const tt = M`
6321
6321
  o.errors && console.log("Server Error:", g.message);
6322
6322
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
6323
6323
  })(), n = await Promise.all(
6324
- c.map(async (i, o) => await nt(
6325
- i.workflowManager,
6326
- i.workflow,
6327
- i.layouts,
6328
- i.getReducerState,
6329
- i.transaction,
6330
- i.workflowSelections,
6331
- i.designName,
6324
+ c.map(async (s, o) => await nt(
6325
+ s.workflowManager,
6326
+ s.workflow,
6327
+ s.layouts,
6328
+ s.getReducerState,
6329
+ s.transaction,
6330
+ s.workflowSelections,
6331
+ s.designName,
6332
6332
  e ?? (() => Promise.resolve(void 0)),
6333
- i.workflowMetadata,
6333
+ s.workflowMetadata,
6334
6334
  a ? a[o] : void 0
6335
6335
  ))
6336
6336
  );
6337
6337
  A("workflow.steps.finish.finalize.creatingDesign");
6338
- const s = await $a(n.map((i) => i.designDetails));
6339
- if (!s)
6338
+ const i = await $a(n.map((s) => s.designDetails));
6339
+ if (!i)
6340
6340
  throw new Error("Failed to create designs");
6341
6341
  return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
6342
- s.map(async (i, o) => {
6342
+ i.map(async (s, o) => {
6343
6343
  var l;
6344
- const r = c[o], g = n[o], B = i.transaction;
6344
+ const r = c[o], g = n[o], B = s.transaction;
6345
6345
  return await at(
6346
6346
  B,
6347
6347
  r.product,
6348
6348
  r.workflow,
6349
6349
  g.cartSelectionsWithPrices,
6350
- i.sku,
6350
+ s.sku,
6351
6351
  g.cartMetadata,
6352
6352
  //lineItemImageLink,
6353
6353
  void 0,
6354
- (l = i.processExecution) == null ? void 0 : l.id
6354
+ (l = s.processExecution) == null ? void 0 : l.id
6355
6355
  );
6356
6356
  })
6357
6357
  );
@@ -6445,16 +6445,16 @@ class EA {
6445
6445
  await LA.getSavedDesignByTransaction(
6446
6446
  this.getWorkflowManager().getTransaction().id
6447
6447
  ) && this.save();
6448
- }, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((s, i) => {
6448
+ }, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, s) => {
6449
6449
  try {
6450
6450
  n.toBlob((o) => {
6451
6451
  if (o) {
6452
6452
  const r = URL.createObjectURL(o);
6453
- s(r);
6453
+ i(r);
6454
6454
  }
6455
6455
  });
6456
6456
  } catch (o) {
6457
- i(o);
6457
+ s(o);
6458
6458
  }
6459
6459
  }), !e.workflow)
6460
6460
  throw new Error("No Workflow ID provided.");
@@ -6483,15 +6483,15 @@ class EA {
6483
6483
  e.isReloadedTransaction,
6484
6484
  e.singleVariantsRenderable
6485
6485
  ), this.workflowManager.addSelectionCallback((n) => {
6486
- const s = n.traversableScenes.map((i) => {
6487
- const o = i.renderableSteps.map((r) => r.stepName);
6486
+ const i = n.traversableScenes.map((s) => {
6487
+ const o = s.renderableSteps.map((r) => r.stepName);
6488
6488
  return {
6489
- id: i.name,
6490
- title: i.title,
6489
+ id: s.name,
6490
+ title: s.title,
6491
6491
  renderableSteps: o
6492
6492
  };
6493
6493
  });
6494
- this.renderableScenes = s, this.renderableSceneCallbacks.forEach((i) => i(s));
6494
+ this.renderableScenes = i, this.renderableSceneCallbacks.forEach((s) => s(i));
6495
6495
  });
6496
6496
  }
6497
6497
  getClient() {
@@ -6516,10 +6516,10 @@ class EA {
6516
6516
  }
6517
6517
  let n = 2048;
6518
6518
  e && e <= 2048 && (n = e);
6519
- const s = fA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], g = i.find((u) => {
6519
+ const i = fA(n, n), s = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, r = t.panels[o], g = s.find((u) => {
6520
6520
  var D;
6521
6521
  return ((D = u.layoutState) == null ? void 0 : D.layout.panelId) === (r == null ? void 0 : r.name);
6522
- }) || i[0], B = g.layoutState.layout.previewRegion ? {
6522
+ }) || s[0], B = g.layoutState.layout.previewRegion ? {
6523
6523
  x: g.layoutState.layout.previewRegion.left,
6524
6524
  y: g.layoutState.layout.previewRegion.top,
6525
6525
  width: g.layoutState.layout.previewRegion.width,
@@ -6529,7 +6529,7 @@ class EA {
6529
6529
  y: 0,
6530
6530
  width: g.layoutState.layout.width,
6531
6531
  height: g.layoutState.layout.height
6532
- }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = s.getContext("2d");
6532
+ }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
6533
6533
  if (!d)
6534
6534
  throw new UA("Failed to obtain 2D context for preview image creation");
6535
6535
  const w = Fe(l.layoutState.layout, l.layoutState.elements, {
@@ -6546,8 +6546,8 @@ class EA {
6546
6546
  DOMParser: Se(),
6547
6547
  fetch: qA
6548
6548
  })).render();
6549
- const Q = await this.getCanvasObjectURLAsync(s);
6550
- return s.toDataURL(Q);
6549
+ const Q = await this.getCanvasObjectURLAsync(i);
6550
+ return i.toDataURL(Q);
6551
6551
  }
6552
6552
  getStepById(A) {
6553
6553
  const e = this.getWorkflowManager().getWorkflow().steps.find((t) => t.stepName === A);
@@ -6571,17 +6571,28 @@ class EA {
6571
6571
  e += t.selections.map((a) => a.priceModifier).reduce((a, n) => a + n);
6572
6572
  }), e;
6573
6573
  }
6574
- getBasePriceSubunits() {
6575
- return this.getWorkflowManager().getProduct().basePrice || 0;
6574
+ getBasePriceSubunits(A) {
6575
+ const e = this.getWorkflowManager().getProduct().basePrice || 0;
6576
+ if (A) {
6577
+ const t = this.getAdditionalProductPriceSubunits() || 0;
6578
+ return e + t;
6579
+ }
6580
+ return e;
6581
+ }
6582
+ getAdditionalProductPriceSubunits() {
6583
+ var e;
6584
+ const A = this.getWorkflowManager().getTransaction().integrationProduct;
6585
+ if ((e = A == null ? void 0 : A.additionalIntegrationProduct) != null && e.product)
6586
+ return A.additionalIntegrationProduct.product.basePrice || 0;
6576
6587
  }
6577
6588
  getTotalPriceSubunits() {
6578
6589
  return this.getBasePriceSubunits() + this.getSelectionPriceSubunits();
6579
6590
  }
6580
6591
  async copySelectionsViaGlobalConfiguration(A, e, t) {
6581
- const a = await A.getGlobalProperties(), n = t == null ? void 0 : t.map((r) => r.getId()), s = this.getSteps().filter((r) => n === void 0 || n.includes(r.getId())), i = e.getSteps(), o = (r) => a.find((g) => g.getRawProperty().name === r.aspectName);
6582
- s.forEach((r) => {
6592
+ const a = await A.getGlobalProperties(), n = t == null ? void 0 : t.map((r) => r.getId()), i = this.getSteps().filter((r) => n === void 0 || n.includes(r.getId())), s = e.getSteps(), o = (r) => a.find((g) => g.getRawProperty().name === r.aspectName);
6593
+ i.forEach((r) => {
6583
6594
  const g = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
6584
- B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))), i.forEach((l) => {
6595
+ B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))), s.forEach((l) => {
6585
6596
  const d = l.getRaw().globalPropertyAspectConfigurations;
6586
6597
  d !== void 0 && d.forEach((w) => {
6587
6598
  const C = o(w), E = g.has(JSON.stringify(w));
@@ -6619,8 +6630,8 @@ class EA {
6619
6630
  return this.assignCustomerDetails({ emailAddress: A.email });
6620
6631
  }
6621
6632
  async assignCustomerDetails(A) {
6622
- var s, i, o;
6623
- const t = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.getWorkflowManager().getTransaction().id), n = (o = (i = (s = (await P.getShadowGraphqlClient().mutate({
6633
+ var i, s, o;
6634
+ const t = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.getWorkflowManager().getTransaction().id), n = (o = (s = (i = (await P.getShadowGraphqlClient().mutate({
6624
6635
  mutation: an,
6625
6636
  variables: {
6626
6637
  id: this.getWorkflowManager().getTransaction().id,
@@ -6630,7 +6641,7 @@ class EA {
6630
6641
  context: {
6631
6642
  transactionOwnerId: t
6632
6643
  }
6633
- })).data) == null ? void 0 : s.transactionAddStakeholder) == null ? void 0 : i.stakeholders) == null ? void 0 : o.find(
6644
+ })).data) == null ? void 0 : i.transactionAddStakeholder) == null ? void 0 : s.stakeholders) == null ? void 0 : o.find(
6634
6645
  (r) => {
6635
6646
  var g;
6636
6647
  return ((g = r.customer) == null ? void 0 : g.emailAddress) === A.emailAddress;
@@ -6656,8 +6667,8 @@ class EA {
6656
6667
  var o;
6657
6668
  if (A)
6658
6669
  return A;
6659
- const n = this.getWorkflowManager().getTransaction().id, i = (o = (await LA.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
6660
- return i || "My design";
6670
+ const n = this.getWorkflowManager().getTransaction().id, s = (o = (await LA.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
6671
+ return s || "My design";
6661
6672
  })(),
6662
6673
  thumbnail: await this.createPreviewImage(!1, 256),
6663
6674
  transactionId: this.getWorkflowManager().getTransaction().id,
@@ -6670,11 +6681,11 @@ class EA {
6670
6681
  return await LA.addDesign(a), a;
6671
6682
  }
6672
6683
  async copy() {
6673
- var i;
6684
+ var s;
6674
6685
  const A = HA(this.getCommandContext().getState());
6675
6686
  if (!A)
6676
6687
  throw new v("Internal state is undefined! Cannot copy experience!");
6677
- const e = JSON.stringify(A.transaction), t = this.getWorkflowManager().getWorkflow(), a = new ds({}), n = (i = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : i.id;
6688
+ const e = JSON.stringify(A.transaction), t = this.getWorkflowManager().getWorkflow(), a = new di({}), n = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
6678
6689
  if (!n)
6679
6690
  throw new v("Integration product id is undefined!");
6680
6691
  return await a.initFromIntegrationProduct(n), await a.getWorkflowExperience(t.id, e, void 0);
@@ -6707,17 +6718,17 @@ class EA {
6707
6718
  var a;
6708
6719
  const A = /* @__PURE__ */ new Map(), e = this.getWorkflowManager().getWorkflowMetadata(), t = this.getWorkflowManager().getWorkflowSelections();
6709
6720
  return Object.keys(e).forEach((n) => {
6710
- const s = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
6711
- if (!s)
6721
+ const i = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
6722
+ if (!i)
6712
6723
  return;
6713
- A.has(s.stepTitle) || A.set(s.stepTitle, {});
6714
- const i = e[n];
6715
- Object.keys(i).forEach((o) => {
6716
- A.get(s.stepTitle)[o] = i[o];
6724
+ A.has(i.stepTitle) || A.set(i.stepTitle, {});
6725
+ const s = e[n];
6726
+ Object.keys(s).forEach((o) => {
6727
+ A.get(i.stepTitle)[o] = s[o];
6717
6728
  });
6718
6729
  }), (a = Object.keys(t)) == null || a.forEach((n) => {
6719
- const s = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === n);
6720
- s && (A.has(s.stepTitle) || A.set(s.stepTitle, {}), A.get(s.stepTitle).selection = t[n].selections[0].name);
6730
+ const i = this.workflowManager.getWorkflow().steps.find((s) => s.stepName === n);
6731
+ i && (A.has(i.stepTitle) || A.set(i.stepTitle, {}), A.get(i.stepTitle).selection = t[n].selections[0].name);
6721
6732
  }), A;
6722
6733
  }
6723
6734
  }
@@ -6734,9 +6745,9 @@ const nn = [
6734
6745
  "tref",
6735
6746
  "tspan"
6736
6747
  ], sn = async (c, A, e) => {
6737
- 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);
6738
- i.searchParams.append("video", de(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
6739
- const o = i.toString(), g = `data:image/svg+xml;base64,${de(await Ge(o, { type: "svg" }))}`, B = (d) => {
6748
+ const t = A.data, a = e.data.baseUrl, n = t.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", s = new URL(i + a);
6749
+ s.searchParams.append("video", de(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
6750
+ const o = s.toString(), g = `data:image/svg+xml;base64,${de(await Ge(o, { type: "svg" }))}`, B = (d) => {
6740
6751
  const w = c.find((E) => E.panelId === d.panelId);
6741
6752
  if (!w)
6742
6753
  throw new O(d);
@@ -6761,10 +6772,10 @@ const nn = [
6761
6772
  return console.error(d), [];
6762
6773
  }
6763
6774
  }, on = async (c, A, e, t) => {
6764
- const a = e.data, n = a.assetUrl, s = await zA(n);
6775
+ const a = e.data, n = a.assetUrl, i = await zA(n);
6765
6776
  try {
6766
- const i = Mt(a, t.option);
6767
- i && (A[t.stepName] = { selectedVariants: [i] });
6777
+ const s = Mt(a, t.option);
6778
+ s && (A[t.stepName] = { selectedVariants: [s] });
6768
6779
  const o = async (r) => {
6769
6780
  var C;
6770
6781
  const g = await yt(
@@ -6772,11 +6783,11 @@ const nn = [
6772
6783
  width: 1,
6773
6784
  height: 1
6774
6785
  },
6775
- (C = i == null ? void 0 : i.asset) == null ? void 0 : C.fileLink
6786
+ (C = s == null ? void 0 : s.asset) == null ? void 0 : C.fileLink
6776
6787
  ), B = await ZA(g), l = k(), d = c.find((E) => E.panelId === r.panelId);
6777
6788
  if (!d)
6778
6789
  throw new O(r);
6779
- const w = $A(s, B, {
6790
+ const w = $A(i, B, {
6780
6791
  scale: a.scale,
6781
6792
  left: a.x,
6782
6793
  top: a.y
@@ -6806,28 +6817,28 @@ const nn = [
6806
6817
  },
6807
6818
  d
6808
6819
  ),
6809
- new De(l, s, w)
6820
+ new De(l, i, w)
6810
6821
  ];
6811
6822
  };
6812
6823
  return (await Promise.all(t.data.regions.map((r) => o(r)))).flat();
6813
- } catch (i) {
6814
- return console.error(i), [];
6824
+ } catch (s) {
6825
+ return console.error(s), [];
6815
6826
  }
6816
6827
  }, rn = async (c, A, e, t) => {
6817
6828
  var D, p;
6818
6829
  const a = e.data, n = t.option;
6819
6830
  if (!n)
6820
6831
  return console.error(`No option for step ${t.stepName}.`), [];
6821
- const s = ((D = n.variants) == null ? void 0 : D.find((I) => I.id === a.illustrationVariantId)) || NA(n);
6822
- if (!s)
6832
+ const i = ((D = n.variants) == null ? void 0 : D.find((I) => I.id === a.illustrationVariantId)) || NA(n);
6833
+ if (!i)
6823
6834
  return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
6824
- if (!s.asset)
6835
+ if (!i.asset)
6825
6836
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
6826
- A[t.stepName] = { selectedVariants: [s] };
6827
- const i = (p = s.asset) == null ? void 0 : p.fileLink;
6828
- if (!i)
6837
+ A[t.stepName] = { selectedVariants: [i] };
6838
+ const s = (p = i.asset) == null ? void 0 : p.fileLink;
6839
+ if (!s)
6829
6840
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
6830
- const o = await q(i, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = xe().parseFromString(B, "image/svg+xml").firstElementChild;
6841
+ const o = await q(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = xe().parseFromString(B, "image/svg+xml").firstElementChild;
6831
6842
  if (!w)
6832
6843
  return console.error("Failed to read SVG."), [];
6833
6844
  Pe(w);
@@ -6883,7 +6894,7 @@ const nn = [
6883
6894
  return console.error(I), [];
6884
6895
  }
6885
6896
  }, cn = async (c, A, e) => {
6886
- const t = await At(e.data.module), a = A.data, n = (i, o) => {
6897
+ const t = await At(e.data.module), a = A.data, n = (s, o) => {
6887
6898
  const r = c.find((B) => B.panelId === o.panelId);
6888
6899
  if (!r)
6889
6900
  throw new O(o);
@@ -6892,7 +6903,7 @@ const nn = [
6892
6903
  {
6893
6904
  colors: {},
6894
6905
  id: g,
6895
- svg: i,
6906
+ svg: s,
6896
6907
  type: U.Illustration,
6897
6908
  y: o.top,
6898
6909
  x: o.left,
@@ -6904,27 +6915,27 @@ const nn = [
6904
6915
  },
6905
6916
  r
6906
6917
  );
6907
- }, s = e.data.regions;
6918
+ }, i = e.data.regions;
6908
6919
  try {
6909
- return s.map(
6910
- (i) => n(t.svgPrint(a.text, i), i)
6920
+ return i.map(
6921
+ (s) => n(t.svgPrint(a.text, s), s)
6911
6922
  );
6912
- } catch (i) {
6913
- return console.error(i), [];
6923
+ } catch (s) {
6924
+ return console.error(s), [];
6914
6925
  }
6915
6926
  }, gn = async (c, A, e, t) => {
6916
6927
  var g, B;
6917
6928
  const a = e.data, n = t.option;
6918
6929
  if (!n)
6919
6930
  return console.error(`No option for step ${t.stepName}.`), [];
6920
- const s = ((g = n.variants) == null ? void 0 : g.find((l) => l.id === a.pictureVariantId)) || NA(n);
6921
- if (!s)
6931
+ const i = ((g = n.variants) == null ? void 0 : g.find((l) => l.id === a.pictureVariantId)) || NA(n);
6932
+ if (!i)
6922
6933
  return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
6923
- if (!s.asset)
6934
+ if (!i.asset)
6924
6935
  return console.error(`No asset for variant with ID: ${a.pictureVariantId}`), [];
6925
- A[t.stepName] = { selectedVariants: [s] };
6926
- const i = (B = s.asset) == null ? void 0 : B.fileLink;
6927
- if (!i)
6936
+ A[t.stepName] = { selectedVariants: [i] };
6937
+ const s = (B = i.asset) == null ? void 0 : B.fileLink;
6938
+ if (!s)
6928
6939
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
6929
6940
  const o = (l) => {
6930
6941
  const d = c.find((C) => C.panelId === l.panelId);
@@ -6934,7 +6945,7 @@ const nn = [
6934
6945
  return new b(
6935
6946
  {
6936
6947
  id: w,
6937
- src: i,
6948
+ src: s,
6938
6949
  type: U.Image,
6939
6950
  y: l.top,
6940
6951
  x: l.left,
@@ -6959,11 +6970,11 @@ const nn = [
6959
6970
  const a = e.data, n = t.option;
6960
6971
  if (!n)
6961
6972
  return console.error(`No option for step ${t.stepName}.`), [];
6962
- const s = ((r = n.variants) == null ? void 0 : r.find((g) => g.id === a.colorVariantId)) || NA(n);
6963
- if (!s)
6973
+ const i = ((r = n.variants) == null ? void 0 : r.find((g) => g.id === a.colorVariantId)) || NA(n);
6974
+ if (!i)
6964
6975
  return console.error(`No variant with ID: ${a.colorVariantId}`), [];
6965
- A[t.stepName] = { selectedVariants: [s] };
6966
- const i = (g) => {
6976
+ A[t.stepName] = { selectedVariants: [i] };
6977
+ const s = (g) => {
6967
6978
  const B = c.find((E) => E.panelId === g.panelId);
6968
6979
  if (!B)
6969
6980
  throw new O(g);
@@ -6984,10 +6995,10 @@ const nn = [
6984
6995
  width="1"
6985
6996
  height="1"
6986
6997
  class="spiff-fill-shape"
6987
- fill="${s == null ? void 0 : s.color}"
6998
+ fill="${i == null ? void 0 : i.color}"
6988
6999
  />
6989
7000
  </svg>
6990
- `, w = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = k();
7001
+ `, w = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, C = k();
6991
7002
  return new b(
6992
7003
  {
6993
7004
  colors: w,
@@ -7007,7 +7018,7 @@ const nn = [
7007
7018
  );
7008
7019
  }, o = t.data.regions;
7009
7020
  try {
7010
- return o.map(i);
7021
+ return o.map(s);
7011
7022
  } catch (g) {
7012
7023
  return console.error(g), [];
7013
7024
  }
@@ -7015,8 +7026,8 @@ const nn = [
7015
7026
  const t = [], n = (() => {
7016
7027
  var r, g;
7017
7028
  return A.type === f.ProductOverlay ? e || ((r = A.data.asset) == null ? void 0 : r.fileLink) || "" : ((g = A.data.asset) == null ? void 0 : g.fileLink) || "";
7018
- })(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? U.Image : n.endsWith(".svg") ? U.Illustration : U.Illustration)(), o = A.data.regions;
7019
- if (i === "image")
7029
+ })(), s = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? U.Image : n.endsWith(".svg") ? U.Illustration : U.Illustration)(), o = A.data.regions;
7030
+ if (s === "image")
7020
7031
  try {
7021
7032
  o.forEach((r) => {
7022
7033
  const g = c.find((l) => l.panelId === r.panelId);
@@ -7025,7 +7036,7 @@ const nn = [
7025
7036
  const B = {
7026
7037
  id: k(),
7027
7038
  src: n,
7028
- type: i,
7039
+ type: s,
7029
7040
  y: r.top,
7030
7041
  x: r.left,
7031
7042
  width: r.width,
@@ -7048,7 +7059,7 @@ const nn = [
7048
7059
  const r = await q(n, !0), g = (B) => {
7049
7060
  const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", Q = xe().parseFromString(w, "image/svg+xml").firstElementChild;
7050
7061
  if (!Q)
7051
- throw new sA("Failed to read SVG.");
7062
+ throw new iA("Failed to read SVG.");
7052
7063
  return Pe(Q), Ne().serializeToString(Q);
7053
7064
  };
7054
7065
  o.forEach((B) => {
@@ -7061,7 +7072,7 @@ const nn = [
7061
7072
  asset_key: n,
7062
7073
  svg: g(r),
7063
7074
  colors: {},
7064
- type: i,
7075
+ type: s,
7065
7076
  y: B.top,
7066
7077
  x: B.left,
7067
7078
  width: B.width,
@@ -7079,7 +7090,7 @@ const nn = [
7079
7090
  }
7080
7091
  return t;
7081
7092
  }, dn = async (c, A, e, t) => {
7082
- const a = [], n = e.data, s = 30, i = (E) => E.vertical ? "center" : E.textAlign || "center", o = () => {
7093
+ const a = [], n = e.data, i = 30, s = (E) => E.vertical ? "center" : E.textAlign || "center", o = () => {
7083
7094
  var m;
7084
7095
  const E = t.option;
7085
7096
  if (!E)
@@ -7117,11 +7128,11 @@ const nn = [
7117
7128
  const h = {
7118
7129
  stepName: e.name,
7119
7130
  id: k(),
7120
- align: i(t.data),
7131
+ align: s(t.data),
7121
7132
  curved: t.data.curved,
7122
7133
  fill: n.color || w || "#000000",
7123
7134
  fontData: g,
7124
- fontSize: t.data.size || s,
7135
+ fontSize: t.data.size || i,
7125
7136
  height: E.height,
7126
7137
  layer: E.layer,
7127
7138
  layerIndex: E.layerIndex,
@@ -7137,7 +7148,7 @@ const nn = [
7137
7148
  };
7138
7149
  if (g) {
7139
7150
  const [m, u] = uA(
7140
- t.data.size || s,
7151
+ t.data.size || i,
7141
7152
  g,
7142
7153
  E,
7143
7154
  [
@@ -7172,25 +7183,25 @@ const nn = [
7172
7183
  if (t && t.selectedVariants) {
7173
7184
  const a = t.selectedVariants;
7174
7185
  return e.requiredVariantSelections.some(
7175
- (n) => a.find((s) => s.id === n) !== void 0
7186
+ (n) => a.find((i) => i.id === n) !== void 0
7176
7187
  );
7177
7188
  }
7178
7189
  return !1;
7179
7190
  }) : !0, En = async (c, A, e, t) => {
7180
7191
  const a = [], n = {};
7181
- for (const s of c) {
7182
- const i = A.steps.find((o) => o.stepName === s.name);
7183
- if (i)
7184
- switch (i.type) {
7192
+ for (const i of c) {
7193
+ const s = A.steps.find((o) => o.stepName === i.name);
7194
+ if (s)
7195
+ switch (s.type) {
7185
7196
  case f.DigitalContent:
7186
7197
  a.push(
7187
- ...await sn(e, s, i)
7198
+ ...await sn(e, i, s)
7188
7199
  );
7189
7200
  break;
7190
7201
  case f.Frame:
7191
7202
  case f.Photo:
7192
7203
  a.push(
7193
- ...await on(e, n, s, i)
7204
+ ...await on(e, n, i, s)
7194
7205
  );
7195
7206
  break;
7196
7207
  case f.Illustration:
@@ -7198,34 +7209,34 @@ const nn = [
7198
7209
  ...await rn(
7199
7210
  e,
7200
7211
  n,
7201
- s,
7202
- i
7212
+ i,
7213
+ s
7203
7214
  )
7204
7215
  );
7205
7216
  break;
7206
7217
  case f.Module:
7207
- a.push(...await cn(e, s, i));
7218
+ a.push(...await cn(e, i, s));
7208
7219
  break;
7209
7220
  case f.Picture:
7210
7221
  a.push(
7211
- ...await gn(e, n, s, i)
7222
+ ...await gn(e, n, i, s)
7212
7223
  );
7213
7224
  break;
7214
7225
  case f.Shape:
7215
7226
  a.push(
7216
- ...await ln(e, n, s, i)
7227
+ ...await ln(e, n, i, s)
7217
7228
  );
7218
7229
  break;
7219
7230
  case f.Text:
7220
7231
  a.push(
7221
- ...await dn(e, n, s, i)
7232
+ ...await dn(e, n, i, s)
7222
7233
  );
7223
7234
  break;
7224
7235
  }
7225
7236
  }
7226
- for (const s of A.steps)
7227
- s.type !== f.SilentIllustration && s.type !== f.ProductOverlay || wn(s, n) && a.push(
7228
- ...await Bn(e, s, t)
7237
+ for (const i of A.steps)
7238
+ i.type !== f.SilentIllustration && i.type !== f.ProductOverlay || wn(i, n) && a.push(
7239
+ ...await Bn(e, i, t)
7229
7240
  );
7230
7241
  return a;
7231
7242
  };
@@ -7327,8 +7338,8 @@ class Qn {
7327
7338
  }
7328
7339
  }
7329
7340
  class un extends Te {
7330
- constructor(A, e, t, a, n, s, i) {
7331
- super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.productOverlayImageUrl = i;
7341
+ constructor(A, e, t, a, n, i, s) {
7342
+ super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl = s;
7332
7343
  }
7333
7344
  /**
7334
7345
  * Returns the resolution expected for generated textures.
@@ -7366,15 +7377,15 @@ class un extends Te {
7366
7377
  const A = this.layouts.find((l) => l.layoutState.layout.id === this.layoutId);
7367
7378
  if (!A)
7368
7379
  return;
7369
- const e = A.layoutState.elements || [], t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
7370
- let i, o;
7380
+ const e = A.layoutState.elements || [], t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, i = this.getDynamicTextureResolution().height;
7381
+ let s, o;
7371
7382
  if (this.nonPOTSupport) {
7372
- const l = n / s;
7373
- t / a < l ? (i = n, o = a * (n / t)) : (i = t * (s / a), o = s);
7374
- const w = this.resizeFit({ width: i, height: o });
7375
- i = w.width, o = w.height;
7383
+ const l = n / i;
7384
+ t / a < l ? (s = n, o = a * (n / t)) : (s = t * (i / a), o = i);
7385
+ const w = this.resizeFit({ width: s, height: o });
7386
+ s = w.width, o = w.height;
7376
7387
  } else
7377
- i = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
7388
+ s = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
7378
7389
  const r = Fe(A.layoutState.layout, e, {
7379
7390
  renderingConfiguration: { purpose: Me.ThreeD }
7380
7391
  }), g = ye(r), B = await He.from(this.ctx, g, {
@@ -7389,10 +7400,10 @@ class un extends Te {
7389
7400
  DOMParser: Se(),
7390
7401
  fetch: qA
7391
7402
  });
7392
- B.resize(i, o), await B.render(), this.onRender();
7403
+ B.resize(s, o), await B.render(), this.onRender();
7393
7404
  }
7394
7405
  }
7395
- const ys = (c, A) => {
7406
+ const yi = (c, A) => {
7396
7407
  const e = [];
7397
7408
  return c.forEach((t) => {
7398
7409
  const a = A.steps.find((n) => n.stepName === t.stepName);
@@ -7403,14 +7414,14 @@ const ys = (c, A) => {
7403
7414
  }
7404
7415
  });
7405
7416
  }), e;
7406
- }, Ys = async (c, A, e, t) => {
7417
+ }, Yi = async (c, A, e, t) => {
7407
7418
  let a = {
7408
7419
  serializableWorkflow: { steps: [] },
7409
7420
  layouts: {}
7410
7421
  };
7411
7422
  a = new R(e.map((o) => new St(o))).apply(a);
7412
- const s = await En(c, A, e, t);
7413
- return new R(s).apply(a);
7423
+ const i = await En(c, A, e, t);
7424
+ return new R(i).apply(a);
7414
7425
  }, mn = M`
7415
7426
  ${gA}
7416
7427
  fragment ProductFields on Product {
@@ -7463,7 +7474,7 @@ const ys = (c, A) => {
7463
7474
  ...ProductFields
7464
7475
  }
7465
7476
  }
7466
- `, st = M`
7477
+ `, it = M`
7467
7478
  ${In}
7468
7479
  fragment ProductCollectionFields on ProductCollection {
7469
7480
  id
@@ -7511,7 +7522,7 @@ const ys = (c, A) => {
7511
7522
  }
7512
7523
  }
7513
7524
  `, pn = M`
7514
- ${st}
7525
+ ${it}
7515
7526
  query GetBundle($id: String!) {
7516
7527
  bundles(ids: [$id]) {
7517
7528
  id
@@ -7574,7 +7585,7 @@ const ys = (c, A) => {
7574
7585
  }
7575
7586
  }
7576
7587
  `, Fn = M`
7577
- ${st}
7588
+ ${it}
7578
7589
  mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
7579
7590
  bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
7580
7591
  id
@@ -7734,7 +7745,7 @@ class Rn {
7734
7745
  return new Un(this.bundle, A);
7735
7746
  case mA.Option: {
7736
7747
  const e = A.entityId ? await K.getOption(A.entityId) : void 0;
7737
- return (e == null ? void 0 : e.type) === "Color" ? new vn(this.bundle, A, e) : new it(this.bundle, A, e);
7748
+ return (e == null ? void 0 : e.type) === "Color" ? new vn(this.bundle, A, e) : new st(this.bundle, A, e);
7738
7749
  }
7739
7750
  case mA.Text:
7740
7751
  return new Gn(this.bundle, A);
@@ -7782,11 +7793,11 @@ class oe {
7782
7793
  getSharedSteps(A) {
7783
7794
  return (A ?? this.bundle.getWorkflowExperiences()).flatMap(
7784
7795
  (a) => a.getSteps().filter((n) => {
7785
- var s;
7786
- return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
7787
- (i) => {
7796
+ var i;
7797
+ return (i = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : i.some(
7798
+ (s) => {
7788
7799
  var o, r;
7789
- return i.globalPropertyConfigurationId === ((r = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : r.id) && i.aspectName === this.property.name;
7800
+ return s.globalPropertyConfigurationId === ((r = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : r.id) && s.aspectName === this.property.name;
7790
7801
  }
7791
7802
  );
7792
7803
  })
@@ -7853,7 +7864,7 @@ class Gn extends oe {
7853
7864
  await Promise.all(a);
7854
7865
  }
7855
7866
  }
7856
- class it extends oe {
7867
+ class st extends oe {
7857
7868
  constructor(A, e, t) {
7858
7869
  super(A, e), this.optionResource = t;
7859
7870
  }
@@ -7871,8 +7882,8 @@ class it extends oe {
7871
7882
  } else {
7872
7883
  const a = (e = this.optionResource.variants) == null ? void 0 : e.find(
7873
7884
  (n) => {
7874
- var s, i;
7875
- return n.id === ((i = (s = this.optionResource) == null ? void 0 : s.defaultVariant) == null ? void 0 : i.id);
7885
+ var i, s;
7886
+ return n.id === ((s = (i = this.optionResource) == null ? void 0 : i.defaultVariant) == null ? void 0 : s.id);
7876
7887
  }
7877
7888
  );
7878
7889
  return a ? new V(a) : void 0;
@@ -7907,7 +7918,7 @@ class it extends oe {
7907
7918
  const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
7908
7919
  if (!e)
7909
7920
  return Promise.resolve();
7910
- const t = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((s) => s.id === e);
7921
+ const t = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((i) => i.id === e);
7911
7922
  return t ? this.applyVariantSelection(new V(t), A) : Promise.resolve();
7912
7923
  }
7913
7924
  async applyVariantSelection(A, e) {
@@ -7915,7 +7926,7 @@ class it extends oe {
7915
7926
  await Promise.all(a);
7916
7927
  }
7917
7928
  }
7918
- class vn extends it {
7929
+ class vn extends st {
7919
7930
  constructor(A, e, t) {
7920
7931
  super(A, e, t);
7921
7932
  }
@@ -8044,12 +8055,12 @@ class On {
8044
8055
  A && (this.state = JSON.parse(A));
8045
8056
  }
8046
8057
  applyStateToWorkflowExperience(A) {
8047
- var n, s;
8058
+ var n, i;
8048
8059
  if (!this.state || !((n = A == null ? void 0 : A.getWorkflowManager()) != null && n.getModelContainer()))
8049
8060
  return;
8050
- const e = (s = this.state.transactions.find(
8051
- (i) => i.transactionId === A.getWorkflowManager().getTransaction().id && i.transform
8052
- )) == null ? void 0 : s.transform;
8061
+ const e = (i = this.state.transactions.find(
8062
+ (s) => s.transactionId === A.getWorkflowManager().getTransaction().id && s.transform
8063
+ )) == null ? void 0 : i.transform;
8053
8064
  if (!e)
8054
8065
  return;
8055
8066
  const t = this.flipTransform(
@@ -8059,8 +8070,8 @@ class On {
8059
8070
  a.position = t.position, a.rotation = t.rotation, a.scale = t.scale;
8060
8071
  }
8061
8072
  setWorkflowExperienceTransform(A, e) {
8062
- var i;
8063
- if (!((i = A == null ? void 0 : A.getWorkflowManager()) != null && i.getModelContainer()))
8073
+ var s;
8074
+ if (!((s = A == null ? void 0 : A.getWorkflowManager()) != null && s.getModelContainer()))
8064
8075
  return;
8065
8076
  const t = this.flipTransform(
8066
8077
  e,
@@ -8071,8 +8082,8 @@ class On {
8071
8082
  this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
8072
8083
  transactions: []
8073
8084
  };
8074
- const s = this.state.transactions.find((o) => o.transactionId === n);
8075
- s ? s.transform = e : this.state.transactions.push({
8085
+ const i = this.state.transactions.find((o) => o.transactionId === n);
8086
+ i ? i.transform = e : this.state.transactions.push({
8076
8087
  transactionId: n,
8077
8088
  transform: e
8078
8089
  });
@@ -8166,8 +8177,8 @@ class zn {
8166
8177
  getIntegrationByType(A, e) {
8167
8178
  const a = (this.product.integrationProducts || []).find((n) => {
8168
8179
  var r, g, B;
8169
- const s = (r = n.integration) == null ? void 0 : r.type, i = ((g = n.integration) == null ? void 0 : g.type) === A, o = e ? ((B = n.integration) == null ? void 0 : B.externalIntegrationId) === e : !0;
8170
- return s && i && o;
8180
+ const i = (r = n.integration) == null ? void 0 : r.type, s = ((g = n.integration) == null ? void 0 : g.type) === A, o = e ? ((B = n.integration) == null ? void 0 : B.externalIntegrationId) === e : !0;
8181
+ return i && s && o;
8171
8182
  });
8172
8183
  if (!a)
8173
8184
  throw new Error(
@@ -8211,7 +8222,7 @@ class zn {
8211
8222
  * @returns
8212
8223
  */
8213
8224
  getBasePrice(A) {
8214
- var a, n, s, i;
8225
+ var a, n, i, s;
8215
8226
  const e = this.product.basePrice || 0;
8216
8227
  if (!A)
8217
8228
  return e;
@@ -8230,12 +8241,12 @@ class zn {
8230
8241
  var r;
8231
8242
  return ((r = o.integration) == null ? void 0 : r.externalIntegrationId) === A.externalId;
8232
8243
  }
8233
- ) : t = (s = this.product.integrationProducts) == null ? void 0 : s.find(
8244
+ ) : t = (i = this.product.integrationProducts) == null ? void 0 : i.find(
8234
8245
  (o) => {
8235
8246
  var r;
8236
8247
  return ((r = o.integration) == null ? void 0 : r.type) === A.integrationType;
8237
8248
  }
8238
- ), (i = t == null ? void 0 : t.additionalIntegrationProduct) != null && i.product ? e + (t.additionalIntegrationProduct.product.basePrice || 0) : e;
8249
+ ), (s = t == null ? void 0 : t.additionalIntegrationProduct) != null && s.product ? e + (t.additionalIntegrationProduct.product.basePrice || 0) : e;
8239
8250
  }
8240
8251
  }
8241
8252
  class me {
@@ -8314,8 +8325,8 @@ class jn {
8314
8325
  }
8315
8326
  class Ie {
8316
8327
  constructor(A, e, t, a, n) {
8317
- var s, i, o;
8318
- this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.ownerId = n, this.metadata = new Map(((s = e.metadata) == null ? void 0 : s.map((r) => [r.key, r.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new On(e.bundleStateData), this.globalConfiguration = (i = this.productCollection) == null ? void 0 : i.globalPropertyConfiguration, this.globalPropertyStateManager = new Ln(
8328
+ var i, s, o;
8329
+ this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.ownerId = n, this.metadata = new Map(((i = e.metadata) == null ? void 0 : i.map((r) => [r.key, r.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new On(e.bundleStateData), this.globalConfiguration = (s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration, this.globalPropertyStateManager = new Ln(
8319
8330
  this.id,
8320
8331
  this.ownerId,
8321
8332
  this.checkConditionalHandlesChanged.bind(this)
@@ -8385,14 +8396,14 @@ class Ie {
8385
8396
  await Promise.all(e.map((t) => t.applyGlobalState([A])));
8386
8397
  }
8387
8398
  async addWorkflowExperiences(A) {
8388
- const e = A.map((s) => s.getWorkflowManager().getTransaction().id), t = e.map(
8389
- (s) => this.workflowExperiences.find((i) => i.getWorkflowManager().getTransaction().id === s)
8399
+ const e = A.map((i) => i.getWorkflowManager().getTransaction().id), t = e.map(
8400
+ (i) => this.workflowExperiences.find((s) => s.getWorkflowManager().getTransaction().id === i)
8390
8401
  );
8391
- if (t.some((s) => !!s))
8402
+ if (t.some((i) => !!i))
8392
8403
  throw new Error(
8393
- "Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
8404
+ "Unable to add transaction to bundle - Already Exists: " + t.filter((i) => !!i).map((i) => i == null ? void 0 : i.getWorkflowManager().getTransaction().id).join(", ")
8394
8405
  );
8395
- const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
8406
+ const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((i) => a.get(i));
8396
8407
  await P.getShadowGraphqlClient().mutate({
8397
8408
  mutation: Yn,
8398
8409
  variables: {
@@ -8403,25 +8414,25 @@ class Ie {
8403
8414
  context: {
8404
8415
  bundleOwnerId: this.ownerId
8405
8416
  }
8406
- }).catch((s) => {
8407
- console.error(s);
8417
+ }).catch((i) => {
8418
+ console.error(i);
8408
8419
  }), this.workflowExperiences.push(...A), await Promise.all([
8409
8420
  this.updateTransactionOrder(),
8410
8421
  (async () => {
8411
- for (const i of A)
8412
- await this.injectExperienceIntoPreviewService(i);
8413
- const s = await this.getGlobalProperties();
8414
- await Promise.all(s.map((i) => i.applyGlobalState(A)));
8422
+ for (const s of A)
8423
+ await this.injectExperienceIntoPreviewService(s);
8424
+ const i = await this.getGlobalProperties();
8425
+ await Promise.all(i.map((s) => s.applyGlobalState(A)));
8415
8426
  })()
8416
8427
  ]);
8417
8428
  }
8418
8429
  async appendWorkflowExperience(A, e = !0) {
8419
8430
  const t = A.getWorkflowManager().getTransaction().id;
8420
8431
  if (this.workflowExperiences.find(
8421
- (i) => i.getWorkflowManager().getTransaction().id === t
8432
+ (s) => s.getWorkflowManager().getTransaction().id === t
8422
8433
  ))
8423
8434
  throw new Error("Unable to add transaction to bundle - Already Exists!");
8424
- const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8435
+ const i = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
8425
8436
  await P.getShadowGraphqlClient().mutate({
8426
8437
  mutation: yn,
8427
8438
  variables: {
@@ -8430,7 +8441,7 @@ class Ie {
8430
8441
  },
8431
8442
  context: {
8432
8443
  bundleOwnerId: this.ownerId,
8433
- transactionOwnerId: s
8444
+ transactionOwnerId: i
8434
8445
  }
8435
8446
  }), e && this.workflowExperiences.push(A);
8436
8447
  }
@@ -8461,7 +8472,7 @@ class Ie {
8461
8472
  id: this.id,
8462
8473
  transactionId: e.id,
8463
8474
  name: this.name,
8464
- metadata: Array.from(this.metadata.entries()).map(([n, s]) => ({ key: n, value: s })),
8475
+ metadata: Array.from(this.metadata.entries()).map(([n, i]) => ({ key: n, value: i })),
8465
8476
  bundleStateData: this.bundleStateManager.getSerializedState()
8466
8477
  },
8467
8478
  context: {
@@ -8617,7 +8628,7 @@ class Ie {
8617
8628
  }),
8618
8629
  e ? (t, a) => {
8619
8630
  const n = this.workflowExperiences.find(
8620
- (s) => s.getWorkflowManager().getTransaction().id === a
8631
+ (i) => i.getWorkflowManager().getTransaction().id === a
8621
8632
  );
8622
8633
  return n ? e(n) : (console.warn(
8623
8634
  "SpiffCommerce - Bundle create design - Unable to find experience for transaction: " + a
@@ -8643,7 +8654,7 @@ class Ie {
8643
8654
  onModelSelectedEvent(A, e) {
8644
8655
  if (A && A.metadata && A.metadata instanceof Map && A.metadata.has("workflowManager")) {
8645
8656
  const a = A.metadata.get("workflowManager").getTransaction(), n = this.workflowExperiences.find(
8646
- (s) => s.getWorkflowManager().getTransaction().id === a.id
8657
+ (i) => i.getWorkflowManager().getTransaction().id === a.id
8647
8658
  );
8648
8659
  n && this.fireEvent(e ? "workflow-experience-hover-enter" : "workflow-experience-hover-exit", {
8649
8660
  workflowExperience: n
@@ -8708,8 +8719,8 @@ class Ie {
8708
8719
  (() => {
8709
8720
  if (a.length !== n.length)
8710
8721
  return !0;
8711
- for (let i = 0; i < a.length; i++)
8712
- if (a[i].getName() !== n[i].getName())
8722
+ for (let s = 0; s < a.length; s++)
8723
+ if (a[s].getName() !== n[s].getName())
8713
8724
  return !0;
8714
8725
  return !1;
8715
8726
  })() && this.fireEvent("conditional-global-properties-changed", {
@@ -8752,13 +8763,13 @@ class Wn {
8752
8763
  })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
8753
8764
  if (!n)
8754
8765
  throw new Error("Failed to create process execution.");
8755
- function s(w) {
8766
+ function i(w) {
8756
8767
  return new Promise((C) => {
8757
8768
  setTimeout(C, w);
8758
8769
  });
8759
8770
  }
8760
- let i = !1, o = 0, r, g;
8761
- for (; !i; ) {
8771
+ let s = !1, o = 0, r, g;
8772
+ for (; !s; ) {
8762
8773
  r = await P.getShadowGraphqlClient().query({
8763
8774
  query: M`
8764
8775
  query getProcessFlowExecution($ids: [String]!) {
@@ -8786,14 +8797,14 @@ class Wn {
8786
8797
  "Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
8787
8798
  );
8788
8799
  if (w.completedAt) {
8789
- i = !0, g = new Xn(w);
8800
+ s = !0, g = new Xn(w);
8790
8801
  break;
8791
8802
  }
8792
8803
  o += 1;
8793
8804
  const C = t != null && t.repeats ? t == null ? void 0 : t.repeats : 5;
8794
8805
  if (o >= C)
8795
8806
  throw new Error("Maximum wait time exceeded for execution result.");
8796
- await s(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
8807
+ await i(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3);
8797
8808
  }
8798
8809
  if (!g)
8799
8810
  throw new Error("Failed to retrieve server response for execution.");
@@ -8925,7 +8936,7 @@ const $n = M`
8925
8936
  z
8926
8937
  }
8927
8938
  }
8928
- `, As = M`
8939
+ `, Ai = M`
8929
8940
  fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
8930
8941
  antiAliasing {
8931
8942
  samples
@@ -9009,21 +9020,21 @@ const $n = M`
9009
9020
  weight
9010
9021
  }
9011
9022
  }
9012
- `, es = M`
9023
+ `, ei = M`
9013
9024
  fragment ModelAnimationFields on ModelAnimation {
9014
9025
  from
9015
9026
  to
9016
9027
  loop
9017
9028
  name
9018
9029
  }
9019
- `, ts = (c) => M`
9030
+ `, ti = (c) => M`
9020
9031
  ${GA(c)}
9021
9032
  ${te}
9022
9033
  ${Le}
9023
9034
  ${$n}
9024
9035
  ${_n}
9025
- ${As}
9026
- ${es}
9036
+ ${Ai}
9037
+ ${ei}
9027
9038
  query GetWorkflows($ids: [String!]!) {
9028
9039
  workflows(ids: $ids) {
9029
9040
  allowProofDownload
@@ -9401,7 +9412,7 @@ const $n = M`
9401
9412
  }
9402
9413
  }
9403
9414
  }
9404
- `, as = M`
9415
+ `, ai = M`
9405
9416
  query GetTransactionForPartner($id: String!) {
9406
9417
  transactions(ids: [$id]) {
9407
9418
  id
@@ -9418,7 +9429,7 @@ const $n = M`
9418
9429
  }
9419
9430
  }
9420
9431
  }
9421
- `, ns = M`
9432
+ `, ni = M`
9422
9433
  ${GA(!1)}
9423
9434
  query GetWorkflowForTheme($id: String!) {
9424
9435
  workflow(id: $id) {
@@ -9440,7 +9451,7 @@ const $n = M`
9440
9451
  }
9441
9452
  }
9442
9453
  }
9443
- `, ss = M`
9454
+ `, ii = M`
9444
9455
  query GetCustomer($emailAddress: String!) {
9445
9456
  customer(emailAddress: $emailAddress) {
9446
9457
  id
@@ -9450,7 +9461,7 @@ const $n = M`
9450
9461
  }
9451
9462
  }
9452
9463
  }
9453
- `, is = M`
9464
+ `, si = M`
9454
9465
  mutation CustomerCreate($details: CustomerDetailsInput!) {
9455
9466
  customerCreate(details: $details) {
9456
9467
  id
@@ -9460,7 +9471,7 @@ const $n = M`
9460
9471
  }
9461
9472
  }
9462
9473
  }
9463
- `, os = M`
9474
+ `, oi = M`
9464
9475
  mutation CustomerAuthenticate($loginToken: String!) {
9465
9476
  customerAuthenticate(loginToken: $loginToken) {
9466
9477
  id
@@ -9487,11 +9498,11 @@ const $n = M`
9487
9498
  }
9488
9499
  }
9489
9500
  }
9490
- `, rs = M`
9501
+ `, ri = M`
9491
9502
  mutation CustomerGenerateVerificationCode($emailAddress: String!) {
9492
9503
  customerGenerateVerificationCode(emailAddress: $emailAddress)
9493
9504
  }
9494
- `, cs = M`
9505
+ `, ci = M`
9495
9506
  mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
9496
9507
  customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
9497
9508
  id
@@ -9526,19 +9537,19 @@ const $n = M`
9526
9537
  (n) => n.type === U.Illustration
9527
9538
  );
9528
9539
  for (let n = 0; n < t.length; ++n) {
9529
- const s = t[n];
9530
- s.src && s.svg && (s.cachedObjectURL = await pA(s.svg));
9540
+ const i = t[n];
9541
+ i.src && i.svg && (i.cachedObjectURL = await pA(i.svg));
9531
9542
  }
9532
9543
  const a = c.layouts[e].elements.filter((n) => n.type === U.Textbox);
9533
9544
  for (let n = 0; n < a.length; ++n) {
9534
- const s = a[n];
9535
- (A = s.fontData) != null && A.assetUrl && await _A(s.fontData.assetUrl);
9545
+ const i = a[n];
9546
+ (A = i.fontData) != null && A.assetUrl && await _A(i.fontData.assetUrl);
9536
9547
  }
9537
9548
  }
9538
- }, gs = async (c, A) => {
9549
+ }, gi = async (c, A) => {
9539
9550
  var a;
9540
9551
  const e = await P.getShadowGraphqlClient().query({
9541
- query: ts(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9552
+ query: ti(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
9542
9553
  errorPolicy: "all",
9543
9554
  fetchPolicy: "no-cache",
9544
9555
  variables: {
@@ -9548,27 +9559,27 @@ const $n = M`
9548
9559
  if (t === void 0 || t.length !== c.length)
9549
9560
  throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
9550
9561
  return t.forEach((n) => {
9551
- n.steps.forEach((s) => {
9552
- var i, o, r;
9553
- delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && L.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && L.cacheAsset(s.option.colorProfile), (r = s.option.variants) == null || r.forEach((g) => {
9562
+ n.steps.forEach((i) => {
9563
+ var s, o, r;
9564
+ delete i.data.__typename, (s = i.option) != null && s.id && ((o = i.option.defaultVariant) != null && o.asset && L.cacheAsset(i.option.defaultVariant.asset), i.option.colorProfile && L.cacheAsset(i.option.colorProfile), (r = i.option.variants) == null || r.forEach((g) => {
9554
9565
  g.asset && L.cacheAsset(g.asset), g.displayImage && L.cacheAsset(g.displayImage), g.thumbnail && L.cacheAsset(g.thumbnail), g.material && L.cacheMaterial(g.material);
9555
- }), rA.set({ id: s.option.id }, Promise.resolve(s.option)));
9566
+ }), rA.set({ id: i.option.id }, Promise.resolve(i.option)));
9556
9567
  });
9557
9568
  }), t;
9558
- }, ls = async (c, A) => {
9569
+ }, li = async (c, A) => {
9559
9570
  const t = (await A).find((a) => a.id === c);
9560
9571
  if (!t)
9561
9572
  throw new Error(`Workflow not found: ${c}`);
9562
9573
  return t;
9563
9574
  }, rt = async (c, A) => {
9564
- const e = c.map((i) => rA.get({ id: i, options: A })), t = c.filter((i, o) => e[o] === void 0);
9575
+ const e = c.map((s) => rA.get({ id: s, options: A })), t = c.filter((s, o) => e[o] === void 0);
9565
9576
  if (t.length === 0)
9566
9577
  return Promise.all(e);
9567
- const a = gs(t, A), n = t.map(
9568
- (i) => rA.set({ id: i, options: A }, ls(i, a))
9569
- ), s = e.filter((i) => i !== void 0);
9570
- return await Promise.all(s.concat(n));
9571
- }, QA = async (c, A) => (await rt([c], A))[0], Bs = (c) => c.sort((A, e) => A.index - e.index).map((A) => ({
9578
+ const a = gi(t, A), n = t.map(
9579
+ (s) => rA.set({ id: s, options: A }, li(s, a))
9580
+ ), i = e.filter((s) => s !== void 0);
9581
+ return await Promise.all(i.concat(n));
9582
+ }, QA = async (c, A) => (await rt([c], A))[0], Bi = (c) => c.sort((A, e) => A.index - e.index).map((A) => ({
9572
9583
  id: k(),
9573
9584
  panelId: A.name,
9574
9585
  name: A.name,
@@ -9583,9 +9594,9 @@ const $n = M`
9583
9594
  editableArea: A.editableArea
9584
9595
  })), OA = (c, A) => {
9585
9596
  const e = c.workflowState, t = e ? JSON.parse(e) : void 0;
9586
- return t ? Object.values(t.layouts).map((a) => a.layout) : Bs(A.panels);
9597
+ return t ? Object.values(t.layouts).map((a) => a.layout) : Bi(A.panels);
9587
9598
  };
9588
- class ds {
9599
+ class di {
9589
9600
  constructor(A) {
9590
9601
  this.updateTransactionState = async (e) => {
9591
9602
  try {
@@ -9628,7 +9639,7 @@ class ds {
9628
9639
  return Promise.resolve({ success: !0, stakeholderType: YA.Owner });
9629
9640
  const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9630
9641
  if (t.has(A)) {
9631
- const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
9642
+ const i = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
9632
9643
  if (o && await this.authenticateCustomerId(o)) {
9633
9644
  const g = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
9634
9645
  (B) => {
@@ -9658,7 +9669,7 @@ class ds {
9658
9669
  async authenticateTransactionFromLocalStorage(A) {
9659
9670
  var g, B, l, d, w, C;
9660
9671
  const e = P.getShadowGraphqlClient(), t = await e.query({
9661
- query: as,
9672
+ query: ai,
9662
9673
  errorPolicy: "all",
9663
9674
  fetchPolicy: "no-cache",
9664
9675
  variables: {
@@ -9672,12 +9683,12 @@ class ds {
9672
9683
  throw new Error(`Unable to read transaction: ${A}`);
9673
9684
  if (a.isOrdered)
9674
9685
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
9675
- const s = x.getMap("transactionOwnerIds");
9676
- if (s != null && s.has(A))
9686
+ const i = x.getMap("transactionOwnerIds");
9687
+ if (i != null && i.has(A))
9677
9688
  return Promise.resolve({ success: !0, stakeholderType: YA.Owner });
9678
- const i = x.getMap("transactionCustomerIds");
9679
- if (i != null && i.has(A)) {
9680
- const E = i.get(A);
9689
+ const s = x.getMap("transactionCustomerIds");
9690
+ if (s != null && s.has(A)) {
9691
+ const E = s.get(A);
9681
9692
  if (E && await this.authenticateCustomerId(E)) {
9682
9693
  const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
9683
9694
  (m) => {
@@ -9698,7 +9709,7 @@ class ds {
9698
9709
  }
9699
9710
  }
9700
9711
  const r = (await e.query({
9701
- query: ns,
9712
+ query: ni,
9702
9713
  errorPolicy: "all",
9703
9714
  variables: {
9704
9715
  id: a.workflowId
@@ -9723,18 +9734,18 @@ class ds {
9723
9734
  var t, a;
9724
9735
  const e = (a = (t = this.customer) == null ? void 0 : t.stakeholders) == null ? void 0 : a.find(
9725
9736
  (n) => {
9726
- var s;
9727
- return ((s = n.transaction) == null ? void 0 : s.id) === A;
9737
+ var i;
9738
+ return ((i = n.transaction) == null ? void 0 : i.id) === A;
9728
9739
  }
9729
9740
  );
9730
9741
  if (e)
9731
9742
  return e.type;
9732
9743
  }
9733
9744
  async getOrCreateCustomer(A) {
9734
- var s;
9745
+ var i;
9735
9746
  this.customer = void 0;
9736
9747
  const e = P.getShadowGraphqlClient(), a = (await e.query({
9737
- query: ss,
9748
+ query: ii,
9738
9749
  errorPolicy: "all",
9739
9750
  fetchPolicy: "no-cache",
9740
9751
  variables: {
@@ -9742,8 +9753,8 @@ class ds {
9742
9753
  }
9743
9754
  })).data.customer;
9744
9755
  if (!a.id) {
9745
- const o = (s = (await e.mutate({
9746
- mutation: is,
9756
+ const o = (i = (await e.mutate({
9757
+ mutation: si,
9747
9758
  errorPolicy: "all",
9748
9759
  fetchPolicy: "no-cache",
9749
9760
  variables: {
@@ -9751,7 +9762,7 @@ class ds {
9751
9762
  emailAddress: A
9752
9763
  }
9753
9764
  }
9754
- })).data) == null ? void 0 : s.customerCreate;
9765
+ })).data) == null ? void 0 : i.customerCreate;
9755
9766
  if (!o)
9756
9767
  throw new Error("Unable to create customer.");
9757
9768
  return this.storeCustomer(o), this.customer = o, {
@@ -9767,22 +9778,22 @@ class ds {
9767
9778
  };
9768
9779
  }
9769
9780
  async authenticateCustomerId(A) {
9770
- var i;
9781
+ var s;
9771
9782
  const e = P.getShadowGraphqlClient(), t = x.getMap("customerTokens");
9772
9783
  if (!(t != null && t.has(A)))
9773
9784
  return !1;
9774
9785
  const a = t.get(A);
9775
9786
  if (!a)
9776
9787
  return !1;
9777
- const s = (i = (await e.mutate({
9778
- mutation: os,
9788
+ const i = (s = (await e.mutate({
9789
+ mutation: oi,
9779
9790
  errorPolicy: "all",
9780
9791
  fetchPolicy: "no-cache",
9781
9792
  variables: {
9782
9793
  loginToken: a
9783
9794
  }
9784
- })).data) == null ? void 0 : i.customerAuthenticate;
9785
- return s ? (this.storeCustomer(s), Ee(a), this.customer = s, !0) : !1;
9795
+ })).data) == null ? void 0 : s.customerAuthenticate;
9796
+ return i ? (this.storeCustomer(i), Ee(a), this.customer = i, !0) : !1;
9786
9797
  }
9787
9798
  /**
9788
9799
  * Generates a verification code for the given email address.
@@ -9790,7 +9801,7 @@ class ds {
9790
9801
  */
9791
9802
  async generateVerificationCode(A) {
9792
9803
  await P.getShadowGraphqlClient().mutate({
9793
- mutation: rs,
9804
+ mutation: ri,
9794
9805
  variables: {
9795
9806
  emailAddress: A
9796
9807
  }
@@ -9803,9 +9814,9 @@ class ds {
9803
9814
  * @returns True if the verification was successful, false otherwise.
9804
9815
  */
9805
9816
  async verifyCode(A, e) {
9806
- var n, s;
9817
+ var n, i;
9807
9818
  const a = (n = (await P.getShadowGraphqlClient().mutate({
9808
- mutation: cs,
9819
+ mutation: ci,
9809
9820
  errorPolicy: "all",
9810
9821
  fetchPolicy: "no-cache",
9811
9822
  variables: {
@@ -9814,10 +9825,10 @@ class ds {
9814
9825
  }
9815
9826
  })).data) == null ? void 0 : n.customerVerifyCode;
9816
9827
  if (a != null && a.loginToken) {
9817
- if (!((s = a.partner) != null && s.id))
9828
+ if (!((i = a.partner) != null && i.id))
9818
9829
  throw new Error(`Unable to find customer: ${A}`);
9819
- const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
9820
- return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Ee(a.loginToken), this.customer = {
9830
+ const s = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
9831
+ return s.set(a.id, a.loginToken), x.setMap("customerTokens", s), this.storeCustomer(a), Ee(a.loginToken), this.customer = {
9821
9832
  ...a,
9822
9833
  loginToken: void 0
9823
9834
  }, !0;
@@ -9829,21 +9840,21 @@ class ds {
9829
9840
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
9830
9841
  */
9831
9842
  async getNewBundle(A, e) {
9832
- var i;
9833
- const a = (i = (await P.getShadowGraphqlClient().mutate({
9843
+ var s;
9844
+ const a = (s = (await P.getShadowGraphqlClient().mutate({
9834
9845
  mutation: Fn,
9835
9846
  variables: {
9836
9847
  collectionId: A,
9837
9848
  initialMetadata: e ? Object.entries(e).map((o, r) => ({ key: o[0], value: o[1] })) : void 0
9838
9849
  },
9839
9850
  fetchPolicy: "no-cache"
9840
- })).data) == null ? void 0 : i.bundleCreate;
9851
+ })).data) == null ? void 0 : s.bundleCreate;
9841
9852
  if (!(a != null && a.id))
9842
9853
  throw new Error("Unable to create bundle");
9843
9854
  const n = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9844
9855
  n.set(a.id, a.partner.id), x.setMap("bundlePartnerIds", n);
9845
- const s = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
9846
- return s.set(a.id, a.bundleOwnerId), x.setMap("bundleOwnerIds", s), new Ie(this, a, void 0, void 0, a.bundleOwnerId);
9856
+ const i = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
9857
+ return i.set(a.id, a.bundleOwnerId), x.setMap("bundleOwnerIds", i), new Ie(this, a, void 0, void 0, a.bundleOwnerId);
9847
9858
  }
9848
9859
  /**
9849
9860
  * Retrieves an existing bundle from the API, by id.
@@ -9854,7 +9865,7 @@ class ds {
9854
9865
  */
9855
9866
  async getExistingBundle(A, e, t) {
9856
9867
  var g, B, l, d;
9857
- const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A), s = await P.getShadowGraphqlClient().query({
9868
+ const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A), i = await P.getShadowGraphqlClient().query({
9858
9869
  query: pn,
9859
9870
  variables: {
9860
9871
  id: A
@@ -9864,11 +9875,11 @@ class ds {
9864
9875
  bundleOwnerId: n
9865
9876
  }
9866
9877
  });
9867
- if (!((g = s.data) != null && g.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
9878
+ if (!((g = i.data) != null && g.bundles) || ((B = i.data) == null ? void 0 : B.bundles.length) === 0 || !((l = i.data) != null && l.bundles[0]))
9868
9879
  throw new Error(`Unable to find bundle: ${A}`);
9869
- const i = (d = s.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9870
- o.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", o);
9871
- const r = new Ie(this, i, e, t, n);
9880
+ const s = (d = i.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9881
+ o.set(s.id, s.partner.id), x.setMap("bundlePartnerIds", o);
9882
+ const r = new Ie(this, s, e, t, n);
9872
9883
  return await r.getInitializationPromise(), r;
9873
9884
  }
9874
9885
  /**
@@ -9889,9 +9900,9 @@ class ds {
9889
9900
  if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
9890
9901
  throw new Error("Unable to find customer.");
9891
9902
  const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
9892
- return t.forEach((s) => {
9893
- var i, o;
9894
- (i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
9903
+ return t.forEach((i) => {
9904
+ var s, o;
9905
+ (s = i.bundle) != null && s.id && ((o = i.bundle.partner) != null && o.id) && a.set(i.bundle.id, i.bundle.partner.id);
9895
9906
  }), x.setMap("bundlePartnerIds", a), t;
9896
9907
  }
9897
9908
  /**
@@ -9955,24 +9966,24 @@ class ds {
9955
9966
  return { transaction: D, workflow: p };
9956
9967
  }
9957
9968
  throw new H("No workflow ID provided.");
9958
- }, { transaction: s, workflow: i, readOnly: o } = await n();
9959
- this.currencyCode = (B = s.product.partner) == null ? void 0 : B.currencyCode;
9969
+ }, { transaction: i, workflow: s, readOnly: o } = await n();
9970
+ this.currencyCode = (B = i.product.partner) == null ? void 0 : B.currencyCode;
9960
9971
  const r = {
9961
- product: s.product,
9962
- transaction: s,
9972
+ product: i.product,
9973
+ transaction: i,
9963
9974
  layouts: [],
9964
9975
  singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
9965
9976
  stateMutationFunc: o ? async () => {
9966
9977
  throw new v("State mutation is forbidden in read only mode!");
9967
9978
  } : async (E) => {
9968
- const h = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(s.id) || void 0;
9979
+ const h = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
9969
9980
  return this.updateTransactionState({ ...E, context: { transactionOwnerId: h } });
9970
9981
  },
9971
9982
  readOnly: o,
9972
- workflow: i
9983
+ workflow: s
9973
9984
  };
9974
- if (a.type === "transaction" && s.workflowState) {
9975
- const E = JSON.parse(s.workflowState);
9985
+ if (a.type === "transaction" && i.workflowState) {
9986
+ const E = JSON.parse(i.workflowState);
9976
9987
  r.layouts = Object.values(E.layouts).map((Q) => Q.layout), await _(E), await AA(E), r.reloadedState = E;
9977
9988
  } else if (!o && a.workflowState) {
9978
9989
  const E = JSON.parse(a.workflowState);
@@ -9987,12 +9998,12 @@ class ds {
9987
9998
  ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
9988
9999
  model: r.product.modelUrl,
9989
10000
  contextService: r.renderableContextService
9990
- }))) : (r.previewService = t && t(i), (w = r.product) != null && w.modelUrl && (r.modelContainer = (C = r.previewService) == null ? void 0 : C.loadModel({
10001
+ }))) : (r.previewService = t && t(s), (w = r.product) != null && w.modelUrl && (r.modelContainer = (C = r.previewService) == null ? void 0 : C.loadModel({
9991
10002
  model: r.product.modelUrl,
9992
10003
  contextService: r.renderableContextService
9993
10004
  }))), a.type !== "transaction") {
9994
10005
  const E = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
9995
- E.set(s.id, s.transactionOwnerId), x.setMap("transactionOwnerIds", E);
10006
+ E.set(i.id, i.transactionOwnerId), x.setMap("transactionOwnerIds", E);
9996
10007
  } else
9997
10008
  r.isReloadedTransaction = !0;
9998
10009
  this.initialized = !0, this.experienceOptions = r;
@@ -10009,9 +10020,9 @@ class ds {
10009
10020
  async getWorkflowExperiences(A, e) {
10010
10021
  if (A.length === 0)
10011
10022
  throw new H("No options provided!");
10012
- const t = P.getShadowGraphqlClient(), a = A.map((h, m) => ({ option: h, index: m })), n = a.filter((h) => h.option.type === "transaction"), s = a.filter(
10023
+ const t = P.getShadowGraphqlClient(), a = A.map((h, m) => ({ option: h, index: m })), n = a.filter((h) => h.option.type === "transaction"), i = a.filter(
10013
10024
  (h) => h.option.type === "integration" || h.option.type === "external"
10014
- ), i = async () => {
10025
+ ), s = async () => {
10015
10026
  var D, p;
10016
10027
  if (n.length === 0)
10017
10028
  return [];
@@ -10038,12 +10049,12 @@ class ds {
10038
10049
  });
10039
10050
  }, o = async () => {
10040
10051
  var u, D, p;
10041
- if (s.length === 0)
10052
+ if (i.length === 0)
10042
10053
  return [];
10043
10054
  const h = await t.mutate({
10044
10055
  mutation: ta,
10045
10056
  variables: {
10046
- inputs: s.map((I) => ({
10057
+ inputs: i.map((I) => ({
10047
10058
  integrationProductId: I.option.type === "integration" ? I.option.integrationProductId : void 0,
10048
10059
  externalIntegrationId: I.option.type === "external" ? I.option.externalIntegrationId : void 0,
10049
10060
  externalProductId: I.option.type === "external" ? I.option.externalProductId : void 0,
@@ -10062,9 +10073,9 @@ class ds {
10062
10073
  transaction: I,
10063
10074
  workflowId: I.workflowId,
10064
10075
  readOnly: !1,
10065
- index: s[F].index
10076
+ index: i[F].index
10066
10077
  }));
10067
- }, r = (await Promise.all([i(), o()])).flat(), g = [...new Set(r.map((h) => h.workflowId))], B = await rt(g, e), l = new Map(B.map((h) => [h.id, h])), d = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = r.map(async (h) => {
10078
+ }, r = (await Promise.all([s(), o()])).flat(), g = [...new Set(r.map((h) => h.workflowId))], B = await rt(g, e), l = new Map(B.map((h) => [h.id, h])), d = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = r.map(async (h) => {
10068
10079
  var G;
10069
10080
  const { transaction: m, workflowId: u, readOnly: D, index: p } = h, I = l.get(u), F = A[p];
10070
10081
  !d.get(m.id) && m.transactionOwnerId && d.set(m.id, m.transactionOwnerId);
@@ -10108,7 +10119,7 @@ class ds {
10108
10119
  * @deprecated Use getWorkflowExperience to initialize the experience.
10109
10120
  */
10110
10121
  async initFromIntegrationProduct(A) {
10111
- var s;
10122
+ var i;
10112
10123
  if (A === "")
10113
10124
  throw new H("No integration product ID provided.");
10114
10125
  const t = await P.getShadowGraphqlClient().mutate({
@@ -10127,13 +10138,13 @@ class ds {
10127
10138
  const a = t.data.transactionCreate;
10128
10139
  if (!a.product)
10129
10140
  throw new H("Failed to create transaction, product not available.");
10130
- this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
10141
+ this.currencyCode = (i = a.product.partner) == null ? void 0 : i.currencyCode;
10131
10142
  const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
10132
10143
  n.set(a.id, a.transactionOwnerId), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
10133
10144
  product: a.product,
10134
10145
  transaction: a,
10135
10146
  layouts: [],
10136
- stateMutationFunc: async (i) => this.updateTransactionState({ ...i, context: { transactionOwnerId: a.transactionOwnerId } })
10147
+ stateMutationFunc: async (s) => this.updateTransactionState({ ...s, context: { transactionOwnerId: a.transactionOwnerId } })
10137
10148
  }, this.initialized = !0;
10138
10149
  }
10139
10150
  /**
@@ -10143,7 +10154,7 @@ class ds {
10143
10154
  * @deprecated Use getWorkflowExperience to initialize the experience.
10144
10155
  */
10145
10156
  async initFromTransaction(A, e = !1) {
10146
- var i, o, r, g;
10157
+ var s, o, r, g;
10147
10158
  if (A === "")
10148
10159
  throw new H("No transaction ID provided.");
10149
10160
  const t = P.getShadowGraphqlClient(), a = async () => {
@@ -10170,15 +10181,15 @@ class ds {
10170
10181
  };
10171
10182
  if (e)
10172
10183
  return await a();
10173
- const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
10174
- if (s) {
10175
- const l = (i = (await t.query({
10184
+ const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(A);
10185
+ if (i) {
10186
+ const l = (s = (await t.query({
10176
10187
  query: BA,
10177
10188
  variables: {
10178
10189
  ids: [A]
10179
10190
  },
10180
10191
  errorPolicy: "all"
10181
- })).data) == null ? void 0 : i.transactions[0];
10192
+ })).data) == null ? void 0 : s.transactions[0];
10182
10193
  if (!l)
10183
10194
  throw new H("Failed to read transaction.");
10184
10195
  if (!l.product)
@@ -10187,7 +10198,7 @@ class ds {
10187
10198
  product: l.product,
10188
10199
  transaction: l,
10189
10200
  layouts: [],
10190
- stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: s } }),
10201
+ stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
10191
10202
  readOnly: e
10192
10203
  }, this.initialized = !0;
10193
10204
  return;
@@ -10217,7 +10228,7 @@ class ds {
10217
10228
  * @deprecated Remove when the initFrom functions are removed.
10218
10229
  */
10219
10230
  async getWorkflowExperienceDeprecated(A, e, t) {
10220
- var a, n, s, i;
10231
+ var a, n, i, s;
10221
10232
  if (!this.initialized || !this.experienceOptions)
10222
10233
  throw new H("Cannot launch experience: Not initialized.");
10223
10234
  if (this.experienceOptions.transaction.workflowId) {
@@ -10235,7 +10246,7 @@ class ds {
10235
10246
  }
10236
10247
  if (A) {
10237
10248
  const r = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.experienceOptions.transaction.id), g = P.getShadowGraphqlClient().mutate({
10238
- mutation: sa,
10249
+ mutation: ia,
10239
10250
  variables: {
10240
10251
  workflowId: A,
10241
10252
  id: this.experienceOptions.transaction.id
@@ -10252,7 +10263,7 @@ class ds {
10252
10263
  this.experienceOptions.transaction,
10253
10264
  this.experienceOptions.workflow
10254
10265
  );
10255
- this.experienceOptions.previewService = t && t(await B), this.experienceOptions.renderableContextService = new hA(this.experienceOptions.layouts), (s = this.experienceOptions.product) != null && s.modelUrl && (this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.loadModel({
10266
+ this.experienceOptions.previewService = t && t(await B), this.experienceOptions.renderableContextService = new hA(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
10256
10267
  model: this.experienceOptions.product.modelUrl,
10257
10268
  contextService: this.experienceOptions.renderableContextService
10258
10269
  }));
@@ -10292,7 +10303,7 @@ class ds {
10292
10303
  e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
10293
10304
  }
10294
10305
  }
10295
- class Ss {
10306
+ class Si {
10296
10307
  getInitializationPromise() {
10297
10308
  return Promise.resolve();
10298
10309
  }
@@ -10415,8 +10426,8 @@ class Ss {
10415
10426
  ejectFromPreviewService() {
10416
10427
  }
10417
10428
  }
10418
- var ws = /* @__PURE__ */ ((c) => (c.SelectFrame = "SelectFrame", c.SelectImage = "SelectImage", c.Position = "Position", c))(ws || {});
10419
- class Es extends j {
10429
+ var wi = /* @__PURE__ */ ((c) => (c.SelectFrame = "SelectFrame", c.SelectImage = "SelectImage", c.Position = "Position", c))(wi || {});
10430
+ class Ei extends j {
10420
10431
  constructor(A, e) {
10421
10432
  var t;
10422
10433
  super(A, e), this.frameService = (t = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : t.frameService;
@@ -10458,46 +10469,46 @@ class Es extends j {
10458
10469
  }
10459
10470
  export {
10460
10471
  $ as AssetNotFoundError,
10461
- Ns as AssetType,
10462
- Hs as BringForwardCommand,
10463
- Rs as BringToBackCommand,
10464
- Us as BringToFrontCommand,
10465
- Gs as CanvasCommand,
10472
+ Ni as AssetType,
10473
+ Hi as BringForwardCommand,
10474
+ Ri as BringToBackCommand,
10475
+ Ui as BringToFrontCommand,
10476
+ Gi as CanvasCommand,
10466
10477
  zn as CollectionProduct,
10467
- vs as CommandContext,
10478
+ vi as CommandContext,
10468
10479
  ea as ConversionDataType,
10469
10480
  Aa as ConversionLocation,
10470
- ks as CreateElementCommand,
10471
- Js as CreateLayoutCommand,
10472
- bs as DeleteElementCommand,
10481
+ ki as CreateElementCommand,
10482
+ Ji as CreateLayoutCommand,
10483
+ bi as DeleteElementCommand,
10473
10484
  CA as FlowExecutionNodeResult,
10474
10485
  Xn as FlowExecutionResult,
10475
10486
  Wn as FlowService,
10476
- Ls as FontAlignmentCommand,
10477
- Os as FontColorCommand,
10478
- Ts as FontSizeCommand,
10479
- zs as FontSourceCommand,
10487
+ Li as FontAlignmentCommand,
10488
+ Oi as FontColorCommand,
10489
+ Ti as FontSizeCommand,
10490
+ zi as FontSourceCommand,
10480
10491
  la as FrameService,
10481
- ws as FrameStep,
10482
- Es as FrameStepHandle,
10492
+ wi as FrameStep,
10493
+ Ei as FrameStepHandle,
10483
10494
  oe as GlobalPropertyHandle,
10484
- Ks as GroupCommand,
10495
+ Ki as GroupCommand,
10485
10496
  La as IllustrationStepHandle,
10486
10497
  PA as InformationMessageType,
10487
10498
  Wa as InformationStepHandle,
10488
10499
  $t as IntegrationType,
10489
- js as LayoutElementFactory,
10490
- Vs as LayoutElementType,
10500
+ ji as LayoutElementFactory,
10501
+ Vi as LayoutElementType,
10491
10502
  O as LayoutNotFoundError,
10492
10503
  Oa as MaterialStepHandle,
10493
10504
  MA as MisconfigurationError,
10494
- Ss as MockWorkflowManager,
10505
+ Si as MockWorkflowManager,
10495
10506
  Ta as ModelStepHandle,
10496
- Ws as MoveCommand,
10507
+ Wi as MoveCommand,
10497
10508
  ot as ObjectInput,
10498
10509
  Zn as ObjectInputType,
10499
10510
  FA as OptionNotFoundError,
10500
- sA as ParseError,
10511
+ iA as ParseError,
10501
10512
  za as PictureStepHandle,
10502
10513
  _t as ProductCameraRig,
10503
10514
  Tn as ProductCollection,
@@ -10506,63 +10517,63 @@ export {
10506
10517
  ze as PromiseQueue,
10507
10518
  Ka as QuestionStepHandle,
10508
10519
  Te as QueueablePromise,
10509
- Xs as ResizeCommand,
10520
+ Xi as ResizeCommand,
10510
10521
  oA as ResourceNotFoundError,
10511
- qs as RotateCommand,
10512
- Zs as SendBackwardsCommand,
10522
+ qi as RotateCommand,
10523
+ Zi as SendBackwardsCommand,
10513
10524
  ja as ShapeStepHandle,
10514
- ds as SpiffCommerceClient,
10525
+ di as SpiffCommerceClient,
10515
10526
  YA as StakeholderType,
10516
- $s as StepAspectType,
10527
+ $i as StepAspectType,
10517
10528
  j as StepHandle,
10518
- _s as StepType,
10519
- Ai as TextChangeCommand,
10529
+ _i as StepType,
10530
+ As as TextChangeCommand,
10520
10531
  Va as TextStepHandle,
10521
10532
  jn as Transform,
10522
10533
  Kn as TransformCollection,
10523
10534
  v as UnhandledBehaviorError,
10524
- ei as UnitOfMeasurement,
10535
+ es as UnitOfMeasurement,
10525
10536
  V as Variant,
10526
10537
  EA as WorkflowExperienceImpl,
10527
10538
  L as assetService,
10528
10539
  An as createDesign,
10529
- ti as dataUrlFromExternalUrl,
10540
+ ts as dataUrlFromExternalUrl,
10530
10541
  LA as designService,
10531
- ai as determineCorrectFontSizeAndLines,
10542
+ as as determineCorrectFontSizeAndLines,
10532
10543
  wa as digitalContentStepService,
10533
- ni as findElement,
10534
- si as frameDataCache,
10544
+ ns as findElement,
10545
+ is as frameDataCache,
10535
10546
  VA as frameStepService,
10536
- ii as generate,
10547
+ ss as generate,
10537
10548
  En as generateCommands,
10538
- oi as generateSVGWithUnknownColors,
10539
- Ys as generateStateFromDesignInputSteps,
10540
- ri as getAttributesFromArrayBuffer,
10541
- ci as getAxisAlignedBoundingBox,
10549
+ os as generateSVGWithUnknownColors,
10550
+ Yi as generateStateFromDesignInputSteps,
10551
+ rs as getAttributesFromArrayBuffer,
10552
+ cs as getAxisAlignedBoundingBox,
10542
10553
  ga as getBoundedOffsets,
10543
- gi as getFrameData,
10544
- li as getSvgElement,
10554
+ gs as getFrameData,
10555
+ ls as getSvgElement,
10545
10556
  QA as getWorkflow,
10546
10557
  rt as getWorkflows,
10547
10558
  P as graphQlManager,
10548
10559
  IA as illustrationStepService,
10549
- Bi as loadFont,
10560
+ Bs as loadFont,
10550
10561
  je as materialStepService,
10551
10562
  Ve as modelStepService,
10552
10563
  ma as moduleStepService,
10553
10564
  K as optionService,
10554
- di as patternImageDataCache,
10565
+ ds as patternImageDataCache,
10555
10566
  x as persistenceService,
10556
10567
  We as pictureStepService,
10557
10568
  Xe as questionStepService,
10558
- wi as registerFetchImplementation,
10559
- Ei as registerWindowImplementation,
10560
- hi as rehydrateSerializedLayout,
10561
- Ci as setCanvasModule,
10562
- iA as shapeStepService,
10569
+ ws as registerFetchImplementation,
10570
+ Es as registerWindowImplementation,
10571
+ hs as rehydrateSerializedLayout,
10572
+ Cs as setCanvasModule,
10573
+ sA as shapeStepService,
10563
10574
  Ba as shortenUrl,
10564
10575
  yA as spiffCoreConfiguration,
10565
- ys as stepAspectValuesToDesignInputSteps,
10576
+ yi as stepAspectValuesToDesignInputSteps,
10566
10577
  z as textStepService,
10567
10578
  Fa as toast
10568
10579
  };