@spiffcommerce/core 21.9.0-alpha.9 → 21.9.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,27 +1,27 @@
1
- import { createHttpLink as EA, InMemoryCache as uA, ApolloClient as CA, from as QA, gql as D } from "@apollo/client/core";
2
- import { fetch as Ue, AssetType as dt, fetchAsArrayBuffer as St, StepType as y, getFrameData as _e, frameDataCache as mA, GroupCommand as G, UpdateFramePattern as Yt, UpdateFrameThresholdSettingsCommand as pA, calculateOffsets as et, LayoutElementType as k, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Pt, svgObjectURL as ye, fetchAsString as Z, DeleteElementCommand as $, generateDefaultRectangleFrameSvg as wt, GetSVGDimensions as IA, patternImageDataCache as ht, getAttributesFromArrayBuffer as fA, findElement as Me, modifySVGWithElementProperties as DA, IllustrationColorCommand as Ve, IllustrationCacheCommand as FA, getFontMetrics as yA, getPatternImageData as We, FontAlignmentCommand as MA, FontColorCommand as SA, FontImageFillCommand as Le, applyTextTransformations as Xe, determineCorrectFontSizeAndLines as fe, FontSourceCommand as Et, loadFont as tt, TextChangeCommand as YA, FontSizeCommand as PA, createElementNS as xA, createElement as he, _loadFontExternalDataURL as At, UpdateWorkflowStateCommand as ut, CommandContext as NA, createCanvas as Se, getSvgElement as xt, LayoutRenderingPurpose as Nt, renderPapyrusComponentAsString as Ht, loadImage as Rt, getDomParser as Ut, toBase64 as Ct, getVariant as HA, generateFrameSVG as RA, getDefaultVariant as Ge, domParser as Gt, sanitizeSvgTree as vt, traverse as UA, xmlSerializer as kt, CreateLayoutCommand as GA, AspectType as ce, rehydrateSerializedLayout as ee } from "@spiffcommerce/papyrus";
1
+ import { createHttpLink as hA, InMemoryCache as EA, ApolloClient as uA, from as CA, gql as D } from "@apollo/client/core";
2
+ import { fetch as $e, AssetType as dt, StepType as y, getFrameData as _e, frameDataCache as QA, GroupCommand as G, UpdateFramePattern as St, UpdateFrameThresholdSettingsCommand as mA, calculateOffsets as et, LayoutElementType as k, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Yt, svgObjectURL as Me, fetchAsString as Z, DeleteElementCommand as $, generateDefaultRectangleFrameSvg as wt, GetSVGDimensions as pA, patternImageDataCache as ht, fetchAsArrayBuffer as IA, getAttributesFromArrayBuffer as fA, findElement as Se, modifySVGWithElementProperties as DA, IllustrationColorCommand as je, IllustrationCacheCommand as FA, getFontMetrics as yA, getPatternImageData as Ve, FontAlignmentCommand as MA, FontColorCommand as SA, FontImageFillCommand as Je, applyTextTransformations as We, determineCorrectFontSizeAndLines as De, FontSourceCommand as Et, loadFont as tt, TextChangeCommand as YA, FontSizeCommand as PA, createElementNS as xA, createElement as Ee, _loadFontExternalDataURL as At, UpdateWorkflowStateCommand as ut, CommandContext as NA, createCanvas as Ye, getSvgElement as Pt, LayoutRenderingPurpose as xt, renderPapyrusComponentAsString as Nt, loadImage as Ht, getDomParser as Rt, toBase64 as Ct, getVariant as HA, generateFrameSVG as RA, getDefaultVariant as Ge, domParser as Ut, sanitizeSvgTree as Gt, traverse as UA, xmlSerializer as vt, CreateLayoutCommand as GA, AspectType as ce, rehydrateSerializedLayout as ee } from "@spiffcommerce/papyrus";
3
3
  import { AspectType as Wi, AssetType as Xi, BringForwardCommand as qi, BringToBackCommand as Zi, BringToFrontCommand as $i, CanvasCommand as _i, CommandContext as es, CreateElementCommand as ts, CreateLayoutCommand as As, DeleteElementCommand as as, FontAlignmentCommand as ns, FontColorCommand as is, FontSizeCommand as ss, FontSourceCommand as os, GroupCommand as rs, LayoutElementFactory as cs, LayoutElementType as gs, MoveCommand as ls, ResizeCommand as Bs, RotateCommand as ds, SendBackwardsCommand as ws, StepAspectType as hs, StepType as Es, TextChangeCommand as us, UnitOfMeasurement as Cs, dataUrlFromExternalUrl as Qs, determineCorrectFontSizeAndLines as ms, findElement as ps, frameDataCache as Is, generate as fs, generateSVGWithUnknownColors as Ds, getAttributesFromArrayBuffer as Fs, getAxisAlignedBoundingBox as ys, getFrameData as Ms, getSvgElement as Ss, loadFont as Ys, patternImageDataCache as Ps, registerFetchImplementation as xs, registerWindowImplementation as Ns, rehydrateSerializedLayout as Hs, setCanvasModule as Rs } from "@spiffcommerce/papyrus";
4
4
  import { setContext as vA } from "@apollo/client/link/context";
5
5
  import { onError as kA } from "@apollo/client/link/error";
6
- import { Pith as bt } from "pith";
7
- import Jt from "lodash.debounce";
8
- import Lt from "lodash.isequal";
6
+ import { Pith as kt } from "pith";
7
+ import bt from "lodash.debounce";
8
+ import Jt from "lodash.isequal";
9
9
  import le from "lodash.clonedeep";
10
- import { toString as Ot } from "qrcode";
11
- import { split as qe } from "unicode-default-word-boundary";
10
+ import { toString as Lt } from "qrcode";
11
+ import { split as Xe } from "unicode-default-word-boundary";
12
12
  import at from "svg-path-bbox";
13
13
  import Qt from "lodash.chunk";
14
- class Tt extends Error {
14
+ class Ot extends Error {
15
15
  constructor(e) {
16
16
  super(e), this.name = this.constructor.name;
17
17
  }
18
18
  }
19
- class we extends Tt {
19
+ class we extends Ot {
20
20
  constructor(e) {
21
21
  super(`ConfigurationError - ${e}`);
22
22
  }
23
23
  }
24
- class Ye extends we {
24
+ class Pe extends we {
25
25
  constructor(e) {
26
26
  super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
27
27
  }
@@ -41,12 +41,12 @@ class Be extends we {
41
41
  super(`Resource not found for asset: ${e.name}`), this.asset = e;
42
42
  }
43
43
  }
44
- class Pe extends we {
44
+ class xe extends we {
45
45
  constructor(e, t) {
46
46
  super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
47
47
  }
48
48
  }
49
- class ve extends Tt {
49
+ class ve extends Ot {
50
50
  constructor(e) {
51
51
  super(`ImplementationError - ${e}`);
52
52
  }
@@ -148,9 +148,9 @@ class LA {
148
148
  }
149
149
  }
150
150
  const q = new LA();
151
- let zt;
151
+ let Tt;
152
152
  const pt = (c) => {
153
- zt = c;
153
+ Tt = c;
154
154
  };
155
155
  let nt;
156
156
  const OA = (c) => {
@@ -163,7 +163,7 @@ const OA = (c) => {
163
163
  }), KA = async () => {
164
164
  const c = {
165
165
  applicationKey: nt,
166
- customerToken: zt
166
+ customerToken: Tt
167
167
  };
168
168
  return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await zA(), ...c } : c;
169
169
  };
@@ -177,9 +177,9 @@ class jA {
177
177
  return this.shadowGraphqlClient;
178
178
  }
179
179
  constructShadowGraphqlClient() {
180
- const e = EA({
180
+ const e = hA({
181
181
  uri: `${q.getServerUrl()}/graphql`,
182
- fetch: Ue
182
+ fetch: $e
183
183
  }), t = vA(async (i, s) => {
184
184
  const { headers: o } = s, r = o || {}, g = await KA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, h = s.applicationKey ?? g.applicationKey, C = s.bundleOwnerId;
185
185
  try {
@@ -211,7 +211,7 @@ class jA {
211
211
  }
212
212
  };
213
213
  }
214
- const n = new uA({
214
+ const n = new EA({
215
215
  addTypename: !1,
216
216
  typePolicies: {
217
217
  Transaction: {
@@ -245,8 +245,8 @@ class jA {
245
245
  }
246
246
  }
247
247
  });
248
- return new CA({
249
- link: QA([A, t, e]),
248
+ return new uA({
249
+ link: CA([A, t, e]),
250
250
  cache: n,
251
251
  name: "Core"
252
252
  });
@@ -259,7 +259,7 @@ const x = new jA(), VA = D`
259
259
  value
260
260
  }
261
261
  }
262
- `, be = (c) => D`
262
+ `, he = (c) => D`
263
263
  ${c && VA || ""}
264
264
  fragment AssetFields on Asset {
265
265
  name
@@ -275,7 +275,7 @@ const x = new jA(), VA = D`
275
275
  ${c && "...AssetMetadataFields" || ""}
276
276
  }
277
277
  `, WA = D`
278
- ${be(!1)}
278
+ ${he(!1)}
279
279
  query GetAssets($keys: [String]!) {
280
280
  assets(keys: $keys) {
281
281
  ...AssetFields
@@ -349,21 +349,28 @@ const x = new jA(), VA = D`
349
349
  }
350
350
  }
351
351
  }
352
- `, Kt = async (c) => (await x.getShadowGraphqlClient().query({
352
+ `, ZA = D`
353
+ ${he(!1)}
354
+ mutation RemoveBackgroundFromAsset($key: String!) {
355
+ assetRemoveBackground(key: $key) {
356
+ ...AssetFields
357
+ }
358
+ }
359
+ `, zt = async (c) => (await x.getShadowGraphqlClient().query({
353
360
  query: WA,
354
361
  errorPolicy: "all",
355
362
  fetchPolicy: "no-cache",
356
363
  variables: {
357
364
  keys: c
358
365
  }
359
- })).data.assets, ZA = async (c) => (await x.getShadowGraphqlClient().query({
366
+ })).data.assets, $A = async (c) => (await x.getShadowGraphqlClient().query({
360
367
  query: XA,
361
368
  errorPolicy: "all",
362
369
  fetchPolicy: "no-cache",
363
370
  variables: {
364
371
  ids: c
365
372
  }
366
- })).data.materials, $A = async (c, e, t, A, a) => {
373
+ })).data.materials, _A = async (c, e, t, A, a) => {
367
374
  var i;
368
375
  return (i = (await x.getShadowGraphqlClient().mutate({
369
376
  mutation: qA,
@@ -377,11 +384,6 @@ const x = new jA(), VA = D`
377
384
  temporary: a
378
385
  }
379
386
  })).data) == null ? void 0 : i.assetCreate;
380
- }, _A = (c, e) => {
381
- const t = atob(c), A = [];
382
- for (let a = 0; a < t.length; a++)
383
- A.push(t.charCodeAt(a));
384
- return new Blob([new Uint8Array(A)], { type: e });
385
387
  };
386
388
  class ea {
387
389
  constructor() {
@@ -403,7 +405,7 @@ class ea {
403
405
  throw new b("Failed to get asset from cache!");
404
406
  return a;
405
407
  }
406
- const A = (async () => (await Kt([e]))[0])();
408
+ const A = (async () => (await zt([e]))[0])();
407
409
  return this.cache.set(e, A), A;
408
410
  }
409
411
  /**
@@ -429,7 +431,7 @@ class ea {
429
431
  async getMaterialLocalOrFromServer(e) {
430
432
  if (this.materialCache.has(e))
431
433
  return this.materialCache.get(e);
432
- const A = (async () => (await ZA([e]))[0])();
434
+ const A = (async () => (await $A([e]))[0])();
433
435
  return this.materialCache.set(e, A), A;
434
436
  }
435
437
  /**
@@ -446,7 +448,7 @@ class ea {
446
448
  g.lengthComputable && A(g.loaded * 100 / g.total);
447
449
  }, r.onload = () => {
448
450
  const g = i.assetResponse.asset;
449
- Oe.add(i.assetResponse.asset), s(g);
451
+ Le.add(i.assetResponse.asset), s(g);
450
452
  }, r.onerror = o, r.send(e.blob);
451
453
  }), this.cacheAsset(i.assetResponse.asset), i.assetResponse.asset;
452
454
  }
@@ -471,19 +473,26 @@ class ea {
471
473
  if (this.bgrmCache.has(e.key))
472
474
  return this.bgrmCache.get(e.key);
473
475
  const A = (async () => {
474
- const a = await St(e.fileLink), n = await this.removeBackground(new Blob([a], { type: e.mimeType })), i = {
475
- name: e.key + "_removed_bg",
476
- blob: n
477
- };
478
- return this.uploadAsset(i, e.type, !0);
476
+ var n, i;
477
+ const a = await x.getShadowGraphqlClient().mutate({
478
+ mutation: ZA,
479
+ fetchPolicy: "no-cache",
480
+ errorPolicy: "all",
481
+ variables: {
482
+ key: e.key
483
+ }
484
+ });
485
+ if (!((i = (n = a.data) == null ? void 0 : n.assetRemoveBackground) != null && i.key))
486
+ throw new Error("Failed to remove background from image");
487
+ return a.data.assetRemoveBackground;
479
488
  })();
480
489
  return this.bgrmCache.set(e.key, A), A;
481
490
  }
482
491
  removePersistedAsset(e) {
483
- Oe.remove(e);
492
+ Le.remove(e);
484
493
  }
485
494
  getPersistedAssets() {
486
- return Oe.list();
495
+ return Le.list();
487
496
  }
488
497
  /**
489
498
  * Handles mimeType resolution & asset creation request
@@ -491,35 +500,13 @@ class ea {
491
500
  * @param assetType The type of asset we're expecting to upload
492
501
  */
493
502
  async dispatchCreateAssetRequest(e, t, A, a) {
494
- const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await $A(e.name, t, n, A, a);
503
+ const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await _A(e.name, t, n, A, a);
495
504
  if (i)
496
505
  return {
497
506
  assetResponse: i,
498
507
  mimeType: n
499
508
  };
500
509
  }
501
- async removeBackground(e) {
502
- const t = "https://sdk.photoroom.com/v1/segment", A = new FormData();
503
- A.append("image_file", e);
504
- try {
505
- const a = await Ue(t, {
506
- method: "POST",
507
- headers: {
508
- Accept: "image/png, application/json",
509
- "x-api-key": "2a9a611f0a606b8ef163c7836c3ce7e083bb504b"
510
- },
511
- body: A
512
- });
513
- if (a.headers.get("Content-Type") === "image/png")
514
- return await a.blob();
515
- const i = await a.json();
516
- if (i.result_b64)
517
- return _A(i.result_b64, "image/png");
518
- throw new Error("Failed to remove background from file.");
519
- } catch (a) {
520
- throw console.error("Failed to remove background from file"), a;
521
- }
522
- }
523
510
  guessMIME(e) {
524
511
  const t = e.split(".").pop();
525
512
  switch (t) {
@@ -535,7 +522,7 @@ class ea {
535
522
  }
536
523
  }
537
524
  const ie = "persistentAssets";
538
- class Oe {
525
+ class Le {
539
526
  /**
540
527
  * Add a new asset to persistence
541
528
  * @param asset The asset to add.
@@ -603,7 +590,7 @@ class ta {
603
590
  this.disabled = e;
604
591
  }
605
592
  }
606
- const de = new ta(), jt = D`
593
+ const de = new ta(), Kt = D`
607
594
  fragment OptionFields on Option {
608
595
  id
609
596
  name
@@ -644,9 +631,9 @@ const de = new ta(), jt = D`
644
631
  }
645
632
  }
646
633
  `, Aa = D`
647
- ${be(!1)}
634
+ ${he(!1)}
648
635
  ${it}
649
- ${jt}
636
+ ${Kt}
650
637
  query GetOptions($ids: [String]!) {
651
638
  options(ids: $ids) {
652
639
  ...OptionFields
@@ -730,7 +717,7 @@ class sa {
730
717
  }
731
718
  }
732
719
  const j = new sa();
733
- var oa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(oa || {}), ra = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(ra || {}), ca = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(ca || {}), ga = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(ga || {}), xe = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(xe || {});
720
+ var oa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(oa || {}), ra = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(ra || {}), ca = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(ca || {}), ga = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(ga || {}), Ne = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ne || {});
734
721
  const ne = D`
735
722
  fragment AdditionalIntegrationProductFields on IntegrationProduct {
736
723
  id
@@ -991,7 +978,7 @@ const ne = D`
991
978
  }
992
979
  }
993
980
  }
994
- `, Ee = D`
981
+ `, ue = D`
995
982
  ${ne}
996
983
  query ReadTransactions($ids: [String]!) {
997
984
  transactions(ids: $ids) {
@@ -1160,14 +1147,14 @@ D`
1160
1147
  }
1161
1148
  }
1162
1149
  `;
1163
- const Vt = D`
1150
+ const jt = D`
1164
1151
  query ReadWorkflowStates($ids: [String]!) {
1165
1152
  transactions(ids: $ids) {
1166
1153
  id
1167
1154
  workflowState
1168
1155
  }
1169
1156
  }
1170
- `, Wt = D`
1157
+ `, Vt = D`
1171
1158
  ${ne}
1172
1159
  fragment IntegrationProductFields on IntegrationProduct {
1173
1160
  id
@@ -1215,14 +1202,14 @@ const Vt = D`
1215
1202
  }
1216
1203
  }
1217
1204
  `, Ea = D`
1218
- ${Wt}
1205
+ ${Vt}
1219
1206
  query GetIntegrationProducts($ids: [String!]!) {
1220
1207
  integrationProducts(ids: $ids) {
1221
1208
  ...IntegrationProductFields
1222
1209
  }
1223
1210
  }
1224
1211
  `, ua = D`
1225
- ${Wt}
1212
+ ${Vt}
1226
1213
  query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
1227
1214
  integrationProductFromExternalIds(
1228
1215
  externalIntegrationId: $externalIntegrationId
@@ -1320,12 +1307,12 @@ const Vt = D`
1320
1307
  );
1321
1308
  return n;
1322
1309
  };
1323
- class Xt {
1310
+ class Wt {
1324
1311
  constructor() {
1325
1312
  this.timestamp = Date.now();
1326
1313
  }
1327
1314
  }
1328
- class qt {
1315
+ class Xt {
1329
1316
  /**
1330
1317
  * Constructs a new promise queue.
1331
1318
  * @param queueMaxSize An optional maximum size, when the max size is hit.
@@ -1401,17 +1388,17 @@ function Ia(c, e, t, A) {
1401
1388
  const s = c, o = Math.max(e.width / t.width, e.height / t.height);
1402
1389
  s.zoom = Math.max(o, c.zoom);
1403
1390
  const r = t.width * s.zoom, g = t.height * s.zoom;
1404
- return s.x = ue(c.x, e.width - r, 0), s.y = ue(c.y, e.height - g, 0), s;
1391
+ return s.x = Ce(c.x, e.width - r, 0), s.y = Ce(c.y, e.height - g, 0), s;
1405
1392
  }
1406
1393
  const i = c;
1407
- return i.x = ue(i.x, -a, e.width), i.y = ue(i.y, -n, e.height), i;
1394
+ return i.x = Ce(i.x, -a, e.width), i.y = Ce(i.y, -n, e.height), i;
1408
1395
  }
1409
- function ue(c, e, t) {
1396
+ function Ce(c, e, t) {
1410
1397
  return Math.min(Math.max(c, e), t);
1411
1398
  }
1412
1399
  class fa {
1413
1400
  constructor(e) {
1414
- this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = Jt(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = { useThreshold: !1, invertThreshold: !1, threshold: 128, thresholdSaturation: 0.5 };
1401
+ this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = bt(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = { useThreshold: !1, invertThreshold: !1, threshold: 128, thresholdSaturation: 0.5 };
1415
1402
  }
1416
1403
  /**
1417
1404
  * When we want to connect a workflow manager to the state of the image cropper we
@@ -1427,7 +1414,7 @@ class fa {
1427
1414
  let n = !1;
1428
1415
  for (let i = 0; i < a.currentFrameSources.length; i++) {
1429
1416
  const s = a.currentFrameSources[i], o = await _e(s);
1430
- Lt(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
1417
+ Jt(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
1431
1418
  }
1432
1419
  n && (this.onFrameDataChangeListeners.forEach(
1433
1420
  (i) => i(this.frameData)
@@ -1461,7 +1448,7 @@ class fa {
1461
1448
  return;
1462
1449
  }
1463
1450
  e.forEach((t, A) => {
1464
- const a = mA.get(t);
1451
+ const a = QA.get(t);
1465
1452
  a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
1466
1453
  });
1467
1454
  }
@@ -1569,8 +1556,8 @@ class fa {
1569
1556
  n.forEach((o, r) => {
1570
1557
  s(
1571
1558
  new G([
1572
- new Yt(o, t, e[r]),
1573
- new pA(o, a.useThreshold, a.invertThreshold, a.threshold, a.thresholdSaturation)
1559
+ new St(o, t, e[r]),
1560
+ new mA(o, a.useThreshold, a.invertThreshold, a.threshold, a.thresholdSaturation)
1574
1561
  ])
1575
1562
  );
1576
1563
  }), this.stepName && this.workflowManager.updateStorage(this.stepName, {
@@ -1605,7 +1592,7 @@ class ft {
1605
1592
  if (this.configuration.type === y.ProductOverlay) {
1606
1593
  let l = "";
1607
1594
  if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1608
- throw new Pe(this.configuration, "Couldn't find an asset for product overlay step");
1595
+ throw new xe(this.configuration, "Couldn't find an asset for product overlay step");
1609
1596
  }
1610
1597
  const s = this.evaluateAssetType();
1611
1598
  if (s === k.Image) {
@@ -1637,7 +1624,7 @@ class ft {
1637
1624
  command: new O(d, n)
1638
1625
  };
1639
1626
  } else {
1640
- const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Pt(await (async () => new Promise((h, C) => {
1627
+ const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Yt(await (async () => new Promise((h, C) => {
1641
1628
  if (!l) {
1642
1629
  C("Undefined vector silent step source");
1643
1630
  return;
@@ -1648,7 +1635,7 @@ class ft {
1648
1635
  }))()), E = {
1649
1636
  stepName: this.configuration.stepName,
1650
1637
  id: J(),
1651
- cachedObjectURL: await ye(w.svg),
1638
+ cachedObjectURL: await Me(w.svg),
1652
1639
  src: l,
1653
1640
  svg: w.svg,
1654
1641
  colors: w.colors,
@@ -1676,7 +1663,7 @@ class ft {
1676
1663
  }
1677
1664
  async trigger() {
1678
1665
  if (!this.configuration.data.regions)
1679
- throw new Pe(this.configuration, "Missing regions.");
1666
+ throw new xe(this.configuration, "Missing regions.");
1680
1667
  if (this.configuration.type === y.SilentIllustration) {
1681
1668
  const e = this.configuration.data.regions.map(this.processRegion);
1682
1669
  return Promise.all(e);
@@ -1709,7 +1696,7 @@ const Da = async (c) => {
1709
1696
  throw console.error(t), new ke("Failed to shorten URL, see console.");
1710
1697
  }
1711
1698
  };
1712
- class Zt {
1699
+ class qt {
1713
1700
  async poll() {
1714
1701
  try {
1715
1702
  if (await this.predicate()) {
@@ -1754,10 +1741,10 @@ class Fa {
1754
1741
  if (!t && A !== "" && a === "") {
1755
1742
  const g = async () => {
1756
1743
  var Q, m;
1757
- const u = (await Kt([A]))[0], f = (m = (Q = u == null ? void 0 : u.versions) == null ? void 0 : Q.find((p) => p.name === "mpeg4")) == null ? void 0 : m.link;
1744
+ const u = (await zt([A]))[0], f = (m = (Q = u == null ? void 0 : u.versions) == null ? void 0 : Q.find((p) => p.name === "mpeg4")) == null ? void 0 : m.link;
1758
1745
  return { asset: u, link: f };
1759
1746
  }, B = await new Promise((u, f) => {
1760
- new Zt(
1747
+ new qt(
1761
1748
  async () => !!(await g()).link,
1762
1749
  async () => {
1763
1750
  const Q = await g();
@@ -1783,7 +1770,7 @@ class Fa {
1783
1770
  throw new ke("Cannot create QR code, URL too long.");
1784
1771
  const E = await Da(w);
1785
1772
  if (s(E), !i.data || !i.data.regions)
1786
- throw new Pe(i, "Missing regions.");
1773
+ throw new xe(i, "Missing regions.");
1787
1774
  const h = await this.regionElements(i), C = await this.command(E, h, n, i.stepName);
1788
1775
  C && (C.command && n.getCommandDispatcher()(C.command), C.followup && await C.followup()), await n.setSelectionsAndElements(i.stepName, [], h, async () => {
1789
1776
  n.updateStorage(i.stepName, {
@@ -1799,7 +1786,7 @@ class Fa {
1799
1786
  return e.data.regions.map(t);
1800
1787
  }
1801
1788
  async command(e, t, A, a) {
1802
- const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await Ot(e, { type: "svg" }))}`, o = t.map((r) => {
1789
+ const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await Lt(e, { type: "svg" }))}`, o = t.map((r) => {
1803
1790
  const g = r.region, B = n.find((l) => l.panelId === (g == null ? void 0 : g.panelId));
1804
1791
  if (!B && g)
1805
1792
  throw new z(g);
@@ -1923,7 +1910,7 @@ class Ma {
1923
1910
  selectImage(e, t, A) {
1924
1911
  return A.setEditedStatus(e.stepName, !0), (t.fileLink || "").endsWith("pdf") ? new Promise((n) => {
1925
1912
  A.addPoller(
1926
- new Zt(
1913
+ new qt(
1927
1914
  async () => {
1928
1915
  var r;
1929
1916
  const s = (r = (await v.getLocalOrFromServer(t.key || "")).versions) == null ? void 0 : r.find((g) => g.name === "svg");
@@ -1982,7 +1969,7 @@ class Ma {
1982
1969
  }
1983
1970
  async loadPatternFromString(e, t) {
1984
1971
  if (e.endsWith("svg")) {
1985
- const A = await IA(e), a = A.width, n = A.height, i = {
1972
+ const A = await pA(e), a = A.width, n = A.height, i = {
1986
1973
  src: e,
1987
1974
  width: a,
1988
1975
  height: n,
@@ -1990,7 +1977,7 @@ class Ma {
1990
1977
  };
1991
1978
  ht.set(e, i), t.setPatternData(i);
1992
1979
  } else {
1993
- const A = await St(e, !0), a = await fA(A), n = {
1980
+ const A = await IA(e, !0), a = await fA(A), n = {
1994
1981
  src: e,
1995
1982
  width: a.width,
1996
1983
  height: a.height,
@@ -2086,7 +2073,7 @@ class Ma {
2086
2073
  }), A.markUpdateCompleted(n);
2087
2074
  }
2088
2075
  }
2089
- const De = new Ma();
2076
+ const Fe = new Ma();
2090
2077
  class Sa {
2091
2078
  async getIllustrationBody(e) {
2092
2079
  return new Promise((t) => {
@@ -2123,7 +2110,7 @@ class Sa {
2123
2110
  if (A.length === 0)
2124
2111
  return [];
2125
2112
  try {
2126
- return Me(
2113
+ return Se(
2127
2114
  A[0].id,
2128
2115
  t.getAllLayoutData()
2129
2116
  ).colors;
@@ -2188,10 +2175,10 @@ class Sa {
2188
2175
  const i = {};
2189
2176
  for (const [B, l] of n.entries())
2190
2177
  i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
2191
- const s = DA(e, t, A, i), o = await ye(s), r = [];
2178
+ const s = DA(e, t, A, i), o = await Me(s), r = [];
2192
2179
  for (const B of a) {
2193
2180
  for (const [l, d] of n.entries())
2194
- r.push(new Ve(B, l, d));
2181
+ r.push(new je(B, l, d));
2195
2182
  r.push(new FA(B, s, o));
2196
2183
  }
2197
2184
  return new G(r);
@@ -2200,7 +2187,7 @@ class Sa {
2200
2187
  var d, w;
2201
2188
  if (t.length === 0)
2202
2189
  return;
2203
- const i = Me(
2190
+ const i = Se(
2204
2191
  t[0].id,
2205
2192
  a().map((E) => E.layoutState)
2206
2193
  ), s = { ...i.colors }, o = {};
@@ -2241,7 +2228,7 @@ class Sa {
2241
2228
  async selectVariantCommand(e, t, A, a, n) {
2242
2229
  var C;
2243
2230
  if (!e.data || !e.data.regions)
2244
- throw new Pe(e, "Missing regions.");
2231
+ throw new xe(e, "Missing regions.");
2245
2232
  a(!0);
2246
2233
  const i = A.map((u) => new $(u.id));
2247
2234
  n.setMandatoryFulfilled(e.stepName, !1);
@@ -2251,7 +2238,7 @@ class Sa {
2251
2238
  const o = s.fileLink;
2252
2239
  if (!o)
2253
2240
  throw new Be(s);
2254
- const r = await Pt(await this.getIllustrationBody(o)), g = await ye(r.svg), B = (u) => {
2241
+ const r = await Yt(await this.getIllustrationBody(o)), g = await Me(r.svg), B = (u) => {
2255
2242
  const f = n.getLayouts().find((m) => m.panelId === u.panelId);
2256
2243
  if (!f)
2257
2244
  throw new z(u);
@@ -2299,12 +2286,12 @@ class Sa {
2299
2286
  };
2300
2287
  }
2301
2288
  }
2302
- const Fe = new Sa();
2289
+ const ye = new Sa();
2303
2290
  class Ya {
2304
2291
  async init(e, t, A) {
2305
2292
  const a = e.option;
2306
2293
  if (!a)
2307
- throw new Ye(e);
2294
+ throw new Pe(e);
2308
2295
  if (A)
2309
2296
  await this.reload(e, t, A);
2310
2297
  else {
@@ -2322,7 +2309,7 @@ class Ya {
2322
2309
  A.serializableWorkflow.steps
2323
2310
  ), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
2324
2311
  if (!o)
2325
- throw new Ye(e);
2312
+ throw new Pe(e);
2326
2313
  if (a != null && a.selectedVariants) {
2327
2314
  const g = a.selectedVariants[0].id;
2328
2315
  if (g) {
@@ -2373,12 +2360,12 @@ class Ya {
2373
2360
  };
2374
2361
  }
2375
2362
  }
2376
- const $t = new Ya();
2363
+ const Zt = new Ya();
2377
2364
  class Pa {
2378
2365
  async init(e, t, A) {
2379
2366
  const a = e.option;
2380
2367
  if (!a)
2381
- throw new Ye(e);
2368
+ throw new Pe(e);
2382
2369
  if (A)
2383
2370
  await this.reload(e, t, A);
2384
2371
  else {
@@ -2459,7 +2446,7 @@ class Pa {
2459
2446
  };
2460
2447
  }
2461
2448
  }
2462
- const _t = new Pa();
2449
+ const $t = new Pa();
2463
2450
  class xa {
2464
2451
  async init(e, t, A) {
2465
2452
  if (A)
@@ -2562,7 +2549,7 @@ class xa {
2562
2549
  }
2563
2550
  if (!/^$|^[a-zA-Z0-9 ]+$/.test(t))
2564
2551
  return a("Unsupported characters."), !1;
2565
- const n = qe(t.toLowerCase());
2552
+ const n = Xe(t.toLowerCase());
2566
2553
  for (const i of n)
2567
2554
  for (const s in A) {
2568
2555
  const o = A[s].toLowerCase().replace(/\s/g, "");
@@ -2664,7 +2651,7 @@ class Ha {
2664
2651
  };
2665
2652
  }
2666
2653
  }
2667
- const eA = new Ha();
2654
+ const _t = new Ha();
2668
2655
  class Ra {
2669
2656
  async init(e, t, A) {
2670
2657
  const a = e.option;
@@ -2723,7 +2710,7 @@ class Ra {
2723
2710
  };
2724
2711
  }
2725
2712
  }
2726
- const tA = new Ra();
2713
+ const eA = new Ra();
2727
2714
  class Ua {
2728
2715
  constructor() {
2729
2716
  this.shapeFillId = "spiff-fill-shape";
@@ -2743,14 +2730,14 @@ class Ua {
2743
2730
  const o = s.region;
2744
2731
  if (!a.find((g) => g.panelId === (o == null ? void 0 : o.panelId)))
2745
2732
  throw new z(o);
2746
- return new Ve(s.id, this.shapeFillId, e);
2733
+ return new je(s.id, this.shapeFillId, e);
2747
2734
  }).filter((s) => !!s);
2748
2735
  A.getCommandDispatcher()(new G(i)), A.updateStorage(t.stepName, { colour: e });
2749
2736
  }
2750
2737
  async init(e, t, A) {
2751
2738
  const a = e.option;
2752
2739
  if (!a)
2753
- throw new Ye(e);
2740
+ throw new Pe(e);
2754
2741
  if (A)
2755
2742
  await this.reload(e, t, A);
2756
2743
  else {
@@ -2815,7 +2802,7 @@ class Ua {
2815
2802
  if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
2816
2803
  throw new z(l);
2817
2804
  const w = s();
2818
- return new Ve(B.id, this.shapeFillId, w);
2805
+ return new je(B.id, this.shapeFillId, w);
2819
2806
  }, g = A.map(r).filter((B) => !!B);
2820
2807
  return {
2821
2808
  command: new G(g),
@@ -2919,17 +2906,17 @@ class Ga {
2919
2906
  );
2920
2907
  }
2921
2908
  }
2922
- const va = new Ga(), Te = 30;
2923
- class Ne extends Error {
2909
+ const va = new Ga(), Oe = 30;
2910
+ class He extends Error {
2924
2911
  constructor(e) {
2925
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Ne.name;
2912
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = He.name;
2926
2913
  }
2927
2914
  }
2928
2915
  const ka = ["‘", "’", "“", "”", `
2929
2916
  `];
2930
- class He extends Error {
2917
+ class Re extends Error {
2931
2918
  constructor(e) {
2932
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = He.name;
2919
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Re.name;
2933
2920
  }
2934
2921
  }
2935
2922
  class ba {
@@ -2951,7 +2938,7 @@ class ba {
2951
2938
  }, this.textAlign = (e) => e.vertical ? "center" : e.textAlign || "center", this.getErrorsForText = (e, t, A) => {
2952
2939
  const a = [];
2953
2940
  t.data && t.data.maxLength && e.length > t.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
2954
- const n = A.getProfanities(), i = qe(e.toLowerCase());
2941
+ const n = A.getProfanities(), i = Xe(e.toLowerCase());
2955
2942
  for (const o of i)
2956
2943
  for (const r in n) {
2957
2944
  const g = n[r].toLowerCase().replace(/\s/g, "");
@@ -2972,7 +2959,7 @@ class ba {
2972
2959
  if (A)
2973
2960
  await this.reload(e, t, A);
2974
2961
  else {
2975
- const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, g = r ? await We(r) : void 0, B = g ? {
2962
+ const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, g = r ? await Ve(r) : void 0, B = g ? {
2976
2963
  src: g.src,
2977
2964
  height: g.height,
2978
2965
  width: g.width,
@@ -3005,7 +2992,7 @@ class ba {
3005
2992
  return null;
3006
2993
  }
3007
2994
  findLayoutElements(e, t) {
3008
- return e.getRegionElements(t.stepName).map((n) => Me(n.id, e.getAllLayoutData()));
2995
+ return e.getRegionElements(t.stepName).map((n) => Se(n.id, e.getAllLayoutData()));
3009
2996
  }
3010
2997
  /**
3011
2998
  * Get the colors that can be used for a given text step.
@@ -3067,7 +3054,7 @@ class ba {
3067
3054
  })) == null ? void 0 : a.filter((i) => !!i)) || [];
3068
3055
  return Promise.all(
3069
3056
  n.map(async (i) => {
3070
- const s = await We(i);
3057
+ const s = await Ve(i);
3071
3058
  return {
3072
3059
  src: i,
3073
3060
  width: s.width,
@@ -3091,13 +3078,13 @@ class ba {
3091
3078
  fillImage: t
3092
3079
  });
3093
3080
  for (const r of A) {
3094
- const g = new Le(r.id, t);
3081
+ const g = new Je(r.id, t);
3095
3082
  n(g);
3096
3083
  }
3097
3084
  }
3098
3085
  getProcessedInput(e, t, A) {
3099
3086
  const a = A ? e : this.injectReplaceableText(e, t);
3100
- return Xe(a, {
3087
+ return We(a, {
3101
3088
  vertical: t.vertical,
3102
3089
  uppercase: t.uppercase
3103
3090
  });
@@ -3116,7 +3103,7 @@ class ba {
3116
3103
  for (const l of t) {
3117
3104
  if (!l.fontData)
3118
3105
  throw new b("Failed to resolve font data for text.");
3119
- const [d, w] = fe(
3106
+ const [d, w] = De(
3120
3107
  l.fontSize,
3121
3108
  l.fontData,
3122
3109
  { left: l.x, top: l.y, width: l.width, height: l.height, rotation: l.rotation, panelId: "" },
@@ -3225,12 +3212,12 @@ class ba {
3225
3212
  if (a.length > 0) {
3226
3213
  const l = a.map((E) => new Et(E.id, g));
3227
3214
  if (o) {
3228
- const E = a.map((h) => new Le(h.id, o));
3215
+ const E = a.map((h) => new Je(h.id, o));
3229
3216
  l.push(...E);
3230
3217
  }
3231
3218
  const d = await this.changeInputTextWithRegion(
3232
3219
  e,
3233
- e.data.size || Te,
3220
+ e.data.size || Oe,
3234
3221
  g,
3235
3222
  A.text || "",
3236
3223
  A,
@@ -3255,7 +3242,7 @@ class ba {
3255
3242
  n
3256
3243
  ), d = await this.changeInputTextWithRegion(
3257
3244
  e,
3258
- e.data.size || Te,
3245
+ e.data.size || Oe,
3259
3246
  g,
3260
3247
  ((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
3261
3248
  A,
@@ -3266,7 +3253,7 @@ class ba {
3266
3253
  ), w = l.flatMap((h) => h.commands);
3267
3254
  if (o) {
3268
3255
  const h = l.map(
3269
- (C) => new Le(C.regionElement.id, o)
3256
+ (C) => new Je(C.regionElement.id, o)
3270
3257
  );
3271
3258
  w.push(...h);
3272
3259
  }
@@ -3294,7 +3281,7 @@ class ba {
3294
3281
  const d = i.getLayouts().find((h) => h.panelId === B.panelId), w = J();
3295
3282
  try {
3296
3283
  if (!d)
3297
- throw new He("Failed to find layout for region: " + B.panelId);
3284
+ throw new Re("Failed to find layout for region: " + B.panelId);
3298
3285
  const h = A.colorOption;
3299
3286
  let C;
3300
3287
  if (h && h.variants) {
@@ -3311,7 +3298,7 @@ class ba {
3311
3298
  stepName: e,
3312
3299
  align: this.textAlign(A),
3313
3300
  fill: n.color ? n.color : f,
3314
- fontSize: A.size || Te,
3301
+ fontSize: A.size || Oe,
3315
3302
  fontData: a,
3316
3303
  id: w,
3317
3304
  layer: B.layer,
@@ -3333,7 +3320,7 @@ class ba {
3333
3320
  }, m = [], p = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
3334
3321
  if (!Q.fontData)
3335
3322
  throw new b("Failed to resolve font data for text.");
3336
- const [F, M] = fe(
3323
+ const [F, M] = De(
3337
3324
  Q.fontSize,
3338
3325
  Q.fontData,
3339
3326
  {
@@ -3361,10 +3348,10 @@ class ba {
3361
3348
  fontData: a
3362
3349
  };
3363
3350
  } catch (h) {
3364
- throw console.log(h), new Ne("Error adding font to region");
3351
+ throw console.log(h), new He("Error adding font to region");
3365
3352
  }
3366
3353
  }, g = await Promise.all(A.regions.map(r)).catch((B) => {
3367
- throw B instanceof Ne ? (va.setLatestToast("Failed to load font.", Re.Error), B) : B instanceof He ? B : new Error(B);
3354
+ throw B instanceof He ? (va.setLatestToast("Failed to load font.", Ue.Error), B) : B instanceof Re ? B : new Error(B);
3368
3355
  });
3369
3356
  return await i.setSelectionsAndElements(
3370
3357
  e,
@@ -3394,7 +3381,7 @@ class ba {
3394
3381
  const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), w = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
3395
3382
  for (const Q of d)
3396
3383
  if (Q.region) {
3397
- const [m, p] = fe(
3384
+ const [m, p] = De(
3398
3385
  t,
3399
3386
  A,
3400
3387
  Q.region,
@@ -3406,7 +3393,7 @@ class ba {
3406
3393
  const C = (() => {
3407
3394
  if (e.data && e.data.maxLength && l.length > e.data.maxLength)
3408
3395
  return g && g(!0), { info: "0" };
3409
- const Q = i.getProfanities(), m = qe(l.toLowerCase());
3396
+ const Q = i.getProfanities(), m = Xe(l.toLowerCase());
3410
3397
  for (const p of m)
3411
3398
  for (const I in Q) {
3412
3399
  const F = Q[I].toLowerCase().replace(/\s/g, "");
@@ -4715,7 +4702,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
4715
4702
  const e = R("use");
4716
4703
  return e.setAttribute("xlink:href", c), e.setAttribute("href", c), e;
4717
4704
  };
4718
- function AA(c) {
4705
+ function tA(c) {
4719
4706
  const e = Oa(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(c) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
4720
4707
  return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
4721
4708
  }
@@ -4723,20 +4710,20 @@ const za = (c, e, t) => {
4723
4710
  const A = R("g");
4724
4711
  c.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
4725
4712
  };
4726
- function aA(c, e, t) {
4713
+ function AA(c, e, t) {
4727
4714
  const A = J();
4728
4715
  za(e, t, `bgdef-${A}`), c.appendChild(Ta(`#bgdef-${A}`));
4729
4716
  }
4730
- const nA = (c, e, t, A) => {
4731
- const a = he("filter");
4717
+ const aA = (c, e, t, A) => {
4718
+ const a = Ee("filter");
4732
4719
  a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
4733
- const n = he("feOffset");
4720
+ const n = Ee("feOffset");
4734
4721
  a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${e}`);
4735
- const i = he("feGaussianBlur");
4722
+ const i = Ee("feGaussianBlur");
4736
4723
  a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
4737
- const s = he("feBlend");
4724
+ const s = Ee("feBlend");
4738
4725
  return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
4739
- }, iA = (c) => {
4726
+ }, nA = (c) => {
4740
4727
  let e = c;
4741
4728
  return e = e.replace(/feoffset/gi, "feOffset"), e = e.replace(/fegaussianblur/gi, "feGaussianBlur"), e = e.replace(/feblend/gi, "feBlend"), e = e.replace(/lineargradient/gi, "linearGradient"), e = e.replace(/stddeviation/gi, "stdDeviation"), e;
4742
4729
  };
@@ -4883,7 +4870,7 @@ class ja extends st {
4883
4870
  brandSvg(e, t) {
4884
4871
  const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
4885
4872
  const m = R("g"), p = R("defs");
4886
- m.appendChild(p), p.appendChild(nA(3, 7, 4, "shadow"));
4873
+ m.appendChild(p), p.appendChild(aA(3, 7, 4, "shadow"));
4887
4874
  const I = R("g");
4888
4875
  m.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
4889
4876
  const F = R("g");
@@ -4892,11 +4879,11 @@ class ja extends st {
4892
4879
  m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
4893
4880
  const Y = R("g");
4894
4881
  return m.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new ct(m).transform(([N, H]) => [N, H + (n / 2 - N) ** 2 / (n * 2.9)]), m;
4895
- }, [o, r, g] = AA(t);
4882
+ }, [o, r, g] = tA(t);
4896
4883
  if (!o)
4897
4884
  return "";
4898
4885
  const B = R("defs");
4899
- o.appendChild(B), aA(o, B, t);
4886
+ o.appendChild(B), AA(o, B, t);
4900
4887
  const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = R("g");
4901
4888
  o.appendChild(h), h.setAttribute("transform", `translate(${w} ${E}) rotate(-21)`);
4902
4889
  const C = ot(l, d);
@@ -4906,7 +4893,7 @@ class ja extends st {
4906
4893
  const f = s();
4907
4894
  u.appendChild(f);
4908
4895
  const Q = at(i);
4909
- return rt(u, Q, l, d), iA(o.outerHTML);
4896
+ return rt(u, Q, l, d), nA(o.outerHTML);
4910
4897
  }
4911
4898
  }
4912
4899
  const Va = "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==";
@@ -4937,11 +4924,11 @@ class Wa extends st {
4937
4924
  N,
4938
4925
  H + (s / 3 - N) ** 2 / s * this.indicator(N < s / 3)
4939
4926
  ]), S.transform(([N, H]) => [N - (i - H) * (s - N) / 800, H]), I;
4940
- }, [g, B, l] = AA(t);
4927
+ }, [g, B, l] = tA(t);
4941
4928
  if (!g)
4942
4929
  return "";
4943
4930
  const d = R("defs");
4944
- g.appendChild(d), aA(g, d, t);
4931
+ g.appendChild(d), AA(g, d, t);
4945
4932
  let w, E, h, C;
4946
4933
  A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22, C = B * 0.32) : (w = B * 0.22 * (1 + 0.1), E = l * 0.8, h = l * 0.067, C = B * 0.33);
4947
4934
  const u = R("g");
@@ -4973,7 +4960,7 @@ class qa extends st {
4973
4960
  const f = R("g");
4974
4961
  f.classList.add("module-text-group");
4975
4962
  const Q = R("defs");
4976
- f.appendChild(Q), Q.appendChild(nA(0, 2, 2, "shadow"));
4963
+ f.appendChild(Q), Q.appendChild(aA(0, 2, 2, "shadow"));
4977
4964
  const m = R("path");
4978
4965
  m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), Q.appendChild(m);
4979
4966
  const p = R("g");
@@ -4997,10 +4984,10 @@ class qa extends st {
4997
4984
  const C = B();
4998
4985
  h.appendChild(C);
4999
4986
  const u = at(g);
5000
- return rt(h, u, t.height, t.width, 0.35, 0.65), iA(l.outerHTML);
4987
+ return rt(h, u, t.height, t.width, 0.35, 0.65), nA(l.outerHTML);
5001
4988
  }
5002
4989
  }
5003
- async function sA(c) {
4990
+ async function iA(c) {
5004
4991
  if (c === "Favourites")
5005
4992
  return new ja();
5006
4993
  if (c === "Maltesers") {
@@ -5011,9 +4998,9 @@ async function sA(c) {
5011
4998
  return new qa();
5012
4999
  throw new b(`Failed to resolve Module, Module ${c} not found`);
5013
5000
  }
5014
- var Re = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(Re || {});
5001
+ var Ue = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(Ue || {});
5015
5002
  const Za = 1e3;
5016
- class Ft extends Xt {
5003
+ class Ft extends Wt {
5017
5004
  constructor(e) {
5018
5005
  super(), this.createdAt = /* @__PURE__ */ new Date(), this.update = e;
5019
5006
  }
@@ -5027,7 +5014,7 @@ class Ft extends Xt {
5027
5014
  }
5028
5015
  class $a {
5029
5016
  constructor(e, t, A, a, n, i, s, o, r, g, B = !1, l, d = !1, w = !1, E = !1) {
5030
- this.workflowStatePromiseQueue = new qt(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
5017
+ this.workflowStatePromiseQueue = new Xt(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
5031
5018
  var u;
5032
5019
  if (!this.previewService)
5033
5020
  return;
@@ -5287,7 +5274,7 @@ class $a {
5287
5274
  ...this.storage,
5288
5275
  [e]: { ...this.storage[e], ...t }
5289
5276
  };
5290
- if (!Lt(A, this.storage)) {
5277
+ if (!Jt(A, this.storage)) {
5291
5278
  this.storage = A;
5292
5279
  const a = new ut(this.constructSerializableWorkflow());
5293
5280
  this.commandContext.apply(a, !0), this.onStepSpecificStorageChange(e), this.onStorageChange();
@@ -5341,8 +5328,7 @@ class $a {
5341
5328
  const e = this.getCommandContext().getState();
5342
5329
  if (!e)
5343
5330
  throw new b("Attempted to serialize state before it was initialized.");
5344
- const t = this.dehydrateState(le(e.transaction));
5345
- return console.log(t), { transaction: JSON.stringify(t) };
5331
+ return { transaction: JSON.stringify(this.dehydrateState(le(e.transaction))) };
5346
5332
  }
5347
5333
  dehydrateState(e) {
5348
5334
  for (const t of Object.values(e.layouts).map((A) => A.elements).flat())
@@ -5492,38 +5478,38 @@ class $a {
5492
5478
  r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
5493
5479
  frameService: r
5494
5480
  }, A.push(
5495
- De.init(o, this, this.reloadedState)
5481
+ Fe.init(o, this, this.reloadedState)
5496
5482
  );
5497
5483
  }
5498
5484
  break;
5499
5485
  case y.Illustration:
5500
5486
  A.push(
5501
- Fe.init(o, this, this.reloadedState)
5487
+ ye.init(o, this, this.reloadedState)
5502
5488
  );
5503
5489
  break;
5504
5490
  case y.Material:
5505
5491
  A.push(
5506
- $t.init(o, this, this.reloadedState)
5492
+ Zt.init(o, this, this.reloadedState)
5507
5493
  );
5508
5494
  break;
5509
5495
  case y.Model:
5510
- A.push(_t.init(o, this, this.reloadedState));
5496
+ A.push($t.init(o, this, this.reloadedState));
5511
5497
  break;
5512
5498
  case y.Module:
5513
5499
  this.stepSpecificServices[o.stepName] = {
5514
- module: await sA(o.data.module)
5500
+ module: await iA(o.data.module)
5515
5501
  }, A.push(
5516
5502
  Na.init(o, this, this.reloadedState)
5517
5503
  );
5518
5504
  break;
5519
5505
  case y.Picture:
5520
5506
  A.push(
5521
- eA.init(o, this, this.reloadedState)
5507
+ _t.init(o, this, this.reloadedState)
5522
5508
  );
5523
5509
  break;
5524
5510
  case y.Question:
5525
5511
  A.push(
5526
- tA.init(o, this, this.reloadedState)
5512
+ eA.init(o, this, this.reloadedState)
5527
5513
  );
5528
5514
  break;
5529
5515
  case y.Shape:
@@ -5681,7 +5667,7 @@ class X {
5681
5667
  return this.variantData.enabled;
5682
5668
  }
5683
5669
  }
5684
- const oA = class Ze {
5670
+ const sA = class qe {
5685
5671
  constructor(e, t) {
5686
5672
  this.manager = e, this.step = t;
5687
5673
  }
@@ -5691,13 +5677,13 @@ const oA = class Ze {
5691
5677
  * @param value The new value
5692
5678
  */
5693
5679
  setUpdateState(e) {
5694
- Ze.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
5680
+ qe.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
5695
5681
  }
5696
5682
  /**
5697
5683
  * @returns Gets the current update state of this step. All step handles for this step will see this value.
5698
5684
  */
5699
5685
  getUpdateState() {
5700
- return !!Ze.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
5686
+ return !!qe.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
5701
5687
  }
5702
5688
  /**
5703
5689
  * Gets the currently selected variant, or undefined if no variant is selected.
@@ -5777,7 +5763,9 @@ const oA = class Ze {
5777
5763
  setOverrideGlobalPropertyConfiguration(e, t) {
5778
5764
  var a;
5779
5765
  const A = ((a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.overrideGlobalConfigurations) ?? {};
5780
- A[e.toString()] = t, this.manager.updateStorage(this.step.stepName, { overrideGlobalConfigurations: A });
5766
+ this.manager.updateStorage(this.step.stepName, {
5767
+ overrideGlobalConfigurations: { ...A, [e.toString()]: t }
5768
+ });
5781
5769
  }
5782
5770
  /**
5783
5771
  * Retrieves the identifiers of all of the configured aspects for the specified Global Property Configuration.
@@ -5798,8 +5786,8 @@ const oA = class Ze {
5798
5786
  e ? a && e.executeCameraAnimation(a) : console.warn("No preview service available, cannot execute camera animations."), t ? A && t.executeAnimation(A) : console.warn("No model container available, cannot execute model animations.");
5799
5787
  }
5800
5788
  };
5801
- oA.updateState = /* @__PURE__ */ new Map();
5802
- let W = oA;
5789
+ sA.updateState = /* @__PURE__ */ new Map();
5790
+ let W = sA;
5803
5791
  class _a extends W {
5804
5792
  constructor(e, t) {
5805
5793
  super(e, t);
@@ -5811,7 +5799,7 @@ class _a extends W {
5811
5799
  */
5812
5800
  async selectVariant(e) {
5813
5801
  if (!this.getUpdateState() && this.getCurrentVariant() !== e)
5814
- return Fe.selectVariant(
5802
+ return ye.selectVariant(
5815
5803
  this.step,
5816
5804
  e.getResource(),
5817
5805
  this.manager.getRegionElements(this.step.stepName) || [],
@@ -5827,7 +5815,7 @@ class _a extends W {
5827
5815
  const e = this.manager.getRegionElements(this.step.stepName) || [];
5828
5816
  if (e.length !== 0)
5829
5817
  try {
5830
- return Me(e[0].id, this.manager.getAllLayoutData()).colors;
5818
+ return Se(e[0].id, this.manager.getAllLayoutData()).colors;
5831
5819
  } catch (t) {
5832
5820
  console.error(t);
5833
5821
  }
@@ -5837,7 +5825,7 @@ class _a extends W {
5837
5825
  */
5838
5826
  setColor(e, t) {
5839
5827
  const A = /* @__PURE__ */ new Map();
5840
- return A.set(e, t), Fe.changeColors(
5828
+ return A.set(e, t), ye.changeColors(
5841
5829
  this.step,
5842
5830
  this.manager.getRegionElements(this.step.stepName),
5843
5831
  this.manager,
@@ -5849,7 +5837,7 @@ class _a extends W {
5849
5837
  return this.step.data.colorOption;
5850
5838
  }
5851
5839
  getAvailableColors() {
5852
- return this.step.data.colorPickerEnabled ? Fe.availableColors(this.step, this.manager) : Promise.resolve([]);
5840
+ return this.step.data.colorPickerEnabled ? ye.availableColors(this.step, this.manager) : Promise.resolve([]);
5853
5841
  }
5854
5842
  isColorPickerEnabled() {
5855
5843
  return this.step.data.colorPickerEnabled;
@@ -5860,7 +5848,7 @@ class en extends W {
5860
5848
  super(e, t);
5861
5849
  }
5862
5850
  selectVariant(e) {
5863
- return $t.selectVariant(
5851
+ return Zt.selectVariant(
5864
5852
  this.step,
5865
5853
  e.getResource(),
5866
5854
  this.manager,
@@ -5873,7 +5861,7 @@ class tn extends W {
5873
5861
  super(e, t);
5874
5862
  }
5875
5863
  selectVariant(e) {
5876
- return _t.selectVariant(
5864
+ return $t.selectVariant(
5877
5865
  this.step,
5878
5866
  e.getResource(),
5879
5867
  this.manager,
@@ -5891,7 +5879,7 @@ class An extends W {
5891
5879
  * @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
5892
5880
  */
5893
5881
  selectVariant(e) {
5894
- return eA.selectVariant(
5882
+ return _t.selectVariant(
5895
5883
  this.step,
5896
5884
  e.getResource(),
5897
5885
  this.manager,
@@ -5906,7 +5894,7 @@ class an extends W {
5906
5894
  async selectVariant(e) {
5907
5895
  if (!e.getId())
5908
5896
  throw new Error("Unable to select variant with a null ID");
5909
- await tA.selectVariant(this.step, e.getId(), this.manager);
5897
+ await eA.selectVariant(this.step, e.getId(), this.manager);
5910
5898
  }
5911
5899
  /**
5912
5900
  * The way that this step expects to be rendered.
@@ -5997,7 +5985,7 @@ class sn extends W {
5997
5985
  ...this.manager.getInformationResults(),
5998
5986
  {
5999
5987
  message: "An issue has occured with test",
6000
- messageType: Re.Error,
5988
+ messageType: Ue.Error,
6001
5989
  stepID: this.step.stepName
6002
5990
  }
6003
5991
  ]);
@@ -6092,7 +6080,7 @@ class sn extends W {
6092
6080
  ...B,
6093
6081
  {
6094
6082
  message: `${l} - ${this.step.stepTitle}`,
6095
- messageType: Re.Error,
6083
+ messageType: Ue.Error,
6096
6084
  stepID: this.step.stepName
6097
6085
  }
6098
6086
  ]);
@@ -6163,7 +6151,7 @@ class on extends W {
6163
6151
  return this.step.data.content;
6164
6152
  }
6165
6153
  }
6166
- class Ce {
6154
+ class Qe {
6167
6155
  static get(e, t) {
6168
6156
  switch (t.type) {
6169
6157
  case y.Information:
@@ -6189,7 +6177,7 @@ class Ce {
6189
6177
  }
6190
6178
  }
6191
6179
  }
6192
- const rA = D`
6180
+ const oA = D`
6193
6181
  fragment CreateDesignTransaction on Transaction {
6194
6182
  id
6195
6183
  designName
@@ -6210,7 +6198,7 @@ const rA = D`
6210
6198
  }
6211
6199
  }
6212
6200
  `, rn = D`
6213
- ${rA}
6201
+ ${oA}
6214
6202
  mutation CreateDesign(
6215
6203
  $name: String!
6216
6204
  $layouts: [LayoutInput]!
@@ -6242,7 +6230,7 @@ const rA = D`
6242
6230
  }
6243
6231
  }
6244
6232
  `, cn = D`
6245
- ${rA}
6233
+ ${oA}
6246
6234
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
6247
6235
  designCreateMany(inputs: $inputs) {
6248
6236
  id
@@ -6291,7 +6279,7 @@ const rA = D`
6291
6279
  }))
6292
6280
  }
6293
6281
  })).data) == null ? void 0 : t.designCreateMany;
6294
- }, $e = (c, e, t) => {
6282
+ }, Ze = (c, e, t) => {
6295
6283
  const A = (n) => {
6296
6284
  const i = {};
6297
6285
  if (n.type === "Frame") {
@@ -6331,7 +6319,7 @@ const rA = D`
6331
6319
  const a = {};
6332
6320
  let n;
6333
6321
  if (t) {
6334
- n = $e(t, e, !1);
6322
+ n = Ze(t, e, !1);
6335
6323
  for (const i of Object.keys(n))
6336
6324
  a[i] = {
6337
6325
  value: n[i],
@@ -6360,7 +6348,7 @@ const rA = D`
6360
6348
  };
6361
6349
  }
6362
6350
  return a;
6363
- }, cA = (c, e, t, A, a, n, i, s) => {
6351
+ }, rA = (c, e, t, A, a, n, i, s) => {
6364
6352
  var w, E;
6365
6353
  const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = Bn(A, t, void 0, n), l = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
6366
6354
  additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
@@ -6383,7 +6371,7 @@ const rA = D`
6383
6371
  workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
6384
6372
  };
6385
6373
  return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
6386
- }, gA = async (c, e, t, A, a, n, i, s, o, r) => {
6374
+ }, cA = async (c, e, t, A, a, n, i, s, o, r) => {
6387
6375
  var F;
6388
6376
  await (async () => {
6389
6377
  var T;
@@ -6391,7 +6379,7 @@ const rA = D`
6391
6379
  return r;
6392
6380
  await c.outstandingRequestsPromise();
6393
6381
  const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), N = await x.getShadowGraphqlClient().query({
6394
- query: Vt,
6382
+ query: jt,
6395
6383
  variables: { ids: [a.id] },
6396
6384
  fetchPolicy: "no-cache",
6397
6385
  errorPolicy: "all",
@@ -6403,7 +6391,7 @@ const rA = D`
6403
6391
  N.errors && console.log("Server Error:", L.message);
6404
6392
  }), null) : H ?? null;
6405
6393
  })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
6406
- const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && $e(o, e, !0), h = o && $e(o, e, !1), C = async (M) => {
6394
+ const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && Ze(o, e, !0), h = o && Ze(o, e, !1), C = async (M) => {
6407
6395
  const Y = {};
6408
6396
  let S = 0;
6409
6397
  if (Object.keys(n).length > 0)
@@ -6412,12 +6400,12 @@ const rA = D`
6412
6400
  for (let L = 0; L < H.selections.length; ++L) {
6413
6401
  const V = H.selections[L];
6414
6402
  if (T && (!M || T.option && (T.option.variants || []).length > 1 && !T.data.hideSelectionInCart && !T.data.hideSelectionsInCart)) {
6415
- const Je = T.stepTitle;
6416
- Y[Je] ? Y[Je].push({
6403
+ const be = T.stepTitle;
6404
+ Y[be] ? Y[be].push({
6417
6405
  id: V.id || "",
6418
6406
  name: V.name,
6419
6407
  priceModifier: V.priceModifier
6420
- }) : Y[Je] = [
6408
+ }) : Y[be] = [
6421
6409
  {
6422
6410
  id: V.id || "",
6423
6411
  name: V.name,
@@ -6470,7 +6458,7 @@ const rA = D`
6470
6458
  }, dn = async (c, e, t, A, a, n, i, s, o, r, g) => {
6471
6459
  var C, u;
6472
6460
  o("workflow.steps.finish.finalize.buildingLayouts");
6473
- const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await gA(
6461
+ const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await cA(
6474
6462
  c,
6475
6463
  e,
6476
6464
  t,
@@ -6487,7 +6475,7 @@ const rA = D`
6487
6475
  throw new Error("Failed to create design");
6488
6476
  o("workflow.steps.finish.finalize.updatingTransaction");
6489
6477
  const h = w.transaction;
6490
- return cA(
6478
+ return rA(
6491
6479
  h,
6492
6480
  a,
6493
6481
  e,
@@ -6506,7 +6494,7 @@ const rA = D`
6506
6494
  const a = await (async () => {
6507
6495
  var r;
6508
6496
  const o = await x.getShadowGraphqlClient().query({
6509
- query: Vt,
6497
+ query: jt,
6510
6498
  variables: { ids: c.map((g) => g.transaction.id) },
6511
6499
  fetchPolicy: "no-cache",
6512
6500
  errorPolicy: "all"
@@ -6515,7 +6503,7 @@ const rA = D`
6515
6503
  o.errors && console.log("Server Error:", g.message);
6516
6504
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
6517
6505
  })(), n = await Promise.all(
6518
- c.map(async (s, o) => await gA(
6506
+ c.map(async (s, o) => await cA(
6519
6507
  s.workflowManager,
6520
6508
  s.workflow,
6521
6509
  s.layouts,
@@ -6535,7 +6523,7 @@ const rA = D`
6535
6523
  return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
6536
6524
  var l;
6537
6525
  const r = c[o], g = n[o], B = s.transaction;
6538
- return cA(
6526
+ return rA(
6539
6527
  B,
6540
6528
  r.product,
6541
6529
  r.workflow,
@@ -6615,7 +6603,7 @@ class hn {
6615
6603
  throw new b("Unexpected storage method requested");
6616
6604
  }
6617
6605
  }
6618
- const ze = new hn(), En = D`
6606
+ const Te = new hn(), En = D`
6619
6607
  mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
6620
6608
  transactionAddStakeholder(id: $id, details: $details, type: $type) {
6621
6609
  id
@@ -6631,11 +6619,11 @@ const ze = new hn(), En = D`
6631
6619
  }
6632
6620
  `;
6633
6621
  var un = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(un || {});
6634
- class Qe {
6622
+ class me {
6635
6623
  constructor(e, t) {
6636
6624
  var a;
6637
- if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = Jt(async () => {
6638
- await ze.getSavedDesignByTransaction(
6625
+ if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = bt(async () => {
6626
+ await Te.getSavedDesignByTransaction(
6639
6627
  this.getWorkflowManager().getTransaction().id
6640
6628
  ) && this.save();
6641
6629
  }, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, s) => {
@@ -6717,7 +6705,7 @@ class Qe {
6717
6705
  }
6718
6706
  let n = 2048;
6719
6707
  t && t <= 2048 && (n = t);
6720
- const i = Se(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
6708
+ const i = Ye(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
6721
6709
  var m;
6722
6710
  return ((m = Q.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
6723
6711
  }) || s[0], B = g.layoutState.layout.previewRegion ? {
@@ -6733,19 +6721,19 @@ class Qe {
6733
6721
  }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
6734
6722
  if (!d)
6735
6723
  throw new ke("Failed to obtain 2D context for preview image creation");
6736
- const w = xt(l.layoutState.layout, l.layoutState.elements, {
6724
+ const w = Pt(l.layoutState.layout, l.layoutState.elements, {
6737
6725
  renderingConfiguration: {
6738
- purpose: Nt.Print,
6726
+ purpose: xt.Print,
6739
6727
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
6740
6728
  }
6741
- }), E = Ht(w);
6742
- await (await bt.from(d, E, {
6729
+ }), E = Nt(w);
6730
+ await (await kt.from(d, E, {
6743
6731
  anonymousCrossOrigin: !0,
6744
6732
  ignoreDimensions: !1,
6745
- createCanvas: Se,
6746
- createImage: Rt,
6747
- DOMParser: Ut(),
6748
- fetch: Ue
6733
+ createCanvas: Ye,
6734
+ createImage: Ht,
6735
+ DOMParser: Rt(),
6736
+ fetch: $e
6749
6737
  })).render();
6750
6738
  const C = await this.getCanvasObjectURLAsync(i);
6751
6739
  return i.toDataURL(C);
@@ -6757,7 +6745,7 @@ class Qe {
6757
6745
  const A = this.cachedStepHandles.get(t.stepName);
6758
6746
  if (A)
6759
6747
  return A;
6760
- const a = Ce.get(this.getWorkflowManager(), t);
6748
+ const a = Qe.get(this.getWorkflowManager(), t);
6761
6749
  return this.cachedStepHandles.set(t.stepName, a), a;
6762
6750
  }
6763
6751
  getSteps() {
@@ -6854,10 +6842,10 @@ class Qe {
6854
6842
  getStepByName(e) {
6855
6843
  const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
6856
6844
  if (!(!t || !this.stepHasHandle(t)))
6857
- return Ce.get(this.getWorkflowManager(), t);
6845
+ return Qe.get(this.getWorkflowManager(), t);
6858
6846
  }
6859
6847
  getStepsByType(e) {
6860
- return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Ce.get(this.getWorkflowManager(), t));
6848
+ return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Qe.get(this.getWorkflowManager(), t));
6861
6849
  }
6862
6850
  getStepsByScene(e) {
6863
6851
  if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
@@ -6866,7 +6854,7 @@ class Qe {
6866
6854
  );
6867
6855
  return e.stepIds.map(
6868
6856
  (A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
6869
- ).filter((A) => this.stepHasHandle(A)).map((A) => Ce.get(this.getWorkflowManager(), A));
6857
+ ).filter((A) => this.stepHasHandle(A)).map((A) => Qe.get(this.getWorkflowManager(), A));
6870
6858
  }
6871
6859
  async attachCustomerDetails(e) {
6872
6860
  return this.assignCustomerDetails({ emailAddress: e.email });
@@ -6909,7 +6897,7 @@ class Qe {
6909
6897
  var o;
6910
6898
  if (e)
6911
6899
  return e;
6912
- const n = this.getWorkflowManager().getTransaction().id, s = (o = (await ze.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
6900
+ const n = this.getWorkflowManager().getTransaction().id, s = (o = (await Te.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : o.title;
6913
6901
  return s || "My design";
6914
6902
  })(),
6915
6903
  thumbnail: await this.createPreviewImage(!1, 256),
@@ -6920,7 +6908,7 @@ class Qe {
6920
6908
  workflowId: this.getWorkflowManager().getWorkflow().id,
6921
6909
  lastEdited: /* @__PURE__ */ new Date()
6922
6910
  };
6923
- return await ze.addDesign(a), a;
6911
+ return await Te.addDesign(a), a;
6924
6912
  }
6925
6913
  async copy() {
6926
6914
  var s;
@@ -7027,7 +7015,7 @@ const Cn = [
7027
7015
  ], Qn = async (c, e, t) => {
7028
7016
  const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", s = new URL(i + a);
7029
7017
  s.searchParams.append("video", Ct(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
7030
- const o = s.toString(), g = `data:image/svg+xml;base64,${Ct(await Ot(o, { type: "svg" }))}`, B = (d) => {
7018
+ const o = s.toString(), g = `data:image/svg+xml;base64,${Ct(await Lt(o, { type: "svg" }))}`, B = (d) => {
7031
7019
  const w = c.find((h) => h.panelId === d.panelId);
7032
7020
  if (!w)
7033
7021
  throw new z(d);
@@ -7052,7 +7040,7 @@ const Cn = [
7052
7040
  return console.error(d), [];
7053
7041
  }
7054
7042
  }, mn = async (c, e, t, A) => {
7055
- const a = t.data, n = a.assetUrl, i = await We(n);
7043
+ const a = t.data, n = a.assetUrl, i = await Ve(n);
7056
7044
  try {
7057
7045
  const s = HA(a, A.option);
7058
7046
  s && (e[A.stepName] = { selectedVariants: [s] });
@@ -7097,7 +7085,7 @@ const Cn = [
7097
7085
  },
7098
7086
  d
7099
7087
  ),
7100
- new Yt(l, i, w)
7088
+ new St(l, i, w)
7101
7089
  ];
7102
7090
  };
7103
7091
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
@@ -7118,10 +7106,10 @@ const Cn = [
7118
7106
  const s = (p = i.asset) == null ? void 0 : p.fileLink;
7119
7107
  if (!s)
7120
7108
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7121
- const o = await Z(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = Gt().parseFromString(B, "image/svg+xml").firstElementChild;
7109
+ const o = await Z(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = Ut().parseFromString(B, "image/svg+xml").firstElementChild;
7122
7110
  if (!w)
7123
7111
  return console.error("Failed to read SVG."), [];
7124
- vt(w);
7112
+ Gt(w);
7125
7113
  const E = {};
7126
7114
  UA(w, (I) => {
7127
7115
  Cn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
@@ -7136,7 +7124,7 @@ const Cn = [
7136
7124
  I.classList.add(N), E[N] = { browserValue: Y };
7137
7125
  }
7138
7126
  });
7139
- const C = kt().serializeToString(w), u = a.colors;
7127
+ const C = vt().serializeToString(w), u = a.colors;
7140
7128
  if (u) {
7141
7129
  for (const [I, F] of Object.entries(E))
7142
7130
  for (const M of Object.keys(u))
@@ -7174,7 +7162,7 @@ const Cn = [
7174
7162
  return console.error(I), [];
7175
7163
  }
7176
7164
  }, In = async (c, e, t) => {
7177
- const A = await sA(t.data.module), a = e.data, n = (s, o) => {
7165
+ const A = await iA(t.data.module), a = e.data, n = (s, o) => {
7178
7166
  const r = c.find((B) => B.panelId === o.panelId);
7179
7167
  if (!r)
7180
7168
  throw new z(o);
@@ -7337,10 +7325,10 @@ const Cn = [
7337
7325
  }
7338
7326
  else {
7339
7327
  const r = await Z(n, !0), g = (B) => {
7340
- const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", C = Gt().parseFromString(w, "image/svg+xml").firstElementChild;
7328
+ const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", C = Ut().parseFromString(w, "image/svg+xml").firstElementChild;
7341
7329
  if (!C)
7342
7330
  throw new oe("Failed to read SVG.");
7343
- return vt(C), kt().serializeToString(C);
7331
+ return Gt(C), vt().serializeToString(C);
7344
7332
  };
7345
7333
  o.forEach((B) => {
7346
7334
  const l = c.find((w) => w.panelId === B.panelId);
@@ -7391,7 +7379,7 @@ const Cn = [
7391
7379
  assetUrl: h,
7392
7380
  name: C.names.fullName.en
7393
7381
  };
7394
- })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = Xe(B, {
7382
+ })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = We(B, {
7395
7383
  vertical: A.data.vertical,
7396
7384
  uppercase: A.data.uppercase
7397
7385
  }), d = async (h) => {
@@ -7427,12 +7415,12 @@ const Cn = [
7427
7415
  y: h.top
7428
7416
  };
7429
7417
  if (g) {
7430
- const [f, Q] = fe(
7418
+ const [f, Q] = De(
7431
7419
  A.data.size || i,
7432
7420
  g,
7433
7421
  h,
7434
7422
  [
7435
- Xe(l, {
7423
+ We(l, {
7436
7424
  vertical: A.data.vertical,
7437
7425
  uppercase: A.data.uppercase
7438
7426
  })
@@ -7520,7 +7508,7 @@ const Cn = [
7520
7508
  );
7521
7509
  return a;
7522
7510
  };
7523
- class me {
7511
+ class pe {
7524
7512
  constructor(e) {
7525
7513
  this.handleCompleteRender = null;
7526
7514
  const t = /* @__PURE__ */ new Map();
@@ -7537,12 +7525,12 @@ class me {
7537
7525
  }
7538
7526
  }
7539
7527
  const Yn = () => new Promise((c, e) => {
7540
- const A = Se().getContext("webgl2");
7528
+ const A = Ye().getContext("webgl2");
7541
7529
  c(!!A);
7542
7530
  }), Pn = Yn();
7543
7531
  class xn {
7544
7532
  constructor(e, t, A) {
7545
- this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new qt(2), this.id = e, this.name = t, this.service = A;
7533
+ this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new Xt(2), this.id = e, this.name = t, this.service = A;
7546
7534
  }
7547
7535
  getID() {
7548
7536
  return this.id;
@@ -7617,7 +7605,7 @@ class xn {
7617
7605
  );
7618
7606
  }
7619
7607
  }
7620
- class Nn extends Xt {
7608
+ class Nn extends Wt {
7621
7609
  constructor(e, t, A, a, n, i, s) {
7622
7610
  super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl = s;
7623
7611
  }
@@ -7666,19 +7654,19 @@ class Nn extends Xt {
7666
7654
  s = w.width, o = w.height;
7667
7655
  } else
7668
7656
  s = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
7669
- const r = xt(e.layoutState.layout, t, {
7670
- renderingConfiguration: { purpose: Nt.ThreeD }
7671
- }), g = Ht(r), B = await bt.from(this.ctx, g, {
7657
+ const r = Pt(e.layoutState.layout, t, {
7658
+ renderingConfiguration: { purpose: xt.ThreeD }
7659
+ }), g = Nt(r), B = await kt.from(this.ctx, g, {
7672
7660
  anonymousCrossOrigin: !0,
7673
7661
  ignoreDimensions: !this.nonPOTSupport,
7674
7662
  ignoreAnimation: !0,
7675
7663
  ignoreClear: !0,
7676
7664
  ignoreMouse: !0,
7677
7665
  enableRedraw: !1,
7678
- createCanvas: Se,
7679
- createImage: Rt,
7680
- DOMParser: Ut(),
7681
- fetch: Ue
7666
+ createCanvas: Ye,
7667
+ createImage: Ht,
7668
+ DOMParser: Rt(),
7669
+ fetch: $e
7682
7670
  });
7683
7671
  B.resize(s, o), await B.render(), this.onRender();
7684
7672
  }
@@ -7745,7 +7733,7 @@ const Li = (c, e) => {
7745
7733
  name
7746
7734
  }
7747
7735
  }
7748
- `, lA = D`
7736
+ `, gA = D`
7749
7737
  ${Hn}
7750
7738
  fragment ProductCollectionProductFields on ProductCollectionProduct {
7751
7739
  id
@@ -7755,8 +7743,8 @@ const Li = (c, e) => {
7755
7743
  ...ProductFields
7756
7744
  }
7757
7745
  }
7758
- `, BA = (c) => D`
7759
- ${c ? lA : ""}
7746
+ `, lA = (c) => D`
7747
+ ${c ? gA : ""}
7760
7748
  fragment ProductCollectionFields on ProductCollection {
7761
7749
  id
7762
7750
  name
@@ -7801,7 +7789,7 @@ const Li = (c, e) => {
7801
7789
  }
7802
7790
  }
7803
7791
  `, Rn = (c) => D`
7804
- ${BA(c)}
7792
+ ${lA(c)}
7805
7793
  query GetBundle($id: String!) {
7806
7794
  bundles(ids: [$id]) {
7807
7795
  id
@@ -7864,7 +7852,7 @@ const Li = (c, e) => {
7864
7852
  }
7865
7853
  }
7866
7854
  `, vn = D`
7867
- ${lA}
7855
+ ${gA}
7868
7856
  query GetProductCollectionProducts($id: String!) {
7869
7857
  productCollections(ids: [$id]) {
7870
7858
  id
@@ -7874,7 +7862,7 @@ const Li = (c, e) => {
7874
7862
  }
7875
7863
  }
7876
7864
  `, kn = (c) => D`
7877
- ${BA(c)}
7865
+ ${lA(c)}
7878
7866
  mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
7879
7867
  bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
7880
7868
  id
@@ -8040,7 +8028,7 @@ class Wn {
8040
8028
  return new Xn(this.bundle, e);
8041
8029
  case ce.Option: {
8042
8030
  const t = e.entityId ? await j.getOption(e.entityId) : void 0;
8043
- return (t == null ? void 0 : t.type) === "Color" ? new Zn(this.bundle, e, t) : new dA(this.bundle, e, t);
8031
+ return (t == null ? void 0 : t.type) === "Color" ? new Zn(this.bundle, e, t) : new BA(this.bundle, e, t);
8044
8032
  }
8045
8033
  case ce.Text:
8046
8034
  return new qn(this.bundle, e);
@@ -8186,32 +8174,32 @@ class Xn extends gt {
8186
8174
  const n = {
8187
8175
  ...a,
8188
8176
  useOriginalAsset: e
8189
- }, i = [A.setAspectStorage(this.property.name, n)];
8177
+ }, i = e ? a == null ? void 0 : a.originalAssetKey : a == null ? void 0 : a.backgroundRemovedAssetKey, s = [A.setAspect(this.property.name, i || "", n)];
8190
8178
  if (e)
8191
- i.push(this.applyImageSelection(t, void 0, !1));
8179
+ s.push(this.applyImageSelection(t, void 0, !1));
8192
8180
  else {
8193
- const s = async () => {
8194
- const o = await this.getBackgroundRemovedImage();
8195
- if (!o)
8181
+ const o = async () => {
8182
+ const r = await this.getBackgroundRemovedImage();
8183
+ if (!r)
8196
8184
  throw new Error(
8197
8185
  "You must call removeBackgroundFromImage before attempting to use that version of the image."
8198
8186
  );
8199
- this.applyImageSelection(o, void 0, !1);
8187
+ this.applyImageSelection(r, void 0, !1);
8200
8188
  };
8201
- i.push(s());
8189
+ s.push(o());
8202
8190
  }
8203
8191
  this.updateSharedStepStorage(n);
8204
8192
  }
8205
8193
  async applyGlobalState(e) {
8206
8194
  const t = this.getStateValue();
8207
8195
  if (!t)
8208
- return Promise.resolve();
8196
+ return;
8209
8197
  const A = await v.getLocalOrFromServer(t);
8210
8198
  if (!A)
8211
- return Promise.resolve();
8212
- await this.applyImageSelection(A, e);
8199
+ return;
8200
+ await this.applyImageSelection(A, e, !1);
8213
8201
  const a = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
8214
- a && this.updateSharedStepStorage(a);
8202
+ a ? this.updateSharedStepStorage({ ...a }) : (this.updateSharedStepStorage({ originalAssetKey: t }), await this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name, { originalAssetKey: t }));
8215
8203
  }
8216
8204
  async applyImageSelection(e, t, A = !0) {
8217
8205
  const n = this.getSharedSteps(t).map((i) => i.selectImage(e, A));
@@ -8266,7 +8254,7 @@ class qn extends gt {
8266
8254
  await Promise.all(a);
8267
8255
  }
8268
8256
  }
8269
- class dA extends gt {
8257
+ class BA extends gt {
8270
8258
  constructor(e, t, A) {
8271
8259
  super(e, t), this.optionResource = A;
8272
8260
  }
@@ -8328,7 +8316,7 @@ class dA extends gt {
8328
8316
  await Promise.all(a);
8329
8317
  }
8330
8318
  }
8331
- class Zn extends dA {
8319
+ class Zn extends BA {
8332
8320
  constructor(e, t, A) {
8333
8321
  super(e, t, A);
8334
8322
  }
@@ -8625,14 +8613,14 @@ class ai {
8625
8613
  getProducts() {
8626
8614
  if (!this.collection.productCollectionProducts)
8627
8615
  throw new Error("Failed to find products on collection. Ensure you fetch them first!");
8628
- return this.collection.productCollectionProducts.map((e) => new Ke(e));
8616
+ return this.collection.productCollectionProducts.map((e) => new ze(e));
8629
8617
  }
8630
8618
  /**
8631
8619
  * A list of products in this collections with useful helpers for interacting with them.
8632
8620
  */
8633
8621
  async fetchProducts() {
8634
8622
  if (this.collection.productCollectionProducts)
8635
- return this.collection.productCollectionProducts.map((t) => new Ke(t));
8623
+ return this.collection.productCollectionProducts.map((t) => new ze(t));
8636
8624
  const e = await x.getShadowGraphqlClient().query({
8637
8625
  query: vn,
8638
8626
  variables: {
@@ -8641,7 +8629,7 @@ class ai {
8641
8629
  errorPolicy: "all",
8642
8630
  fetchPolicy: "no-cache"
8643
8631
  });
8644
- return this.collection.productCollectionProducts = e.data.productCollections[0].productCollectionProducts || [], this.collection.productCollectionProducts.map((t) => new Ke(t));
8632
+ return this.collection.productCollectionProducts = e.data.productCollections[0].productCollectionProducts || [], this.collection.productCollectionProducts.map((t) => new ze(t));
8645
8633
  }
8646
8634
  getTransformCollection() {
8647
8635
  if (this.collection.transformCollection)
@@ -8654,7 +8642,7 @@ class ai {
8654
8642
  return this.collection;
8655
8643
  }
8656
8644
  }
8657
- class Ke {
8645
+ class ze {
8658
8646
  constructor(e) {
8659
8647
  this.product = e.product, this.productResource = e;
8660
8648
  }
@@ -9098,7 +9086,7 @@ class yt {
9098
9086
  variables: {
9099
9087
  id: this.id,
9100
9088
  details: e,
9101
- type: t || xe.Owner
9089
+ type: t || Ne.Owner
9102
9090
  },
9103
9091
  context: {
9104
9092
  bundleOwnerId: this.ownerId
@@ -9383,14 +9371,14 @@ class ri {
9383
9371
  * @returns The nodes contained within the execution.
9384
9372
  */
9385
9373
  getNodes() {
9386
- return this.execution.nodes.map((e) => new pe(e));
9374
+ return this.execution.nodes.map((e) => new Ie(e));
9387
9375
  }
9388
9376
  /**
9389
9377
  * @param type The type of node to return.
9390
9378
  * @returns A list of nodes matching the requested type.
9391
9379
  */
9392
9380
  getNodesByType(e) {
9393
- return this.execution.nodes.filter((t) => t.type === e).map((t) => new pe(t));
9381
+ return this.execution.nodes.filter((t) => t.type === e).map((t) => new Ie(t));
9394
9382
  }
9395
9383
  /**
9396
9384
  * @returns A list of input nodes that exist in this execution.
@@ -9399,7 +9387,7 @@ class ri {
9399
9387
  return this.execution.nodes.filter(
9400
9388
  (e) => e.type === "StartTerminal"
9401
9389
  /* StartTerminal */
9402
- ).map((e) => new pe(e));
9390
+ ).map((e) => new Ie(e));
9403
9391
  }
9404
9392
  /**
9405
9393
  * @returns A list of out put nodes that exist in this execution.
@@ -9408,7 +9396,7 @@ class ri {
9408
9396
  return this.execution.nodes.filter(
9409
9397
  (e) => e.type === "EndTerminal"
9410
9398
  /* EndTerminal */
9411
- ).map((e) => new pe(e));
9399
+ ).map((e) => new Ie(e));
9412
9400
  }
9413
9401
  /**
9414
9402
  * @returns A date object representing the point in time this execution completed.
@@ -9425,7 +9413,7 @@ class ri {
9425
9413
  return new Date(this.execution.failedAt);
9426
9414
  }
9427
9415
  }
9428
- class pe {
9416
+ class Ie {
9429
9417
  constructor(e) {
9430
9418
  this.node = e;
9431
9419
  }
@@ -9460,9 +9448,9 @@ class Ti extends Bt {
9460
9448
  super(`"${e}"`);
9461
9449
  }
9462
9450
  }
9463
- class wA extends Bt {
9451
+ class dA extends Bt {
9464
9452
  constructor(e, t) {
9465
- if (t !== "Asset" && !wA.validUUID(e))
9453
+ if (t !== "Asset" && !dA.validUUID(e))
9466
9454
  throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
9467
9455
  super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
9468
9456
  }
@@ -9638,9 +9626,9 @@ const gi = D`
9638
9626
  name
9639
9627
  }
9640
9628
  `, wi = (c) => D`
9641
- ${be(c)}
9629
+ ${he(c)}
9642
9630
  ${it}
9643
- ${jt}
9631
+ ${Kt}
9644
9632
  ${gi}
9645
9633
  ${li}
9646
9634
  ${Bi}
@@ -10058,7 +10046,7 @@ const gi = D`
10058
10046
  }
10059
10047
  }
10060
10048
  `, ui = D`
10061
- ${be(!1)}
10049
+ ${he(!1)}
10062
10050
  query GetWorkflowForTheme($id: String!) {
10063
10051
  workflow(id: $id) {
10064
10052
  id
@@ -10166,7 +10154,7 @@ const gi = D`
10166
10154
  );
10167
10155
  for (let n = 0; n < A.length; ++n) {
10168
10156
  const i = A[n];
10169
- i.src && i.svg && (i.cachedObjectURL = await ye(i.svg));
10157
+ i.src && i.svg && (i.cachedObjectURL = await Me(i.svg));
10170
10158
  }
10171
10159
  const a = c.layouts[t].elements.filter((n) => n.type === k.Textbox);
10172
10160
  for (let n = 0; n < a.length; ++n) {
@@ -10199,7 +10187,7 @@ const gi = D`
10199
10187
  if (!A)
10200
10188
  throw new Error(`Workflow not found: ${c}`);
10201
10189
  return A;
10202
- }, hA = async (c, e) => {
10190
+ }, wA = async (c, e) => {
10203
10191
  const t = c.map((s) => de.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
10204
10192
  if (A.length === 0)
10205
10193
  return Promise.all(t);
@@ -10207,7 +10195,7 @@ const gi = D`
10207
10195
  (s) => de.set({ id: s, options: e }, Di(s, a))
10208
10196
  ), i = t.filter((s) => s !== void 0);
10209
10197
  return await Promise.all(i.concat(n));
10210
- }, Ie = async (c, e) => (await hA([c], e))[0], Fi = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
10198
+ }, fe = async (c, e) => (await wA([c], e))[0], Fi = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
10211
10199
  id: J(),
10212
10200
  panelId: e.name,
10213
10201
  name: e.name,
@@ -10220,7 +10208,7 @@ const gi = D`
10220
10208
  previewRegion: e.previewRegion,
10221
10209
  useEditableArea: e.useEditableArea,
10222
10210
  editableArea: e.editableArea
10223
- })), je = (c, e) => {
10211
+ })), Ke = (c, e) => {
10224
10212
  const t = c.workflowState, A = t ? JSON.parse(t) : void 0;
10225
10213
  return A ? Object.values(A.layouts).map((a) => a.layout) : Fi(e.panels);
10226
10214
  };
@@ -10270,7 +10258,7 @@ class yi {
10270
10258
  var a, n;
10271
10259
  const t = P.getMap("bundleOwnerIds");
10272
10260
  if (t != null && t.has(e))
10273
- return Promise.resolve({ success: !0, stakeholderType: xe.Owner });
10261
+ return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
10274
10262
  const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10275
10263
  if (A.has(e)) {
10276
10264
  const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
@@ -10319,7 +10307,7 @@ class yi {
10319
10307
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
10320
10308
  const i = P.getMap("transactionOwnerIds");
10321
10309
  if (i != null && i.has(e))
10322
- return Promise.resolve({ success: !0, stakeholderType: xe.Owner });
10310
+ return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
10323
10311
  const s = P.getMap("transactionCustomerIds");
10324
10312
  if (s != null && s.has(e)) {
10325
10313
  const h = s.get(e);
@@ -10562,7 +10550,7 @@ class yi {
10562
10550
  const h = x.getShadowGraphqlClient();
10563
10551
  if (a.type === "transaction") {
10564
10552
  const { transactionId: f, readOnly: Q } = a, m = await h.query({
10565
- query: Ee,
10553
+ query: ue,
10566
10554
  variables: {
10567
10555
  ids: [f]
10568
10556
  },
@@ -10574,7 +10562,7 @@ class yi {
10574
10562
  const p = (u = m.data) == null ? void 0 : u.transactions[0];
10575
10563
  if (!p.workflowId)
10576
10564
  throw new U("Existing transaction has no workflow ID.");
10577
- const I = await Ie(p.workflowId);
10565
+ const I = await fe(p.workflowId);
10578
10566
  if (!p.product)
10579
10567
  throw new U("Failed to load transaction, product not available.");
10580
10568
  return { transaction: p, workflow: I, readOnly: Q };
@@ -10602,7 +10590,7 @@ class yi {
10602
10590
  if (!M.product)
10603
10591
  throw new U("Failed to create transaction, product not available.");
10604
10592
  return M;
10605
- }, Q = Ie(a.workflowId, a == null ? void 0 : a.graphql), [m, p] = await Promise.all([f(), Q]);
10593
+ }, Q = fe(a.workflowId, a == null ? void 0 : a.graphql), [m, p] = await Promise.all([f(), Q]);
10606
10594
  return { transaction: m, workflow: p };
10607
10595
  }
10608
10596
  throw new U("No workflow ID provided.");
@@ -10629,11 +10617,11 @@ class yi {
10629
10617
  const h = JSON.parse(a.workflowState);
10630
10618
  r.layouts = Object.values(h.layouts).map((C) => C.layout), await ee(h), await te(h), r.reloadedState = h;
10631
10619
  } else
10632
- r.layouts = je(
10620
+ r.layouts = Ke(
10633
10621
  r.transaction,
10634
10622
  r.workflow
10635
10623
  );
10636
- if (r.renderableContextService = new me(
10624
+ if (r.renderableContextService = new pe(
10637
10625
  r.layouts
10638
10626
  ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
10639
10627
  model: r.product.modelUrl,
@@ -10647,7 +10635,7 @@ class yi {
10647
10635
  } else
10648
10636
  r.isReloadedTransaction = !0;
10649
10637
  this.initialized = !0, this.experienceOptions = r;
10650
- const g = new Qe(this, r);
10638
+ const g = new me(this, r);
10651
10639
  return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
10652
10640
  }
10653
10641
  /**
@@ -10665,7 +10653,7 @@ class yi {
10665
10653
  if (m.length === 0)
10666
10654
  return [];
10667
10655
  const p = m.map((S) => S.option.transactionId), I = await A.query({
10668
- query: Ee,
10656
+ query: ue,
10669
10657
  variables: {
10670
10658
  ids: p
10671
10659
  },
@@ -10718,7 +10706,7 @@ class yi {
10718
10706
  ), r = Qt(s, 10), g = Qt(o, 10), B = (await Promise.all([
10719
10707
  ...r.map(a),
10720
10708
  ...g.map(n)
10721
- ])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await hA(l, t), w = new Map(d.map((m) => [m.id, m])), E = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (m) => {
10709
+ ])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await wA(l, t), w = new Map(d.map((m) => [m.id, m])), E = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (m) => {
10722
10710
  var T;
10723
10711
  const { transaction: p, workflowId: I, readOnly: F, index: M } = m, Y = w.get(I), S = e[M];
10724
10712
  !E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
@@ -10741,17 +10729,17 @@ class yi {
10741
10729
  const L = JSON.parse(S.workflowState);
10742
10730
  H.layouts = Object.values(L.layouts || {}).map((V) => V.layout), await ee(L), await te(L), H.reloadedState = L;
10743
10731
  } else
10744
- H.layouts = je(
10732
+ H.layouts = Ke(
10745
10733
  H.transaction,
10746
10734
  H.workflow
10747
10735
  );
10748
- return H.renderableContextService = new me(
10736
+ return H.renderableContextService = new pe(
10749
10737
  H.layouts
10750
10738
  ), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: M, options: S };
10751
10739
  });
10752
10740
  P.setMap("transactionOwnerIds", E);
10753
10741
  const f = (await Promise.all(h)).sort((m, p) => m.index - p.index).map(async (m) => {
10754
- const { experienceOptions: p, options: I } = m, F = new Qe(this, p);
10742
+ const { experienceOptions: p, options: I } = m, F = new me(this, p);
10755
10743
  return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
10756
10744
  }), Q = await Promise.all(f);
10757
10745
  return Q.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
@@ -10806,7 +10794,7 @@ class yi {
10806
10794
  const A = x.getShadowGraphqlClient(), a = async () => {
10807
10795
  var d, w;
10808
10796
  const l = (d = (await A.query({
10809
- query: Ee,
10797
+ query: ue,
10810
10798
  variables: { ids: [e] },
10811
10799
  fetchPolicy: "no-cache",
10812
10800
  errorPolicy: "all"
@@ -10830,7 +10818,7 @@ class yi {
10830
10818
  const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
10831
10819
  if (i) {
10832
10820
  const l = (s = (await A.query({
10833
- query: Ee,
10821
+ query: ue,
10834
10822
  variables: {
10835
10823
  ids: [e]
10836
10824
  },
@@ -10881,16 +10869,16 @@ class yi {
10881
10869
  if (!this.initialized || !this.experienceOptions)
10882
10870
  throw new U("Cannot launch experience: Not initialized.");
10883
10871
  if (this.experienceOptions.transaction.workflowId) {
10884
- const o = await Ie(this.experienceOptions.transaction.workflowId);
10872
+ const o = await fe(this.experienceOptions.transaction.workflowId);
10885
10873
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
10886
10874
  const g = JSON.parse(this.experienceOptions.transaction.workflowState);
10887
10875
  this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
10888
10876
  }
10889
- this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new me(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
10877
+ this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
10890
10878
  model: this.experienceOptions.product.modelUrl,
10891
10879
  contextService: this.experienceOptions.renderableContextService
10892
10880
  }));
10893
- const r = new Qe(this, this.experienceOptions);
10881
+ const r = new me(this, this.experienceOptions);
10894
10882
  return await r.getWorkflowManager().getInitializationPromise(), r;
10895
10883
  }
10896
10884
  if (e) {
@@ -10903,20 +10891,20 @@ class yi {
10903
10891
  context: {
10904
10892
  transactionOwnerId: r
10905
10893
  }
10906
- }), B = Ie(e);
10894
+ }), B = fe(e);
10907
10895
  if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
10908
10896
  const d = JSON.parse(t);
10909
10897
  this.experienceOptions.layouts = Object.values(d.layouts).map((w) => w.layout), await ee(d), await te(d), this.experienceOptions.reloadedState = d;
10910
10898
  } else
10911
- this.experienceOptions.layouts = je(
10899
+ this.experienceOptions.layouts = Ke(
10912
10900
  this.experienceOptions.transaction,
10913
10901
  this.experienceOptions.workflow
10914
10902
  );
10915
- this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new me(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
10903
+ this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
10916
10904
  model: this.experienceOptions.product.modelUrl,
10917
10905
  contextService: this.experienceOptions.renderableContextService
10918
10906
  }));
10919
- const l = new Qe(this, this.experienceOptions);
10907
+ const l = new me(this, this.experienceOptions);
10920
10908
  return await l.getWorkflowManager().getInitializationPromise(), l;
10921
10909
  }
10922
10910
  throw new U("No workflow ID provided.");
@@ -11120,7 +11108,7 @@ class Si extends W {
11120
11108
  }
11121
11109
  selectVariant(e) {
11122
11110
  const t = this.manager.getRegionElements(this.step.stepName);
11123
- return De.selectVariant(
11111
+ return Fe.selectVariant(
11124
11112
  this.step,
11125
11113
  e.getResource(),
11126
11114
  t,
@@ -11140,7 +11128,7 @@ class Si extends W {
11140
11128
  */
11141
11129
  async selectImage(e, t = !0) {
11142
11130
  var A;
11143
- if (await De.selectImage(this.step, e, this.manager), t) {
11131
+ if (await Fe.selectImage(this.step, e, this.manager), t) {
11144
11132
  const a = ((A = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : A.framePatternData) || {};
11145
11133
  this.manager.updateStorage(this.step.stepName, {
11146
11134
  framePatternData: {
@@ -11163,7 +11151,7 @@ class Si extends W {
11163
11151
  if (!t)
11164
11152
  throw new Error("You must supply an image selection before attempting to remove the background.");
11165
11153
  const A = await v.removeBackgroundFromAsset(t);
11166
- e && await De.selectImage(this.step, A, this.manager);
11154
+ e && await Fe.selectImage(this.step, A, this.manager);
11167
11155
  const a = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.framePatternData) || {};
11168
11156
  return this.manager.updateStorage(this.step.stepName, {
11169
11157
  framePatternData: {
@@ -11203,15 +11191,15 @@ class Si extends W {
11203
11191
  }
11204
11192
  hasBackgroundRemovedImageSelection() {
11205
11193
  var e, t;
11206
- return !!((t = (e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.framePatternData) != null && t.backgroundRemovedAssetKey);
11194
+ return !!((t = (e = this.getFrameStepStorage()) == null ? void 0 : e.framePatternData) != null && t.backgroundRemovedAssetKey);
11207
11195
  }
11208
11196
  getUseOriginalImageSelection() {
11209
11197
  var e, t;
11210
- return ((t = (e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.framePatternData) == null ? void 0 : t.useOriginalAsset) ?? !1;
11198
+ return ((t = (e = this.getFrameStepStorage()) == null ? void 0 : e.framePatternData) == null ? void 0 : t.useOriginalAsset) ?? !1;
11211
11199
  }
11212
11200
  async setUseOriginalImageSelection(e) {
11213
11201
  var a;
11214
- const t = ((a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.framePatternData) || {};
11202
+ const t = ((a = this.getFrameStepStorage()) == null ? void 0 : a.framePatternData) || {};
11215
11203
  if (t.useOriginalAsset === e)
11216
11204
  return;
11217
11205
  const A = await this.getOriginalImageSelection();
@@ -11231,6 +11219,9 @@ class Si extends W {
11231
11219
  framePatternData: { ...t, useOriginalAsset: e }
11232
11220
  });
11233
11221
  }
11222
+ getFrameStepStorage() {
11223
+ return this.manager.getStepStorage(this.step.stepName);
11224
+ }
11234
11225
  }
11235
11226
  export {
11236
11227
  zi as ArrayInput,
@@ -11241,7 +11232,7 @@ export {
11241
11232
  Zi as BringToBackCommand,
11242
11233
  $i as BringToFrontCommand,
11243
11234
  _i as CanvasCommand,
11244
- Ke as CollectionProduct,
11235
+ ze as CollectionProduct,
11245
11236
  Zn as ColorOptionGlobalPropertyHandle,
11246
11237
  es as CommandContext,
11247
11238
  ga as ConversionDataType,
@@ -11250,7 +11241,7 @@ export {
11250
11241
  As as CreateLayoutCommand,
11251
11242
  as as DeleteElementCommand,
11252
11243
  Xn as FileUploadGlobalPropertyHandle,
11253
- pe as FlowExecutionNodeResult,
11244
+ Ie as FlowExecutionNodeResult,
11254
11245
  ri as FlowExecutionResult,
11255
11246
  oi as FlowService,
11256
11247
  ns as FontAlignmentCommand,
@@ -11263,7 +11254,7 @@ export {
11263
11254
  gt as GlobalPropertyHandle,
11264
11255
  rs as GroupCommand,
11265
11256
  _a as IllustrationStepHandle,
11266
- Re as InformationMessageType,
11257
+ Ue as InformationMessageType,
11267
11258
  on as InformationStepHandle,
11268
11259
  Mt as IntegrationProduct,
11269
11260
  oa as IntegrationType,
@@ -11271,30 +11262,30 @@ export {
11271
11262
  gs as LayoutElementType,
11272
11263
  z as LayoutNotFoundError,
11273
11264
  en as MaterialStepHandle,
11274
- Pe as MisconfigurationError,
11265
+ xe as MisconfigurationError,
11275
11266
  Ki as MockWorkflowManager,
11276
11267
  tn as ModelStepHandle,
11277
11268
  ls as MoveCommand,
11278
- wA as ObjectInput,
11269
+ dA as ObjectInput,
11279
11270
  ci as ObjectInputType,
11280
- dA as OptionGlobalPropertyHandle,
11281
- Ye as OptionNotFoundError,
11271
+ BA as OptionGlobalPropertyHandle,
11272
+ Pe as OptionNotFoundError,
11282
11273
  oe as ParseError,
11283
11274
  An as PictureStepHandle,
11284
11275
  ra as ProductCameraRig,
11285
11276
  ai as ProductCollection,
11286
11277
  ge as ProductWorkflow,
11287
11278
  de as PromiseCache,
11288
- qt as PromiseQueue,
11279
+ Xt as PromiseQueue,
11289
11280
  an as QuestionStepHandle,
11290
- Xt as QueueablePromise,
11281
+ Wt as QueueablePromise,
11291
11282
  Bs as ResizeCommand,
11292
11283
  Be as ResourceNotFoundError,
11293
11284
  ds as RotateCommand,
11294
11285
  ws as SendBackwardsCommand,
11295
11286
  nn as ShapeStepHandle,
11296
11287
  yi as SpiffCommerceClient,
11297
- xe as StakeholderType,
11288
+ Ne as StakeholderType,
11298
11289
  hs as StepAspectType,
11299
11290
  W as StepHandle,
11300
11291
  Es as StepType,
@@ -11308,16 +11299,16 @@ export {
11308
11299
  Cs as UnitOfMeasurement,
11309
11300
  X as Variant,
11310
11301
  un as WorkflowExperienceEventType,
11311
- Qe as WorkflowExperienceImpl,
11302
+ me as WorkflowExperienceImpl,
11312
11303
  v as assetService,
11313
11304
  dn as createDesign,
11314
11305
  Qs as dataUrlFromExternalUrl,
11315
- ze as designService,
11306
+ Te as designService,
11316
11307
  ms as determineCorrectFontSizeAndLines,
11317
11308
  ya as digitalContentStepService,
11318
11309
  ps as findElement,
11319
11310
  Is as frameDataCache,
11320
- De as frameStepService,
11311
+ Fe as frameStepService,
11321
11312
  fs as generate,
11322
11313
  Sn as generateCommands,
11323
11314
  Ds as generateSVGWithUnknownColors,
@@ -11327,19 +11318,19 @@ export {
11327
11318
  Ia as getBoundedOffsets,
11328
11319
  Ms as getFrameData,
11329
11320
  Ss as getSvgElement,
11330
- Ie as getWorkflow,
11331
- hA as getWorkflows,
11321
+ fe as getWorkflow,
11322
+ wA as getWorkflows,
11332
11323
  x as graphQlManager,
11333
- Fe as illustrationStepService,
11324
+ ye as illustrationStepService,
11334
11325
  Ys as loadFont,
11335
- $t as materialStepService,
11336
- _t as modelStepService,
11326
+ Zt as materialStepService,
11327
+ $t as modelStepService,
11337
11328
  Na as moduleStepService,
11338
11329
  j as optionService,
11339
11330
  Ps as patternImageDataCache,
11340
11331
  P as persistenceService,
11341
- eA as pictureStepService,
11342
- tA as questionStepService,
11332
+ _t as pictureStepService,
11333
+ eA as questionStepService,
11343
11334
  xs as registerFetchImplementation,
11344
11335
  Ns as registerWindowImplementation,
11345
11336
  Hs as rehydrateSerializedLayout,