@spiffcommerce/core 21.9.0-alpha.8 → 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();
@@ -5491,38 +5478,38 @@ class $a {
5491
5478
  r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
5492
5479
  frameService: r
5493
5480
  }, A.push(
5494
- De.init(o, this, this.reloadedState)
5481
+ Fe.init(o, this, this.reloadedState)
5495
5482
  );
5496
5483
  }
5497
5484
  break;
5498
5485
  case y.Illustration:
5499
5486
  A.push(
5500
- Fe.init(o, this, this.reloadedState)
5487
+ ye.init(o, this, this.reloadedState)
5501
5488
  );
5502
5489
  break;
5503
5490
  case y.Material:
5504
5491
  A.push(
5505
- $t.init(o, this, this.reloadedState)
5492
+ Zt.init(o, this, this.reloadedState)
5506
5493
  );
5507
5494
  break;
5508
5495
  case y.Model:
5509
- A.push(_t.init(o, this, this.reloadedState));
5496
+ A.push($t.init(o, this, this.reloadedState));
5510
5497
  break;
5511
5498
  case y.Module:
5512
5499
  this.stepSpecificServices[o.stepName] = {
5513
- module: await sA(o.data.module)
5500
+ module: await iA(o.data.module)
5514
5501
  }, A.push(
5515
5502
  Na.init(o, this, this.reloadedState)
5516
5503
  );
5517
5504
  break;
5518
5505
  case y.Picture:
5519
5506
  A.push(
5520
- eA.init(o, this, this.reloadedState)
5507
+ _t.init(o, this, this.reloadedState)
5521
5508
  );
5522
5509
  break;
5523
5510
  case y.Question:
5524
5511
  A.push(
5525
- tA.init(o, this, this.reloadedState)
5512
+ eA.init(o, this, this.reloadedState)
5526
5513
  );
5527
5514
  break;
5528
5515
  case y.Shape:
@@ -5680,7 +5667,7 @@ class X {
5680
5667
  return this.variantData.enabled;
5681
5668
  }
5682
5669
  }
5683
- const oA = class Ze {
5670
+ const sA = class qe {
5684
5671
  constructor(e, t) {
5685
5672
  this.manager = e, this.step = t;
5686
5673
  }
@@ -5690,13 +5677,13 @@ const oA = class Ze {
5690
5677
  * @param value The new value
5691
5678
  */
5692
5679
  setUpdateState(e) {
5693
- Ze.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
5680
+ qe.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
5694
5681
  }
5695
5682
  /**
5696
5683
  * @returns Gets the current update state of this step. All step handles for this step will see this value.
5697
5684
  */
5698
5685
  getUpdateState() {
5699
- return !!Ze.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
5686
+ return !!qe.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
5700
5687
  }
5701
5688
  /**
5702
5689
  * Gets the currently selected variant, or undefined if no variant is selected.
@@ -5776,7 +5763,9 @@ const oA = class Ze {
5776
5763
  setOverrideGlobalPropertyConfiguration(e, t) {
5777
5764
  var a;
5778
5765
  const A = ((a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.overrideGlobalConfigurations) ?? {};
5779
- 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
+ });
5780
5769
  }
5781
5770
  /**
5782
5771
  * Retrieves the identifiers of all of the configured aspects for the specified Global Property Configuration.
@@ -5797,8 +5786,8 @@ const oA = class Ze {
5797
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.");
5798
5787
  }
5799
5788
  };
5800
- oA.updateState = /* @__PURE__ */ new Map();
5801
- let W = oA;
5789
+ sA.updateState = /* @__PURE__ */ new Map();
5790
+ let W = sA;
5802
5791
  class _a extends W {
5803
5792
  constructor(e, t) {
5804
5793
  super(e, t);
@@ -5810,7 +5799,7 @@ class _a extends W {
5810
5799
  */
5811
5800
  async selectVariant(e) {
5812
5801
  if (!this.getUpdateState() && this.getCurrentVariant() !== e)
5813
- return Fe.selectVariant(
5802
+ return ye.selectVariant(
5814
5803
  this.step,
5815
5804
  e.getResource(),
5816
5805
  this.manager.getRegionElements(this.step.stepName) || [],
@@ -5826,7 +5815,7 @@ class _a extends W {
5826
5815
  const e = this.manager.getRegionElements(this.step.stepName) || [];
5827
5816
  if (e.length !== 0)
5828
5817
  try {
5829
- return Me(e[0].id, this.manager.getAllLayoutData()).colors;
5818
+ return Se(e[0].id, this.manager.getAllLayoutData()).colors;
5830
5819
  } catch (t) {
5831
5820
  console.error(t);
5832
5821
  }
@@ -5836,7 +5825,7 @@ class _a extends W {
5836
5825
  */
5837
5826
  setColor(e, t) {
5838
5827
  const A = /* @__PURE__ */ new Map();
5839
- return A.set(e, t), Fe.changeColors(
5828
+ return A.set(e, t), ye.changeColors(
5840
5829
  this.step,
5841
5830
  this.manager.getRegionElements(this.step.stepName),
5842
5831
  this.manager,
@@ -5848,7 +5837,7 @@ class _a extends W {
5848
5837
  return this.step.data.colorOption;
5849
5838
  }
5850
5839
  getAvailableColors() {
5851
- 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([]);
5852
5841
  }
5853
5842
  isColorPickerEnabled() {
5854
5843
  return this.step.data.colorPickerEnabled;
@@ -5859,7 +5848,7 @@ class en extends W {
5859
5848
  super(e, t);
5860
5849
  }
5861
5850
  selectVariant(e) {
5862
- return $t.selectVariant(
5851
+ return Zt.selectVariant(
5863
5852
  this.step,
5864
5853
  e.getResource(),
5865
5854
  this.manager,
@@ -5872,7 +5861,7 @@ class tn extends W {
5872
5861
  super(e, t);
5873
5862
  }
5874
5863
  selectVariant(e) {
5875
- return _t.selectVariant(
5864
+ return $t.selectVariant(
5876
5865
  this.step,
5877
5866
  e.getResource(),
5878
5867
  this.manager,
@@ -5890,7 +5879,7 @@ class An extends W {
5890
5879
  * @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
5891
5880
  */
5892
5881
  selectVariant(e) {
5893
- return eA.selectVariant(
5882
+ return _t.selectVariant(
5894
5883
  this.step,
5895
5884
  e.getResource(),
5896
5885
  this.manager,
@@ -5905,7 +5894,7 @@ class an extends W {
5905
5894
  async selectVariant(e) {
5906
5895
  if (!e.getId())
5907
5896
  throw new Error("Unable to select variant with a null ID");
5908
- await tA.selectVariant(this.step, e.getId(), this.manager);
5897
+ await eA.selectVariant(this.step, e.getId(), this.manager);
5909
5898
  }
5910
5899
  /**
5911
5900
  * The way that this step expects to be rendered.
@@ -5996,7 +5985,7 @@ class sn extends W {
5996
5985
  ...this.manager.getInformationResults(),
5997
5986
  {
5998
5987
  message: "An issue has occured with test",
5999
- messageType: Re.Error,
5988
+ messageType: Ue.Error,
6000
5989
  stepID: this.step.stepName
6001
5990
  }
6002
5991
  ]);
@@ -6091,7 +6080,7 @@ class sn extends W {
6091
6080
  ...B,
6092
6081
  {
6093
6082
  message: `${l} - ${this.step.stepTitle}`,
6094
- messageType: Re.Error,
6083
+ messageType: Ue.Error,
6095
6084
  stepID: this.step.stepName
6096
6085
  }
6097
6086
  ]);
@@ -6162,7 +6151,7 @@ class on extends W {
6162
6151
  return this.step.data.content;
6163
6152
  }
6164
6153
  }
6165
- class Ce {
6154
+ class Qe {
6166
6155
  static get(e, t) {
6167
6156
  switch (t.type) {
6168
6157
  case y.Information:
@@ -6188,7 +6177,7 @@ class Ce {
6188
6177
  }
6189
6178
  }
6190
6179
  }
6191
- const rA = D`
6180
+ const oA = D`
6192
6181
  fragment CreateDesignTransaction on Transaction {
6193
6182
  id
6194
6183
  designName
@@ -6209,7 +6198,7 @@ const rA = D`
6209
6198
  }
6210
6199
  }
6211
6200
  `, rn = D`
6212
- ${rA}
6201
+ ${oA}
6213
6202
  mutation CreateDesign(
6214
6203
  $name: String!
6215
6204
  $layouts: [LayoutInput]!
@@ -6241,7 +6230,7 @@ const rA = D`
6241
6230
  }
6242
6231
  }
6243
6232
  `, cn = D`
6244
- ${rA}
6233
+ ${oA}
6245
6234
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
6246
6235
  designCreateMany(inputs: $inputs) {
6247
6236
  id
@@ -6290,7 +6279,7 @@ const rA = D`
6290
6279
  }))
6291
6280
  }
6292
6281
  })).data) == null ? void 0 : t.designCreateMany;
6293
- }, $e = (c, e, t) => {
6282
+ }, Ze = (c, e, t) => {
6294
6283
  const A = (n) => {
6295
6284
  const i = {};
6296
6285
  if (n.type === "Frame") {
@@ -6330,7 +6319,7 @@ const rA = D`
6330
6319
  const a = {};
6331
6320
  let n;
6332
6321
  if (t) {
6333
- n = $e(t, e, !1);
6322
+ n = Ze(t, e, !1);
6334
6323
  for (const i of Object.keys(n))
6335
6324
  a[i] = {
6336
6325
  value: n[i],
@@ -6359,7 +6348,7 @@ const rA = D`
6359
6348
  };
6360
6349
  }
6361
6350
  return a;
6362
- }, cA = (c, e, t, A, a, n, i, s) => {
6351
+ }, rA = (c, e, t, A, a, n, i, s) => {
6363
6352
  var w, E;
6364
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 = {
6365
6354
  additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
@@ -6382,7 +6371,7 @@ const rA = D`
6382
6371
  workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
6383
6372
  };
6384
6373
  return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
6385
- }, 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) => {
6386
6375
  var F;
6387
6376
  await (async () => {
6388
6377
  var T;
@@ -6390,7 +6379,7 @@ const rA = D`
6390
6379
  return r;
6391
6380
  await c.outstandingRequestsPromise();
6392
6381
  const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), N = await x.getShadowGraphqlClient().query({
6393
- query: Vt,
6382
+ query: jt,
6394
6383
  variables: { ids: [a.id] },
6395
6384
  fetchPolicy: "no-cache",
6396
6385
  errorPolicy: "all",
@@ -6402,7 +6391,7 @@ const rA = D`
6402
6391
  N.errors && console.log("Server Error:", L.message);
6403
6392
  }), null) : H ?? null;
6404
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"));
6405
- 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) => {
6406
6395
  const Y = {};
6407
6396
  let S = 0;
6408
6397
  if (Object.keys(n).length > 0)
@@ -6411,12 +6400,12 @@ const rA = D`
6411
6400
  for (let L = 0; L < H.selections.length; ++L) {
6412
6401
  const V = H.selections[L];
6413
6402
  if (T && (!M || T.option && (T.option.variants || []).length > 1 && !T.data.hideSelectionInCart && !T.data.hideSelectionsInCart)) {
6414
- const Je = T.stepTitle;
6415
- Y[Je] ? Y[Je].push({
6403
+ const be = T.stepTitle;
6404
+ Y[be] ? Y[be].push({
6416
6405
  id: V.id || "",
6417
6406
  name: V.name,
6418
6407
  priceModifier: V.priceModifier
6419
- }) : Y[Je] = [
6408
+ }) : Y[be] = [
6420
6409
  {
6421
6410
  id: V.id || "",
6422
6411
  name: V.name,
@@ -6469,7 +6458,7 @@ const rA = D`
6469
6458
  }, dn = async (c, e, t, A, a, n, i, s, o, r, g) => {
6470
6459
  var C, u;
6471
6460
  o("workflow.steps.finish.finalize.buildingLayouts");
6472
- const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await gA(
6461
+ const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await cA(
6473
6462
  c,
6474
6463
  e,
6475
6464
  t,
@@ -6486,7 +6475,7 @@ const rA = D`
6486
6475
  throw new Error("Failed to create design");
6487
6476
  o("workflow.steps.finish.finalize.updatingTransaction");
6488
6477
  const h = w.transaction;
6489
- return cA(
6478
+ return rA(
6490
6479
  h,
6491
6480
  a,
6492
6481
  e,
@@ -6505,7 +6494,7 @@ const rA = D`
6505
6494
  const a = await (async () => {
6506
6495
  var r;
6507
6496
  const o = await x.getShadowGraphqlClient().query({
6508
- query: Vt,
6497
+ query: jt,
6509
6498
  variables: { ids: c.map((g) => g.transaction.id) },
6510
6499
  fetchPolicy: "no-cache",
6511
6500
  errorPolicy: "all"
@@ -6514,7 +6503,7 @@ const rA = D`
6514
6503
  o.errors && console.log("Server Error:", g.message);
6515
6504
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
6516
6505
  })(), n = await Promise.all(
6517
- c.map(async (s, o) => await gA(
6506
+ c.map(async (s, o) => await cA(
6518
6507
  s.workflowManager,
6519
6508
  s.workflow,
6520
6509
  s.layouts,
@@ -6534,7 +6523,7 @@ const rA = D`
6534
6523
  return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
6535
6524
  var l;
6536
6525
  const r = c[o], g = n[o], B = s.transaction;
6537
- return cA(
6526
+ return rA(
6538
6527
  B,
6539
6528
  r.product,
6540
6529
  r.workflow,
@@ -6614,7 +6603,7 @@ class hn {
6614
6603
  throw new b("Unexpected storage method requested");
6615
6604
  }
6616
6605
  }
6617
- const ze = new hn(), En = D`
6606
+ const Te = new hn(), En = D`
6618
6607
  mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
6619
6608
  transactionAddStakeholder(id: $id, details: $details, type: $type) {
6620
6609
  id
@@ -6630,11 +6619,11 @@ const ze = new hn(), En = D`
6630
6619
  }
6631
6620
  `;
6632
6621
  var un = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(un || {});
6633
- class Qe {
6622
+ class me {
6634
6623
  constructor(e, t) {
6635
6624
  var a;
6636
- if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = Jt(async () => {
6637
- 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(
6638
6627
  this.getWorkflowManager().getTransaction().id
6639
6628
  ) && this.save();
6640
6629
  }, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, s) => {
@@ -6716,7 +6705,7 @@ class Qe {
6716
6705
  }
6717
6706
  let n = 2048;
6718
6707
  t && t <= 2048 && (n = t);
6719
- 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) => {
6720
6709
  var m;
6721
6710
  return ((m = Q.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
6722
6711
  }) || s[0], B = g.layoutState.layout.previewRegion ? {
@@ -6732,19 +6721,19 @@ class Qe {
6732
6721
  }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
6733
6722
  if (!d)
6734
6723
  throw new ke("Failed to obtain 2D context for preview image creation");
6735
- const w = xt(l.layoutState.layout, l.layoutState.elements, {
6724
+ const w = Pt(l.layoutState.layout, l.layoutState.elements, {
6736
6725
  renderingConfiguration: {
6737
- purpose: Nt.Print,
6726
+ purpose: xt.Print,
6738
6727
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
6739
6728
  }
6740
- }), E = Ht(w);
6741
- await (await bt.from(d, E, {
6729
+ }), E = Nt(w);
6730
+ await (await kt.from(d, E, {
6742
6731
  anonymousCrossOrigin: !0,
6743
6732
  ignoreDimensions: !1,
6744
- createCanvas: Se,
6745
- createImage: Rt,
6746
- DOMParser: Ut(),
6747
- fetch: Ue
6733
+ createCanvas: Ye,
6734
+ createImage: Ht,
6735
+ DOMParser: Rt(),
6736
+ fetch: $e
6748
6737
  })).render();
6749
6738
  const C = await this.getCanvasObjectURLAsync(i);
6750
6739
  return i.toDataURL(C);
@@ -6756,7 +6745,7 @@ class Qe {
6756
6745
  const A = this.cachedStepHandles.get(t.stepName);
6757
6746
  if (A)
6758
6747
  return A;
6759
- const a = Ce.get(this.getWorkflowManager(), t);
6748
+ const a = Qe.get(this.getWorkflowManager(), t);
6760
6749
  return this.cachedStepHandles.set(t.stepName, a), a;
6761
6750
  }
6762
6751
  getSteps() {
@@ -6853,10 +6842,10 @@ class Qe {
6853
6842
  getStepByName(e) {
6854
6843
  const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
6855
6844
  if (!(!t || !this.stepHasHandle(t)))
6856
- return Ce.get(this.getWorkflowManager(), t);
6845
+ return Qe.get(this.getWorkflowManager(), t);
6857
6846
  }
6858
6847
  getStepsByType(e) {
6859
- 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));
6860
6849
  }
6861
6850
  getStepsByScene(e) {
6862
6851
  if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
@@ -6865,7 +6854,7 @@ class Qe {
6865
6854
  );
6866
6855
  return e.stepIds.map(
6867
6856
  (A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
6868
- ).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));
6869
6858
  }
6870
6859
  async attachCustomerDetails(e) {
6871
6860
  return this.assignCustomerDetails({ emailAddress: e.email });
@@ -6908,7 +6897,7 @@ class Qe {
6908
6897
  var o;
6909
6898
  if (e)
6910
6899
  return e;
6911
- 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;
6912
6901
  return s || "My design";
6913
6902
  })(),
6914
6903
  thumbnail: await this.createPreviewImage(!1, 256),
@@ -6919,7 +6908,7 @@ class Qe {
6919
6908
  workflowId: this.getWorkflowManager().getWorkflow().id,
6920
6909
  lastEdited: /* @__PURE__ */ new Date()
6921
6910
  };
6922
- return await ze.addDesign(a), a;
6911
+ return await Te.addDesign(a), a;
6923
6912
  }
6924
6913
  async copy() {
6925
6914
  var s;
@@ -7026,7 +7015,7 @@ const Cn = [
7026
7015
  ], Qn = async (c, e, t) => {
7027
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);
7028
7017
  s.searchParams.append("video", Ct(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
7029
- 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) => {
7030
7019
  const w = c.find((h) => h.panelId === d.panelId);
7031
7020
  if (!w)
7032
7021
  throw new z(d);
@@ -7051,7 +7040,7 @@ const Cn = [
7051
7040
  return console.error(d), [];
7052
7041
  }
7053
7042
  }, mn = async (c, e, t, A) => {
7054
- const a = t.data, n = a.assetUrl, i = await We(n);
7043
+ const a = t.data, n = a.assetUrl, i = await Ve(n);
7055
7044
  try {
7056
7045
  const s = HA(a, A.option);
7057
7046
  s && (e[A.stepName] = { selectedVariants: [s] });
@@ -7096,7 +7085,7 @@ const Cn = [
7096
7085
  },
7097
7086
  d
7098
7087
  ),
7099
- new Yt(l, i, w)
7088
+ new St(l, i, w)
7100
7089
  ];
7101
7090
  };
7102
7091
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
@@ -7117,10 +7106,10 @@ const Cn = [
7117
7106
  const s = (p = i.asset) == null ? void 0 : p.fileLink;
7118
7107
  if (!s)
7119
7108
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
7120
- 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;
7121
7110
  if (!w)
7122
7111
  return console.error("Failed to read SVG."), [];
7123
- vt(w);
7112
+ Gt(w);
7124
7113
  const E = {};
7125
7114
  UA(w, (I) => {
7126
7115
  Cn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
@@ -7135,7 +7124,7 @@ const Cn = [
7135
7124
  I.classList.add(N), E[N] = { browserValue: Y };
7136
7125
  }
7137
7126
  });
7138
- const C = kt().serializeToString(w), u = a.colors;
7127
+ const C = vt().serializeToString(w), u = a.colors;
7139
7128
  if (u) {
7140
7129
  for (const [I, F] of Object.entries(E))
7141
7130
  for (const M of Object.keys(u))
@@ -7173,7 +7162,7 @@ const Cn = [
7173
7162
  return console.error(I), [];
7174
7163
  }
7175
7164
  }, In = async (c, e, t) => {
7176
- 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) => {
7177
7166
  const r = c.find((B) => B.panelId === o.panelId);
7178
7167
  if (!r)
7179
7168
  throw new z(o);
@@ -7336,10 +7325,10 @@ const Cn = [
7336
7325
  }
7337
7326
  else {
7338
7327
  const r = await Z(n, !0), g = (B) => {
7339
- 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;
7340
7329
  if (!C)
7341
7330
  throw new oe("Failed to read SVG.");
7342
- return vt(C), kt().serializeToString(C);
7331
+ return Gt(C), vt().serializeToString(C);
7343
7332
  };
7344
7333
  o.forEach((B) => {
7345
7334
  const l = c.find((w) => w.panelId === B.panelId);
@@ -7390,7 +7379,7 @@ const Cn = [
7390
7379
  assetUrl: h,
7391
7380
  name: C.names.fullName.en
7392
7381
  };
7393
- })(), 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, {
7394
7383
  vertical: A.data.vertical,
7395
7384
  uppercase: A.data.uppercase
7396
7385
  }), d = async (h) => {
@@ -7426,12 +7415,12 @@ const Cn = [
7426
7415
  y: h.top
7427
7416
  };
7428
7417
  if (g) {
7429
- const [f, Q] = fe(
7418
+ const [f, Q] = De(
7430
7419
  A.data.size || i,
7431
7420
  g,
7432
7421
  h,
7433
7422
  [
7434
- Xe(l, {
7423
+ We(l, {
7435
7424
  vertical: A.data.vertical,
7436
7425
  uppercase: A.data.uppercase
7437
7426
  })
@@ -7519,7 +7508,7 @@ const Cn = [
7519
7508
  );
7520
7509
  return a;
7521
7510
  };
7522
- class me {
7511
+ class pe {
7523
7512
  constructor(e) {
7524
7513
  this.handleCompleteRender = null;
7525
7514
  const t = /* @__PURE__ */ new Map();
@@ -7536,12 +7525,12 @@ class me {
7536
7525
  }
7537
7526
  }
7538
7527
  const Yn = () => new Promise((c, e) => {
7539
- const A = Se().getContext("webgl2");
7528
+ const A = Ye().getContext("webgl2");
7540
7529
  c(!!A);
7541
7530
  }), Pn = Yn();
7542
7531
  class xn {
7543
7532
  constructor(e, t, A) {
7544
- 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;
7545
7534
  }
7546
7535
  getID() {
7547
7536
  return this.id;
@@ -7616,7 +7605,7 @@ class xn {
7616
7605
  );
7617
7606
  }
7618
7607
  }
7619
- class Nn extends Xt {
7608
+ class Nn extends Wt {
7620
7609
  constructor(e, t, A, a, n, i, s) {
7621
7610
  super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl = s;
7622
7611
  }
@@ -7665,19 +7654,19 @@ class Nn extends Xt {
7665
7654
  s = w.width, o = w.height;
7666
7655
  } else
7667
7656
  s = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
7668
- const r = xt(e.layoutState.layout, t, {
7669
- renderingConfiguration: { purpose: Nt.ThreeD }
7670
- }), 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, {
7671
7660
  anonymousCrossOrigin: !0,
7672
7661
  ignoreDimensions: !this.nonPOTSupport,
7673
7662
  ignoreAnimation: !0,
7674
7663
  ignoreClear: !0,
7675
7664
  ignoreMouse: !0,
7676
7665
  enableRedraw: !1,
7677
- createCanvas: Se,
7678
- createImage: Rt,
7679
- DOMParser: Ut(),
7680
- fetch: Ue
7666
+ createCanvas: Ye,
7667
+ createImage: Ht,
7668
+ DOMParser: Rt(),
7669
+ fetch: $e
7681
7670
  });
7682
7671
  B.resize(s, o), await B.render(), this.onRender();
7683
7672
  }
@@ -7744,7 +7733,7 @@ const Li = (c, e) => {
7744
7733
  name
7745
7734
  }
7746
7735
  }
7747
- `, lA = D`
7736
+ `, gA = D`
7748
7737
  ${Hn}
7749
7738
  fragment ProductCollectionProductFields on ProductCollectionProduct {
7750
7739
  id
@@ -7754,8 +7743,8 @@ const Li = (c, e) => {
7754
7743
  ...ProductFields
7755
7744
  }
7756
7745
  }
7757
- `, BA = (c) => D`
7758
- ${c ? lA : ""}
7746
+ `, lA = (c) => D`
7747
+ ${c ? gA : ""}
7759
7748
  fragment ProductCollectionFields on ProductCollection {
7760
7749
  id
7761
7750
  name
@@ -7800,7 +7789,7 @@ const Li = (c, e) => {
7800
7789
  }
7801
7790
  }
7802
7791
  `, Rn = (c) => D`
7803
- ${BA(c)}
7792
+ ${lA(c)}
7804
7793
  query GetBundle($id: String!) {
7805
7794
  bundles(ids: [$id]) {
7806
7795
  id
@@ -7863,7 +7852,7 @@ const Li = (c, e) => {
7863
7852
  }
7864
7853
  }
7865
7854
  `, vn = D`
7866
- ${lA}
7855
+ ${gA}
7867
7856
  query GetProductCollectionProducts($id: String!) {
7868
7857
  productCollections(ids: [$id]) {
7869
7858
  id
@@ -7873,7 +7862,7 @@ const Li = (c, e) => {
7873
7862
  }
7874
7863
  }
7875
7864
  `, kn = (c) => D`
7876
- ${BA(c)}
7865
+ ${lA(c)}
7877
7866
  mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
7878
7867
  bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
7879
7868
  id
@@ -8039,7 +8028,7 @@ class Wn {
8039
8028
  return new Xn(this.bundle, e);
8040
8029
  case ce.Option: {
8041
8030
  const t = e.entityId ? await j.getOption(e.entityId) : void 0;
8042
- 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);
8043
8032
  }
8044
8033
  case ce.Text:
8045
8034
  return new qn(this.bundle, e);
@@ -8185,32 +8174,32 @@ class Xn extends gt {
8185
8174
  const n = {
8186
8175
  ...a,
8187
8176
  useOriginalAsset: e
8188
- }, 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)];
8189
8178
  if (e)
8190
- i.push(this.applyImageSelection(t, void 0, !1));
8179
+ s.push(this.applyImageSelection(t, void 0, !1));
8191
8180
  else {
8192
- const s = async () => {
8193
- const o = await this.getBackgroundRemovedImage();
8194
- if (!o)
8181
+ const o = async () => {
8182
+ const r = await this.getBackgroundRemovedImage();
8183
+ if (!r)
8195
8184
  throw new Error(
8196
8185
  "You must call removeBackgroundFromImage before attempting to use that version of the image."
8197
8186
  );
8198
- this.applyImageSelection(o, void 0, !1);
8187
+ this.applyImageSelection(r, void 0, !1);
8199
8188
  };
8200
- i.push(s());
8189
+ s.push(o());
8201
8190
  }
8202
8191
  this.updateSharedStepStorage(n);
8203
8192
  }
8204
8193
  async applyGlobalState(e) {
8205
8194
  const t = this.getStateValue();
8206
8195
  if (!t)
8207
- return Promise.resolve();
8196
+ return;
8208
8197
  const A = await v.getLocalOrFromServer(t);
8209
8198
  if (!A)
8210
- return Promise.resolve();
8211
- await this.applyImageSelection(A, e);
8199
+ return;
8200
+ await this.applyImageSelection(A, e, !1);
8212
8201
  const a = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
8213
- a && this.updateSharedStepStorage(a);
8202
+ a ? this.updateSharedStepStorage({ ...a }) : (this.updateSharedStepStorage({ originalAssetKey: t }), await this.bundle.getGlobalPropertyStateManager().setAspectStorage(this.property.name, { originalAssetKey: t }));
8214
8203
  }
8215
8204
  async applyImageSelection(e, t, A = !0) {
8216
8205
  const n = this.getSharedSteps(t).map((i) => i.selectImage(e, A));
@@ -8265,7 +8254,7 @@ class qn extends gt {
8265
8254
  await Promise.all(a);
8266
8255
  }
8267
8256
  }
8268
- class dA extends gt {
8257
+ class BA extends gt {
8269
8258
  constructor(e, t, A) {
8270
8259
  super(e, t), this.optionResource = A;
8271
8260
  }
@@ -8327,7 +8316,7 @@ class dA extends gt {
8327
8316
  await Promise.all(a);
8328
8317
  }
8329
8318
  }
8330
- class Zn extends dA {
8319
+ class Zn extends BA {
8331
8320
  constructor(e, t, A) {
8332
8321
  super(e, t, A);
8333
8322
  }
@@ -8624,14 +8613,14 @@ class ai {
8624
8613
  getProducts() {
8625
8614
  if (!this.collection.productCollectionProducts)
8626
8615
  throw new Error("Failed to find products on collection. Ensure you fetch them first!");
8627
- return this.collection.productCollectionProducts.map((e) => new Ke(e));
8616
+ return this.collection.productCollectionProducts.map((e) => new ze(e));
8628
8617
  }
8629
8618
  /**
8630
8619
  * A list of products in this collections with useful helpers for interacting with them.
8631
8620
  */
8632
8621
  async fetchProducts() {
8633
8622
  if (this.collection.productCollectionProducts)
8634
- return this.collection.productCollectionProducts.map((t) => new Ke(t));
8623
+ return this.collection.productCollectionProducts.map((t) => new ze(t));
8635
8624
  const e = await x.getShadowGraphqlClient().query({
8636
8625
  query: vn,
8637
8626
  variables: {
@@ -8640,7 +8629,7 @@ class ai {
8640
8629
  errorPolicy: "all",
8641
8630
  fetchPolicy: "no-cache"
8642
8631
  });
8643
- 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));
8644
8633
  }
8645
8634
  getTransformCollection() {
8646
8635
  if (this.collection.transformCollection)
@@ -8653,7 +8642,7 @@ class ai {
8653
8642
  return this.collection;
8654
8643
  }
8655
8644
  }
8656
- class Ke {
8645
+ class ze {
8657
8646
  constructor(e) {
8658
8647
  this.product = e.product, this.productResource = e;
8659
8648
  }
@@ -9097,7 +9086,7 @@ class yt {
9097
9086
  variables: {
9098
9087
  id: this.id,
9099
9088
  details: e,
9100
- type: t || xe.Owner
9089
+ type: t || Ne.Owner
9101
9090
  },
9102
9091
  context: {
9103
9092
  bundleOwnerId: this.ownerId
@@ -9382,14 +9371,14 @@ class ri {
9382
9371
  * @returns The nodes contained within the execution.
9383
9372
  */
9384
9373
  getNodes() {
9385
- return this.execution.nodes.map((e) => new pe(e));
9374
+ return this.execution.nodes.map((e) => new Ie(e));
9386
9375
  }
9387
9376
  /**
9388
9377
  * @param type The type of node to return.
9389
9378
  * @returns A list of nodes matching the requested type.
9390
9379
  */
9391
9380
  getNodesByType(e) {
9392
- 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));
9393
9382
  }
9394
9383
  /**
9395
9384
  * @returns A list of input nodes that exist in this execution.
@@ -9398,7 +9387,7 @@ class ri {
9398
9387
  return this.execution.nodes.filter(
9399
9388
  (e) => e.type === "StartTerminal"
9400
9389
  /* StartTerminal */
9401
- ).map((e) => new pe(e));
9390
+ ).map((e) => new Ie(e));
9402
9391
  }
9403
9392
  /**
9404
9393
  * @returns A list of out put nodes that exist in this execution.
@@ -9407,7 +9396,7 @@ class ri {
9407
9396
  return this.execution.nodes.filter(
9408
9397
  (e) => e.type === "EndTerminal"
9409
9398
  /* EndTerminal */
9410
- ).map((e) => new pe(e));
9399
+ ).map((e) => new Ie(e));
9411
9400
  }
9412
9401
  /**
9413
9402
  * @returns A date object representing the point in time this execution completed.
@@ -9424,7 +9413,7 @@ class ri {
9424
9413
  return new Date(this.execution.failedAt);
9425
9414
  }
9426
9415
  }
9427
- class pe {
9416
+ class Ie {
9428
9417
  constructor(e) {
9429
9418
  this.node = e;
9430
9419
  }
@@ -9459,9 +9448,9 @@ class Ti extends Bt {
9459
9448
  super(`"${e}"`);
9460
9449
  }
9461
9450
  }
9462
- class wA extends Bt {
9451
+ class dA extends Bt {
9463
9452
  constructor(e, t) {
9464
- if (t !== "Asset" && !wA.validUUID(e))
9453
+ if (t !== "Asset" && !dA.validUUID(e))
9465
9454
  throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
9466
9455
  super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
9467
9456
  }
@@ -9637,9 +9626,9 @@ const gi = D`
9637
9626
  name
9638
9627
  }
9639
9628
  `, wi = (c) => D`
9640
- ${be(c)}
9629
+ ${he(c)}
9641
9630
  ${it}
9642
- ${jt}
9631
+ ${Kt}
9643
9632
  ${gi}
9644
9633
  ${li}
9645
9634
  ${Bi}
@@ -10057,7 +10046,7 @@ const gi = D`
10057
10046
  }
10058
10047
  }
10059
10048
  `, ui = D`
10060
- ${be(!1)}
10049
+ ${he(!1)}
10061
10050
  query GetWorkflowForTheme($id: String!) {
10062
10051
  workflow(id: $id) {
10063
10052
  id
@@ -10165,7 +10154,7 @@ const gi = D`
10165
10154
  );
10166
10155
  for (let n = 0; n < A.length; ++n) {
10167
10156
  const i = A[n];
10168
- i.src && i.svg && (i.cachedObjectURL = await ye(i.svg));
10157
+ i.src && i.svg && (i.cachedObjectURL = await Me(i.svg));
10169
10158
  }
10170
10159
  const a = c.layouts[t].elements.filter((n) => n.type === k.Textbox);
10171
10160
  for (let n = 0; n < a.length; ++n) {
@@ -10198,7 +10187,7 @@ const gi = D`
10198
10187
  if (!A)
10199
10188
  throw new Error(`Workflow not found: ${c}`);
10200
10189
  return A;
10201
- }, hA = async (c, e) => {
10190
+ }, wA = async (c, e) => {
10202
10191
  const t = c.map((s) => de.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
10203
10192
  if (A.length === 0)
10204
10193
  return Promise.all(t);
@@ -10206,7 +10195,7 @@ const gi = D`
10206
10195
  (s) => de.set({ id: s, options: e }, Di(s, a))
10207
10196
  ), i = t.filter((s) => s !== void 0);
10208
10197
  return await Promise.all(i.concat(n));
10209
- }, 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) => ({
10210
10199
  id: J(),
10211
10200
  panelId: e.name,
10212
10201
  name: e.name,
@@ -10219,7 +10208,7 @@ const gi = D`
10219
10208
  previewRegion: e.previewRegion,
10220
10209
  useEditableArea: e.useEditableArea,
10221
10210
  editableArea: e.editableArea
10222
- })), je = (c, e) => {
10211
+ })), Ke = (c, e) => {
10223
10212
  const t = c.workflowState, A = t ? JSON.parse(t) : void 0;
10224
10213
  return A ? Object.values(A.layouts).map((a) => a.layout) : Fi(e.panels);
10225
10214
  };
@@ -10269,7 +10258,7 @@ class yi {
10269
10258
  var a, n;
10270
10259
  const t = P.getMap("bundleOwnerIds");
10271
10260
  if (t != null && t.has(e))
10272
- return Promise.resolve({ success: !0, stakeholderType: xe.Owner });
10261
+ return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
10273
10262
  const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
10274
10263
  if (A.has(e)) {
10275
10264
  const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
@@ -10318,7 +10307,7 @@ class yi {
10318
10307
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
10319
10308
  const i = P.getMap("transactionOwnerIds");
10320
10309
  if (i != null && i.has(e))
10321
- return Promise.resolve({ success: !0, stakeholderType: xe.Owner });
10310
+ return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
10322
10311
  const s = P.getMap("transactionCustomerIds");
10323
10312
  if (s != null && s.has(e)) {
10324
10313
  const h = s.get(e);
@@ -10561,7 +10550,7 @@ class yi {
10561
10550
  const h = x.getShadowGraphqlClient();
10562
10551
  if (a.type === "transaction") {
10563
10552
  const { transactionId: f, readOnly: Q } = a, m = await h.query({
10564
- query: Ee,
10553
+ query: ue,
10565
10554
  variables: {
10566
10555
  ids: [f]
10567
10556
  },
@@ -10573,7 +10562,7 @@ class yi {
10573
10562
  const p = (u = m.data) == null ? void 0 : u.transactions[0];
10574
10563
  if (!p.workflowId)
10575
10564
  throw new U("Existing transaction has no workflow ID.");
10576
- const I = await Ie(p.workflowId);
10565
+ const I = await fe(p.workflowId);
10577
10566
  if (!p.product)
10578
10567
  throw new U("Failed to load transaction, product not available.");
10579
10568
  return { transaction: p, workflow: I, readOnly: Q };
@@ -10601,7 +10590,7 @@ class yi {
10601
10590
  if (!M.product)
10602
10591
  throw new U("Failed to create transaction, product not available.");
10603
10592
  return M;
10604
- }, 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]);
10605
10594
  return { transaction: m, workflow: p };
10606
10595
  }
10607
10596
  throw new U("No workflow ID provided.");
@@ -10628,11 +10617,11 @@ class yi {
10628
10617
  const h = JSON.parse(a.workflowState);
10629
10618
  r.layouts = Object.values(h.layouts).map((C) => C.layout), await ee(h), await te(h), r.reloadedState = h;
10630
10619
  } else
10631
- r.layouts = je(
10620
+ r.layouts = Ke(
10632
10621
  r.transaction,
10633
10622
  r.workflow
10634
10623
  );
10635
- if (r.renderableContextService = new me(
10624
+ if (r.renderableContextService = new pe(
10636
10625
  r.layouts
10637
10626
  ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
10638
10627
  model: r.product.modelUrl,
@@ -10646,7 +10635,7 @@ class yi {
10646
10635
  } else
10647
10636
  r.isReloadedTransaction = !0;
10648
10637
  this.initialized = !0, this.experienceOptions = r;
10649
- const g = new Qe(this, r);
10638
+ const g = new me(this, r);
10650
10639
  return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
10651
10640
  }
10652
10641
  /**
@@ -10664,7 +10653,7 @@ class yi {
10664
10653
  if (m.length === 0)
10665
10654
  return [];
10666
10655
  const p = m.map((S) => S.option.transactionId), I = await A.query({
10667
- query: Ee,
10656
+ query: ue,
10668
10657
  variables: {
10669
10658
  ids: p
10670
10659
  },
@@ -10717,7 +10706,7 @@ class yi {
10717
10706
  ), r = Qt(s, 10), g = Qt(o, 10), B = (await Promise.all([
10718
10707
  ...r.map(a),
10719
10708
  ...g.map(n)
10720
- ])).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) => {
10721
10710
  var T;
10722
10711
  const { transaction: p, workflowId: I, readOnly: F, index: M } = m, Y = w.get(I), S = e[M];
10723
10712
  !E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
@@ -10740,17 +10729,17 @@ class yi {
10740
10729
  const L = JSON.parse(S.workflowState);
10741
10730
  H.layouts = Object.values(L.layouts || {}).map((V) => V.layout), await ee(L), await te(L), H.reloadedState = L;
10742
10731
  } else
10743
- H.layouts = je(
10732
+ H.layouts = Ke(
10744
10733
  H.transaction,
10745
10734
  H.workflow
10746
10735
  );
10747
- return H.renderableContextService = new me(
10736
+ return H.renderableContextService = new pe(
10748
10737
  H.layouts
10749
10738
  ), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: M, options: S };
10750
10739
  });
10751
10740
  P.setMap("transactionOwnerIds", E);
10752
10741
  const f = (await Promise.all(h)).sort((m, p) => m.index - p.index).map(async (m) => {
10753
- const { experienceOptions: p, options: I } = m, F = new Qe(this, p);
10742
+ const { experienceOptions: p, options: I } = m, F = new me(this, p);
10754
10743
  return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
10755
10744
  }), Q = await Promise.all(f);
10756
10745
  return Q.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
@@ -10805,7 +10794,7 @@ class yi {
10805
10794
  const A = x.getShadowGraphqlClient(), a = async () => {
10806
10795
  var d, w;
10807
10796
  const l = (d = (await A.query({
10808
- query: Ee,
10797
+ query: ue,
10809
10798
  variables: { ids: [e] },
10810
10799
  fetchPolicy: "no-cache",
10811
10800
  errorPolicy: "all"
@@ -10829,7 +10818,7 @@ class yi {
10829
10818
  const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
10830
10819
  if (i) {
10831
10820
  const l = (s = (await A.query({
10832
- query: Ee,
10821
+ query: ue,
10833
10822
  variables: {
10834
10823
  ids: [e]
10835
10824
  },
@@ -10880,16 +10869,16 @@ class yi {
10880
10869
  if (!this.initialized || !this.experienceOptions)
10881
10870
  throw new U("Cannot launch experience: Not initialized.");
10882
10871
  if (this.experienceOptions.transaction.workflowId) {
10883
- const o = await Ie(this.experienceOptions.transaction.workflowId);
10872
+ const o = await fe(this.experienceOptions.transaction.workflowId);
10884
10873
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
10885
10874
  const g = JSON.parse(this.experienceOptions.transaction.workflowState);
10886
10875
  this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
10887
10876
  }
10888
- 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({
10889
10878
  model: this.experienceOptions.product.modelUrl,
10890
10879
  contextService: this.experienceOptions.renderableContextService
10891
10880
  }));
10892
- const r = new Qe(this, this.experienceOptions);
10881
+ const r = new me(this, this.experienceOptions);
10893
10882
  return await r.getWorkflowManager().getInitializationPromise(), r;
10894
10883
  }
10895
10884
  if (e) {
@@ -10902,20 +10891,20 @@ class yi {
10902
10891
  context: {
10903
10892
  transactionOwnerId: r
10904
10893
  }
10905
- }), B = Ie(e);
10894
+ }), B = fe(e);
10906
10895
  if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
10907
10896
  const d = JSON.parse(t);
10908
10897
  this.experienceOptions.layouts = Object.values(d.layouts).map((w) => w.layout), await ee(d), await te(d), this.experienceOptions.reloadedState = d;
10909
10898
  } else
10910
- this.experienceOptions.layouts = je(
10899
+ this.experienceOptions.layouts = Ke(
10911
10900
  this.experienceOptions.transaction,
10912
10901
  this.experienceOptions.workflow
10913
10902
  );
10914
- 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({
10915
10904
  model: this.experienceOptions.product.modelUrl,
10916
10905
  contextService: this.experienceOptions.renderableContextService
10917
10906
  }));
10918
- const l = new Qe(this, this.experienceOptions);
10907
+ const l = new me(this, this.experienceOptions);
10919
10908
  return await l.getWorkflowManager().getInitializationPromise(), l;
10920
10909
  }
10921
10910
  throw new U("No workflow ID provided.");
@@ -11119,7 +11108,7 @@ class Si extends W {
11119
11108
  }
11120
11109
  selectVariant(e) {
11121
11110
  const t = this.manager.getRegionElements(this.step.stepName);
11122
- return De.selectVariant(
11111
+ return Fe.selectVariant(
11123
11112
  this.step,
11124
11113
  e.getResource(),
11125
11114
  t,
@@ -11139,7 +11128,7 @@ class Si extends W {
11139
11128
  */
11140
11129
  async selectImage(e, t = !0) {
11141
11130
  var A;
11142
- if (await De.selectImage(this.step, e, this.manager), t) {
11131
+ if (await Fe.selectImage(this.step, e, this.manager), t) {
11143
11132
  const a = ((A = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : A.framePatternData) || {};
11144
11133
  this.manager.updateStorage(this.step.stepName, {
11145
11134
  framePatternData: {
@@ -11162,7 +11151,7 @@ class Si extends W {
11162
11151
  if (!t)
11163
11152
  throw new Error("You must supply an image selection before attempting to remove the background.");
11164
11153
  const A = await v.removeBackgroundFromAsset(t);
11165
- e && await De.selectImage(this.step, A, this.manager);
11154
+ e && await Fe.selectImage(this.step, A, this.manager);
11166
11155
  const a = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.framePatternData) || {};
11167
11156
  return this.manager.updateStorage(this.step.stepName, {
11168
11157
  framePatternData: {
@@ -11202,15 +11191,15 @@ class Si extends W {
11202
11191
  }
11203
11192
  hasBackgroundRemovedImageSelection() {
11204
11193
  var e, t;
11205
- 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);
11206
11195
  }
11207
11196
  getUseOriginalImageSelection() {
11208
11197
  var e, t;
11209
- 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;
11210
11199
  }
11211
11200
  async setUseOriginalImageSelection(e) {
11212
11201
  var a;
11213
- 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) || {};
11214
11203
  if (t.useOriginalAsset === e)
11215
11204
  return;
11216
11205
  const A = await this.getOriginalImageSelection();
@@ -11230,6 +11219,9 @@ class Si extends W {
11230
11219
  framePatternData: { ...t, useOriginalAsset: e }
11231
11220
  });
11232
11221
  }
11222
+ getFrameStepStorage() {
11223
+ return this.manager.getStepStorage(this.step.stepName);
11224
+ }
11233
11225
  }
11234
11226
  export {
11235
11227
  zi as ArrayInput,
@@ -11240,7 +11232,7 @@ export {
11240
11232
  Zi as BringToBackCommand,
11241
11233
  $i as BringToFrontCommand,
11242
11234
  _i as CanvasCommand,
11243
- Ke as CollectionProduct,
11235
+ ze as CollectionProduct,
11244
11236
  Zn as ColorOptionGlobalPropertyHandle,
11245
11237
  es as CommandContext,
11246
11238
  ga as ConversionDataType,
@@ -11249,7 +11241,7 @@ export {
11249
11241
  As as CreateLayoutCommand,
11250
11242
  as as DeleteElementCommand,
11251
11243
  Xn as FileUploadGlobalPropertyHandle,
11252
- pe as FlowExecutionNodeResult,
11244
+ Ie as FlowExecutionNodeResult,
11253
11245
  ri as FlowExecutionResult,
11254
11246
  oi as FlowService,
11255
11247
  ns as FontAlignmentCommand,
@@ -11262,7 +11254,7 @@ export {
11262
11254
  gt as GlobalPropertyHandle,
11263
11255
  rs as GroupCommand,
11264
11256
  _a as IllustrationStepHandle,
11265
- Re as InformationMessageType,
11257
+ Ue as InformationMessageType,
11266
11258
  on as InformationStepHandle,
11267
11259
  Mt as IntegrationProduct,
11268
11260
  oa as IntegrationType,
@@ -11270,30 +11262,30 @@ export {
11270
11262
  gs as LayoutElementType,
11271
11263
  z as LayoutNotFoundError,
11272
11264
  en as MaterialStepHandle,
11273
- Pe as MisconfigurationError,
11265
+ xe as MisconfigurationError,
11274
11266
  Ki as MockWorkflowManager,
11275
11267
  tn as ModelStepHandle,
11276
11268
  ls as MoveCommand,
11277
- wA as ObjectInput,
11269
+ dA as ObjectInput,
11278
11270
  ci as ObjectInputType,
11279
- dA as OptionGlobalPropertyHandle,
11280
- Ye as OptionNotFoundError,
11271
+ BA as OptionGlobalPropertyHandle,
11272
+ Pe as OptionNotFoundError,
11281
11273
  oe as ParseError,
11282
11274
  An as PictureStepHandle,
11283
11275
  ra as ProductCameraRig,
11284
11276
  ai as ProductCollection,
11285
11277
  ge as ProductWorkflow,
11286
11278
  de as PromiseCache,
11287
- qt as PromiseQueue,
11279
+ Xt as PromiseQueue,
11288
11280
  an as QuestionStepHandle,
11289
- Xt as QueueablePromise,
11281
+ Wt as QueueablePromise,
11290
11282
  Bs as ResizeCommand,
11291
11283
  Be as ResourceNotFoundError,
11292
11284
  ds as RotateCommand,
11293
11285
  ws as SendBackwardsCommand,
11294
11286
  nn as ShapeStepHandle,
11295
11287
  yi as SpiffCommerceClient,
11296
- xe as StakeholderType,
11288
+ Ne as StakeholderType,
11297
11289
  hs as StepAspectType,
11298
11290
  W as StepHandle,
11299
11291
  Es as StepType,
@@ -11307,16 +11299,16 @@ export {
11307
11299
  Cs as UnitOfMeasurement,
11308
11300
  X as Variant,
11309
11301
  un as WorkflowExperienceEventType,
11310
- Qe as WorkflowExperienceImpl,
11302
+ me as WorkflowExperienceImpl,
11311
11303
  v as assetService,
11312
11304
  dn as createDesign,
11313
11305
  Qs as dataUrlFromExternalUrl,
11314
- ze as designService,
11306
+ Te as designService,
11315
11307
  ms as determineCorrectFontSizeAndLines,
11316
11308
  ya as digitalContentStepService,
11317
11309
  ps as findElement,
11318
11310
  Is as frameDataCache,
11319
- De as frameStepService,
11311
+ Fe as frameStepService,
11320
11312
  fs as generate,
11321
11313
  Sn as generateCommands,
11322
11314
  Ds as generateSVGWithUnknownColors,
@@ -11326,19 +11318,19 @@ export {
11326
11318
  Ia as getBoundedOffsets,
11327
11319
  Ms as getFrameData,
11328
11320
  Ss as getSvgElement,
11329
- Ie as getWorkflow,
11330
- hA as getWorkflows,
11321
+ fe as getWorkflow,
11322
+ wA as getWorkflows,
11331
11323
  x as graphQlManager,
11332
- Fe as illustrationStepService,
11324
+ ye as illustrationStepService,
11333
11325
  Ys as loadFont,
11334
- $t as materialStepService,
11335
- _t as modelStepService,
11326
+ Zt as materialStepService,
11327
+ $t as modelStepService,
11336
11328
  Na as moduleStepService,
11337
11329
  j as optionService,
11338
11330
  Ps as patternImageDataCache,
11339
11331
  P as persistenceService,
11340
- eA as pictureStepService,
11341
- tA as questionStepService,
11332
+ _t as pictureStepService,
11333
+ eA as questionStepService,
11342
11334
  xs as registerFetchImplementation,
11343
11335
  Ns as registerWindowImplementation,
11344
11336
  Hs as rehydrateSerializedLayout,