@spiffcommerce/core 23.0.2 → 23.0.3

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,53 +1,53 @@
1
- import { createHttpLink as RA, InMemoryCache as HA, ApolloClient as kA, from as UA, gql as f } from "@apollo/client/core";
2
- import { fetch as gt, getAttributesFromArrayBuffer as Ot, AssetType as At, StepType as M, getFrameData as lt, frameDataCache as GA, modifySVGColors as bA, svgToDataUrl as JA, GroupCommand as k, UpdateFramePattern as Lt, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as Bt, LayoutElementType as G, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as Le, svgObjectURL as ve, fetchAsString as _, DeleteElementCommand as ne, generateDefaultRectangleFrameSvg as yt, GetSVGDimensions as OA, patternImageDataCache as Mt, fetchAsArrayBuffer as LA, findElement as Re, modifySVGWithElementProperties as zA, IllustrationColorCommand as at, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as nt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Xe, applyTextTransformations as it, determineCorrectFontSizeAndLines as xe, FontSourceCommand as St, loadFont as dt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as Ie, _loadFontExternalDataURL as Ct, UpdateWorkflowStateCommand as Yt, CommandContext as $A, createCanvas as He, getSvgElement as zt, LayoutRenderingPurpose as Kt, renderPapyrusComponentAsString as jt, loadImage as Vt, getDomParser as Wt, toBase64 as Pt, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as ze, domParser as Xt, sanitizeSvgTree as qt, traverse as ta, xmlSerializer as Zt, CreateLayoutCommand as Aa, AspectType as $, rehydrateSerializedLayout as se } from "@spiffcommerce/papyrus";
3
- import { AspectType as Ns, AssetType as vs, BringForwardCommand as Rs, BringToBackCommand as Hs, BringToFrontCommand as ks, CanvasCommand as Us, CommandContext as Gs, CreateElementCommand as bs, CreateLayoutCommand as Js, DeleteElementCommand as Ts, FontAlignmentCommand as Os, FontColorCommand as Ls, FontSizeCommand as zs, FontSourceCommand as Ks, GroupCommand as js, LayoutElementFactory as Vs, LayoutElementType as Ws, MoveCommand as Xs, ResizeCommand as qs, RotateCommand as Zs, SendBackwardsCommand as $s, StepAspectType as _s, StepType as eo, TextChangeCommand as to, UnitOfMeasurement as Ao, UpdateImageSourceCommand as ao, dataUrlFromExternalUrl as no, determineCorrectFontSizeAndLines as io, findElement as so, frameDataCache as oo, generate as ro, generateSVGWithUnknownColors as co, getAttributesFromArrayBuffer as go, getAxisAlignedBoundingBox as lo, getFrameData as Bo, getSvgElement as Co, loadFont as wo, patternImageDataCache as ho, registerFetchImplementation as Eo, registerWindowImplementation as uo, rehydrateSerializedLayout as mo, setCanvasModule as Qo, svgToDataUrl as po } from "@spiffcommerce/papyrus";
1
+ import { createHttpLink as vA, InMemoryCache as RA, ApolloClient as HA, from as kA, gql as f } from "@apollo/client/core";
2
+ import { fetch as lt, getAttributesFromArrayBuffer as Ot, AssetType as At, StepType as M, getFrameData as gt, frameDataCache as UA, modifySVGColors as GA, svgToDataUrl as bA, GroupCommand as k, UpdateFramePattern as JA, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as Bt, LayoutElementType as G, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as Le, svgObjectURL as Re, fetchAsString as _, DeleteElementCommand as ne, generateDefaultRectangleFrameSvg as yt, GetSVGDimensions as OA, patternImageDataCache as Mt, fetchAsArrayBuffer as LA, findElement as He, modifySVGWithElementProperties as zA, IllustrationColorCommand as at, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as nt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Xe, applyTextTransformations as it, determineCorrectFontSizeAndLines as Ne, FontSourceCommand as St, loadFont as dt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as fe, _loadFontExternalDataURL as Ct, UpdateWorkflowStateCommand as Yt, CommandContext as $A, createCanvas as ke, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as Pt, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as ze, domParser as Wt, sanitizeSvgTree as Xt, traverse as ta, xmlSerializer as qt, CreateLayoutCommand as Aa, AspectType as $, rehydrateSerializedLayout as se } from "@spiffcommerce/papyrus";
3
+ import { AspectType as Ns, AssetType as vs, BringForwardCommand as Rs, BringToBackCommand as Hs, BringToFrontCommand as ks, CanvasCommand as Us, CommandContext as Gs, CreateElementCommand as bs, CreateLayoutCommand as Js, DeleteElementCommand as Ts, FontAlignmentCommand as Os, FontColorCommand as Ls, FontSizeCommand as zs, FontSourceCommand as Ks, GroupCommand as js, LayoutElementFactory as Vs, LayoutElementType as Ws, MoveCommand as Xs, ResizeCommand as qs, RotateCommand as Zs, SendBackwardsCommand as $s, StepAspectType as _s, StepType as eo, TextChangeCommand as to, UnitOfMeasurement as Ao, UpdateImageSourceCommand as ao, dataUrlFromExternalUrl as no, determineCorrectFontSizeAndLines as io, findElement as so, frameDataCache as oo, generate as ro, generateSVGWithUnknownColors as co, getAttributesFromArrayBuffer as lo, getAxisAlignedBoundingBox as go, getFrameData as Bo, getSvgElement as Co, loadFont as wo, patternImageDataCache as ho, registerFetchImplementation as Eo, registerWindowImplementation as uo, rehydrateSerializedLayout as mo, setCanvasModule as Qo, svgToDataUrl as po } from "@spiffcommerce/papyrus";
4
4
  import { setContext as aa } from "@apollo/client/link/context";
5
5
  import { onError as na } from "@apollo/client/link/error";
6
- import { Pith as $t } from "pith";
7
- import _t from "lodash.debounce";
8
- import eA from "lodash.isequal";
9
- import ge from "lodash.clonedeep";
10
- import { toString as tA } from "qrcode";
6
+ import { Pith as Zt } from "pith";
7
+ import $t from "lodash.debounce";
8
+ import _t from "lodash.isequal";
9
+ import le from "lodash.clonedeep";
10
+ import { toString as eA } from "qrcode";
11
11
  import ia from "fuse.js";
12
12
  import { split as st } from "unicode-default-word-boundary";
13
13
  import wt from "svg-path-bbox";
14
14
  import xt from "lodash.chunk";
15
- class AA extends Error {
15
+ class tA extends Error {
16
16
  constructor(e) {
17
17
  super(e), this.name = this.constructor.name;
18
18
  }
19
19
  }
20
- class pe extends AA {
20
+ class De extends tA {
21
21
  constructor(e) {
22
22
  super(`ConfigurationError - ${e}`);
23
23
  }
24
24
  }
25
- class ke extends pe {
25
+ class Ue extends De {
26
26
  constructor(e) {
27
27
  super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
28
28
  }
29
29
  }
30
- class z extends pe {
30
+ class z extends De {
31
31
  constructor(e) {
32
32
  super(`Panel not Found: ${e.panelId}`), this.panelId = (e == null ? void 0 : e.panelId) || "N/A";
33
33
  }
34
34
  }
35
- class ie extends pe {
35
+ class ie extends De {
36
36
  constructor(e) {
37
37
  super(`Asset not found for variant: ${e.name}`), this.variant = e;
38
38
  }
39
39
  }
40
- class ue extends pe {
40
+ class me extends De {
41
41
  constructor(e) {
42
42
  super(`Resource not found for asset: ${e.name}`), this.asset = e;
43
43
  }
44
44
  }
45
- class Ue extends pe {
45
+ class Ge extends De {
46
46
  constructor(e, t) {
47
47
  super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
48
48
  }
49
49
  }
50
- class Ke extends AA {
50
+ class Ke extends tA {
51
51
  constructor(e) {
52
52
  super(`ImplementationError - ${e}`);
53
53
  }
@@ -62,7 +62,7 @@ class he extends Ke {
62
62
  super(`Parsing Error: ${e}`);
63
63
  }
64
64
  }
65
- class H extends Ke {
65
+ class R extends Ke {
66
66
  constructor(e) {
67
67
  super(`Client Error: ${e}`);
68
68
  }
@@ -149,29 +149,29 @@ class ra {
149
149
  }
150
150
  }
151
151
  const q = new ra();
152
- let aA;
153
- const vt = (g) => {
154
- aA = g;
152
+ let AA;
153
+ const vt = (l) => {
154
+ AA = l;
155
155
  };
156
156
  let ht;
157
- const ca = (g) => {
158
- ht = g;
159
- }, ga = () => ht;
160
- let nA;
161
- const la = (g) => {
162
- nA = g;
163
- }, Ba = () => new Promise((g) => {
157
+ const ca = (l) => {
158
+ ht = l;
159
+ }, la = () => ht;
160
+ let aA;
161
+ const ga = (l) => {
162
+ aA = l;
163
+ }, Ba = () => new Promise((l) => {
164
164
  const e = q.getHubUrl(), t = (A) => {
165
- A.origin === e && (window.removeEventListener("message", t), g(A.data));
165
+ A.origin === e && (window.removeEventListener("message", t), l(A.data));
166
166
  };
167
167
  window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
168
168
  }), da = async () => {
169
- const g = {
169
+ const l = {
170
170
  applicationKey: ht,
171
- customerToken: aA,
172
- bearer: nA
171
+ customerToken: AA,
172
+ bearer: aA
173
173
  };
174
- return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...g } : g;
174
+ return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...l } : l;
175
175
  };
176
176
  class Ca {
177
177
  constructor() {
@@ -183,11 +183,11 @@ class Ca {
183
183
  return this.shadowGraphqlClient;
184
184
  }
185
185
  constructShadowGraphqlClient() {
186
- const e = RA({
186
+ const e = vA({
187
187
  uri: `${q.getServerUrl()}/graphql`,
188
- fetch: gt
188
+ fetch: lt
189
189
  }), t = aa(async (i, s) => {
190
- const { headers: o } = s, r = o || {}, c = await da(), B = s.bearer ?? c.bearer, l = s.partnerId ?? c.partnerId, d = s.activeIntegration ?? c.activeIntegration, C = s.transactionOwnerId, w = s.customerToken ?? c.customerToken, h = s.applicationKey ?? c.applicationKey, u = s.bundleOwnerId;
190
+ const { headers: o } = s, r = o || {}, c = await da(), B = s.bearer ?? c.bearer, g = s.partnerId ?? c.partnerId, d = s.activeIntegration ?? c.activeIntegration, C = s.transactionOwnerId, w = s.customerToken ?? c.customerToken, h = s.applicationKey ?? c.applicationKey, u = s.bundleOwnerId;
191
191
  try {
192
192
  if (window && window.__SENTRY__) {
193
193
  const E = window.__SENTRY__.hub;
@@ -200,7 +200,7 @@ class Ca {
200
200
  }
201
201
  } catch {
202
202
  }
203
- return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), w && (r.customerToken = w), h && (r["X-Application-Key"] = h), u && (r.bundleOwnerId = u), {
203
+ return B && (r.Authorization = `Bearer ${B}`), g && (r.partnerId = g), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), w && (r.customerToken = w), h && (r["X-Application-Key"] = h), u && (r.bundleOwnerId = u), {
204
204
  headers: r
205
205
  };
206
206
  }), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
@@ -217,7 +217,7 @@ class Ca {
217
217
  }
218
218
  };
219
219
  }
220
- const n = new HA({
220
+ const n = new RA({
221
221
  addTypename: !1,
222
222
  typePolicies: {
223
223
  Transaction: {
@@ -251,8 +251,8 @@ class Ca {
251
251
  }
252
252
  }
253
253
  });
254
- return new kA({
255
- link: UA([A, t, e]),
254
+ return new HA({
255
+ link: kA([A, t, e]),
256
256
  cache: n,
257
257
  name: "Core"
258
258
  });
@@ -265,8 +265,8 @@ const x = new Ca(), wa = f`
265
265
  value
266
266
  }
267
267
  }
268
- `, De = (g) => f`
269
- ${g && wa || ""}
268
+ `, Ie = (l) => f`
269
+ ${l && wa || ""}
270
270
  fragment AssetFields on Asset {
271
271
  name
272
272
  key
@@ -278,10 +278,10 @@ const x = new Ca(), wa = f`
278
278
  name
279
279
  link
280
280
  }
281
- ${g && "...AssetMetadataFields" || ""}
281
+ ${l && "...AssetMetadataFields" || ""}
282
282
  }
283
283
  `, ha = f`
284
- ${De(!1)}
284
+ ${Ie(!1)}
285
285
  query GetAssets($keys: [String]!) {
286
286
  assets(keys: $keys) {
287
287
  ...AssetFields
@@ -356,34 +356,34 @@ const x = new Ca(), wa = f`
356
356
  }
357
357
  }
358
358
  `, ma = f`
359
- ${De(!1)}
359
+ ${Ie(!1)}
360
360
  mutation RemoveBackgroundFromAsset($key: String!) {
361
361
  assetRemoveBackground(key: $key) {
362
362
  ...AssetFields
363
363
  }
364
364
  }
365
- `, ot = async (g) => (await x.getShadowGraphqlClient().query({
365
+ `, ot = async (l) => (await x.getShadowGraphqlClient().query({
366
366
  query: ha,
367
367
  errorPolicy: "all",
368
368
  fetchPolicy: "no-cache",
369
369
  variables: {
370
- keys: g
370
+ keys: l
371
371
  }
372
- })).data.assets, Qa = async (g) => (await x.getShadowGraphqlClient().query({
372
+ })).data.assets, Qa = async (l) => (await x.getShadowGraphqlClient().query({
373
373
  query: Ea,
374
374
  errorPolicy: "all",
375
375
  fetchPolicy: "no-cache",
376
376
  variables: {
377
- ids: g
377
+ ids: l
378
378
  }
379
- })).data.materials, pa = async (g, e, t, A, a) => {
379
+ })).data.materials, pa = async (l, e, t, A, a) => {
380
380
  var i;
381
381
  return (i = (await x.getShadowGraphqlClient().mutate({
382
382
  mutation: ua,
383
383
  errorPolicy: "all",
384
384
  fetchPolicy: "no-cache",
385
385
  variables: {
386
- name: g,
386
+ name: l,
387
387
  type: e,
388
388
  mimeType: t,
389
389
  anonymous: A,
@@ -562,7 +562,7 @@ class Da {
562
562
  }
563
563
  }
564
564
  }
565
- const de = "persistentAssets", iA = class te {
565
+ const de = "persistentAssets", nA = class te {
566
566
  /**
567
567
  * Add a new asset to persistence
568
568
  * @param asset The asset to add.
@@ -613,8 +613,8 @@ const de = "persistentAssets", iA = class te {
613
613
  te.callbacks.forEach((e) => e());
614
614
  }
615
615
  };
616
- iA.callbacks = [];
617
- let oe = iA;
616
+ nA.callbacks = [];
617
+ let oe = nA;
618
618
  const Rt = "bgrmPersistentAssets";
619
619
  class K {
620
620
  static has(e) {
@@ -680,7 +680,7 @@ class Ia {
680
680
  this.disabled = e;
681
681
  }
682
682
  }
683
- const me = new Ia(), sA = f`
683
+ const Qe = new Ia(), iA = f`
684
684
  fragment OptionFields on Option {
685
685
  id
686
686
  name
@@ -718,21 +718,21 @@ const me = new Ia(), sA = f`
718
718
  }
719
719
  }
720
720
  `, fa = f`
721
- ${De(!1)}
721
+ ${Ie(!1)}
722
722
  ${Et}
723
- ${sA}
723
+ ${iA}
724
724
  query GetOptions($ids: [String]!) {
725
725
  options(ids: $ids) {
726
726
  ...OptionFields
727
727
  }
728
728
  }
729
- `, Fa = async (g) => {
729
+ `, Fa = async (l) => {
730
730
  const e = await x.getShadowGraphqlClient().query({
731
731
  query: fa,
732
732
  errorPolicy: "all",
733
733
  fetchPolicy: "no-cache",
734
734
  variables: {
735
- ids: g
735
+ ids: l
736
736
  }
737
737
  });
738
738
  return e.data.options.forEach((t) => {
@@ -741,12 +741,12 @@ const me = new Ia(), sA = f`
741
741
  n.asset && U.cacheAsset(n.asset), n.thumbnail && U.cacheAsset(n.thumbnail), n.material && U.cacheMaterial(n.material);
742
742
  });
743
743
  }), e.data.options;
744
- }, ya = async (g, e) => (await e).find((A) => A.id === g), Ma = async (g) => {
745
- const e = g.map((i) => me.get({ id: i })), t = g.filter((i, s) => e[s] === void 0);
744
+ }, ya = async (l, e) => (await e).find((A) => A.id === l), Ma = async (l) => {
745
+ const e = l.map((i) => Qe.get({ id: i })), t = l.filter((i, s) => e[s] === void 0);
746
746
  if (t.length === 0)
747
747
  return Promise.all(e);
748
748
  const A = Fa(t), a = t.map(
749
- (i) => me.set({ id: i }, ya(i, A))
749
+ (i) => Qe.set({ id: i }, ya(i, A))
750
750
  ), n = e.filter((i) => i !== void 0);
751
751
  return await Promise.all(n.concat(a));
752
752
  };
@@ -797,8 +797,8 @@ class Sa {
797
797
  }
798
798
  }
799
799
  const V = new Sa();
800
- var Ya = /* @__PURE__ */ ((g) => (g.Hyperlink = "Hyperlink", g.Edit = "Edit", g.Approve = "Approve", g))(Ya || {}), Pa = /* @__PURE__ */ ((g) => (g.Hub = "Hub", g.Shopify = "Shopify", g))(Pa || {}), ut = /* @__PURE__ */ ((g) => (g.BackgroundRemover = "BackgroundRemover", g.ConversionAccelerator = "Conversion Accelerator", g.ProcessBuilder = "ProcessBuilder", g))(ut || {}), xa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(xa || {}), Na = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(Na || {}), va = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(va || {}), Ge = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(Ge || {});
801
- const oA = f`
800
+ var Ya = /* @__PURE__ */ ((l) => (l.Hyperlink = "Hyperlink", l.Edit = "Edit", l.Approve = "Approve", l))(Ya || {}), Pa = /* @__PURE__ */ ((l) => (l.Hub = "Hub", l.Shopify = "Shopify", l))(Pa || {}), ut = /* @__PURE__ */ ((l) => (l.BackgroundRemover = "BackgroundRemover", l.ConversionAccelerator = "Conversion Accelerator", l.ProcessBuilder = "ProcessBuilder", l))(ut || {}), xa = /* @__PURE__ */ ((l) => (l[l.Orbit = 0] = "Orbit", l[l.Pan = 1] = "Pan", l))(xa || {}), Na = /* @__PURE__ */ ((l) => (l.Manual = "Manual", l.OnStart = "OnStart", l.OnQuit = "OnQuit", l.OnEnd = "OnEnd", l))(Na || {}), va = /* @__PURE__ */ ((l) => (l.Email = "Email", l.FirstName = "FirstName", l.LastName = "LastName", l.Phone = "Phone", l))(va || {}), be = /* @__PURE__ */ ((l) => (l.Owner = "Owner", l.Approver = "Approver", l.Editor = "Editor", l.Viewer = "Viewer", l))(be || {});
801
+ const sA = f`
802
802
  fragment ActiveIntegrationFields on Integration {
803
803
  id
804
804
  logo
@@ -816,7 +816,7 @@ const oA = f`
816
816
  }
817
817
  }
818
818
  `, Ra = f`
819
- ${oA}
819
+ ${sA}
820
820
  query GetCurrentIntegration {
821
821
  currentIntegration {
822
822
  ...ActiveIntegrationFields
@@ -1100,7 +1100,7 @@ const oA = f`
1100
1100
  }
1101
1101
  }
1102
1102
  }
1103
- `, rA = f`
1103
+ `, oA = f`
1104
1104
  fragment StakeholderFields on Stakeholder {
1105
1105
  id
1106
1106
  type
@@ -1108,7 +1108,7 @@ const oA = f`
1108
1108
  authorizationNote
1109
1109
  authorizationStatus
1110
1110
  }
1111
- `, cA = f`
1111
+ `, rA = f`
1112
1112
  fragment TransactionShareActionFields on TransactionShareAction {
1113
1113
  id
1114
1114
  title
@@ -1117,11 +1117,11 @@ const oA = f`
1117
1117
  precedence
1118
1118
  url
1119
1119
  }
1120
- `, fe = f`
1120
+ `, Fe = f`
1121
1121
  ${Be}
1122
- ${rA}
1123
- ${cA}
1124
1122
  ${oA}
1123
+ ${rA}
1124
+ ${sA}
1125
1125
  query ReadTransactions($ids: [String]!) {
1126
1126
  transactions(ids: $ids) {
1127
1127
  customLogoLink
@@ -1323,7 +1323,7 @@ f`
1323
1323
  }
1324
1324
  `;
1325
1325
  const Ja = f`
1326
- ${cA}
1326
+ ${rA}
1327
1327
  query ReadTransactionForShareActions($id: String!) {
1328
1328
  transactions(ids: [$id]) {
1329
1329
  id
@@ -1333,7 +1333,7 @@ const Ja = f`
1333
1333
  }
1334
1334
  }
1335
1335
  }
1336
- `, gA = f`
1336
+ `, cA = f`
1337
1337
  query ReadWorkflowStates($ids: [String]!) {
1338
1338
  transactions(ids: $ids) {
1339
1339
  id
@@ -1420,7 +1420,7 @@ const Ja = f`
1420
1420
  }
1421
1421
  }
1422
1422
  `, La = f`
1423
- ${rA}
1423
+ ${oA}
1424
1424
  query ReadTransactionForStakeholders($id: String!) {
1425
1425
  transactions(ids: [$id]) {
1426
1426
  stakeholders {
@@ -1431,25 +1431,25 @@ const Ja = f`
1431
1431
  }
1432
1432
  }
1433
1433
  }
1434
- `, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (g) => {
1434
+ `, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (l) => {
1435
1435
  const e = [];
1436
- g.introduction && e.push({
1436
+ l.introduction && e.push({
1437
1437
  name: "Introduction",
1438
- title: g.name,
1438
+ title: l.name,
1439
1439
  renderableSteps: [
1440
1440
  {
1441
1441
  type: M.Introduction,
1442
1442
  stepName: "Introduction",
1443
- stepTitle: g.name,
1444
- helpText: g.introduction,
1443
+ stepTitle: l.name,
1444
+ helpText: l.introduction,
1445
1445
  data: {},
1446
1446
  conditions: []
1447
1447
  }
1448
1448
  ],
1449
1449
  silentSteps: []
1450
1450
  });
1451
- for (const A of g.steps) {
1452
- const a = Ka(A.stepName, g.stepGroups);
1451
+ for (const A of l.steps) {
1452
+ const a = Ka(A.stepName, l.stepGroups);
1453
1453
  if (!a)
1454
1454
  e.push({
1455
1455
  name: A.stepName,
@@ -1478,15 +1478,15 @@ const Ja = f`
1478
1478
  stepTitle: t,
1479
1479
  helpText: "",
1480
1480
  data: {
1481
- modelAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.modelAnimation : void 0,
1482
- lookAtAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.lookAtAnimation : void 0
1481
+ modelAnimation: l.finalizeStepConfig ? l.finalizeStepConfig.modelAnimation : void 0,
1482
+ lookAtAnimation: l.finalizeStepConfig ? l.finalizeStepConfig.lookAtAnimation : void 0
1483
1483
  },
1484
1484
  conditions: []
1485
1485
  }
1486
1486
  ],
1487
1487
  silentSteps: []
1488
1488
  }), e;
1489
- }, Ka = (g, e) => e.find((t) => t.stepNames.includes(g)), ae = (g, e) => (g.conditions || []).every((t) => {
1489
+ }, Ka = (l, e) => e.find((t) => t.stepNames.includes(l)), ae = (l, e) => (l.conditions || []).every((t) => {
1490
1490
  const A = e[t.targetStepName];
1491
1491
  if (A && A.selectedVariants) {
1492
1492
  const a = A.selectedVariants;
@@ -1495,17 +1495,17 @@ const Ja = f`
1495
1495
  );
1496
1496
  }
1497
1497
  return !1;
1498
- }), ja = (g, e) => {
1498
+ }), ja = (l, e) => {
1499
1499
  const t = {
1500
- name: g.name,
1501
- title: g.title,
1502
- renderableSteps: g.renderableSteps.filter((A) => ae(A, e)),
1503
- silentSteps: g.silentSteps.filter((A) => ae(A, e))
1500
+ name: l.name,
1501
+ title: l.title,
1502
+ renderableSteps: l.renderableSteps.filter((A) => ae(A, e)),
1503
+ silentSteps: l.silentSteps.filter((A) => ae(A, e))
1504
1504
  };
1505
1505
  return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
1506
- }, ce = (g, e) => g.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (g, e, t = !1) => {
1506
+ }, ce = (l, e) => l.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (l, e, t = !1) => {
1507
1507
  var i;
1508
- const A = ce(g, e), a = [];
1508
+ const A = ce(l, e), a = [];
1509
1509
  for (const s of A)
1510
1510
  for (const o of s.renderableSteps) {
1511
1511
  const r = (((i = o.option) == null ? void 0 : i.variants) || []).length;
@@ -1520,12 +1520,12 @@ const Ja = f`
1520
1520
  );
1521
1521
  return n;
1522
1522
  };
1523
- class BA {
1523
+ class gA {
1524
1524
  constructor() {
1525
1525
  this.timestamp = Date.now();
1526
1526
  }
1527
1527
  }
1528
- class dA {
1528
+ class BA {
1529
1529
  /**
1530
1530
  * Constructs a new promise queue.
1531
1531
  * @param queueMaxSize An optional maximum size, when the max size is hit.
@@ -1595,23 +1595,23 @@ class dA {
1595
1595
  }
1596
1596
  }
1597
1597
  }
1598
- function Wa(g, e, t, A) {
1599
- const a = t.width * g.zoom, n = t.height * g.zoom;
1598
+ function Wa(l, e, t, A) {
1599
+ const a = t.width * l.zoom, n = t.height * l.zoom;
1600
1600
  if (A) {
1601
- const s = g, o = Math.max(e.width / t.width, e.height / t.height);
1602
- s.zoom = Math.max(o, g.zoom);
1601
+ const s = l, o = Math.max(e.width / t.width, e.height / t.height);
1602
+ s.zoom = Math.max(o, l.zoom);
1603
1603
  const r = t.width * s.zoom, c = t.height * s.zoom;
1604
- return s.x = Fe(g.x, e.width - r, 0), s.y = Fe(g.y, e.height - c, 0), s;
1604
+ return s.x = ye(l.x, e.width - r, 0), s.y = ye(l.y, e.height - c, 0), s;
1605
1605
  }
1606
- const i = g;
1607
- return i.x = Fe(i.x, -a, e.width), i.y = Fe(i.y, -n, e.height), i;
1606
+ const i = l;
1607
+ return i.x = ye(i.x, -a, e.width), i.y = ye(i.y, -n, e.height), i;
1608
1608
  }
1609
- function Fe(g, e, t) {
1610
- return Math.min(Math.max(g, e), t);
1609
+ function ye(l, e, t) {
1610
+ return Math.min(Math.max(l, e), t);
1611
1611
  }
1612
1612
  class Xa {
1613
1613
  constructor(e) {
1614
- this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = _t(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = {
1614
+ this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = $t(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = {
1615
1615
  useThreshold: !1,
1616
1616
  invertThreshold: !1,
1617
1617
  threshold: 128,
@@ -1631,8 +1631,8 @@ class Xa {
1631
1631
  if (a.currentFrameSources) {
1632
1632
  let n = !1;
1633
1633
  for (let i = 0; i < a.currentFrameSources.length; i++) {
1634
- const s = a.currentFrameSources[i], o = await lt(s), r = this.frameData ? this.frameData[i] : void 0;
1635
- eA(o, r) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
1634
+ const s = a.currentFrameSources[i], o = await gt(s), r = this.frameData ? this.frameData[i] : void 0;
1635
+ _t(o, r) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
1636
1636
  }
1637
1637
  n && (this.onFrameDataChangeListeners.forEach(
1638
1638
  (i) => i(this.frameData)
@@ -1666,7 +1666,7 @@ class Xa {
1666
1666
  return;
1667
1667
  }
1668
1668
  e.forEach((t, A) => {
1669
- const a = GA.get(t);
1669
+ const a = UA.get(t);
1670
1670
  a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
1671
1671
  });
1672
1672
  }
@@ -1684,8 +1684,8 @@ class Xa {
1684
1684
  getImageSrc() {
1685
1685
  if (this.imageData) {
1686
1686
  if (this.imageData.svg) {
1687
- const e = bA(this.imageData.svg, this.imageData.colors || {}, !1);
1688
- return JA(e);
1687
+ const e = GA(this.imageData.svg, this.imageData.colors || {}, !1);
1688
+ return bA(e);
1689
1689
  }
1690
1690
  return this.imageData.src;
1691
1691
  }
@@ -1795,7 +1795,7 @@ class Xa {
1795
1795
  this.targetElements.forEach((s, o) => {
1796
1796
  i(
1797
1797
  new k([
1798
- new Lt(s, t, e[o]),
1798
+ new JA(s, t, e[o]),
1799
1799
  new TA(
1800
1800
  s,
1801
1801
  a.useThreshold,
@@ -1822,7 +1822,7 @@ class Xa {
1822
1822
  }
1823
1823
  recalculateOffsets(e) {
1824
1824
  this.frameData && ((!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((t, A) => {
1825
- this.offsets[A] = Bt(e, t);
1825
+ this.offsets[A] = Bt(e, t, void 0, this.forceImageCover);
1826
1826
  }), this._debouncedUpdateFrameOffsets(this.offsets, e, this.frameData, this.thresholdSettings));
1827
1827
  }
1828
1828
  }
@@ -1830,24 +1830,24 @@ class kt {
1830
1830
  constructor(e, t, A) {
1831
1831
  this.processRegion = async (a) => {
1832
1832
  var o, r, c, B;
1833
- const n = this.layouts.find((l) => l.panelId === a.panelId);
1833
+ const n = this.layouts.find((g) => g.panelId === a.panelId);
1834
1834
  if (!n)
1835
1835
  throw new z(a);
1836
1836
  let i = "";
1837
1837
  if (this.configuration.type === M.ProductOverlay) {
1838
- let l = "";
1839
- if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1840
- throw new Ue(this.configuration, "Couldn't find an asset for product overlay step");
1838
+ let g = "";
1839
+ if ((o = this.product) != null && o.overlayImageUrl && (g = this.product.overlayImageUrl), i = g, !g)
1840
+ throw new Ge(this.configuration, "Couldn't find an asset for product overlay step");
1841
1841
  }
1842
1842
  const s = this.evaluateAssetType();
1843
1843
  if (s === G.Image) {
1844
- const l = this.configuration.type === M.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
1845
- if (!l)
1844
+ const g = this.configuration.type === M.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
1845
+ if (!g)
1846
1846
  throw new Error("Undefined raster silent step source");
1847
1847
  const d = {
1848
1848
  stepName: this.configuration.stepName,
1849
1849
  id: J(),
1850
- src: l,
1850
+ src: g,
1851
1851
  type: s,
1852
1852
  y: a.top,
1853
1853
  x: a.left,
@@ -1869,19 +1869,19 @@ class kt {
1869
1869
  command: new L(d, n)
1870
1870
  };
1871
1871
  } else {
1872
- const l = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Le(await (async () => new Promise((h, u) => {
1873
- if (!l) {
1872
+ const g = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Le(await (async () => new Promise((h, u) => {
1873
+ if (!g) {
1874
1874
  u("Undefined vector silent step source");
1875
1875
  return;
1876
1876
  }
1877
- _(l, !0).then((E) => {
1877
+ _(g, !0).then((E) => {
1878
1878
  h(E);
1879
1879
  }).catch((E) => console.error(E));
1880
1880
  }))()), w = {
1881
1881
  stepName: this.configuration.stepName,
1882
1882
  id: J(),
1883
- cachedObjectURL: await ve(C.svg),
1884
- src: l,
1883
+ cachedObjectURL: await Re(C.svg),
1884
+ src: g,
1885
1885
  svg: C.svg,
1886
1886
  colors: C.colors,
1887
1887
  type: s,
@@ -1908,7 +1908,7 @@ class kt {
1908
1908
  }
1909
1909
  async trigger() {
1910
1910
  if (!this.configuration.data.regions)
1911
- throw new Ue(this.configuration, "Missing regions.");
1911
+ throw new Ge(this.configuration, "Missing regions.");
1912
1912
  if (this.configuration.type === M.SilentIllustration) {
1913
1913
  const e = this.configuration.data.regions.map(this.processRegion);
1914
1914
  return Promise.all(e);
@@ -1927,12 +1927,12 @@ class kt {
1927
1927
  return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? G.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? G.Illustration : G.Illustration;
1928
1928
  }
1929
1929
  }
1930
- const qa = async (g) => {
1930
+ const qa = async (l) => {
1931
1931
  const e = `${q.getServicesApiUrl()}/shortener`;
1932
1932
  try {
1933
1933
  return (await (await fetch(e, {
1934
1934
  method: "POST",
1935
- body: JSON.stringify({ longUrl: g }),
1935
+ body: JSON.stringify({ longUrl: l }),
1936
1936
  headers: {
1937
1937
  "Content-Type": "application/json"
1938
1938
  }
@@ -1941,7 +1941,7 @@ const qa = async (g) => {
1941
1941
  throw console.error(t), new je("Failed to shorten URL, see console.");
1942
1942
  }
1943
1943
  };
1944
- class CA {
1944
+ class dA {
1945
1945
  async poll() {
1946
1946
  try {
1947
1947
  if (await this.predicate()) {
@@ -1974,8 +1974,8 @@ class Za {
1974
1974
  A.serializableWorkflow.steps
1975
1975
  ), o = Object.values(A.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === e.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
1976
1976
  await t.setSelectionsAndElements(e.stepName, [], o, async () => {
1977
- var B, l;
1978
- const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (l = a == null ? void 0 : a.storage) == null ? void 0 : l.videoUrl;
1977
+ var B, g;
1978
+ const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (g = a == null ? void 0 : a.storage) == null ? void 0 : g.videoUrl;
1979
1979
  t.updateStorage(e.stepName, {
1980
1980
  videoShortUrl: r,
1981
1981
  videoUrl: c
@@ -1988,12 +1988,12 @@ class Za {
1988
1988
  const d = (await ot([t]))[0], C = (h = (w = d == null ? void 0 : d.versions) == null ? void 0 : w.find((u) => u.name === "mpeg4")) == null ? void 0 : h.link;
1989
1989
  return { asset: d, link: C };
1990
1990
  }, i = await new Promise((d, C) => {
1991
- new CA(
1991
+ new dA(
1992
1992
  async () => !!(await n()).link,
1993
1993
  async () => {
1994
1994
  const w = await n();
1995
1995
  if (!w.link || !w.link)
1996
- throw new ue(w.asset);
1996
+ throw new me(w.asset);
1997
1997
  d({
1998
1998
  rel: "mpeg4",
1999
1999
  href: w.link
@@ -2014,9 +2014,9 @@ class Za {
2014
2014
  throw new je("Cannot create QR code, URL too long.");
2015
2015
  const c = await qa(r);
2016
2016
  if (!a.data || !a.data.regions)
2017
- throw new Ue(a, "Missing regions.");
2018
- const B = await this.regionElements(a), l = await this.command(c, B, A, a.stepName);
2019
- return l && (l.command && A.getCommandDispatcher()(l.command), l.followup && await l.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
2017
+ throw new Ge(a, "Missing regions.");
2018
+ const B = await this.regionElements(a), g = await this.command(c, B, A, a.stepName);
2019
+ return g && (g.command && A.getCommandDispatcher()(g.command), g.followup && await g.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
2020
2020
  A.updateStorage(a.stepName, {
2021
2021
  videoShortUrl: c,
2022
2022
  videoUrl: i.href
@@ -2028,8 +2028,8 @@ class Za {
2028
2028
  return e.data.regions.map(t);
2029
2029
  }
2030
2030
  async command(e, t, A, a) {
2031
- const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await tA(e, { type: "svg" }))}`, o = t.map((r) => {
2032
- const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
2031
+ const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await eA(e, { type: "svg" }))}`, o = t.map((r) => {
2032
+ const c = r.region, B = n.find((g) => g.panelId === (c == null ? void 0 : c.panelId));
2033
2033
  if (!B && c)
2034
2034
  throw new z(c);
2035
2035
  if (B && !c)
@@ -2056,7 +2056,7 @@ class Za {
2056
2056
  } };
2057
2057
  }
2058
2058
  }
2059
- const wA = new Za(), Qe = [
2059
+ const CA = new Za(), pe = [
2060
2060
  "Yellow C",
2061
2061
  "Yellow 012 C",
2062
2062
  "Orange 021 C",
@@ -3398,7 +3398,7 @@ const wA = new Za(), Qe = [
3398
3398
  "Black 5 C",
3399
3399
  "Black 6 C",
3400
3400
  "Black 7 C"
3401
- ], le = [
3401
+ ], ge = [
3402
3402
  "FEDD00",
3403
3403
  "FFD700",
3404
3404
  "FE5000",
@@ -4740,55 +4740,55 @@ const wA = new Za(), Qe = [
4740
4740
  "3E2B2E",
4741
4741
  "101820",
4742
4742
  "3D3935"
4743
- ], qe = le.map((g) => [
4744
- parseInt(g.substring(0, 2), 16),
4745
- parseInt(g.substring(2, 4), 16),
4746
- parseInt(g.substring(4, 6), 16)
4743
+ ], qe = ge.map((l) => [
4744
+ parseInt(l.substring(0, 2), 16),
4745
+ parseInt(l.substring(2, 4), 16),
4746
+ parseInt(l.substring(4, 6), 16)
4747
4747
  ]);
4748
- function Ds(g) {
4749
- const e = Qe.indexOf(g);
4750
- return e >= 0 ? le[e] : "";
4748
+ function Ds(l) {
4749
+ const e = pe.indexOf(l);
4750
+ return e >= 0 ? ge[e] : "";
4751
4751
  }
4752
- function $a(g) {
4753
- const e = le.indexOf(g);
4754
- return e >= 0 ? Qe[e] : "";
4752
+ function $a(l) {
4753
+ const e = ge.indexOf(l);
4754
+ return e >= 0 ? pe[e] : "";
4755
4755
  }
4756
- function Is(g, e = 64) {
4757
- const t = [], A = [], a = $a(g);
4756
+ function Is(l, e = 64) {
4757
+ const t = [], A = [], a = $a(l);
4758
4758
  a && t.push({
4759
4759
  pms: a,
4760
- hex: g,
4760
+ hex: l,
4761
4761
  distance: 0
4762
4762
  });
4763
- const n = parseInt(g.substring(0, 2), 16), i = parseInt(g.substring(2, 4), 16), s = parseInt(g.substring(4, 6), 16);
4763
+ const n = parseInt(l.substring(0, 2), 16), i = parseInt(l.substring(2, 4), 16), s = parseInt(l.substring(4, 6), 16);
4764
4764
  let o, r, c;
4765
- for (let B = 0; B < le.length; B++) {
4765
+ for (let B = 0; B < ge.length; B++) {
4766
4766
  o = qe[B][0], r = qe[B][1], c = qe[B][2];
4767
- const l = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
4768
- A.push(l);
4767
+ const g = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
4768
+ A.push(g);
4769
4769
  }
4770
4770
  for (let B = 0; B < A.length; B++)
4771
- A[B] <= e && !t.some((l) => l.pms === Qe[B]) && t.push({ pms: Qe[B], hex: le[B], distance: A[B] });
4772
- return t.sort((B, l) => B.distance - l.distance);
4771
+ A[B] <= e && !t.some((g) => g.pms === pe[B]) && t.push({ pms: pe[B], hex: ge[B], distance: A[B] });
4772
+ return t.sort((B, g) => B.distance - g.distance);
4773
4773
  }
4774
- const _a = Qe.map((g, e) => ({ pms: g, hex: le[e] })), en = new ia(_a, { keys: ["pms"] });
4775
- function fs(g, e) {
4776
- return en.search(g, e ? { limit: e } : void 0);
4774
+ const _a = pe.map((l, e) => ({ pms: l, hex: ge[e] })), en = new ia(_a, { keys: ["pms"] });
4775
+ function fs(l, e) {
4776
+ return en.search(l, e ? { limit: e } : void 0);
4777
4777
  }
4778
4778
  let we = null;
4779
- function tn(g) {
4780
- if (g.startsWith("#"))
4781
- return Ut(g);
4779
+ function tn(l) {
4780
+ if (l.startsWith("#"))
4781
+ return Ut(l);
4782
4782
  if (!document)
4783
4783
  throw new Error("browserColorToHex is only supported on browsers");
4784
4784
  if (we || (we = document.createElement("canvas").getContext("2d")), !we)
4785
4785
  throw new Error("Failed to create canvas context required to convert colors");
4786
- we.fillStyle = g;
4786
+ we.fillStyle = l;
4787
4787
  const e = Ut(we.fillStyle);
4788
- return e || console.error(`Unknown browser color ${g}`), e;
4788
+ return e || console.error(`Unknown browser color ${l}`), e;
4789
4789
  }
4790
- function Ut(g) {
4791
- const e = g.substring(1).toUpperCase();
4790
+ function Ut(l) {
4791
+ const e = l.substring(1).toUpperCase();
4792
4792
  return e.length === 6 ? e : e.length === 3 ? `${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}` : "";
4793
4793
  }
4794
4794
  class An {
@@ -4802,7 +4802,7 @@ class An {
4802
4802
  const a = A.fileLink;
4803
4803
  if (a)
4804
4804
  return _(a, !0);
4805
- throw new ue(A);
4805
+ throw new me(A);
4806
4806
  };
4807
4807
  }
4808
4808
  async init(e, t, A) {
@@ -4850,16 +4850,16 @@ class An {
4850
4850
  if (a) {
4851
4851
  const c = async () => {
4852
4852
  var C, w, h, u, E;
4853
- const B = (C = a.storage) == null ? void 0 : C.colors, l = (w = a.storage) == null ? void 0 : w.framePatternSrc, d = (h = a.storage) == null ? void 0 : h.frameOffsetsList;
4853
+ const B = (C = a.storage) == null ? void 0 : C.colors, g = (w = a.storage) == null ? void 0 : w.framePatternSrc, d = (h = a.storage) == null ? void 0 : h.frameOffsetsList;
4854
4854
  if (t.updateMetadata(e.stepName, {
4855
4855
  frameOffsetsList: d,
4856
- framePatternSrc: l
4857
- }), l) {
4856
+ framePatternSrc: g
4857
+ }), g) {
4858
4858
  const D = (u = t.getStepSpecificServices(e.stepName)) == null ? void 0 : u.frameService;
4859
4859
  if (!D)
4860
4860
  throw new Error("Frame service unavailable, cannot load pattern!");
4861
- await this.loadPatternFromString(l, D, !0, B), t.updateMetadata(e.stepName, { image: l }), t.updateStorage(e.stepName, {
4862
- framePatternSrc: l
4861
+ await this.loadPatternFromString(g, D, !0, B), t.updateMetadata(e.stepName, { image: g }), t.updateStorage(e.stepName, {
4862
+ framePatternSrc: g
4863
4863
  }), this.validateColorCount(e, t);
4864
4864
  }
4865
4865
  if (d != null && d.some((D) => D.zoom)) {
@@ -4873,14 +4873,14 @@ class An {
4873
4873
  if (a.selectedVariants && a.selectedVariants.length > 0) {
4874
4874
  const B = a.selectedVariants[0].id;
4875
4875
  if (e.option && B) {
4876
- const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
4877
- l && await t.setSelectionsAndElements(
4876
+ const g = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
4877
+ g && await t.setSelectionsAndElements(
4878
4878
  e.stepName,
4879
- [l],
4879
+ [g],
4880
4880
  o,
4881
4881
  async () => {
4882
4882
  const d = await Promise.all(
4883
- e.data.regions.map((C) => this.frameSourceSvg(l, C))
4883
+ e.data.regions.map((C) => this.frameSourceSvg(g, C))
4884
4884
  );
4885
4885
  t.updateStorage(e.stepName, { currentFrameSources: d }), await c();
4886
4886
  }
@@ -4909,7 +4909,7 @@ class An {
4909
4909
  const s = t.fileLink || "";
4910
4910
  return s.endsWith(".pdf") || s.endsWith(".eps") || s.endsWith(".ai") ? new Promise((r) => {
4911
4911
  A.addPoller(
4912
- new CA(
4912
+ new dA(
4913
4913
  async () => {
4914
4914
  var d;
4915
4915
  const B = (d = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : d.find((C) => C.name === "svg");
@@ -4969,8 +4969,8 @@ class An {
4969
4969
  if (e.endsWith("svg")) {
4970
4970
  const i = await OA(e), s = i.width, o = i.height, r = await _(e);
4971
4971
  if (n) {
4972
- const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
4973
- if (l && l.length > 0)
4972
+ const g = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
4973
+ if (g && g.length > 0)
4974
4974
  throw new Error(
4975
4975
  "Vector files may not include images or gradients when a color limit is specified."
4976
4976
  );
@@ -5042,8 +5042,8 @@ class An {
5042
5042
  };
5043
5043
  const a = { ...e.getImageData().colors ?? {} }, n = {};
5044
5044
  Object.entries(a).forEach(([c, B]) => {
5045
- const l = { browserValue: B.browserValue };
5046
- n[c] = l;
5045
+ const g = { browserValue: B.browserValue };
5046
+ n[c] = g;
5047
5047
  });
5048
5048
  for (const [c, B] of A.entries())
5049
5049
  a[c] = { browserValue: B.browserValue, pmsValue: B.pmsValue }, n[c] = B;
@@ -5051,8 +5051,8 @@ class An {
5051
5051
  const s = t.data.colorOption;
5052
5052
  return s && ((r = s.variants) == null || r.forEach((c) => {
5053
5053
  i = i.map((B) => {
5054
- var l;
5055
- return B.toLowerCase() === ((l = c.color) == null ? void 0 : l.toLowerCase()) ? c.name : B;
5054
+ var g;
5055
+ return B.toLowerCase() === ((g = c.color) == null ? void 0 : g.toLowerCase()) ? c.name : B;
5056
5056
  });
5057
5057
  })), {
5058
5058
  newColors: a,
@@ -5069,8 +5069,8 @@ class An {
5069
5069
  );
5070
5070
  }
5071
5071
  async selectVariantCommand(e, t, A, a, n, i) {
5072
- var l;
5073
- const s = (l = a.getStepSpecificServices(e.stepName)) == null ? void 0 : l.frameService;
5072
+ var g;
5073
+ const s = (g = a.getStepSpecificServices(e.stepName)) == null ? void 0 : g.frameService;
5074
5074
  if (!s)
5075
5075
  throw new Error("Frame service unavailable, cannot load pattern!");
5076
5076
  const o = await Promise.all(
@@ -5079,7 +5079,7 @@ class An {
5079
5079
  n && n(!0);
5080
5080
  const r = await Promise.all(
5081
5081
  e.data.regions.map(async (d, C) => {
5082
- const w = await lt(o[C]), h = s.getImageData(), u = A.map((I) => new ne(I.id)), E = h ? Bt(h, w) : void 0, D = h ? {
5082
+ const w = await gt(o[C]), h = s.getImageData(), u = A.map((I) => new ne(I.id)), E = h ? Bt(h, w, void 0, e.data.forceImageCover) : void 0, D = h ? {
5083
5083
  id: J(),
5084
5084
  src: h.src,
5085
5085
  x: (E == null ? void 0 : E.x) || 0,
@@ -5140,7 +5140,7 @@ class An {
5140
5140
  const A = e.fileLink;
5141
5141
  if (A)
5142
5142
  return A;
5143
- throw new ue(e);
5143
+ throw new me(e);
5144
5144
  }
5145
5145
  async loadPatternFromAsset(e, t, A, a) {
5146
5146
  var r, c;
@@ -5208,7 +5208,7 @@ class an {
5208
5208
  if (A.length === 0)
5209
5209
  return [];
5210
5210
  try {
5211
- return Re(
5211
+ return He(
5212
5212
  A[0].id,
5213
5213
  t.getAllLayoutData()
5214
5214
  ).colors;
@@ -5239,13 +5239,13 @@ class an {
5239
5239
  if (a != null && a.selectedVariants) {
5240
5240
  const c = a.selectedVariants[0].id;
5241
5241
  if (o && c) {
5242
- const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5242
+ const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5243
5243
  if (B) {
5244
- const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5244
+ const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5245
5245
  await t.setSelectionsAndElements(
5246
5246
  e.stepName,
5247
5247
  [B],
5248
- l,
5248
+ g,
5249
5249
  async () => {
5250
5250
  var d;
5251
5251
  t.updateMetadata(e.stepName, {
@@ -5271,12 +5271,12 @@ class an {
5271
5271
  async changeColorsCommand(e, t, A, a, n) {
5272
5272
  var c;
5273
5273
  const i = {};
5274
- for (const [B, l] of n.entries())
5275
- i[B] = { browserValue: l, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
5276
- const s = zA(e, t, A, i), o = await ve(s), r = [];
5274
+ for (const [B, g] of n.entries())
5275
+ i[B] = { browserValue: g, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
5276
+ const s = zA(e, t, A, i), o = await Re(s), r = [];
5277
5277
  for (const B of a) {
5278
- for (const [l, d] of n.entries())
5279
- r.push(new at(B, l, d));
5278
+ for (const [g, d] of n.entries())
5279
+ r.push(new at(B, g, d));
5280
5280
  r.push(new KA(B, s, o));
5281
5281
  }
5282
5282
  return new k(r);
@@ -5285,7 +5285,7 @@ class an {
5285
5285
  var d, C;
5286
5286
  if (t.length === 0)
5287
5287
  return;
5288
- const i = Re(
5288
+ const i = He(
5289
5289
  t[0].id,
5290
5290
  a().map((w) => w.layoutState)
5291
5291
  ), s = { ...i.colors }, o = {};
@@ -5308,7 +5308,7 @@ class an {
5308
5308
  B.set(w, h.browserValue);
5309
5309
  }), !i.svg)
5310
5310
  throw new Error("Colors changed before SVG loaded. This should never happen!");
5311
- const l = await this.changeColorsCommand(
5311
+ const g = await this.changeColorsCommand(
5312
5312
  i.svg,
5313
5313
  i.width,
5314
5314
  i.height,
@@ -5317,7 +5317,7 @@ class an {
5317
5317
  );
5318
5318
  A.updateStorage(e.stepName, {
5319
5319
  colors: o
5320
- }), A.getCommandDispatcher()(l);
5320
+ }), A.getCommandDispatcher()(g);
5321
5321
  }
5322
5322
  async selectVariant(e, t, A, a, n) {
5323
5323
  const i = await this.selectVariantCommand(e, t, A, a, n);
@@ -5326,7 +5326,7 @@ class an {
5326
5326
  async selectVariantCommand(e, t, A, a, n) {
5327
5327
  var u;
5328
5328
  if (!e.data || !e.data.regions)
5329
- throw new Ue(e, "Missing regions.");
5329
+ throw new Ge(e, "Missing regions.");
5330
5330
  a(!0);
5331
5331
  const i = A.map((E) => new ne(E.id));
5332
5332
  e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
@@ -5335,8 +5335,8 @@ class an {
5335
5335
  throw new ie(t);
5336
5336
  const o = s.fileLink;
5337
5337
  if (!o)
5338
- throw new ue(s);
5339
- const r = await Le(await this.getIllustrationBody(o)), c = await ve(r.svg), B = (E) => {
5338
+ throw new me(s);
5339
+ const r = await Le(await this.getIllustrationBody(o)), c = await Re(r.svg), B = (E) => {
5340
5340
  const D = n.getLayouts().find((p) => p.panelId === E.panelId);
5341
5341
  if (!D)
5342
5342
  throw new z(E);
@@ -5350,7 +5350,7 @@ class an {
5350
5350
  svg: r
5351
5351
  })
5352
5352
  };
5353
- }, l = e.data.regions.map(B), C = [...l.map((E) => E.command), ...i];
5353
+ }, g = e.data.regions.map(B), C = [...g.map((E) => E.command), ...i];
5354
5354
  let w = Array.from(Object.values(r.colors)).map((E) => E.browserValue);
5355
5355
  const h = e.data.colorOption;
5356
5356
  return h && ((u = h.variants) == null || u.forEach((E) => {
@@ -5364,7 +5364,7 @@ class an {
5364
5364
  await n.setSelectionsAndElements(
5365
5365
  e.stepName,
5366
5366
  [t],
5367
- l.map((Q) => Q.regionElement),
5367
+ g.map((Q) => Q.regionElement),
5368
5368
  async () => {
5369
5369
  n.setMandatoryFulfilled(e.stepName, !0), a(!1);
5370
5370
  }
@@ -5374,7 +5374,7 @@ class an {
5374
5374
  const Q = E[0], p = D[0];
5375
5375
  await this.changeColors(
5376
5376
  e,
5377
- l.map((m) => m.regionElement),
5377
+ g.map((m) => m.regionElement),
5378
5378
  n,
5379
5379
  () => n.getCommandContext().getAllLayouts(),
5380
5380
  /* @__PURE__ */ new Map([[p, Q.variant.color]])
@@ -5382,7 +5382,7 @@ class an {
5382
5382
  } else
5383
5383
  e.data.colorPickerEnabled && await this.changeColors(
5384
5384
  e,
5385
- l.map((Q) => Q.regionElement),
5385
+ g.map((Q) => Q.regionElement),
5386
5386
  n,
5387
5387
  () => n.getCommandContext().getAllLayouts(),
5388
5388
  /* @__PURE__ */ new Map()
@@ -5391,12 +5391,12 @@ class an {
5391
5391
  };
5392
5392
  }
5393
5393
  }
5394
- const Ne = new an();
5394
+ const ve = new an();
5395
5395
  class nn {
5396
5396
  async init(e, t, A) {
5397
5397
  const a = e.option;
5398
5398
  if (!a)
5399
- throw new ke(e);
5399
+ throw new Ue(e);
5400
5400
  if (A)
5401
5401
  await this.reload(e, t, A);
5402
5402
  else {
@@ -5414,13 +5414,13 @@ class nn {
5414
5414
  A.serializableWorkflow.steps
5415
5415
  ), s = Object.values(A.layouts).map((c) => c.elements).flat().filter((c) => c.stepName === e.stepName), o = e.option;
5416
5416
  if (!o)
5417
- throw new ke(e);
5417
+ throw new Ue(e);
5418
5418
  if (a != null && a.selectedVariants) {
5419
5419
  const c = a.selectedVariants[0].id;
5420
5420
  if (c) {
5421
- const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5421
+ const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5422
5422
  if (B) {
5423
- const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5423
+ const g = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5424
5424
  await t.setSelectionsAndElements(
5425
5425
  e.stepName,
5426
5426
  [B],
@@ -5431,7 +5431,7 @@ class nn {
5431
5431
  const w = e.data.targetMaterials.map((h) => C.applyMaterialVariant(
5432
5432
  h,
5433
5433
  o.id || "",
5434
- l || {}
5434
+ g || {}
5435
5435
  ));
5436
5436
  Promise.all(w).then(
5437
5437
  () => t.setMandatoryFulfilled(e.stepName, !0)
@@ -5469,12 +5469,12 @@ class nn {
5469
5469
  };
5470
5470
  }
5471
5471
  }
5472
- const hA = new nn();
5472
+ const wA = new nn();
5473
5473
  class sn {
5474
5474
  async init(e, t, A) {
5475
5475
  const a = e.option;
5476
5476
  if (!a)
5477
- throw new ke(e);
5477
+ throw new Ue(e);
5478
5478
  if (A)
5479
5479
  await this.reload(e, t, A);
5480
5480
  else {
@@ -5494,13 +5494,13 @@ class sn {
5494
5494
  if (a != null && a.selectedVariants) {
5495
5495
  const c = a.selectedVariants[0].id;
5496
5496
  if (o && c) {
5497
- const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5497
+ const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5498
5498
  if (B) {
5499
- const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5499
+ const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5500
5500
  await t.setSelectionsAndElements(
5501
5501
  e.stepName,
5502
5502
  [B],
5503
- l,
5503
+ g,
5504
5504
  async () => {
5505
5505
  var C;
5506
5506
  const d = t.getModelContainer();
@@ -5555,7 +5555,7 @@ class sn {
5555
5555
  };
5556
5556
  }
5557
5557
  }
5558
- const EA = new sn();
5558
+ const hA = new sn();
5559
5559
  class on {
5560
5560
  async init(e, t, A) {
5561
5561
  if (A)
@@ -5590,55 +5590,55 @@ class on {
5590
5590
  if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
5591
5591
  return console.error("Missing configuration."), null;
5592
5592
  A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
5593
- const r = (B, l, d) => {
5594
- const C = d || J(), h = A.getLayouts().find((E) => E.panelId === l.panelId);
5593
+ const r = (B, g, d) => {
5594
+ const C = d || J(), h = A.getLayouts().find((E) => E.panelId === g.panelId);
5595
5595
  if (!h)
5596
- return console.error(`Can not find layout for region: ${l.panelId}`), null;
5596
+ return console.error(`Can not find layout for region: ${g.panelId}`), null;
5597
5597
  const u = [];
5598
5598
  return d && u.push(new ne(C)), u.push(
5599
5599
  new L(
5600
5600
  {
5601
- stepRegion: l,
5601
+ stepRegion: g,
5602
5602
  stepName: e.stepName,
5603
5603
  colors: {},
5604
5604
  id: C,
5605
5605
  svg: B,
5606
5606
  type: G.Illustration,
5607
- y: l.top,
5608
- x: l.left,
5609
- rotation: l.rotation,
5610
- width: l.width,
5611
- height: l.height,
5612
- layer: l.layer,
5613
- layerIndex: l.layerIndex,
5614
- immutable: l.immutable
5607
+ y: g.top,
5608
+ x: g.left,
5609
+ rotation: g.rotation,
5610
+ width: g.width,
5611
+ height: g.height,
5612
+ layer: g.layer,
5613
+ layerIndex: g.layerIndex,
5614
+ immutable: g.immutable
5615
5615
  },
5616
5616
  h
5617
5617
  )
5618
5618
  ), {
5619
5619
  id: C,
5620
- region: l,
5620
+ region: g,
5621
5621
  command: new k(u)
5622
5622
  };
5623
5623
  };
5624
5624
  if (i.length > 0) {
5625
- const l = i.map((d) => {
5625
+ const g = i.map((d) => {
5626
5626
  if (!d.region)
5627
5627
  return null;
5628
5628
  const C = s.svgPrint(t, d.region);
5629
5629
  return r(C, d.region, d.id);
5630
5630
  }).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
5631
5631
  return {
5632
- command: new k(l),
5632
+ command: new k(g),
5633
5633
  followup: async () => {
5634
5634
  }
5635
5635
  };
5636
5636
  } else {
5637
5637
  const B = e.data.regions.map(
5638
5638
  (d) => r(s.svgPrint(t, d), d)
5639
- ), l = B.filter((d) => !!d).map((d) => d && d.command);
5639
+ ), g = B.filter((d) => !!d).map((d) => d && d.command);
5640
5640
  return {
5641
- command: new k(l),
5641
+ command: new k(g),
5642
5642
  followup: async () => {
5643
5643
  const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
5644
5644
  await A.setSelectionsAndElements(
@@ -5668,7 +5668,7 @@ class on {
5668
5668
  return a(""), !0;
5669
5669
  }
5670
5670
  }
5671
- const uA = new on();
5671
+ const EA = new on();
5672
5672
  class rn {
5673
5673
  async init(e, t, A) {
5674
5674
  const a = e.option;
@@ -5690,13 +5690,13 @@ class rn {
5690
5690
  if (a != null && a.selectedVariants) {
5691
5691
  const c = a.selectedVariants[0].id;
5692
5692
  if (o && c) {
5693
- const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5693
+ const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5694
5694
  if (B) {
5695
- const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5695
+ const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5696
5696
  await t.setSelectionsAndElements(
5697
5697
  e.stepName,
5698
5698
  [B],
5699
- l,
5699
+ g,
5700
5700
  async () => {
5701
5701
  t.setMandatoryFulfilled(e.stepName, !0);
5702
5702
  }
@@ -5760,7 +5760,7 @@ class rn {
5760
5760
  };
5761
5761
  }
5762
5762
  }
5763
- const mA = new rn();
5763
+ const uA = new rn();
5764
5764
  class cn {
5765
5765
  async init(e, t, A) {
5766
5766
  const a = e.option;
@@ -5819,8 +5819,8 @@ class cn {
5819
5819
  };
5820
5820
  }
5821
5821
  }
5822
- const QA = new cn();
5823
- class gn {
5822
+ const mA = new cn();
5823
+ class ln {
5824
5824
  constructor() {
5825
5825
  this.shapeFillId = "spiff-fill-shape";
5826
5826
  }
@@ -5846,7 +5846,7 @@ class gn {
5846
5846
  async init(e, t, A) {
5847
5847
  const a = e.option;
5848
5848
  if (!a)
5849
- throw new ke(e);
5849
+ throw new Ue(e);
5850
5850
  if (A)
5851
5851
  await this.reload(e, t, A);
5852
5852
  else {
@@ -5877,13 +5877,13 @@ class gn {
5877
5877
  if (a != null && a.selectedVariants) {
5878
5878
  const c = a.selectedVariants[0].id;
5879
5879
  if (o && c) {
5880
- const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5880
+ const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5881
5881
  if (B) {
5882
- const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5882
+ const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5883
5883
  await t.setSelectionsAndElements(
5884
5884
  e.stepName,
5885
5885
  [B],
5886
- l,
5886
+ g,
5887
5887
  async () => {
5888
5888
  var d;
5889
5889
  t.updateStorage(e.stepName, {
@@ -5907,9 +5907,9 @@ class gn {
5907
5907
  };
5908
5908
  if (A.length > 0) {
5909
5909
  const r = (B) => {
5910
- const l = B.region;
5911
- if (!n.find((w) => w.panelId === (l == null ? void 0 : l.panelId)))
5912
- throw new z(l);
5910
+ const g = B.region;
5911
+ if (!n.find((w) => w.panelId === (g == null ? void 0 : g.panelId)))
5912
+ throw new z(g);
5913
5913
  const C = s();
5914
5914
  return new at(B.id, this.shapeFillId, C);
5915
5915
  }, c = A.map(r).filter((B) => !!B);
@@ -5975,14 +5975,14 @@ class gn {
5975
5975
  C
5976
5976
  )
5977
5977
  };
5978
- }, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
5978
+ }, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), g = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
5979
5979
  return {
5980
5980
  command: new k(B),
5981
5981
  followup: async () => {
5982
5982
  await a.setSelectionsAndElements(
5983
5983
  e.stepName,
5984
5984
  t.variant ? [t.variant] : [],
5985
- l,
5985
+ g,
5986
5986
  async () => {
5987
5987
  a.updateStorage(e.stepName, { colour: s() });
5988
5988
  }
@@ -5992,8 +5992,8 @@ class gn {
5992
5992
  }
5993
5993
  }
5994
5994
  }
5995
- const Ee = new gn();
5996
- class ln {
5995
+ const Ee = new ln();
5996
+ class gn {
5997
5997
  constructor() {
5998
5998
  this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
5999
5999
  }
@@ -6018,17 +6018,17 @@ class ln {
6018
6018
  );
6019
6019
  }
6020
6020
  }
6021
- const Bn = new ln(), Ze = 30;
6022
- class be extends Error {
6021
+ const Bn = new gn(), Ze = 30;
6022
+ class Je extends Error {
6023
6023
  constructor(e) {
6024
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = be.name;
6024
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
6025
6025
  }
6026
6026
  }
6027
6027
  const dn = ["‘", "’", "“", "”", `
6028
6028
  `];
6029
- class Je extends Error {
6029
+ class Te extends Error {
6030
6030
  constructor(e) {
6031
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
6031
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Te.name;
6032
6032
  }
6033
6033
  }
6034
6034
  class Cn {
@@ -6087,11 +6087,11 @@ class Cn {
6087
6087
  color: ((s = await this.getDefaultColorVariant(e.data)) == null ? void 0 : s.name) || await this.getDefaultColor(e.data),
6088
6088
  fillImage: o == null ? void 0 : o.name
6089
6089
  });
6090
- const l = V.getDefaultVariant(a);
6091
- if (l)
6090
+ const g = V.getDefaultVariant(a);
6091
+ if (g)
6092
6092
  return this.selectVariantCommand(
6093
6093
  e,
6094
- l,
6094
+ g,
6095
6095
  {},
6096
6096
  [],
6097
6097
  t,
@@ -6105,7 +6105,7 @@ class Cn {
6105
6105
  return null;
6106
6106
  }
6107
6107
  findLayoutElements(e, t) {
6108
- return e.getRegionElements(t.stepName).map((n) => Re(n.id, e.getAllLayoutData()));
6108
+ return e.getRegionElements(t.stepName).map((n) => He(n.id, e.getAllLayoutData()));
6109
6109
  }
6110
6110
  /**
6111
6111
  * Get the colors that can be used for a given text step.
@@ -6215,19 +6215,19 @@ class Cn {
6215
6215
  for (const B of t) {
6216
6216
  if (!B.fontData)
6217
6217
  throw new b("Failed to resolve font data for text.");
6218
- const [l, d] = xe(
6218
+ const [g, d] = Ne(
6219
6219
  B.fontSize,
6220
6220
  B.fontData,
6221
6221
  { left: B.x, top: B.y, width: B.width, height: B.height, rotation: B.rotation, panelId: "" },
6222
6222
  [i],
6223
6223
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
6224
6224
  );
6225
- r.set(B.id, l), c.set(B.id, d);
6225
+ r.set(B.id, g), c.set(B.id, d);
6226
6226
  const C = A.data.curved ? i : (d || []).join(`
6227
6227
  `);
6228
- o.push(this.generateTextChangeCommandsForRegion(l, A.data, B.id, C));
6228
+ o.push(this.generateTextChangeCommandsForRegion(g, A.data, B.id, C));
6229
6229
  }
6230
- return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((l) => l) ? (s.errorData || (s.errorData = {}), s.errorData.doesNotFit = !0, s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
6230
+ return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((g) => g) ? (s.errorData || (s.errorData = {}), s.errorData.doesNotFit = !0, s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
6231
6231
  text: i
6232
6232
  }), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(o), s);
6233
6233
  }
@@ -6260,11 +6260,11 @@ class Cn {
6260
6260
  const a = t.getSerializedStep(
6261
6261
  e.stepName,
6262
6262
  A.serializableWorkflow.steps
6263
- ), s = Object.values(A.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === e.stepName), o = e.option;
6263
+ ), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
6264
6264
  if (a != null && a.selectedVariants) {
6265
- const l = a.selectedVariants[0].id;
6266
- if (o && l) {
6267
- const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
6265
+ const g = a.selectedVariants[0].id;
6266
+ if (o && g) {
6267
+ const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === g);
6268
6268
  if (d) {
6269
6269
  const C = await this.fontDataFromVariant(d), w = s.map((D) => ({ id: D.id, region: D.stepRegion })), h = (c = a.storage) == null ? void 0 : c.color, u = (B = a.storage) == null ? void 0 : B.text;
6270
6270
  await t.setSelectionsAndElements(
@@ -6311,7 +6311,7 @@ class Cn {
6311
6311
  throw new ie(e);
6312
6312
  const A = t.fileLink;
6313
6313
  if (!A)
6314
- throw new ue(t);
6314
+ throw new me(t);
6315
6315
  const a = await dt(A);
6316
6316
  return {
6317
6317
  assetUrl: A,
@@ -6322,10 +6322,10 @@ class Cn {
6322
6322
  var B;
6323
6323
  const r = n.markUpdatePending(), c = await this.fontDataFromVariant(t);
6324
6324
  if (a.length > 0) {
6325
- const l = a.map((w) => new St(w.id, c));
6325
+ const g = a.map((w) => new St(w.id, c));
6326
6326
  if (o) {
6327
6327
  const w = a.map((h) => new Xe(h.id, o));
6328
- l.push(...w);
6328
+ g.push(...w);
6329
6329
  }
6330
6330
  const d = await this.changeInputTextWithRegion(
6331
6331
  e,
@@ -6338,14 +6338,14 @@ class Cn {
6338
6338
  i,
6339
6339
  s
6340
6340
  );
6341
- return d && l.push(d), {
6342
- command: new k(l),
6341
+ return d && g.push(d), {
6342
+ command: new k(g),
6343
6343
  followup: async () => {
6344
6344
  n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
6345
6345
  }
6346
6346
  };
6347
6347
  } else {
6348
- const l = await this.createTextboxRegions(
6348
+ const g = await this.createTextboxRegions(
6349
6349
  e.stepName,
6350
6350
  t,
6351
6351
  e.data,
@@ -6356,15 +6356,15 @@ class Cn {
6356
6356
  e,
6357
6357
  e.data.size || Ze,
6358
6358
  c,
6359
- ((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
6359
+ ((B = g[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
6360
6360
  A,
6361
6361
  n,
6362
6362
  !!A.customiseAllText,
6363
6363
  i,
6364
6364
  s
6365
- ), C = l.flatMap((h) => h.commands);
6365
+ ), C = g.flatMap((h) => h.commands);
6366
6366
  if (o) {
6367
- const h = l.map(
6367
+ const h = g.map(
6368
6368
  (u) => new Xe(u.regionElement.id, o)
6369
6369
  );
6370
6370
  C.push(...h);
@@ -6393,13 +6393,13 @@ class Cn {
6393
6393
  const d = i.getLayouts().find((h) => h.panelId === B.panelId), C = J();
6394
6394
  try {
6395
6395
  if (!d)
6396
- throw new Je("Failed to find layout for region: " + B.panelId);
6396
+ throw new Te("Failed to find layout for region: " + B.panelId);
6397
6397
  const h = A.colorOption;
6398
6398
  let u;
6399
6399
  if (h && h.variants) {
6400
6400
  const S = h.variants.find((T) => {
6401
- var R;
6402
- return T.id === ((R = h.defaultVariant) == null ? void 0 : R.id);
6401
+ var H;
6402
+ return T.id === ((H = h.defaultVariant) == null ? void 0 : H.id);
6403
6403
  }) || h.variants[0];
6404
6404
  u = this.createTextFillSpotColor(h, S), i.updateStorage(e, {
6405
6405
  colorProfileAssetKey: (w = h.colorProfile) == null ? void 0 : w.key
@@ -6432,7 +6432,7 @@ class Cn {
6432
6432
  }, p = [], m = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
6433
6433
  if (!Q.fontData)
6434
6434
  throw new b("Failed to resolve font data for text.");
6435
- const [F, y] = xe(
6435
+ const [F, y] = Ne(
6436
6436
  Q.fontSize,
6437
6437
  Q.fontData,
6438
6438
  {
@@ -6460,10 +6460,10 @@ class Cn {
6460
6460
  fontData: a
6461
6461
  };
6462
6462
  } catch (h) {
6463
- throw console.log(h), new be("Error adding font to region");
6463
+ throw console.log(h), new Je("Error adding font to region");
6464
6464
  }
6465
6465
  }, c = await Promise.all(A.regions.map(r)).catch((B) => {
6466
- throw B instanceof be ? (Bn.setLatestToast("Failed to load font.", Ve.Error), B) : B instanceof Je ? B : new Error(B);
6466
+ throw B instanceof Je ? (Bn.setLatestToast("Failed to load font.", Ve.Error), B) : B instanceof Te ? B : new Error(B);
6467
6467
  });
6468
6468
  return await i.setSelectionsAndElements(
6469
6469
  e,
@@ -6490,30 +6490,30 @@ class Cn {
6490
6490
  * @deprecated
6491
6491
  */
6492
6492
  async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, c) {
6493
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map();
6493
+ const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), g = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map();
6494
6494
  for (const Q of d)
6495
6495
  if (Q.region) {
6496
- const [p, m] = xe(
6496
+ const [p, m] = Ne(
6497
6497
  t,
6498
6498
  A,
6499
6499
  Q.region,
6500
- [l],
6500
+ [g],
6501
6501
  { size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
6502
6502
  );
6503
6503
  C.set(Q.id, p), w.set(Q.id, m);
6504
6504
  }
6505
6505
  const u = (() => {
6506
- if (e.data && e.data.maxLength && l.length > e.data.maxLength)
6506
+ if (e.data && e.data.maxLength && g.length > e.data.maxLength)
6507
6507
  return c && c(!0), { info: "0" };
6508
- const Q = i.getProfanities(), p = st(l.toLowerCase());
6508
+ const Q = i.getProfanities(), p = st(g.toLowerCase());
6509
6509
  for (const m of p)
6510
6510
  for (const I in Q) {
6511
6511
  const F = Q[I].toLowerCase().replace(/\s/g, "");
6512
6512
  if (m === F)
6513
6513
  return o(!0), { error: "Blocked profanity." };
6514
6514
  }
6515
- return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
6516
- `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(w.values()).every((I) => I) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
6515
+ return !e.data.vertical && !e.data.allowNewlines && (g.includes(`
6516
+ `) || g.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(w.values()).every((I) => I) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - g.length).toString() });
6517
6517
  })();
6518
6518
  if (u.error) {
6519
6519
  r(u.error);
@@ -6526,7 +6526,7 @@ class Cn {
6526
6526
  }), (n.defaultCleared || !e.data.deleteDefaultOnFocus) && i.setMandatoryFulfilled(e.stepName, !0);
6527
6527
  const E = [];
6528
6528
  for (const Q of d) {
6529
- const p = e.data.curved ? l : (w.get(Q.id) || []).join(`
6529
+ const p = e.data.curved ? g : (w.get(Q.id) || []).join(`
6530
6530
  `);
6531
6531
  E.push(
6532
6532
  this.generateTextChangeCommandsForRegion(
@@ -7804,42 +7804,42 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
7804
7804
  </g>
7805
7805
  </svg>
7806
7806
 
7807
- `, v = (g) => ZA("http://www.w3.org/2000/svg", g), Qt = (g, e) => {
7807
+ `, v = (l) => ZA("http://www.w3.org/2000/svg", l), Qt = (l, e) => {
7808
7808
  const t = v("rect");
7809
- return t.setAttribute("height", `${g}`), t.setAttribute("width", `${e}`), t;
7809
+ return t.setAttribute("height", `${l}`), t.setAttribute("width", `${e}`), t;
7810
7810
  }, En = () => {
7811
- const g = v("svg");
7812
- return g.setAttribute("xmlns", "http://www.w3.org/2000/svg"), g.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), g.setAttribute("version", "1.1"), g;
7813
- }, un = (g) => {
7811
+ const l = v("svg");
7812
+ return l.setAttribute("xmlns", "http://www.w3.org/2000/svg"), l.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), l.setAttribute("version", "1.1"), l;
7813
+ }, un = (l) => {
7814
7814
  const e = v("use");
7815
- return e.setAttribute("xlink:href", g), e.setAttribute("href", g), e;
7815
+ return e.setAttribute("xlink:href", l), e.setAttribute("href", l), e;
7816
7816
  };
7817
- function pA(g) {
7818
- const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
7817
+ function QA(l) {
7818
+ const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(l) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
7819
7819
  return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
7820
7820
  }
7821
- const mn = (g, e, t) => {
7821
+ const mn = (l, e, t) => {
7822
7822
  const A = v("g");
7823
- g.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
7823
+ l.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
7824
7824
  };
7825
- function DA(g, e, t) {
7825
+ function pA(l, e, t) {
7826
7826
  const A = J();
7827
- mn(e, t, `bgdef-${A}`), g.appendChild(un(`#bgdef-${A}`));
7827
+ mn(e, t, `bgdef-${A}`), l.appendChild(un(`#bgdef-${A}`));
7828
7828
  }
7829
- const IA = (g, e, t, A) => {
7830
- const a = Ie("filter");
7829
+ const DA = (l, e, t, A) => {
7830
+ const a = fe("filter");
7831
7831
  a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
7832
- const n = Ie("feOffset");
7833
- a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${g}`), n.setAttribute("dy", `${e}`);
7834
- const i = Ie("feGaussianBlur");
7832
+ const n = fe("feOffset");
7833
+ a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${l}`), n.setAttribute("dy", `${e}`);
7834
+ const i = fe("feGaussianBlur");
7835
7835
  a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
7836
- const s = Ie("feBlend");
7836
+ const s = fe("feBlend");
7837
7837
  return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
7838
- }, fA = (g) => {
7839
- let e = g;
7838
+ }, IA = (l) => {
7839
+ let e = l;
7840
7840
  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;
7841
7841
  };
7842
- function pt(g, e, t, A, a, n) {
7842
+ function pt(l, e, t, A, a, n) {
7843
7843
  const i = a || 1, s = n || 1, o = {
7844
7844
  x: e[0],
7845
7845
  y: e[1],
@@ -7849,10 +7849,10 @@ function pt(g, e, t, A, a, n) {
7849
7849
  if (o.width <= 0)
7850
7850
  return;
7851
7851
  const r = Qn(o.height, o.width, t * i, A * s), c = (A - r * o.width) / 2 - r * o.x, B = (t - r * o.height) / 2 - r * o.y;
7852
- g.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
7852
+ l.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
7853
7853
  }
7854
- function Qn(g, e, t, A) {
7855
- const a = t / g, n = A / e;
7854
+ function Qn(l, e, t, A) {
7855
+ const a = t / l, n = A / e;
7856
7856
  return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
7857
7857
  }
7858
7858
  const Gt = {
@@ -7889,18 +7889,18 @@ class Dt {
7889
7889
  o && (i.push(s), t = s);
7890
7890
  for (const c of r) {
7891
7891
  const B = n[c];
7892
- let l;
7892
+ let g;
7893
7893
  switch (typeof B) {
7894
7894
  case "boolean":
7895
- l = B | 0;
7895
+ g = B | 0;
7896
7896
  break;
7897
7897
  case "number":
7898
- l = (B * 100 | 0) / 100;
7898
+ g = (B * 100 | 0) / 100;
7899
7899
  break;
7900
7900
  default:
7901
7901
  throw new he("Failed to encode path.");
7902
7902
  }
7903
- o || i.push(" "), i.push(l), o = !1;
7903
+ o || i.push(" "), i.push(g), o = !1;
7904
7904
  }
7905
7905
  return i.join("");
7906
7906
  };
@@ -7922,8 +7922,8 @@ class Dt {
7922
7922
  );
7923
7923
  for (let c = 0; c < s.length / r.length; c++) {
7924
7924
  const B = { type: i, relative: o };
7925
- for (let l = 0; l < r.length; l++)
7926
- B[r[l]] = s[c * r.length + l];
7925
+ for (let g = 0; g < r.length; g++)
7926
+ B[r[g]] = s[c * r.length + g];
7927
7927
  a.push(B);
7928
7928
  }
7929
7929
  } else
@@ -7982,7 +7982,7 @@ class pn extends mt {
7982
7982
  brandSvg(e, t) {
7983
7983
  const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
7984
7984
  const p = v("g"), m = v("defs");
7985
- p.appendChild(m), m.appendChild(IA(3, 7, 4, "shadow"));
7985
+ p.appendChild(m), m.appendChild(DA(3, 7, 4, "shadow"));
7986
7986
  const I = v("g");
7987
7987
  p.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
7988
7988
  const F = v("g");
@@ -7991,21 +7991,21 @@ class pn extends mt {
7991
7991
  p.appendChild(y), y.setAttribute("fill", "#9d2621"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = A;
7992
7992
  const Y = v("g");
7993
7993
  return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new Dt(p).transform(([S, T]) => [S, T + (n / 2 - S) ** 2 / (n * 2.9)]), p;
7994
- }, [o, r, c] = pA(t);
7994
+ }, [o, r, c] = QA(t);
7995
7995
  if (!o)
7996
7996
  return "";
7997
7997
  const B = v("defs");
7998
- o.appendChild(B), DA(o, B, t);
7999
- const l = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
7998
+ o.appendChild(B), pA(o, B, t);
7999
+ const g = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
8000
8000
  o.appendChild(h), h.setAttribute("transform", `translate(${C} ${w}) rotate(-21)`);
8001
- const u = Qt(l, d);
8001
+ const u = Qt(g, d);
8002
8002
  u.setAttribute("opacity", "0"), h.appendChild(u);
8003
8003
  const E = v("g");
8004
8004
  h.appendChild(E);
8005
8005
  const D = s();
8006
8006
  E.appendChild(D);
8007
8007
  const Q = wt(i);
8008
- return pt(E, Q, l, d), fA(o.outerHTML);
8008
+ return pt(E, Q, g, d), IA(o.outerHTML);
8009
8009
  }
8010
8010
  }
8011
8011
  const Dn = "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==";
@@ -8036,13 +8036,13 @@ class In extends mt {
8036
8036
  S,
8037
8037
  T + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
8038
8038
  ]), N.transform(([S, T]) => [S - (i - T) * (s - S) / 800, T]), I;
8039
- }, [c, B, l] = pA(t);
8039
+ }, [c, B, g] = QA(t);
8040
8040
  if (!c)
8041
8041
  return "";
8042
8042
  const d = v("defs");
8043
- c.appendChild(d), DA(c, d, t);
8043
+ c.appendChild(d), pA(c, d, t);
8044
8044
  let C, w, h, u;
8045
- A ? (C = B * 0.25 * (1 + 0.1), w = l / 2 * (1 + 0.1), h = l * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), w = l * 0.8, h = l * 0.067, u = B * 0.33);
8045
+ A ? (C = B * 0.25 * (1 + 0.1), w = g / 2 * (1 + 0.1), h = g * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), w = g * 0.8, h = g * 0.067, u = B * 0.33);
8046
8046
  const E = v("g");
8047
8047
  c.appendChild(E), E.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
8048
8048
  const D = Qt(C, w);
@@ -8072,7 +8072,7 @@ class Fn extends mt {
8072
8072
  const D = v("g");
8073
8073
  D.classList.add("module-text-group");
8074
8074
  const Q = v("defs");
8075
- D.appendChild(Q), Q.appendChild(IA(0, 2, 2, "shadow"));
8075
+ D.appendChild(Q), Q.appendChild(DA(0, 2, 2, "shadow"));
8076
8076
  const p = v("path");
8077
8077
  p.setAttribute("d", c), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), Q.appendChild(p);
8078
8078
  const m = v("g");
@@ -8083,36 +8083,36 @@ class Fn extends mt {
8083
8083
  F.classList.add("module-layer2"), D.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
8084
8084
  const y = v("g");
8085
8085
  return y.classList.add("module-layer3"), D.appendChild(y), y.setAttribute("fill", "white"), y.innerHTML = s, new Dt(D).transform(([N, S]) => [N, S + (r / 2 - N) ** 2 / (r * 6)]), D;
8086
- }, l = v("g");
8087
- l.classList.add("module-root");
8086
+ }, g = v("g");
8087
+ g.classList.add("module-root");
8088
8088
  const d = v("defs");
8089
- l.appendChild(d);
8089
+ g.appendChild(d);
8090
8090
  const C = v("g");
8091
- C.classList.add("module-bounds"), l.appendChild(C);
8091
+ C.classList.add("module-bounds"), g.appendChild(C);
8092
8092
  const w = Qt(t.height, t.width);
8093
8093
  w.setAttribute("opacity", "0"), C.appendChild(w);
8094
8094
  const h = v("g");
8095
- h.classList.add("module-text-enclosure"), l.appendChild(h);
8095
+ h.classList.add("module-text-enclosure"), g.appendChild(h);
8096
8096
  const u = B();
8097
8097
  h.appendChild(u);
8098
8098
  const E = wt(c);
8099
- return pt(h, E, t.height, t.width, 0.35, 0.65), fA(l.outerHTML);
8099
+ return pt(h, E, t.height, t.width, 0.35, 0.65), IA(g.outerHTML);
8100
8100
  }
8101
8101
  }
8102
- async function FA(g) {
8103
- if (g === "Favourites")
8102
+ async function fA(l) {
8103
+ if (l === "Favourites")
8104
8104
  return new pn();
8105
- if (g === "Maltesers") {
8105
+ if (l === "Maltesers") {
8106
8106
  const e = _("https://assets.spiff.com.au/public/modules/img/MaltesersBackground.svg"), t = _("https://assets.spiff.com.au/public/modules/img/MaltesersBackgroundShort.svg"), A = await Promise.all([e, t]);
8107
8107
  return new In(A[0], A[1]);
8108
8108
  }
8109
- if (g === "Vegemite")
8109
+ if (l === "Vegemite")
8110
8110
  return new Fn();
8111
- throw new b(`Failed to resolve Module, Module ${g} not found`);
8111
+ throw new b(`Failed to resolve Module, Module ${l} not found`);
8112
8112
  }
8113
- var Ve = /* @__PURE__ */ ((g) => (g.Error = "Error", g.Warning = "Warning", g.Info = "Info", g))(Ve || {});
8113
+ var Ve = /* @__PURE__ */ ((l) => (l.Error = "Error", l.Warning = "Warning", l.Info = "Info", l))(Ve || {});
8114
8114
  const yn = 1e3;
8115
- class bt extends BA {
8115
+ class bt extends gA {
8116
8116
  constructor(e) {
8117
8117
  super(), this.createdAt = /* @__PURE__ */ new Date(), this.update = e;
8118
8118
  }
@@ -8125,8 +8125,8 @@ class bt extends BA {
8125
8125
  }
8126
8126
  }
8127
8127
  class Mn {
8128
- constructor(e, t, A, a, n, i, s, o, r, c, B, l, d, C = !1, w, h = !1, u = !1, E = !1) {
8129
- this.workflowStatePromiseQueue = new dA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
8128
+ constructor(e, t, A, a, n, i, s, o, r, c, B, g, d, C = !1, w, h = !1, u = !1, E = !1) {
8129
+ this.workflowStatePromiseQueue = new BA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
8130
8130
  var p;
8131
8131
  if (!this.previewService)
8132
8132
  return;
@@ -8134,7 +8134,7 @@ class Mn {
8134
8134
  if (Q)
8135
8135
  for (const [, m] of Q)
8136
8136
  m.render(D);
8137
- }, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = d, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = B, this.modelContainer = w, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = l, this.isReloadedTransaction = h, this.stepTags = c, E && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
8137
+ }, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = d, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = B, this.modelContainer = w, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = g, this.isReloadedTransaction = h, this.stepTags = c, E && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
8138
8138
  this.initialized = !0;
8139
8139
  }), this.initializationPromise.catch((D) => {
8140
8140
  throw console.error(D), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
@@ -8371,8 +8371,8 @@ class Mn {
8371
8371
  throw new b(
8372
8372
  "We should always have a model container when injecting a preview!"
8373
8373
  );
8374
- const l = (B = o.asset) == null ? void 0 : B.fileLink;
8375
- if (!l) {
8374
+ const g = (B = o.asset) == null ? void 0 : B.fileLink;
8375
+ if (!g) {
8376
8376
  console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
8377
8377
  return;
8378
8378
  }
@@ -8380,14 +8380,14 @@ class Mn {
8380
8380
  this.modelContainer.applyModelVariant(
8381
8381
  i.stepName,
8382
8382
  {
8383
- model: l,
8383
+ model: g,
8384
8384
  contextService: this.getLayoutPreviewService()
8385
8385
  },
8386
8386
  d.replaceProductModel || !1
8387
8387
  );
8388
8388
  } else {
8389
- const l = o.material;
8390
- if (!l) {
8389
+ const g = o.material;
8390
+ if (!g) {
8391
8391
  console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
8392
8392
  return;
8393
8393
  }
@@ -8396,7 +8396,7 @@ class Mn {
8396
8396
  throw new b(
8397
8397
  "We should always have a model container when injecting a preview!"
8398
8398
  );
8399
- this.modelContainer.applyMaterialVariant(C, i.option.id, l);
8399
+ this.modelContainer.applyMaterialVariant(C, i.option.id, g);
8400
8400
  });
8401
8401
  }
8402
8402
  }), await A.getInitializationPromise(), this.renderLayouts();
@@ -8414,7 +8414,7 @@ class Mn {
8414
8414
  ...this.storage,
8415
8415
  [e]: { ...this.storage[e], ...t }
8416
8416
  };
8417
- if (!eA(A, this.storage)) {
8417
+ if (!_t(A, this.storage)) {
8418
8418
  this.storage = A;
8419
8419
  const a = new Yt(this.constructSerializableWorkflow());
8420
8420
  this.commandContext.apply(a, !0), this.onStepSpecificStorageChange(e), this.onStorageChange();
@@ -8468,7 +8468,7 @@ class Mn {
8468
8468
  const e = this.getCommandContext().getState();
8469
8469
  if (!e)
8470
8470
  throw new b("Attempted to serialize state before it was initialized.");
8471
- return { transaction: JSON.stringify(this.dehydrateState(ge(e.transaction))) };
8471
+ return { transaction: JSON.stringify(this.dehydrateState(le(e.transaction))) };
8472
8472
  }
8473
8473
  dehydrateState(e) {
8474
8474
  var t;
@@ -8509,15 +8509,15 @@ class Mn {
8509
8509
  return Promise.resolve({ stepElements: {}, commands: [] });
8510
8510
  const a = async (r, c, B) => {
8511
8511
  if (r.type === M.SilentIllustration) {
8512
- const l = await new kt(r, c).trigger();
8513
- return { step: r, results: l };
8512
+ const g = await new kt(r, c).trigger();
8513
+ return { step: r, results: g };
8514
8514
  } else if (r.type === M.ProductOverlay) {
8515
- const l = await new kt(
8515
+ const g = await new kt(
8516
8516
  r,
8517
8517
  c,
8518
8518
  B
8519
8519
  ).trigger();
8520
- return { step: r, results: l };
8520
+ return { step: r, results: g };
8521
8521
  }
8522
8522
  return Promise.reject("Unknown silent step. This is a bug");
8523
8523
  }, n = e.filter(
@@ -8589,18 +8589,18 @@ class Mn {
8589
8589
  r.forEach((m) => {
8590
8590
  ae(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
8591
8591
  });
8592
- const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8592
+ const g = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8593
8593
  this.stepElements = {
8594
8594
  ...this.stepElements,
8595
8595
  ...d,
8596
8596
  [e]: A
8597
- }, this.removeElements(l);
8597
+ }, this.removeElements(g);
8598
8598
  const w = this.workflow.steps.find((m) => m.stepName === e);
8599
8599
  if ((w == null ? void 0 : w.type) === M.Frame) {
8600
8600
  const m = this.getStepSpecificServices(e);
8601
8601
  (p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((I) => I.id));
8602
8602
  }
8603
- const h = l.map((m) => new ne(m.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
8603
+ const h = g.map((m) => new ne(m.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
8604
8604
  E.length > 0 && this.commandContext.apply(new k(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
8605
8605
  const D = this.getInvalidModelVariants(), Q = this.modelContainer;
8606
8606
  if (Q) {
@@ -8624,7 +8624,7 @@ class Mn {
8624
8624
  switch (this.stepInitialised[o.stepName] = !0, o.type) {
8625
8625
  case M.DigitalContent:
8626
8626
  A.push(
8627
- wA.init(
8627
+ CA.init(
8628
8628
  o,
8629
8629
  this,
8630
8630
  this.reloadedState
@@ -8643,32 +8643,32 @@ class Mn {
8643
8643
  break;
8644
8644
  case M.Illustration:
8645
8645
  A.push(
8646
- Ne.init(o, this, this.reloadedState)
8646
+ ve.init(o, this, this.reloadedState)
8647
8647
  );
8648
8648
  break;
8649
8649
  case M.Material:
8650
8650
  A.push(
8651
- hA.init(o, this, this.reloadedState)
8651
+ wA.init(o, this, this.reloadedState)
8652
8652
  );
8653
8653
  break;
8654
8654
  case M.Model:
8655
- A.push(EA.init(o, this, this.reloadedState));
8655
+ A.push(hA.init(o, this, this.reloadedState));
8656
8656
  break;
8657
8657
  case M.Module:
8658
8658
  this.stepSpecificServices[o.stepName] = {
8659
- module: await FA(o.data.module)
8659
+ module: await fA(o.data.module)
8660
8660
  }, A.push(
8661
- uA.init(o, this, this.reloadedState)
8661
+ EA.init(o, this, this.reloadedState)
8662
8662
  );
8663
8663
  break;
8664
8664
  case M.Picture:
8665
8665
  A.push(
8666
- mA.init(o, this, this.reloadedState)
8666
+ uA.init(o, this, this.reloadedState)
8667
8667
  );
8668
8668
  break;
8669
8669
  case M.Question:
8670
8670
  A.push(
8671
- QA.init(o, this, this.reloadedState)
8671
+ mA.init(o, this, this.reloadedState)
8672
8672
  );
8673
8673
  break;
8674
8674
  case M.Shape:
@@ -8821,7 +8821,7 @@ class Z {
8821
8821
  return this.variantData.enabled;
8822
8822
  }
8823
8823
  }
8824
- const yA = class rt {
8824
+ const FA = class rt {
8825
8825
  constructor(e, t, A) {
8826
8826
  this.manager = e, this.step = t, this.tags = A;
8827
8827
  }
@@ -8952,8 +8952,8 @@ const yA = class rt {
8952
8952
  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.");
8953
8953
  }
8954
8954
  };
8955
- yA.updateState = /* @__PURE__ */ new Map();
8956
- let X = yA;
8955
+ FA.updateState = /* @__PURE__ */ new Map();
8956
+ let X = FA;
8957
8957
  class Sn extends X {
8958
8958
  constructor(e, t, A) {
8959
8959
  super(e, t, A);
@@ -8965,7 +8965,7 @@ class Sn extends X {
8965
8965
  */
8966
8966
  async selectVariant(e) {
8967
8967
  if (!this.getUpdateState() && this.getCurrentVariant() !== e)
8968
- return Ne.selectVariant(
8968
+ return ve.selectVariant(
8969
8969
  this.step,
8970
8970
  e.getResource(),
8971
8971
  this.manager.getRegionElements(this.step.stepName) || [],
@@ -8981,7 +8981,7 @@ class Sn extends X {
8981
8981
  const e = this.manager.getRegionElements(this.step.stepName) || [];
8982
8982
  if (e.length !== 0)
8983
8983
  try {
8984
- return Re(e[0].id, this.manager.getAllLayoutData()).colors;
8984
+ return He(e[0].id, this.manager.getAllLayoutData()).colors;
8985
8985
  } catch (t) {
8986
8986
  console.error(t);
8987
8987
  }
@@ -8991,7 +8991,7 @@ class Sn extends X {
8991
8991
  */
8992
8992
  setColor(e, t) {
8993
8993
  const A = /* @__PURE__ */ new Map();
8994
- return A.set(e, t), Ne.changeColors(
8994
+ return A.set(e, t), ve.changeColors(
8995
8995
  this.step,
8996
8996
  this.manager.getRegionElements(this.step.stepName),
8997
8997
  this.manager,
@@ -9003,7 +9003,7 @@ class Sn extends X {
9003
9003
  return this.step.data.colorOption;
9004
9004
  }
9005
9005
  getAvailableColors() {
9006
- return this.step.data.colorPickerEnabled ? Ne.availableColors(this.step, this.manager) : Promise.resolve([]);
9006
+ return this.step.data.colorPickerEnabled ? ve.availableColors(this.step, this.manager) : Promise.resolve([]);
9007
9007
  }
9008
9008
  isColorPickerEnabled() {
9009
9009
  return this.step.data.colorPickerEnabled ?? !1;
@@ -9014,7 +9014,7 @@ class Yn extends X {
9014
9014
  super(e, t, A);
9015
9015
  }
9016
9016
  selectVariant(e) {
9017
- return hA.selectVariant(
9017
+ return wA.selectVariant(
9018
9018
  this.step,
9019
9019
  e.getResource(),
9020
9020
  this.manager,
@@ -9027,7 +9027,7 @@ class Pn extends X {
9027
9027
  super(e, t, A);
9028
9028
  }
9029
9029
  selectVariant(e) {
9030
- return EA.selectVariant(
9030
+ return hA.selectVariant(
9031
9031
  this.step,
9032
9032
  e.getResource(),
9033
9033
  this.manager,
@@ -9045,7 +9045,7 @@ class xn extends X {
9045
9045
  * @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
9046
9046
  */
9047
9047
  selectVariant(e) {
9048
- return mA.selectVariant(
9048
+ return uA.selectVariant(
9049
9049
  this.step,
9050
9050
  e.getResource(),
9051
9051
  this.manager,
@@ -9060,7 +9060,7 @@ class Nn extends X {
9060
9060
  async selectVariant(e) {
9061
9061
  if (!e.getId())
9062
9062
  throw new Error("Unable to select variant with a null ID");
9063
- await QA.selectVariant(this.step, e.getId(), this.manager);
9063
+ await mA.selectVariant(this.step, e.getId(), this.manager);
9064
9064
  }
9065
9065
  /**
9066
9066
  * The way that this step expects to be rendered.
@@ -9329,7 +9329,7 @@ class kn extends X {
9329
9329
  * @returns The final URL string for the QR code.
9330
9330
  */
9331
9331
  async selectVideo(e) {
9332
- return wA.regenerateQRCode(
9332
+ return CA.regenerateQRCode(
9333
9333
  this.manager.getRegionElements(this.step.stepName),
9334
9334
  e.key,
9335
9335
  this.manager,
@@ -9367,7 +9367,7 @@ class Un extends X {
9367
9367
  return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.text) || "";
9368
9368
  }
9369
9369
  setText(e) {
9370
- uA.changeText(this.step, e, this.manager, "", (t) => {
9370
+ EA.changeText(this.step, e, this.manager, "", (t) => {
9371
9371
  if (t)
9372
9372
  this.manager.setInformationResults([
9373
9373
  ...this.manager.getInformationResults(),
@@ -9384,7 +9384,7 @@ class Un extends X {
9384
9384
  });
9385
9385
  }
9386
9386
  }
9387
- class ye {
9387
+ class Me {
9388
9388
  static get(e, t) {
9389
9389
  switch (t.type) {
9390
9390
  case M.DigitalContent:
@@ -9414,7 +9414,7 @@ class ye {
9414
9414
  }
9415
9415
  }
9416
9416
  }
9417
- const MA = f`
9417
+ const yA = f`
9418
9418
  fragment CreateDesignTransaction on Transaction {
9419
9419
  id
9420
9420
  designName
@@ -9440,7 +9440,7 @@ const MA = f`
9440
9440
  }
9441
9441
  }
9442
9442
  `, Gn = f`
9443
- ${MA}
9443
+ ${yA}
9444
9444
  mutation CreateDesign(
9445
9445
  $name: String!
9446
9446
  $layouts: [LayoutInput]!
@@ -9472,7 +9472,7 @@ const MA = f`
9472
9472
  }
9473
9473
  }
9474
9474
  `, bn = f`
9475
- ${MA}
9475
+ ${yA}
9476
9476
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
9477
9477
  designCreateMany(inputs: $inputs) {
9478
9478
  id
@@ -9486,40 +9486,40 @@ const MA = f`
9486
9486
  }
9487
9487
  }
9488
9488
  `;
9489
- function Te(g) {
9490
- const e = JSON.parse(atob(g.split(".")[1])).exp;
9489
+ function Oe(l) {
9490
+ const e = JSON.parse(atob(l.split(".")[1])).exp;
9491
9491
  return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
9492
9492
  }
9493
- const Jn = async (g) => {
9493
+ const Jn = async (l) => {
9494
9494
  var i, s;
9495
9495
  const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
9496
- return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
9496
+ return A && !Oe(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
9497
9497
  mutation: Gn,
9498
9498
  errorPolicy: "all",
9499
9499
  fetchPolicy: "no-cache",
9500
9500
  variables: {
9501
- name: g.name,
9502
- layouts: g.layouts,
9503
- workflowId: g.workflowId,
9504
- transactionId: g.transactionId,
9505
- previewImage: g.previewImage,
9506
- useThreeDimPreview: g.useThreeDimPreview,
9507
- metadata: g.metadata,
9508
- selectedVariants: g.selectedVariants
9501
+ name: l.name,
9502
+ layouts: l.layouts,
9503
+ workflowId: l.workflowId,
9504
+ transactionId: l.transactionId,
9505
+ previewImage: l.previewImage,
9506
+ useThreeDimPreview: l.useThreeDimPreview,
9507
+ metadata: l.metadata,
9508
+ selectedVariants: l.selectedVariants
9509
9509
  },
9510
9510
  context: {
9511
9511
  headers: a
9512
9512
  }
9513
9513
  })).data) == null ? void 0 : s.designCreate;
9514
- }, Tn = async (g) => {
9514
+ }, Tn = async (l) => {
9515
9515
  var i, s;
9516
9516
  const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
9517
- return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
9517
+ return A && !Oe(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
9518
9518
  mutation: bn,
9519
9519
  errorPolicy: "all",
9520
9520
  fetchPolicy: "no-cache",
9521
9521
  variables: {
9522
- inputs: g.map((o) => ({
9522
+ inputs: l.map((o) => ({
9523
9523
  name: o.name,
9524
9524
  layouts: o.layouts,
9525
9525
  workflowId: o.workflowId,
@@ -9534,17 +9534,17 @@ const Jn = async (g) => {
9534
9534
  headers: a
9535
9535
  }
9536
9536
  })).data) == null ? void 0 : s.designCreateMany;
9537
- }, ct = (g, e, t) => {
9537
+ }, ct = (l, e, t) => {
9538
9538
  const A = (n) => {
9539
9539
  const i = {};
9540
9540
  if (n.type === "Frame") {
9541
- const s = g[n.stepName], o = n.data;
9541
+ const s = l[n.stepName], o = n.data;
9542
9542
  if (!s || !s.image || o.hideImageInCart && t)
9543
9543
  return i;
9544
9544
  i[`${n.stepTitle} image`] = s.image;
9545
9545
  }
9546
9546
  if (n.type === "Illustration") {
9547
- const s = g[n.stepName], o = n.data;
9547
+ const s = l[n.stepName], o = n.data;
9548
9548
  if (!s || o.hideColorsInCart && t || !s.colors)
9549
9549
  return i;
9550
9550
  if (s.colors.length > 0) {
@@ -9553,13 +9553,13 @@ const Jn = async (g) => {
9553
9553
  }
9554
9554
  }
9555
9555
  if (n.type === "Module") {
9556
- const s = g[n.stepName], o = n.data;
9556
+ const s = l[n.stepName], o = n.data;
9557
9557
  if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && t)
9558
9558
  return i;
9559
9559
  i[`${n.stepTitle} text`] = s.text;
9560
9560
  }
9561
9561
  if (n.type === "Text") {
9562
- const s = g[n.stepName];
9562
+ const s = l[n.stepName];
9563
9563
  if (!s)
9564
9564
  return i;
9565
9565
  const o = n.data;
@@ -9570,14 +9570,14 @@ const Jn = async (g) => {
9570
9570
  return e.steps.forEach((n) => {
9571
9571
  Object.assign(a, A(n));
9572
9572
  }), a;
9573
- }, On = (g, e, t, A) => {
9573
+ }, On = (l, e, t, A) => {
9574
9574
  const a = {};
9575
9575
  let n = {};
9576
9576
  t ? n = ct(t, e, !1) : A && (n = A);
9577
9577
  const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
9578
9578
  for (const o of s) {
9579
- if (Object.keys(g).includes(o)) {
9580
- const r = g[o], c = e.steps.find((B) => B.stepTitle === o);
9579
+ if (Object.keys(l).includes(o)) {
9580
+ const r = l[o], c = e.steps.find((B) => B.stepTitle === o);
9581
9581
  a[`${c == null ? void 0 : c.stepTitle} selection`] = {
9582
9582
  value: r[0].name,
9583
9583
  priceModifier: r[0].priceModifier
@@ -9590,60 +9590,60 @@ const Jn = async (g) => {
9590
9590
  });
9591
9591
  }
9592
9592
  return a;
9593
- }, SA = (g, e, t, A, a, n, i, s) => {
9593
+ }, MA = (l, e, t, A, a, n, i, s) => {
9594
9594
  var C, w;
9595
- const o = e.basePrice || 0, r = g.priceModifierTotal || 0, c = On(A, t, void 0, n), l = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), d = {
9596
- additionalExternalProductId: (C = g.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
9597
- additionalExternalVariantId: (w = g.integrationProduct) == null ? void 0 : w.additionalExternalVariantId,
9595
+ const o = e.basePrice || 0, r = l.priceModifierTotal || 0, c = On(A, t, void 0, n), g = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(l.id), d = {
9596
+ additionalExternalProductId: (C = l.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
9597
+ additionalExternalVariantId: (w = l.integrationProduct) == null ? void 0 : w.additionalExternalVariantId,
9598
9598
  baseCost: o,
9599
- designExternalVariants: g.designExternalVariants,
9600
- designProductId: g.externalDesignProductId,
9601
- designProductVariantId: g.externalDesignProductVariantId,
9599
+ designExternalVariants: l.designExternalVariants,
9600
+ designProductId: l.externalDesignProductId,
9601
+ designProductVariantId: l.externalDesignProductVariantId,
9602
9602
  event: "onComplete",
9603
9603
  exportedData: c,
9604
- externalCartProductId: g.externalCartProductId,
9605
- externalCartProductVariantId: g.externalCartProductVariantId,
9604
+ externalCartProductId: l.externalCartProductId,
9605
+ externalCartProductVariantId: l.externalCartProductVariantId,
9606
9606
  lineItemImageUrl: i || "",
9607
9607
  optionsCost: r,
9608
9608
  processExecutionId: s,
9609
- quantity: g.quantity,
9610
- transactionId: g.id,
9611
- transactionOwnerId: l,
9609
+ quantity: l.quantity,
9610
+ transactionId: l.id,
9611
+ transactionOwnerId: g,
9612
9612
  weight: e.weight,
9613
- workflowViewerLink: g.workflowViewerLink || "",
9614
- workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
9613
+ workflowViewerLink: l.workflowViewerLink || "",
9614
+ workflowViewerReadOnlyLink: l.workflowViewerReadOnlyLink || ""
9615
9615
  };
9616
9616
  return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
9617
- }, YA = async (g, e, t, A, a, n, i, s, o, r) => {
9617
+ }, SA = async (l, e, t, A, a, n, i, s, o, r) => {
9618
9618
  var F;
9619
9619
  await (async () => {
9620
- var R;
9620
+ var H;
9621
9621
  if (r !== void 0)
9622
9622
  return r;
9623
- await g.outstandingRequestsPromise();
9623
+ await l.outstandingRequestsPromise();
9624
9624
  const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), S = await x.getShadowGraphqlClient().query({
9625
- query: gA,
9625
+ query: cA,
9626
9626
  variables: { ids: [a.id] },
9627
9627
  fetchPolicy: "no-cache",
9628
9628
  errorPolicy: "all",
9629
9629
  context: {
9630
9630
  transactionOwnerId: Y
9631
9631
  }
9632
- }), T = (R = S.data) == null ? void 0 : R.transactions[0].workflowState;
9632
+ }), T = (H = S.data) == null ? void 0 : H.transactions[0].workflowState;
9633
9633
  return S.errors ? (S.errors.forEach((W) => {
9634
9634
  S.errors && console.log("Server Error:", W.message);
9635
9635
  }), null) : T ?? null;
9636
- })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await g.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
9637
- const l = g.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, w = o && ct(o, e, !0), h = o && ct(o, e, !1), u = async (y) => {
9636
+ })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await l.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
9637
+ const g = l.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, C = g && e.showModelOnFinishStep && !!d, w = o && ct(o, e, !0), h = o && ct(o, e, !1), u = async (y) => {
9638
9638
  const Y = {};
9639
9639
  let N = 0;
9640
9640
  if (Object.keys(n).length > 0)
9641
9641
  for (const S of Object.keys(n)) {
9642
- const T = n[S], R = e.steps.find((W) => W.stepName === S);
9642
+ const T = n[S], H = e.steps.find((W) => W.stepName === S);
9643
9643
  for (let W = 0; W < T.selections.length; ++W) {
9644
9644
  const O = T.selections[W];
9645
- if (R && (!y || R.option && (R.option.variants || []).length > 1 && !R.data.hideSelectionInCart && !R.data.hideSelectionsInCart)) {
9646
- const ee = R.stepTitle;
9645
+ if (H && (!y || H.option && (H.option.variants || []).length > 1 && !H.data.hideSelectionInCart && !H.data.hideSelectionsInCart)) {
9646
+ const ee = H.stepTitle;
9647
9647
  Y[ee] ? Y[ee].push({
9648
9648
  id: O.id || "",
9649
9649
  name: O.name,
@@ -9708,11 +9708,11 @@ const Jn = async (g) => {
9708
9708
  cartSelectionsWithPrices: E,
9709
9709
  cartMetadata: w
9710
9710
  };
9711
- }, Ln = async (g, e, t, A, a, n, i, s, o, r, c) => {
9711
+ }, Ln = async (l, e, t, A, a, n, i, s, o, r, c) => {
9712
9712
  var u, E;
9713
9713
  o("workflow.steps.finish.finalize.buildingLayouts");
9714
- const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await YA(
9715
- g,
9714
+ const { designDetails: B, cartSelectionsWithPrices: g, cartMetadata: d } = await SA(
9715
+ l,
9716
9716
  e,
9717
9717
  t,
9718
9718
  A,
@@ -9728,27 +9728,27 @@ const Jn = async (g) => {
9728
9728
  throw new Error("Failed to create design");
9729
9729
  o("workflow.steps.finish.finalize.updatingTransaction");
9730
9730
  const h = C.transaction;
9731
- return SA(
9731
+ return MA(
9732
9732
  h,
9733
9733
  a,
9734
9734
  e,
9735
- l,
9735
+ g,
9736
9736
  C == null ? void 0 : C.sku,
9737
9737
  d,
9738
9738
  w,
9739
9739
  (E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
9740
9740
  );
9741
- }, zn = async (g, e, t) => {
9741
+ }, zn = async (l, e, t) => {
9742
9742
  e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
9743
- g.map(async (s) => {
9743
+ l.map(async (s) => {
9744
9744
  await s.workflowManager.outstandingRequestsPromise();
9745
9745
  })
9746
9746
  );
9747
9747
  const a = await (async () => {
9748
9748
  var r;
9749
9749
  const o = await x.getShadowGraphqlClient().query({
9750
- query: gA,
9751
- variables: { ids: g.map((c) => c.transaction.id) },
9750
+ query: cA,
9751
+ variables: { ids: l.map((c) => c.transaction.id) },
9752
9752
  fetchPolicy: "no-cache",
9753
9753
  errorPolicy: "all"
9754
9754
  });
@@ -9756,7 +9756,7 @@ const Jn = async (g) => {
9756
9756
  o.errors && console.log("Server Error:", c.message);
9757
9757
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((c) => c.workflowState ?? null) : null;
9758
9758
  })(), n = await Promise.all(
9759
- g.map(async (s, o) => await YA(
9759
+ l.map(async (s, o) => await SA(
9760
9760
  s.workflowManager,
9761
9761
  s.workflow,
9762
9762
  s.layouts,
@@ -9774,9 +9774,9 @@ const Jn = async (g) => {
9774
9774
  if (!i)
9775
9775
  throw new Error("Failed to create designs");
9776
9776
  return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
9777
- var l;
9778
- const r = g[o], c = n[o], B = s.transaction;
9779
- return SA(
9777
+ var g;
9778
+ const r = l[o], c = n[o], B = s.transaction;
9779
+ return MA(
9780
9780
  B,
9781
9781
  r.product,
9782
9782
  r.workflow,
@@ -9785,7 +9785,7 @@ const Jn = async (g) => {
9785
9785
  c.cartMetadata,
9786
9786
  //lineItemImageLink,
9787
9787
  void 0,
9788
- (l = s.processExecution) == null ? void 0 : l.id
9788
+ (g = s.processExecution) == null ? void 0 : g.id
9789
9789
  );
9790
9790
  });
9791
9791
  };
@@ -9871,11 +9871,11 @@ const $e = new Kn(), jn = f`
9871
9871
  }
9872
9872
  }
9873
9873
  `;
9874
- var Vn = /* @__PURE__ */ ((g) => (g.QuantityChanged = "QuantityChanged", g.PriceBreakChanged = "PriceBreakChanged", g))(Vn || {});
9875
- class Me {
9874
+ var Vn = /* @__PURE__ */ ((l) => (l.QuantityChanged = "QuantityChanged", l.PriceBreakChanged = "PriceBreakChanged", l))(Vn || {});
9875
+ class Se {
9876
9876
  constructor(e, t) {
9877
9877
  var a;
9878
- if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = _t(async () => {
9878
+ if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = $t(async () => {
9879
9879
  await $e.getSavedDesignByTransaction(
9880
9880
  this.getWorkflowManager().getTransaction().id
9881
9881
  ) && this.save();
@@ -9961,7 +9961,7 @@ class Me {
9961
9961
  }
9962
9962
  let n = 2048;
9963
9963
  t && t <= 2048 && (n = t);
9964
- const i = He(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], c = s.find((Q) => {
9964
+ const i = ke(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], c = s.find((Q) => {
9965
9965
  var p;
9966
9966
  return ((p = Q.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
9967
9967
  }) || s[0], B = c.layoutState.layout.previewRegion ? {
@@ -9974,22 +9974,22 @@ class Me {
9974
9974
  y: 0,
9975
9975
  width: c.layoutState.layout.width,
9976
9976
  height: c.layoutState.layout.height
9977
- }, l = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
9977
+ }, g = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
9978
9978
  if (!d)
9979
9979
  throw new je("Failed to obtain 2D context for preview image creation");
9980
- const C = zt(l.layoutState.layout, l.layoutState.elements, {
9980
+ const C = Lt(g.layoutState.layout, g.layoutState.elements, {
9981
9981
  renderingConfiguration: {
9982
- purpose: Kt.Print,
9982
+ purpose: zt.Print,
9983
9983
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
9984
9984
  }
9985
- }), w = jt(C);
9986
- await (await $t.from(d, w, {
9985
+ }), w = Kt(C);
9986
+ await (await Zt.from(d, w, {
9987
9987
  anonymousCrossOrigin: !0,
9988
9988
  ignoreDimensions: !1,
9989
- createCanvas: He,
9990
- createImage: Vt,
9991
- DOMParser: Wt(),
9992
- fetch: gt
9989
+ createCanvas: ke,
9990
+ createImage: jt,
9991
+ DOMParser: Vt(),
9992
+ fetch: lt
9993
9993
  })).render();
9994
9994
  const u = await this.getCanvasObjectURLAsync(i);
9995
9995
  return i.toDataURL(u);
@@ -10001,7 +10001,7 @@ class Me {
10001
10001
  const A = this.cachedStepHandles.get(t.stepName);
10002
10002
  if (A)
10003
10003
  return A;
10004
- const a = ye.get(this.getWorkflowManager(), t);
10004
+ const a = Me.get(this.getWorkflowManager(), t);
10005
10005
  return this.cachedStepHandles.set(t.stepName, a), a;
10006
10006
  }
10007
10007
  getSteps() {
@@ -10085,17 +10085,17 @@ class Me {
10085
10085
  const a = await e.getGlobalProperties(), n = A == null ? void 0 : A.map((r) => r.getId()), i = this.getSteps().filter((r) => n === void 0 || n.includes(r.getId())), s = t.getSteps(), o = (r) => a.find((c) => c.getRawProperty().name === r.aspectName);
10086
10086
  i.forEach((r) => {
10087
10087
  const c = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
10088
- B !== void 0 && (B.forEach((l) => c.add(JSON.stringify(l))), s.forEach((l) => {
10089
- const d = l.getRaw().globalPropertyAspectConfigurations;
10088
+ B !== void 0 && (B.forEach((g) => c.add(JSON.stringify(g))), s.forEach((g) => {
10089
+ const d = g.getRaw().globalPropertyAspectConfigurations;
10090
10090
  d !== void 0 && d.forEach((C) => {
10091
10091
  const w = o(C), h = c.has(JSON.stringify(C));
10092
10092
  if (h && (w == null ? void 0 : w.getType()) === "Option") {
10093
- const u = l.getCurrentVariant();
10093
+ const u = g.getCurrentVariant();
10094
10094
  if (!u)
10095
10095
  return;
10096
10096
  r.selectVariant(u), c.delete(JSON.stringify(C));
10097
10097
  } else if (h && (w == null ? void 0 : w.getType()) === "Text") {
10098
- const u = l.getText();
10098
+ const u = g.getText();
10099
10099
  r.setText(u), c.delete(JSON.stringify(C));
10100
10100
  }
10101
10101
  });
@@ -10105,10 +10105,10 @@ class Me {
10105
10105
  getStepByName(e) {
10106
10106
  const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
10107
10107
  if (!(!t || !this.stepHasHandle(t)))
10108
- return ye.get(this.getWorkflowManager(), t);
10108
+ return Me.get(this.getWorkflowManager(), t);
10109
10109
  }
10110
10110
  getStepsByType(e) {
10111
- return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => ye.get(this.getWorkflowManager(), t));
10111
+ return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Me.get(this.getWorkflowManager(), t));
10112
10112
  }
10113
10113
  getStepsByScene(e) {
10114
10114
  if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
@@ -10117,7 +10117,7 @@ class Me {
10117
10117
  );
10118
10118
  return e.stepIds.map(
10119
10119
  (A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
10120
- ).filter((A) => this.stepHasHandle(A)).map((A) => ye.get(this.getWorkflowManager(), A));
10120
+ ).filter((A) => this.stepHasHandle(A)).map((A) => Me.get(this.getWorkflowManager(), A));
10121
10121
  }
10122
10122
  async attachCustomerDetails(e) {
10123
10123
  return this.assignCustomerDetails({ emailAddress: e.email });
@@ -10175,7 +10175,7 @@ class Me {
10175
10175
  }
10176
10176
  async copy() {
10177
10177
  var s;
10178
- const e = ge(this.getCommandContext().getState());
10178
+ const e = le(this.getCommandContext().getState());
10179
10179
  if (!e)
10180
10180
  throw new b("Internal state is undefined! Cannot copy experience!");
10181
10181
  const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new ss({}), n = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
@@ -10275,11 +10275,11 @@ const Wn = [
10275
10275
  "textPath",
10276
10276
  "tref",
10277
10277
  "tspan"
10278
- ], Xn = async (g, e, t) => {
10278
+ ], Xn = async (l, e, t) => {
10279
10279
  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);
10280
10280
  s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
10281
- const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await tA(o, { type: "svg" }))}`, B = (d) => {
10282
- const C = g.find((h) => h.panelId === d.panelId);
10281
+ const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await eA(o, { type: "svg" }))}`, B = (d) => {
10282
+ const C = l.find((h) => h.panelId === d.panelId);
10283
10283
  if (!C)
10284
10284
  throw new z(d);
10285
10285
  const w = J();
@@ -10296,40 +10296,37 @@ const Wn = [
10296
10296
  },
10297
10297
  C
10298
10298
  );
10299
- }, l = t.data.regions;
10299
+ }, g = t.data.regions;
10300
10300
  try {
10301
- return l.map(B);
10301
+ return g.map(B);
10302
10302
  } catch (d) {
10303
10303
  return console.error(d), [];
10304
10304
  }
10305
- }, qn = async (g, e, t, A) => {
10305
+ }, qn = async (l, e, t, A) => {
10306
10306
  const a = t.data, n = a.assetUrl, i = await nt(n);
10307
10307
  try {
10308
10308
  const s = _A(a, A.option);
10309
10309
  s && (e[A.stepName] = { selectedVariants: [s] });
10310
10310
  const o = async (r) => {
10311
10311
  var w;
10312
- const c = await ea(
10313
- r || {
10314
- width: 1,
10315
- height: 1
10316
- },
10317
- (w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
10318
- ), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
10312
+ const c = await ea(r, (w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink), B = await gt(c), g = J(), d = l.find((h) => h.panelId === r.panelId);
10319
10313
  if (!d)
10320
10314
  throw new z(r);
10321
- const C = Bt(i, B, {
10322
- scale: a.scale,
10323
- left: a.x,
10324
- top: a.y
10325
- });
10315
+ const C = Bt(
10316
+ i,
10317
+ B,
10318
+ {
10319
+ scale: a.scale,
10320
+ left: a.x,
10321
+ top: a.y
10322
+ },
10323
+ A.data.forceImageCover
10324
+ );
10326
10325
  return [
10327
10326
  new L(
10328
10327
  {
10329
- id: l,
10328
+ id: g,
10330
10329
  path: B.path,
10331
- dataWidth: B.width,
10332
- dataHeight: B.height,
10333
10330
  type: G.Frame,
10334
10331
  forceImageCover: A.data.forceImageCover,
10335
10332
  x: r.left,
@@ -10341,18 +10338,29 @@ const Wn = [
10341
10338
  rotation: r.rotation,
10342
10339
  scaleX: r.width / B.width,
10343
10340
  scaleY: r.height / B.height,
10344
- pattern: void 0
10341
+ pattern: {
10342
+ id: `${g}-pattern`,
10343
+ src: i.src,
10344
+ x: C.x,
10345
+ y: C.y,
10346
+ width: i.width,
10347
+ height: i.height,
10348
+ rotation: 0,
10349
+ scaleX: C.zoom,
10350
+ scaleY: C.zoom,
10351
+ svg: i.svg,
10352
+ colors: i.colors
10353
+ }
10345
10354
  },
10346
10355
  d
10347
- ),
10348
- new Lt(l, i, C)
10356
+ )
10349
10357
  ];
10350
10358
  };
10351
10359
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
10352
10360
  } catch (s) {
10353
10361
  return console.error(s), [];
10354
10362
  }
10355
- }, Zn = async (g, e, t, A) => {
10363
+ }, Zn = async (l, e, t, A) => {
10356
10364
  var p, m;
10357
10365
  const a = t.data, n = A.option;
10358
10366
  if (!n)
@@ -10366,10 +10374,10 @@ const Wn = [
10366
10374
  const s = (m = i.asset) == null ? void 0 : m.fileLink;
10367
10375
  if (!s)
10368
10376
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
10369
- const o = await _(s, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", C = Xt().parseFromString(B, "image/svg+xml").firstElementChild;
10377
+ const o = await _(s, !0), r = /<svg.*?<\/svg>/s, c = o.match(r) || [], B = (c == null ? void 0 : c.length) > 0 ? c[0] : "", C = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
10370
10378
  if (!C)
10371
10379
  return console.error("Failed to read SVG."), [];
10372
- qt(C);
10380
+ Xt(C);
10373
10381
  const w = {};
10374
10382
  ta(C, (I) => {
10375
10383
  Wn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
@@ -10384,7 +10392,7 @@ const Wn = [
10384
10392
  I.classList.add(S), w[S] = { browserValue: Y };
10385
10393
  }
10386
10394
  });
10387
- const u = Zt().serializeToString(C), E = a.colors;
10395
+ const u = qt().serializeToString(C), E = a.colors;
10388
10396
  if (E) {
10389
10397
  for (const [I, F] of Object.entries(w))
10390
10398
  for (const y of Object.keys(E))
@@ -10394,7 +10402,7 @@ const Wn = [
10394
10402
  }
10395
10403
  }
10396
10404
  const D = (I) => {
10397
- const F = g.find((Y) => Y.panelId === I.panelId);
10405
+ const F = l.find((Y) => Y.panelId === I.panelId);
10398
10406
  if (!F)
10399
10407
  throw new z(I);
10400
10408
  const y = J();
@@ -10421,9 +10429,9 @@ const Wn = [
10421
10429
  } catch (I) {
10422
10430
  return console.error(I), [];
10423
10431
  }
10424
- }, $n = async (g, e, t) => {
10425
- const A = await FA(t.data.module), a = e.data, n = (s, o) => {
10426
- const r = g.find((B) => B.panelId === o.panelId);
10432
+ }, $n = async (l, e, t) => {
10433
+ const A = await fA(t.data.module), a = e.data, n = (s, o) => {
10434
+ const r = l.find((B) => B.panelId === o.panelId);
10427
10435
  if (!r)
10428
10436
  throw new z(o);
10429
10437
  const c = J();
@@ -10451,12 +10459,12 @@ const Wn = [
10451
10459
  } catch (s) {
10452
10460
  return console.error(s), [];
10453
10461
  }
10454
- }, _n = async (g, e, t, A) => {
10462
+ }, _n = async (l, e, t, A) => {
10455
10463
  var c, B;
10456
10464
  const a = t.data, n = A.option;
10457
10465
  if (!n)
10458
10466
  return console.error(`No option for step ${A.stepName}.`), [];
10459
- const i = ((c = n.variants) == null ? void 0 : c.find((l) => l.id === a.pictureVariantId)) || ze(n);
10467
+ const i = ((c = n.variants) == null ? void 0 : c.find((g) => g.id === a.pictureVariantId)) || ze(n);
10460
10468
  if (!i)
10461
10469
  return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
10462
10470
  if (!i.asset)
@@ -10465,24 +10473,24 @@ const Wn = [
10465
10473
  const s = (B = i.asset) == null ? void 0 : B.fileLink;
10466
10474
  if (!s)
10467
10475
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
10468
- const o = (l) => {
10469
- const d = g.find((w) => w.panelId === l.panelId);
10476
+ const o = (g) => {
10477
+ const d = l.find((w) => w.panelId === g.panelId);
10470
10478
  if (!d)
10471
- throw new z(l);
10479
+ throw new z(g);
10472
10480
  const C = J();
10473
10481
  return new L(
10474
10482
  {
10475
10483
  id: C,
10476
10484
  src: s,
10477
10485
  type: G.Image,
10478
- y: l.top,
10479
- x: l.left,
10480
- rotation: l.rotation,
10481
- width: l.width,
10482
- height: l.height,
10483
- layer: l.layer,
10484
- layerIndex: l.layerIndex,
10485
- immutable: l.immutable,
10486
+ y: g.top,
10487
+ x: g.left,
10488
+ rotation: g.rotation,
10489
+ width: g.width,
10490
+ height: g.height,
10491
+ layer: g.layer,
10492
+ layerIndex: g.layerIndex,
10493
+ immutable: g.immutable,
10486
10494
  preserveAspectRatio: "none"
10487
10495
  },
10488
10496
  d
@@ -10490,10 +10498,10 @@ const Wn = [
10490
10498
  }, r = A.data.regions;
10491
10499
  try {
10492
10500
  return r.map(o);
10493
- } catch (l) {
10494
- return console.error(l), [];
10501
+ } catch (g) {
10502
+ return console.error(g), [];
10495
10503
  }
10496
- }, ei = async (g, e, t, A) => {
10504
+ }, ei = async (l, e, t, A) => {
10497
10505
  var r;
10498
10506
  const a = t.data, n = A.option;
10499
10507
  if (!n)
@@ -10503,10 +10511,10 @@ const Wn = [
10503
10511
  return console.error(`No variant with ID: ${a.colorVariantId}`), [];
10504
10512
  e[A.stepName] = { selectedVariants: [i] };
10505
10513
  const s = (c) => {
10506
- const B = g.find((h) => h.panelId === c.panelId);
10514
+ const B = l.find((h) => h.panelId === c.panelId);
10507
10515
  if (!B)
10508
10516
  throw new z(c);
10509
- const l = `
10517
+ const g = `
10510
10518
  <svg
10511
10519
  xmlns="http://www.w3.org/2000/svg"
10512
10520
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -10531,7 +10539,7 @@ const Wn = [
10531
10539
  {
10532
10540
  colors: C,
10533
10541
  id: w,
10534
- svg: l,
10542
+ svg: g,
10535
10543
  type: G.Illustration,
10536
10544
  y: c.top,
10537
10545
  x: c.left,
@@ -10550,7 +10558,7 @@ const Wn = [
10550
10558
  } catch (c) {
10551
10559
  return console.error(c), [];
10552
10560
  }
10553
- }, ti = async (g, e, t) => {
10561
+ }, ti = async (l, e, t) => {
10554
10562
  const A = [], n = (() => {
10555
10563
  var r, c;
10556
10564
  return e.type === M.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = e.data.asset) == null ? void 0 : c.fileLink) || "";
@@ -10558,7 +10566,7 @@ const Wn = [
10558
10566
  if (s === "image")
10559
10567
  try {
10560
10568
  o.forEach((r) => {
10561
- const c = g.find((l) => l.panelId === r.panelId);
10569
+ const c = l.find((g) => g.panelId === r.panelId);
10562
10570
  if (!c)
10563
10571
  throw new z(r);
10564
10572
  const B = {
@@ -10585,14 +10593,14 @@ const Wn = [
10585
10593
  }
10586
10594
  else {
10587
10595
  const r = await _(n, !0), c = (B) => {
10588
- const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Xt().parseFromString(C, "image/svg+xml").firstElementChild;
10596
+ const g = /<svg.*?<\/svg>/s, d = B.match(g) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Wt().parseFromString(C, "image/svg+xml").firstElementChild;
10589
10597
  if (!u)
10590
10598
  throw new he("Failed to read SVG.");
10591
- return qt(u), Zt().serializeToString(u);
10599
+ return Xt(u), qt().serializeToString(u);
10592
10600
  };
10593
10601
  o.forEach((B) => {
10594
- const l = g.find((C) => C.panelId === B.panelId);
10595
- if (!l)
10602
+ const g = l.find((C) => C.panelId === B.panelId);
10603
+ if (!g)
10596
10604
  throw new z(B);
10597
10605
  const d = {
10598
10606
  id: J(),
@@ -10613,11 +10621,11 @@ const Wn = [
10613
10621
  productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
10614
10622
  excludeFromExport: e.data.excludeFromPrint
10615
10623
  };
10616
- A.push(new L(d, l));
10624
+ A.push(new L(d, g));
10617
10625
  });
10618
10626
  }
10619
10627
  return A;
10620
- }, Ai = async (g, e, t, A) => {
10628
+ }, Ai = async (l, e, t, A) => {
10621
10629
  const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
10622
10630
  var D;
10623
10631
  const h = A.option;
@@ -10639,7 +10647,7 @@ const Wn = [
10639
10647
  assetUrl: h,
10640
10648
  name: u.names.fullName.en
10641
10649
  };
10642
- })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = it(B, {
10650
+ })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", g = it(B, {
10643
10651
  vertical: A.data.vertical,
10644
10652
  uppercase: A.data.uppercase
10645
10653
  }), d = async (h) => {
@@ -10650,7 +10658,7 @@ const Wn = [
10650
10658
  return E == null ? void 0 : E.color;
10651
10659
  }, C = n.color || await d(A.data), w = A.data.regions;
10652
10660
  for (const h of w) {
10653
- const u = g.find((D) => D.panelId === h.panelId);
10661
+ const u = l.find((D) => D.panelId === h.panelId);
10654
10662
  if (!u)
10655
10663
  continue;
10656
10664
  const E = {
@@ -10666,7 +10674,7 @@ const Wn = [
10666
10674
  layerIndex: h.layerIndex,
10667
10675
  paths: A.data.paths,
10668
10676
  rotation: h.rotation,
10669
- text: l,
10677
+ text: g,
10670
10678
  type: G.Textbox,
10671
10679
  vertical: A.data.vertical,
10672
10680
  verticalAlign: A.data.verticalAlign || "middle",
@@ -10675,12 +10683,12 @@ const Wn = [
10675
10683
  y: h.top
10676
10684
  };
10677
10685
  if (c) {
10678
- const [D, Q] = xe(
10686
+ const [D, Q] = Ne(
10679
10687
  A.data.size || i,
10680
10688
  c,
10681
10689
  h,
10682
10690
  [
10683
- it(l, {
10691
+ it(g, {
10684
10692
  vertical: A.data.vertical,
10685
10693
  uppercase: A.data.uppercase
10686
10694
  })
@@ -10706,7 +10714,7 @@ const Wn = [
10706
10714
  a.push(new L(E, u));
10707
10715
  }
10708
10716
  return a;
10709
- }, ai = (g, e) => g.conditions ? g.conditions.every((t) => {
10717
+ }, ai = (l, e) => l.conditions ? l.conditions.every((t) => {
10710
10718
  const A = e[t.targetStepName];
10711
10719
  if (A && A.selectedVariants) {
10712
10720
  const a = A.selectedVariants;
@@ -10715,9 +10723,9 @@ const Wn = [
10715
10723
  );
10716
10724
  }
10717
10725
  return !1;
10718
- }) : !0, ni = async (g, e, t, A) => {
10726
+ }) : !0, ni = async (l, e, t, A) => {
10719
10727
  const a = [], n = {};
10720
- for (const i of g) {
10728
+ for (const i of l) {
10721
10729
  const s = e.steps.find((o) => o.stepName === i.name);
10722
10730
  if (s)
10723
10731
  switch (s.type) {
@@ -10768,7 +10776,7 @@ const Wn = [
10768
10776
  );
10769
10777
  return a;
10770
10778
  };
10771
- class Se {
10779
+ class Ye {
10772
10780
  constructor(e) {
10773
10781
  this.handleCompleteRender = null;
10774
10782
  const t = /* @__PURE__ */ new Map();
@@ -10789,17 +10797,17 @@ class Se {
10789
10797
  return this.layouts;
10790
10798
  }
10791
10799
  }
10792
- const ii = () => new Promise((g, e) => {
10800
+ const ii = () => new Promise((l, e) => {
10793
10801
  try {
10794
- const A = He().getContext("webgl2");
10795
- g(!!A);
10802
+ const A = ke().getContext("webgl2");
10803
+ l(!!A);
10796
10804
  } catch {
10797
- g(!1);
10805
+ l(!1);
10798
10806
  }
10799
10807
  }), si = ii();
10800
10808
  class oi {
10801
10809
  constructor(e, t, A, a) {
10802
- this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.renderQueue = new dA(2), this.id = e, this.name = t, this.service = A, this.panelSize = a;
10810
+ this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.renderQueue = new BA(2), this.id = e, this.name = t, this.service = A, this.panelSize = a;
10803
10811
  }
10804
10812
  getID() {
10805
10813
  return this.id;
@@ -10845,7 +10853,7 @@ class oi {
10845
10853
  * Actions to perform when a static render event is fired for this canvas.
10846
10854
  */
10847
10855
  async render(e) {
10848
- const t = ge(e);
10856
+ const t = le(e);
10849
10857
  this.lastRequestedRenderArguments = t;
10850
10858
  const A = this.getStaticContext();
10851
10859
  if (!A) {
@@ -10865,7 +10873,7 @@ class oi {
10865
10873
  );
10866
10874
  }
10867
10875
  }
10868
- class ri extends BA {
10876
+ class ri extends gA {
10869
10877
  // TODO: Do we need to pass this whole array in?
10870
10878
  constructor(e, t, A, a, n) {
10871
10879
  super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.layouts = n;
@@ -10916,26 +10924,26 @@ class ri extends BA {
10916
10924
  o = w.width, r = w.height;
10917
10925
  } else
10918
10926
  o = n.width, r = n.height;
10919
- const c = zt(e.layoutState.layout, t, {
10920
- renderingConfiguration: { purpose: Kt.ThreeD }
10921
- }), B = jt(c), l = await $t.from(this.ctx, B, {
10927
+ const c = Lt(e.layoutState.layout, t, {
10928
+ renderingConfiguration: { purpose: zt.ThreeD }
10929
+ }), B = Kt(c), g = await Zt.from(this.ctx, B, {
10922
10930
  anonymousCrossOrigin: !0,
10923
10931
  ignoreDimensions: !this.nonPOTSupport,
10924
10932
  ignoreAnimation: !0,
10925
10933
  ignoreClear: !0,
10926
10934
  ignoreMouse: !0,
10927
10935
  enableRedraw: !1,
10928
- createCanvas: He,
10929
- createImage: Vt,
10930
- DOMParser: Wt(),
10931
- fetch: gt
10936
+ createCanvas: ke,
10937
+ createImage: jt,
10938
+ DOMParser: Vt(),
10939
+ fetch: lt
10932
10940
  });
10933
- l.resize(o, r), await l.render(), this.onRender();
10941
+ g.resize(o, r), await g.render(), this.onRender();
10934
10942
  }
10935
10943
  }
10936
- const Fs = (g, e) => {
10944
+ const Fs = (l, e) => {
10937
10945
  const t = [];
10938
- return g.forEach((A) => {
10946
+ return l.forEach((A) => {
10939
10947
  const a = e.steps.find((n) => n.stepName === A.stepName);
10940
10948
  (a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
10941
10949
  name: a.stepName,
@@ -10944,13 +10952,13 @@ const Fs = (g, e) => {
10944
10952
  }
10945
10953
  });
10946
10954
  }), t;
10947
- }, ys = async (g, e, t, A) => {
10955
+ }, ys = async (l, e, t, A) => {
10948
10956
  let a = {
10949
10957
  serializableWorkflow: { steps: [] },
10950
10958
  layouts: {}
10951
10959
  };
10952
10960
  a = new k(t.map((o) => new Aa(o))).apply(a);
10953
- const i = await ni(g, e, t, A);
10961
+ const i = await ni(l, e, t, A);
10954
10962
  return new k(i).apply(a);
10955
10963
  }, ci = f`
10956
10964
  ${Be}
@@ -10996,7 +11004,7 @@ const Fs = (g, e) => {
10996
11004
  name
10997
11005
  }
10998
11006
  }
10999
- `, PA = f`
11007
+ `, YA = f`
11000
11008
  ${ci}
11001
11009
  fragment ProductCollectionProductFields on ProductCollectionProduct {
11002
11010
  id
@@ -11006,8 +11014,8 @@ const Fs = (g, e) => {
11006
11014
  ...ProductFields
11007
11015
  }
11008
11016
  }
11009
- `, We = (g) => f`
11010
- ${g ? PA : ""}
11017
+ `, We = (l) => f`
11018
+ ${l ? YA : ""}
11011
11019
  fragment ProductCollectionFields on ProductCollection {
11012
11020
  id
11013
11021
  name
@@ -11032,7 +11040,7 @@ const Fs = (g, e) => {
11032
11040
  }
11033
11041
  }
11034
11042
  }
11035
- ${g ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
11043
+ ${l ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
11036
11044
  transformCollection {
11037
11045
  id
11038
11046
  name
@@ -11057,8 +11065,8 @@ const Fs = (g, e) => {
11057
11065
  }
11058
11066
  }
11059
11067
  }
11060
- `, gi = (g) => f`
11061
- ${We(g)}
11068
+ `, li = (l) => f`
11069
+ ${We(l)}
11062
11070
  query GetBundle($id: String!) {
11063
11071
  bundles(ids: [$id]) {
11064
11072
  id
@@ -11079,7 +11087,7 @@ const Fs = (g, e) => {
11079
11087
  }
11080
11088
  }
11081
11089
  }
11082
- `, li = f`
11090
+ `, gi = f`
11083
11091
  query GetBundleStakeholders($id: String!) {
11084
11092
  bundles(ids: [$id]) {
11085
11093
  id
@@ -11121,7 +11129,7 @@ const Fs = (g, e) => {
11121
11129
  }
11122
11130
  }
11123
11131
  `, di = f`
11124
- ${PA}
11132
+ ${YA}
11125
11133
  query GetProductCollectionProducts($id: String!, $productIds: [String!]) {
11126
11134
  productCollections(ids: [$id], productIds: $productIds) {
11127
11135
  id
@@ -11130,8 +11138,8 @@ const Fs = (g, e) => {
11130
11138
  }
11131
11139
  }
11132
11140
  }
11133
- `, Ci = (g) => f`
11134
- ${We(g)}
11141
+ `, Ci = (l) => f`
11142
+ ${We(l)}
11135
11143
  mutation CreateBundle(
11136
11144
  $collectionId: String
11137
11145
  $initialMetadata: [MetadataInput!]
@@ -11159,8 +11167,8 @@ const Fs = (g, e) => {
11159
11167
  }
11160
11168
  }
11161
11169
  }
11162
- `, wi = (g) => f`
11163
- ${We(g)}
11170
+ `, wi = (l) => f`
11171
+ ${We(l)}
11164
11172
  mutation DuplicateBundle(
11165
11173
  $id: String!
11166
11174
  $template: Boolean
@@ -11290,8 +11298,8 @@ const Fs = (g, e) => {
11290
11298
  id
11291
11299
  }
11292
11300
  }
11293
- `, Fi = (g) => f`
11294
- ${We(g)}
11301
+ `, Fi = (l) => f`
11302
+ ${We(l)}
11295
11303
  mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
11296
11304
  bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
11297
11305
  id
@@ -11300,7 +11308,7 @@ const Fs = (g, e) => {
11300
11308
  }
11301
11309
  }
11302
11310
  }
11303
- `, yi = (g) => f`
11311
+ `, yi = (l) => f`
11304
11312
  query CustomerBundlesFeed($id: String!, $limit: Int!, $offset: Int!, $template: Boolean, $templateStatus: BundleTemplateStatus) {
11305
11313
  customerBundlesFeed(id: $id, limit: $limit, offset: $offset, template: $template, templateStatus: $templateStatus) {
11306
11314
  items {
@@ -11318,7 +11326,7 @@ const Fs = (g, e) => {
11318
11326
  fileLink
11319
11327
  }
11320
11328
  }
11321
- ${g ? "metadata { key, value }" : ""}
11329
+ ${l ? "metadata { key, value }" : ""}
11322
11330
  }
11323
11331
  total
11324
11332
  }
@@ -11377,7 +11385,7 @@ class Mi {
11377
11385
  );
11378
11386
  case $.Option: {
11379
11387
  const t = e.entityId ? await V.getOption(e.entityId) : void 0;
11380
- return (t == null ? void 0 : t.type) === "Color" ? new Jt(this.bundle, e, t) : new xA(this.bundle, e, t);
11388
+ return (t == null ? void 0 : t.type) === "Color" ? new Jt(this.bundle, e, t) : new PA(this.bundle, e, t);
11381
11389
  }
11382
11390
  case $.Text:
11383
11391
  return new Yi(this.bundle, e);
@@ -11615,7 +11623,7 @@ class Yi extends It {
11615
11623
  await Promise.all(a);
11616
11624
  }
11617
11625
  }
11618
- class xA extends It {
11626
+ class PA extends It {
11619
11627
  constructor(e, t, A) {
11620
11628
  super(e, t), this.optionResource = A;
11621
11629
  }
@@ -11677,7 +11685,7 @@ class xA extends It {
11677
11685
  await Promise.all(a);
11678
11686
  }
11679
11687
  }
11680
- class Jt extends xA {
11688
+ class Jt extends PA {
11681
11689
  constructor(e, t, A) {
11682
11690
  super(e, t, A);
11683
11691
  }
@@ -11802,7 +11810,7 @@ class vi {
11802
11810
  }
11803
11811
  async setGlobalPropertyState(e) {
11804
11812
  this.globalPropertyState || await this.initPromise;
11805
- const t = ge(this.globalPropertyState);
11813
+ const t = le(this.globalPropertyState);
11806
11814
  this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
11807
11815
  }
11808
11816
  getAspect(e) {
@@ -11826,7 +11834,7 @@ class vi {
11826
11834
  const a = this.configuration.aspects.find((s) => s.name === e);
11827
11835
  if (!a)
11828
11836
  throw new Error(`Failed to find configuration aspect with name: ${e}`);
11829
- const n = ge(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
11837
+ const n = le(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
11830
11838
  i ? (i.value = t, i.type = a.type, A !== void 0 && (i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
11831
11839
  name: e,
11832
11840
  value: t,
@@ -11842,7 +11850,7 @@ class vi {
11842
11850
  const A = this.configuration.aspects.find((i) => i.name === e);
11843
11851
  if (!A)
11844
11852
  throw new Error(`Failed to find configuration aspect with name: ${e}`);
11845
- const a = ge(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
11853
+ const a = le(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
11846
11854
  n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
11847
11855
  name: e,
11848
11856
  value: "",
@@ -12127,19 +12135,27 @@ class _e {
12127
12135
  * A helper function for pulling the default workflow.
12128
12136
  */
12129
12137
  getDefaultWorkflow() {
12130
- const e = this.product.workflows || [];
12138
+ const e = this.product.workflows;
12139
+ if (e === void 0)
12140
+ throw new R(
12141
+ "Called getDefaultWorkflow() before fetching collection products. Use collection.fetchProducts() first to ensure the data is available."
12142
+ );
12131
12143
  if (e.length === 0)
12132
- throw new H(
12133
- "No workflows on configured product. Ensure at least 1 workflow is assigned to this product."
12144
+ throw new R(
12145
+ "Called getDefaultWorkflow() but no workflows on requested product. Ensure at least 1 workflow is assigned to this product."
12134
12146
  );
12135
12147
  const t = this.productResource.workflowId;
12136
12148
  if (t) {
12137
12149
  const A = e.find((a) => a.workflowName === t);
12138
12150
  if (A)
12139
- return new Oe(A);
12140
- }
12141
- throw new H(
12142
- "Called getDefaultWorkflow() before fetching collection products. Use collection.fetchProducts() first to ensure the data is available."
12151
+ return new ue(A);
12152
+ }
12153
+ if (e.length === 1)
12154
+ return console.warn(
12155
+ "Called getDefaultWorkflow() but no default was configured. There is only one workflow available so we will fall back to using this!"
12156
+ ), new ue(e[0]);
12157
+ throw new R(
12158
+ "Called getDefaultWorkflow() but no default workflow is configured for the requested product. Multiple workflows exist so we can't assume!"
12143
12159
  );
12144
12160
  }
12145
12161
  /**
@@ -12147,10 +12163,10 @@ class _e {
12147
12163
  */
12148
12164
  getAllWorkflows() {
12149
12165
  if ((this.product.workflows || []).length === 0)
12150
- throw new H(
12166
+ throw new R(
12151
12167
  "No workflows on configured product. Ensure at least 1 workflow is assigned to this product."
12152
12168
  );
12153
- return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new Oe(t));
12169
+ return this.product.workflows.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new ue(t));
12154
12170
  }
12155
12171
  /**
12156
12172
  * A list of all integrations this product is connected to.
@@ -12197,7 +12213,7 @@ class _e {
12197
12213
  ), (s = A == null ? void 0 : A.additionalIntegrationProduct) != null && s.product ? t + (A.additionalIntegrationProduct.product.basePrice || 0) : t;
12198
12214
  }
12199
12215
  }
12200
- class Oe {
12216
+ class ue {
12201
12217
  constructor(e) {
12202
12218
  this.workflow = e;
12203
12219
  }
@@ -12526,7 +12542,7 @@ class et {
12526
12542
  variables: {
12527
12543
  id: this.id,
12528
12544
  details: e,
12529
- type: t || Ge.Owner
12545
+ type: t || be.Owner
12530
12546
  },
12531
12547
  context: {
12532
12548
  bundleOwnerId: this.ownerId
@@ -12570,7 +12586,7 @@ class et {
12570
12586
  }
12571
12587
  async getAllStakeholders() {
12572
12588
  const e = await x.getShadowGraphqlClient().query({
12573
- query: li,
12589
+ query: gi,
12574
12590
  errorPolicy: "all",
12575
12591
  fetchPolicy: "no-cache",
12576
12592
  variables: {
@@ -12762,14 +12778,14 @@ class bi {
12762
12778
  * @returns
12763
12779
  */
12764
12780
  async execute(e, t, A) {
12765
- var B, l, d;
12766
- const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
12781
+ var B, g, d;
12782
+ const n = (g = (B = (await x.getShadowGraphqlClient().mutate({
12767
12783
  mutation: Gi,
12768
12784
  variables: {
12769
12785
  processFlowId: e,
12770
12786
  inputs: [...t.map((C) => C.getValueForTransmission())]
12771
12787
  }
12772
- })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
12788
+ })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : g.id;
12773
12789
  if (!n)
12774
12790
  throw new Error("Failed to create process execution.");
12775
12791
  function i(C) {
@@ -12834,14 +12850,14 @@ class Ji {
12834
12850
  * @returns The nodes contained within the execution.
12835
12851
  */
12836
12852
  getNodes() {
12837
- return this.execution.nodes.map((e) => new Ye(e));
12853
+ return this.execution.nodes.map((e) => new Pe(e));
12838
12854
  }
12839
12855
  /**
12840
12856
  * @param type The type of node to return.
12841
12857
  * @returns A list of nodes matching the requested type.
12842
12858
  */
12843
12859
  getNodesByType(e) {
12844
- return this.execution.nodes.filter((t) => t.type === e).map((t) => new Ye(t));
12860
+ return this.execution.nodes.filter((t) => t.type === e).map((t) => new Pe(t));
12845
12861
  }
12846
12862
  /**
12847
12863
  * @returns A list of input nodes that exist in this execution.
@@ -12850,7 +12866,7 @@ class Ji {
12850
12866
  return this.execution.nodes.filter(
12851
12867
  (e) => e.type === "StartTerminal"
12852
12868
  /* StartTerminal */
12853
- ).map((e) => new Ye(e));
12869
+ ).map((e) => new Pe(e));
12854
12870
  }
12855
12871
  /**
12856
12872
  * @returns A list of out put nodes that exist in this execution.
@@ -12859,7 +12875,7 @@ class Ji {
12859
12875
  return this.execution.nodes.filter(
12860
12876
  (e) => e.type === "EndTerminal"
12861
12877
  /* EndTerminal */
12862
- ).map((e) => new Ye(e));
12878
+ ).map((e) => new Pe(e));
12863
12879
  }
12864
12880
  /**
12865
12881
  * @returns A date object representing the point in time this execution completed.
@@ -12876,7 +12892,7 @@ class Ji {
12876
12892
  return new Date(this.execution.failedAt);
12877
12893
  }
12878
12894
  }
12879
- class Ye {
12895
+ class Pe {
12880
12896
  constructor(e) {
12881
12897
  this.node = e;
12882
12898
  }
@@ -12905,15 +12921,15 @@ class Ft {
12905
12921
  return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
12906
12922
  }
12907
12923
  }
12908
- var Ti = /* @__PURE__ */ ((g) => (g.Transaction = "Transaction", g.Bundle = "Bundle", g.Product = "Product", g.Variant = "Variant", g.Option = "Option", g.LineItem = "LineItem", g.Asset = "Asset", g))(Ti || {});
12924
+ var Ti = /* @__PURE__ */ ((l) => (l.Transaction = "Transaction", l.Bundle = "Bundle", l.Product = "Product", l.Variant = "Variant", l.Option = "Option", l.LineItem = "LineItem", l.Asset = "Asset", l))(Ti || {});
12909
12925
  class Ms extends Ft {
12910
12926
  constructor(e) {
12911
12927
  super(`"${e}"`);
12912
12928
  }
12913
12929
  }
12914
- class NA extends Ft {
12930
+ class xA extends Ft {
12915
12931
  constructor(e, t) {
12916
- if (t !== "Asset" && !NA.validUUID(e))
12932
+ if (t !== "Asset" && !xA.validUUID(e))
12917
12933
  throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
12918
12934
  super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
12919
12935
  }
@@ -12955,7 +12971,7 @@ class Tt {
12955
12971
  throw new Error(
12956
12972
  "No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
12957
12973
  );
12958
- return new Oe(e[0]);
12974
+ return new ue(e[0]);
12959
12975
  }
12960
12976
  getAllWorkflows() {
12961
12977
  if (!this.integrationProduct.product)
@@ -12965,7 +12981,7 @@ class Tt {
12965
12981
  throw new Error(
12966
12982
  "No workflows found on product. This is generally due to a configuration error. Please confirm at least one workflow is configured for this product."
12967
12983
  );
12968
- return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new Oe(t));
12984
+ return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new ue(t));
12969
12985
  }
12970
12986
  }
12971
12987
  const Oi = f`
@@ -13185,10 +13201,10 @@ const Oi = f`
13185
13201
  loop
13186
13202
  name
13187
13203
  }
13188
- `, $i = (g) => f`
13189
- ${De(g)}
13204
+ `, $i = (l) => f`
13205
+ ${Ie(l)}
13190
13206
  ${Et}
13191
- ${sA}
13207
+ ${iA}
13192
13208
  ${Wi}
13193
13209
  ${Xi}
13194
13210
  ${qi}
@@ -13596,7 +13612,7 @@ const Oi = f`
13596
13612
  }
13597
13613
  }
13598
13614
  `, es = f`
13599
- ${De(!1)}
13615
+ ${Ie(!1)}
13600
13616
  query GetWorkflowForTheme($id: String!) {
13601
13617
  workflow(id: $id) {
13602
13618
  id
@@ -13629,30 +13645,30 @@ const Oi = f`
13629
13645
  ...TagFields
13630
13646
  }
13631
13647
  }
13632
- `, re = async (g) => {
13648
+ `, re = async (l) => {
13633
13649
  var e;
13634
- for (const t in g.layouts) {
13635
- const A = g.layouts[t].elements.filter(
13650
+ for (const t in l.layouts) {
13651
+ const A = l.layouts[t].elements.filter(
13636
13652
  (n) => n.type === G.Illustration
13637
13653
  );
13638
13654
  for (let n = 0; n < A.length; ++n) {
13639
13655
  const i = A[n];
13640
- i.src && i.svg && (i.cachedObjectURL = await ve(i.svg));
13656
+ i.src && i.svg && (i.cachedObjectURL = await Re(i.svg));
13641
13657
  }
13642
- const a = g.layouts[t].elements.filter((n) => n.type === G.Textbox);
13658
+ const a = l.layouts[t].elements.filter((n) => n.type === G.Textbox);
13643
13659
  for (let n = 0; n < a.length; ++n) {
13644
13660
  const i = a[n];
13645
13661
  (e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
13646
13662
  }
13647
13663
  }
13648
- }, as = async (g, e) => {
13664
+ }, as = async (l, e) => {
13649
13665
  var a;
13650
13666
  const t = await x.getShadowGraphqlClient().query({
13651
13667
  query: $i(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
13652
13668
  errorPolicy: "all",
13653
13669
  fetchPolicy: "no-cache",
13654
13670
  variables: {
13655
- ids: g
13671
+ ids: l
13656
13672
  }
13657
13673
  });
13658
13674
  if (t.error)
@@ -13660,30 +13676,30 @@ const Oi = f`
13660
13676
  if (t.errors)
13661
13677
  throw t.errors.forEach((n) => console.error(n)), new Error("Unable to read workflows. Consult GraphQL errors.");
13662
13678
  const A = t.data.workflows;
13663
- if (A === void 0 || A.length !== g.length)
13679
+ if (A === void 0 || A.length !== l.length)
13664
13680
  throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
13665
13681
  return A.forEach((n) => {
13666
13682
  n.steps.forEach((i) => {
13667
13683
  var s, o, r;
13668
13684
  delete i.data.__typename, (s = i.option) != null && s.id && ((o = i.option.defaultVariant) != null && o.asset && U.cacheAsset(i.option.defaultVariant.asset), i.option.colorProfile && U.cacheAsset(i.option.colorProfile), (r = i.option.variants) == null || r.forEach((c) => {
13669
13685
  c.asset && U.cacheAsset(c.asset), c.thumbnail && U.cacheAsset(c.thumbnail), c.material && U.cacheMaterial(c.material);
13670
- }), me.set({ id: i.option.id }, Promise.resolve(i.option)));
13686
+ }), Qe.set({ id: i.option.id }, Promise.resolve(i.option)));
13671
13687
  }), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
13672
13688
  }), A;
13673
- }, ns = async (g, e) => {
13674
- const A = (await e).find((a) => a.id === g);
13689
+ }, ns = async (l, e) => {
13690
+ const A = (await e).find((a) => a.id === l);
13675
13691
  if (!A)
13676
- throw new Error(`Workflow not found: ${g}`);
13692
+ throw new Error(`Workflow not found: ${l}`);
13677
13693
  return A;
13678
- }, vA = async (g, e) => {
13679
- const t = g.map((s) => me.get({ id: s, options: e })), A = g.filter((s, o) => t[o] === void 0);
13694
+ }, NA = async (l, e) => {
13695
+ const t = l.map((s) => Qe.get({ id: s, options: e })), A = l.filter((s, o) => t[o] === void 0);
13680
13696
  if (A.length === 0)
13681
13697
  return Promise.all(t);
13682
13698
  const a = as(A, e), n = A.map(
13683
- (s) => me.set({ id: s, options: e }, ns(s, a))
13699
+ (s) => Qe.set({ id: s, options: e }, ns(s, a))
13684
13700
  ), i = t.filter((s) => s !== void 0);
13685
13701
  return await Promise.all(i.concat(n));
13686
- }, Pe = async (g, e) => (await vA([g], e))[0], is = (g) => g.sort((e, t) => e.index - t.index).map((e) => ({
13702
+ }, xe = async (l, e) => (await NA([l], e))[0], is = (l) => l.sort((e, t) => e.index - t.index).map((e) => ({
13687
13703
  id: J(),
13688
13704
  panelId: e.name,
13689
13705
  name: e.name,
@@ -13696,8 +13712,8 @@ const Oi = f`
13696
13712
  previewRegion: e.previewRegion,
13697
13713
  useEditableArea: e.useEditableArea,
13698
13714
  editableArea: e.editableArea
13699
- })), tt = (g, e) => {
13700
- const t = g.workflowState, A = t ? JSON.parse(t) : void 0;
13715
+ })), tt = (l, e) => {
13716
+ const t = l.workflowState, A = t ? JSON.parse(t) : void 0;
13701
13717
  return A ? Object.values(A.layouts).map((a) => a.layout) : is(e.panels);
13702
13718
  };
13703
13719
  class ss {
@@ -13709,16 +13725,16 @@ class ss {
13709
13725
  mutation: Ua
13710
13726
  });
13711
13727
  } catch (A) {
13712
- throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
13728
+ throw console.error(A), new R("Critical - Unable to synchronize workflow state with server.");
13713
13729
  }
13714
- }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 23.0.2"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13730
+ }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 23.0.3"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13715
13731
  }
13716
13732
  /** @deprecated Use `configure` instead */
13717
13733
  configureUrls(e, t, A) {
13718
13734
  q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
13719
13735
  }
13720
13736
  configure(e) {
13721
- q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && la(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
13737
+ q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && ga(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
13722
13738
  }
13723
13739
  /**
13724
13740
  * @returns The asset manager allows for common operations related to assets
@@ -13733,7 +13749,7 @@ class ss {
13733
13749
  return this.currencyCode;
13734
13750
  }
13735
13751
  getFlowService() {
13736
- if (!ga())
13752
+ if (!la())
13737
13753
  throw new Error("Application key required to use Flow Service.");
13738
13754
  return new bi();
13739
13755
  }
@@ -13767,15 +13783,15 @@ class ss {
13767
13783
  var a, n;
13768
13784
  const t = P.getMap("bundleOwnerIds");
13769
13785
  if (t != null && t.has(e))
13770
- return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
13786
+ return Promise.resolve({ success: !0, stakeholderType: be.Owner });
13771
13787
  const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13772
13788
  if (A.has(e)) {
13773
13789
  const i = A.get(e), o = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
13774
13790
  if (o && await this.authenticateCustomerId(o)) {
13775
13791
  const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
13776
13792
  (B) => {
13777
- var l;
13778
- return ((l = B.bundle) == null ? void 0 : l.id) === e;
13793
+ var g;
13794
+ return ((g = B.bundle) == null ? void 0 : g.id) === e;
13779
13795
  }
13780
13796
  );
13781
13797
  if (c)
@@ -13798,7 +13814,7 @@ class ss {
13798
13814
  * @throws An error if the transaction is not found.
13799
13815
  */
13800
13816
  async authenticateTransactionFromLocalStorage(e) {
13801
- var c, B, l, d, C, w;
13817
+ var c, B, g, d, C, w;
13802
13818
  const t = x.getShadowGraphqlClient(), A = await t.query({
13803
13819
  query: _i,
13804
13820
  errorPolicy: "all",
@@ -13816,12 +13832,12 @@ class ss {
13816
13832
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
13817
13833
  const i = P.getMap("transactionOwnerIds");
13818
13834
  if (i != null && i.has(e))
13819
- return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
13835
+ return Promise.resolve({ success: !0, stakeholderType: be.Owner });
13820
13836
  const s = P.getMap("transactionCustomerIds");
13821
13837
  if (s != null && s.has(e)) {
13822
13838
  const h = s.get(e);
13823
13839
  if (h && await this.authenticateCustomerId(h)) {
13824
- const E = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
13840
+ const E = ((d = (g = this.customer) == null ? void 0 : g.bundleStakeholders) == null ? void 0 : d.find(
13825
13841
  (D) => {
13826
13842
  var Q, p;
13827
13843
  return (p = (Q = D.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
@@ -13986,7 +14002,7 @@ class ss {
13986
14002
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
13987
14003
  */
13988
14004
  async getNewBundle(e, t, A) {
13989
- var r, c, B, l, d;
14005
+ var r, c, B, g, d;
13990
14006
  const n = (B = (await x.getShadowGraphqlClient().mutate({
13991
14007
  mutation: Ci(((c = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : c.eagerFetchProducts) || !1),
13992
14008
  variables: {
@@ -14004,7 +14020,7 @@ class ss {
14004
14020
  const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
14005
14021
  s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
14006
14022
  const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
14007
- eagerFetchProducts: (d = (l = A == null ? void 0 : A.graphql) == null ? void 0 : l.productCollection) == null ? void 0 : d.eagerFetchProducts
14023
+ eagerFetchProducts: (d = (g = A == null ? void 0 : A.graphql) == null ? void 0 : g.productCollection) == null ? void 0 : d.eagerFetchProducts
14008
14024
  });
14009
14025
  return await o.getInitializationPromise(), o;
14010
14026
  }
@@ -14018,13 +14034,13 @@ class ss {
14018
14034
  async getExistingBundle(e, t, A, a) {
14019
14035
  var h, u, E, D, Q, p, m, I, F, y, Y;
14020
14036
  const n = P.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((h = Object.entries(localStorage).find(([N, S]) => N.startsWith("CognitoIdentityServiceProvider") && N.endsWith("idToken"))) == null ? void 0 : h[0]) || "", r = localStorage.getItem(o), c = {};
14021
- r && !Te(r) && (c.Authorization = `Bearer ${r}`);
14037
+ r && !Oe(r) && (c.Authorization = `Bearer ${r}`);
14022
14038
  const B = {
14023
14039
  bundleOwnerId: i,
14024
14040
  ...c,
14025
14041
  ...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
14026
- }, l = await x.getShadowGraphqlClient().query({
14027
- query: gi(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
14042
+ }, g = await x.getShadowGraphqlClient().query({
14043
+ query: li(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
14028
14044
  variables: {
14029
14045
  id: e
14030
14046
  },
@@ -14033,9 +14049,9 @@ class ss {
14033
14049
  headers: B
14034
14050
  }
14035
14051
  });
14036
- if (!((Q = l.data) != null && Q.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((m = l.data) != null && m.bundles[0]))
14052
+ if (!((Q = g.data) != null && Q.bundles) || ((p = g.data) == null ? void 0 : p.bundles.length) === 0 || !((m = g.data) != null && m.bundles[0]))
14037
14053
  throw new Error(`Unable to find bundle: ${e}`);
14038
- const d = (I = l.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
14054
+ const d = (I = g.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
14039
14055
  C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
14040
14056
  const w = new et(this, d, t, A, i, {
14041
14057
  additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
@@ -14052,12 +14068,12 @@ class ss {
14052
14068
  async duplicateBundle(e, t, A, a) {
14053
14069
  var h, u, E, D, Q, p, m, I;
14054
14070
  const n = (h = P.getMap("bundleOwnerIds")) == null ? void 0 : h.get(e), s = ((u = Object.entries(localStorage).find(([F, y]) => F.startsWith("CognitoIdentityServiceProvider") && F.endsWith("idToken"))) == null ? void 0 : u[0]) || "", o = localStorage.getItem(s), r = {};
14055
- o && !Te(o) && (r.Authorization = `Bearer ${o}`);
14071
+ o && !Oe(o) && (r.Authorization = `Bearer ${o}`);
14056
14072
  const c = {
14057
14073
  bundleOwnerId: n,
14058
14074
  ...r,
14059
14075
  ...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
14060
- }, l = (p = (await x.getShadowGraphqlClient().mutate({
14076
+ }, g = (p = (await x.getShadowGraphqlClient().mutate({
14061
14077
  mutation: wi(((Q = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : Q.eagerFetchProducts) || !1),
14062
14078
  variables: {
14063
14079
  id: e,
@@ -14071,13 +14087,13 @@ class ss {
14071
14087
  },
14072
14088
  fetchPolicy: "no-cache"
14073
14089
  })).data) == null ? void 0 : p.bundleDuplicate;
14074
- if (!(l != null && l.id))
14090
+ if (!(g != null && g.id))
14075
14091
  throw new Error("Unable to duplicate bundle");
14076
14092
  const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
14077
- d.set(l.id, l.partner.id), P.setMap("bundlePartnerIds", d);
14093
+ d.set(g.id, g.partner.id), P.setMap("bundlePartnerIds", d);
14078
14094
  const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
14079
- C.set(l.id, l.bundleOwnerId), P.setMap("bundleOwnerIds", C);
14080
- const w = new et(this, l, void 0, void 0, l.bundleOwnerId, {
14095
+ C.set(g.id, g.bundleOwnerId), P.setMap("bundleOwnerIds", C);
14096
+ const w = new et(this, g, void 0, void 0, g.bundleOwnerId, {
14081
14097
  eagerFetchProducts: (I = (m = a == null ? void 0 : a.graphql) == null ? void 0 : m.productCollection) == null ? void 0 : I.eagerFetchProducts
14082
14098
  });
14083
14099
  return await w.getInitializationPromise(), w;
@@ -14154,7 +14170,7 @@ class ss {
14154
14170
  * @returns A workflow experience configured as requested.
14155
14171
  */
14156
14172
  async getWorkflowExperience(e, t, A, a) {
14157
- var l, d, C, w, h;
14173
+ var g, d, C, w, h;
14158
14174
  if (!a)
14159
14175
  return await this.getWorkflowExperienceDeprecated(e, t, A);
14160
14176
  const n = async () => {
@@ -14162,7 +14178,7 @@ class ss {
14162
14178
  const u = x.getShadowGraphqlClient();
14163
14179
  if (a.type === "transaction") {
14164
14180
  const { transactionId: p, readOnly: m } = a, I = await u.query({
14165
- query: fe,
14181
+ query: Fe,
14166
14182
  variables: {
14167
14183
  ids: [p]
14168
14184
  },
@@ -14170,13 +14186,13 @@ class ss {
14170
14186
  fetchPolicy: "no-cache"
14171
14187
  });
14172
14188
  if (!((E = I.data) != null && E.transactions) || I.data.transactions.length === 0)
14173
- throw new H("Existing transaction not found.");
14189
+ throw new R("Existing transaction not found.");
14174
14190
  const F = (D = I.data) == null ? void 0 : D.transactions[0];
14175
14191
  if (!F.workflowId)
14176
- throw new H("Existing transaction has no workflow ID.");
14177
- const y = await Pe(F.workflowId);
14192
+ throw new R("Existing transaction has no workflow ID.");
14193
+ const y = await xe(F.workflowId);
14178
14194
  if (!F.product)
14179
- throw new H("Failed to load transaction, product not available.");
14195
+ throw new R("Failed to load transaction, product not available.");
14180
14196
  !this.activeIntegration && ((Q = F.integrationProduct) != null && Q.integration) && (this.activeIntegration = Promise.resolve(F.integrationProduct.integration));
14181
14197
  const Y = await this.getStepTags(y);
14182
14198
  return { transaction: F, workflow: y, stepTags: Y, readOnly: m };
@@ -14202,17 +14218,17 @@ class ss {
14202
14218
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
14203
14219
  });
14204
14220
  if (!N.data || !N.data.transactionCreate)
14205
- throw new H("Failed to create transaction!");
14221
+ throw new R("Failed to create transaction!");
14206
14222
  const S = N.data.transactionCreate;
14207
14223
  if (!S.product)
14208
- throw new H("Failed to create transaction, product not available.");
14224
+ throw new R("Failed to create transaction, product not available.");
14209
14225
  return S;
14210
- }, m = Pe(a.workflowId, a == null ? void 0 : a.graphql), [I, F] = await Promise.all([p(), m]), y = await this.getStepTags(F);
14226
+ }, m = xe(a.workflowId, a == null ? void 0 : a.graphql), [I, F] = await Promise.all([p(), m]), y = await this.getStepTags(F);
14211
14227
  return { transaction: I, workflow: F, stepTags: y };
14212
14228
  }
14213
- throw new H("No workflow ID provided.");
14229
+ throw new R("No workflow ID provided.");
14214
14230
  }, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
14215
- this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
14231
+ this.currencyCode = (g = i.product.partner) == null ? void 0 : g.currencyCode;
14216
14232
  const c = {
14217
14233
  product: i.product,
14218
14234
  transaction: i,
@@ -14239,7 +14255,7 @@ class ss {
14239
14255
  c.transaction,
14240
14256
  c.workflow
14241
14257
  );
14242
- if (c.renderableContextService = new Se(
14258
+ if (c.renderableContextService = new Ye(
14243
14259
  c.layouts
14244
14260
  ), a.previewService ? (c.previewService = a.previewService, (C = c.product) != null && C.modelUrl && (c.modelContainer = c.previewService.loadModel({
14245
14261
  model: c.product.modelUrl,
@@ -14253,7 +14269,7 @@ class ss {
14253
14269
  } else
14254
14270
  c.isReloadedTransaction = !0;
14255
14271
  this.initialized = !0, this.experienceOptions = c;
14256
- const B = new Me(this, c);
14272
+ const B = new Se(this, c);
14257
14273
  return await B.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await B.attachCustomerDetails({ email: this.customer.emailAddress }), B;
14258
14274
  }
14259
14275
  /**
@@ -14265,13 +14281,13 @@ class ss {
14265
14281
  */
14266
14282
  async getWorkflowExperiences(e, t) {
14267
14283
  if (e.length === 0)
14268
- throw new H("No options provided!");
14284
+ throw new R("No options provided!");
14269
14285
  const A = x.getShadowGraphqlClient(), a = async (p) => {
14270
14286
  var y, Y, N;
14271
14287
  if (p.length === 0)
14272
14288
  return [];
14273
14289
  const m = p.map((S) => S.option.transactionId), I = await A.query({
14274
- query: fe,
14290
+ query: Fe,
14275
14291
  variables: {
14276
14292
  ids: m
14277
14293
  },
@@ -14280,14 +14296,14 @@ class ss {
14280
14296
  }), F = I.data.transactions;
14281
14297
  if (F.length !== p.length) {
14282
14298
  const S = ((Y = (y = I.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
14283
- throw new H(`Not all transactions were found: ${S}`);
14299
+ throw new R(`Not all transactions were found: ${S}`);
14284
14300
  }
14285
14301
  return !this.activeIntegration && ((N = F[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(F[0].integrationProduct.integration)), F.map((S, T) => {
14286
- var R;
14302
+ var H;
14287
14303
  return {
14288
14304
  transaction: S,
14289
14305
  workflowId: S.workflowId,
14290
- readOnly: ((R = p.find((W) => W.option.transactionId === S.id)) == null ? void 0 : R.option.readOnly) ?? !1,
14306
+ readOnly: ((H = p.find((W) => W.option.transactionId === S.id)) == null ? void 0 : H.option.readOnly) ?? !1,
14291
14307
  index: p[T].index
14292
14308
  };
14293
14309
  });
@@ -14314,7 +14330,7 @@ class ss {
14314
14330
  }), I = (F = m.data) == null ? void 0 : F.transactionCreateMany;
14315
14331
  if (!I || I.length === 0) {
14316
14332
  const N = ((Y = (y = m.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
14317
- throw new H(`Failed to create transactions: ${N}`);
14333
+ throw new R(`Failed to create transactions: ${N}`);
14318
14334
  }
14319
14335
  return I.map((N, S) => ({
14320
14336
  transaction: N,
@@ -14327,11 +14343,11 @@ class ss {
14327
14343
  ), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
14328
14344
  ...r.map(a),
14329
14345
  ...c.map(n)
14330
- ])).flat(), l = [...new Set(B.map((p) => p.workflowId))], d = await vA(l, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
14346
+ ])).flat(), g = [...new Set(B.map((p) => p.workflowId))], d = await NA(g, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
14331
14347
  var W;
14332
14348
  const { transaction: m, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
14333
14349
  !w.get(m.id) && m.transactionOwnerId && w.set(m.id, m.transactionOwnerId);
14334
- const T = w.get(m.id) || void 0, R = {
14350
+ const T = w.get(m.id) || void 0, H = {
14335
14351
  product: m.product,
14336
14352
  transaction: m,
14337
14353
  stepTags: N,
@@ -14346,22 +14362,22 @@ class ss {
14346
14362
  };
14347
14363
  if (S.type === "transaction" && m.workflowState) {
14348
14364
  const O = JSON.parse(m.workflowState);
14349
- R.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), R.reloadedState = O;
14365
+ H.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), H.reloadedState = O;
14350
14366
  } else if (!F && S.workflowState) {
14351
14367
  const O = JSON.parse(S.workflowState);
14352
- R.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), R.reloadedState = O;
14368
+ H.layouts = Object.values(O.layouts || {}).map((ee) => ee.layout), await se(O), await re(O), H.reloadedState = O;
14353
14369
  } else
14354
- R.layouts = tt(
14355
- R.transaction,
14356
- R.workflow
14370
+ H.layouts = tt(
14371
+ H.transaction,
14372
+ H.workflow
14357
14373
  );
14358
- return R.renderableContextService = new Se(
14359
- R.layouts
14360
- ), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: y, options: S };
14374
+ return H.renderableContextService = new Ye(
14375
+ H.layouts
14376
+ ), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: y, options: S };
14361
14377
  }), u = await Promise.all(h);
14362
14378
  P.setMap("transactionOwnerIds", w);
14363
14379
  const D = u.sort((p, m) => p.index - m.index).map(async (p) => {
14364
- const { experienceOptions: m, options: I } = p, F = new Me(this, m);
14380
+ const { experienceOptions: m, options: I } = p, F = new Se(this, m);
14365
14381
  return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
14366
14382
  }), Q = await Promise.all(D);
14367
14383
  return Q.forEach((p) => p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
@@ -14374,7 +14390,7 @@ class ss {
14374
14390
  async initFromIntegrationProduct(e) {
14375
14391
  var i;
14376
14392
  if (e === "")
14377
- throw new H("No integration product ID provided.");
14393
+ throw new R("No integration product ID provided.");
14378
14394
  const A = await x.getShadowGraphqlClient().mutate({
14379
14395
  mutation: Ht,
14380
14396
  variables: {
@@ -14389,10 +14405,10 @@ class ss {
14389
14405
  context: this.options.applicationKey ? { headers: { "X-Application-Key": this.options.applicationKey } } : void 0
14390
14406
  });
14391
14407
  if (!A.data || !A.data.transactionCreate)
14392
- throw new H("Failed to create transaction!");
14408
+ throw new R("Failed to create transaction!");
14393
14409
  const a = A.data.transactionCreate;
14394
14410
  if (!a.product)
14395
- throw new H("Failed to create transaction, product not available.");
14411
+ throw new R("Failed to create transaction, product not available.");
14396
14412
  this.currencyCode = (i = a.product.partner) == null ? void 0 : i.currencyCode;
14397
14413
  const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
14398
14414
  n.set(a.id, a.transactionOwnerId), P.setMap("transactionOwnerIds", n), this.experienceOptions = {
@@ -14414,22 +14430,22 @@ class ss {
14414
14430
  async initFromTransaction(e, t = !1) {
14415
14431
  var s, o, r, c;
14416
14432
  if (e === "")
14417
- throw new H("No transaction ID provided.");
14433
+ throw new R("No transaction ID provided.");
14418
14434
  const A = x.getShadowGraphqlClient(), a = async () => {
14419
14435
  var d, C;
14420
- const l = (d = (await A.query({
14421
- query: fe,
14436
+ const g = (d = (await A.query({
14437
+ query: Fe,
14422
14438
  variables: { ids: [e] },
14423
14439
  fetchPolicy: "no-cache",
14424
14440
  errorPolicy: "all"
14425
14441
  })).data) == null ? void 0 : d.transactions[0];
14426
- if (!l)
14427
- throw new H("Failed to read transaction.");
14428
- if (!l.product)
14429
- throw new H("Failed to load transaction, product not available.");
14430
- this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
14431
- product: l.product,
14432
- transaction: l,
14442
+ if (!g)
14443
+ throw new R("Failed to read transaction.");
14444
+ if (!g.product)
14445
+ throw new R("Failed to load transaction, product not available.");
14446
+ this.currencyCode = (C = g.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
14447
+ product: g.product,
14448
+ transaction: g,
14433
14449
  layouts: [],
14434
14450
  stateMutationFunc: async () => {
14435
14451
  throw new b("State mutation is forbidden in read only mode!");
@@ -14441,20 +14457,20 @@ class ss {
14441
14457
  return await a();
14442
14458
  const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
14443
14459
  if (i) {
14444
- const l = (s = (await A.query({
14445
- query: fe,
14460
+ const g = (s = (await A.query({
14461
+ query: Fe,
14446
14462
  variables: {
14447
14463
  ids: [e]
14448
14464
  },
14449
14465
  errorPolicy: "all"
14450
14466
  })).data) == null ? void 0 : s.transactions[0];
14451
- if (!l)
14452
- throw new H("Failed to read transaction.");
14453
- if (!l.product)
14454
- throw new H("Failed to load transaction, product not available.");
14455
- this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
14456
- product: l.product,
14457
- transaction: l,
14467
+ if (!g)
14468
+ throw new R("Failed to read transaction.");
14469
+ if (!g.product)
14470
+ throw new R("Failed to load transaction, product not available.");
14471
+ this.currencyCode = (o = g.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
14472
+ product: g.product,
14473
+ transaction: g,
14458
14474
  layouts: [],
14459
14475
  stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
14460
14476
  readOnly: t
@@ -14462,27 +14478,27 @@ class ss {
14462
14478
  return;
14463
14479
  }
14464
14480
  try {
14465
- const l = (r = (await A.mutate({
14481
+ const g = (r = (await A.mutate({
14466
14482
  mutation: ka,
14467
14483
  variables: { id: e },
14468
14484
  errorPolicy: "all"
14469
14485
  })).data) == null ? void 0 : r.transactionClaim;
14470
- if (!l)
14471
- throw new H("Failed to read transaction.");
14472
- if (!l.product)
14473
- throw new H("Failed to load transaction, product not available.");
14474
- this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), P.setMap("transactionOwnerIds", n)), this.experienceOptions = {
14475
- product: l.product,
14476
- transaction: l,
14486
+ if (!g)
14487
+ throw new R("Failed to read transaction.");
14488
+ if (!g.product)
14489
+ throw new R("Failed to load transaction, product not available.");
14490
+ this.currencyCode = (c = g.product.partner) == null ? void 0 : c.currencyCode, g.transactionOwnerId && (n.set(g.id, g.transactionOwnerId), P.setMap("transactionOwnerIds", n)), this.experienceOptions = {
14491
+ product: g.product,
14492
+ transaction: g,
14477
14493
  layouts: [],
14478
14494
  stateMutationFunc: async (d) => this.updateTransactionState({
14479
14495
  ...d,
14480
- context: { transactionOwnerId: l.transactionOwnerId }
14496
+ context: { transactionOwnerId: g.transactionOwnerId }
14481
14497
  }),
14482
14498
  readOnly: t
14483
14499
  }, this.initialized = !0;
14484
14500
  } catch {
14485
- throw new H("Attempted to access a transaction that isn't available.");
14501
+ throw new R("Attempted to access a transaction that isn't available.");
14486
14502
  }
14487
14503
  }
14488
14504
  /**
@@ -14491,18 +14507,18 @@ class ss {
14491
14507
  async getWorkflowExperienceDeprecated(e, t, A) {
14492
14508
  var a, n, i, s;
14493
14509
  if (!this.initialized || !this.experienceOptions)
14494
- throw new H("Cannot launch experience: Not initialized.");
14510
+ throw new R("Cannot launch experience: Not initialized.");
14495
14511
  if (this.experienceOptions.transaction.workflowId) {
14496
- const o = await Pe(this.experienceOptions.transaction.workflowId);
14512
+ const o = await xe(this.experienceOptions.transaction.workflowId);
14497
14513
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
14498
14514
  const c = JSON.parse(this.experienceOptions.transaction.workflowState);
14499
14515
  this.experienceOptions.layouts = Object.values(c.layouts).map((B) => B.layout), await se(c), await re(c), this.experienceOptions.reloadedState = c;
14500
14516
  }
14501
- this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
14517
+ this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
14502
14518
  model: this.experienceOptions.product.modelUrl,
14503
14519
  contextService: this.experienceOptions.renderableContextService
14504
14520
  }));
14505
- const r = new Me(this, this.experienceOptions);
14521
+ const r = new Se(this, this.experienceOptions);
14506
14522
  return await r.getWorkflowManager().getInitializationPromise(), r;
14507
14523
  }
14508
14524
  if (e) {
@@ -14515,7 +14531,7 @@ class ss {
14515
14531
  context: {
14516
14532
  transactionOwnerId: r
14517
14533
  }
14518
- }), B = Pe(e);
14534
+ }), B = xe(e);
14519
14535
  if (await Promise.all([c, B]), this.experienceOptions.workflow = await B, t) {
14520
14536
  const d = JSON.parse(t);
14521
14537
  this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await se(d), await re(d), this.experienceOptions.reloadedState = d;
@@ -14524,14 +14540,14 @@ class ss {
14524
14540
  this.experienceOptions.transaction,
14525
14541
  this.experienceOptions.workflow
14526
14542
  );
14527
- this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
14543
+ this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
14528
14544
  model: this.experienceOptions.product.modelUrl,
14529
14545
  contextService: this.experienceOptions.renderableContextService
14530
14546
  }));
14531
- const l = new Me(this, this.experienceOptions);
14532
- return await l.getWorkflowManager().getInitializationPromise(), l;
14547
+ const g = new Se(this, this.experienceOptions);
14548
+ return await g.getWorkflowManager().getInitializationPromise(), g;
14533
14549
  }
14534
- throw new H("No workflow ID provided.");
14550
+ throw new R("No workflow ID provided.");
14535
14551
  }
14536
14552
  /**
14537
14553
  * @deprecated The value this returns will be changed whenever `getWorkflowExperience()` is called. Use `workflowExperience.getWorkflowManager().getPreviewService()` instead.
@@ -14547,7 +14563,7 @@ class ss {
14547
14563
  */
14548
14564
  getProduct() {
14549
14565
  if (!this.initialized || !this.experienceOptions)
14550
- throw new H("Cannot get product: Not initialized.");
14566
+ throw new R("Cannot get product: Not initialized.");
14551
14567
  return this.experienceOptions.product;
14552
14568
  }
14553
14569
  /**
@@ -14556,7 +14572,7 @@ class ss {
14556
14572
  */
14557
14573
  getTransaction() {
14558
14574
  if (!this.initialized || !this.experienceOptions)
14559
- throw new H("Cannot get transaction: Not initialized.");
14575
+ throw new R("Cannot get transaction: Not initialized.");
14560
14576
  return this.experienceOptions.transaction;
14561
14577
  }
14562
14578
  storeCustomer(e) {
@@ -14765,7 +14781,7 @@ class Ys {
14765
14781
  return [];
14766
14782
  }
14767
14783
  }
14768
- var os = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(os || {});
14784
+ var os = /* @__PURE__ */ ((l) => (l.SelectFrame = "SelectFrame", l.SelectImage = "SelectImage", l.Position = "Position", l))(os || {});
14769
14785
  class rs extends X {
14770
14786
  constructor(e, t, A) {
14771
14787
  var a;
@@ -14958,7 +14974,7 @@ export {
14958
14974
  Ts as DeleteElementCommand,
14959
14975
  kn as DigitalContentStepHandle,
14960
14976
  Si as FileUploadGlobalPropertyHandle,
14961
- Ye as FlowExecutionNodeResult,
14977
+ Pe as FlowExecutionNodeResult,
14962
14978
  Ji as FlowExecutionResult,
14963
14979
  bi as FlowService,
14964
14980
  Os as FontAlignmentCommand,
@@ -14979,31 +14995,31 @@ export {
14979
14995
  Ws as LayoutElementType,
14980
14996
  z as LayoutNotFoundError,
14981
14997
  Yn as MaterialStepHandle,
14982
- Ue as MisconfigurationError,
14998
+ Ge as MisconfigurationError,
14983
14999
  Ys as MockWorkflowManager,
14984
15000
  Pn as ModelStepHandle,
14985
15001
  Un as ModuleStepHandle,
14986
15002
  Xs as MoveCommand,
14987
- NA as ObjectInput,
15003
+ xA as ObjectInput,
14988
15004
  Ti as ObjectInputType,
14989
- xA as OptionGlobalPropertyHandle,
14990
- ke as OptionNotFoundError,
15005
+ PA as OptionGlobalPropertyHandle,
15006
+ Ue as OptionNotFoundError,
14991
15007
  he as ParseError,
14992
15008
  xn as PictureStepHandle,
14993
15009
  xa as ProductCameraRig,
14994
15010
  Hi as ProductCollection,
14995
- Oe as ProductWorkflow,
14996
- me as PromiseCache,
14997
- dA as PromiseQueue,
15011
+ ue as ProductWorkflow,
15012
+ Qe as PromiseCache,
15013
+ BA as PromiseQueue,
14998
15014
  Nn as QuestionStepHandle,
14999
- BA as QueueablePromise,
15015
+ gA as QueueablePromise,
15000
15016
  qs as ResizeCommand,
15001
- ue as ResourceNotFoundError,
15017
+ me as ResourceNotFoundError,
15002
15018
  Zs as RotateCommand,
15003
15019
  $s as SendBackwardsCommand,
15004
15020
  vn as ShapeStepHandle,
15005
15021
  ss as SpiffCommerceClient,
15006
- Ge as StakeholderType,
15022
+ be as StakeholderType,
15007
15023
  _s as StepAspectType,
15008
15024
  X as StepHandle,
15009
15025
  eo as StepType,
@@ -15019,14 +15035,14 @@ export {
15019
15035
  ao as UpdateImageSourceCommand,
15020
15036
  Z as Variant,
15021
15037
  Vn as WorkflowExperienceEventType,
15022
- Me as WorkflowExperienceImpl,
15038
+ Se as WorkflowExperienceImpl,
15023
15039
  U as assetService,
15024
15040
  tn as browserColorToHex,
15025
15041
  Ln as createDesign,
15026
15042
  no as dataUrlFromExternalUrl,
15027
15043
  $e as designService,
15028
15044
  io as determineCorrectFontSizeAndLines,
15029
- wA as digitalContentStepService,
15045
+ CA as digitalContentStepService,
15030
15046
  so as findElement,
15031
15047
  fs as findPmsColors,
15032
15048
  oo as frameDataCache,
@@ -15035,31 +15051,31 @@ export {
15035
15051
  ni as generateCommands,
15036
15052
  co as generateSVGWithUnknownColors,
15037
15053
  ys as generateStateFromDesignInputSteps,
15038
- go as getAttributesFromArrayBuffer,
15039
- lo as getAxisAlignedBoundingBox,
15054
+ lo as getAttributesFromArrayBuffer,
15055
+ go as getAxisAlignedBoundingBox,
15040
15056
  Wa as getBoundedOffsets,
15041
15057
  Bo as getFrameData,
15042
15058
  Co as getSvgElement,
15043
- Pe as getWorkflow,
15044
- vA as getWorkflows,
15059
+ xe as getWorkflow,
15060
+ NA as getWorkflows,
15045
15061
  x as graphQlManager,
15046
- Ne as illustrationStepService,
15062
+ ve as illustrationStepService,
15047
15063
  wo as loadFont,
15048
15064
  Is as matchHexToPms,
15049
- hA as materialStepService,
15050
- EA as modelStepService,
15051
- uA as moduleStepService,
15065
+ wA as materialStepService,
15066
+ hA as modelStepService,
15067
+ EA as moduleStepService,
15052
15068
  V as optionService,
15053
15069
  ho as patternImageDataCache,
15054
15070
  P as persistenceService,
15055
- mA as pictureStepService,
15071
+ uA as pictureStepService,
15056
15072
  Ds as pmsToRgb,
15057
- QA as questionStepService,
15073
+ mA as questionStepService,
15058
15074
  Eo as registerFetchImplementation,
15059
15075
  uo as registerWindowImplementation,
15060
15076
  mo as rehydrateSerializedLayout,
15061
15077
  $a as rgbToPms,
15062
- la as setBearerAuthenticationToken,
15078
+ ga as setBearerAuthenticationToken,
15063
15079
  Qo as setCanvasModule,
15064
15080
  Ee as shapeStepService,
15065
15081
  qa as shortenUrl,