@spiffcommerce/core 22.13.2 → 22.13.4

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,12 +1,12 @@
1
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 lt, getAttributesFromArrayBuffer as Ot, AssetType as At, StepType as M, getFrameData as gt, 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 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";
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";
4
4
  import { setContext as aa } from "@apollo/client/link/context";
5
5
  import { onError as na } from "@apollo/client/link/error";
6
6
  import { Pith as $t } from "pith";
7
7
  import _t from "lodash.debounce";
8
8
  import eA from "lodash.isequal";
9
- import le from "lodash.clonedeep";
9
+ import ge from "lodash.clonedeep";
10
10
  import { toString as tA } from "qrcode";
11
11
  import ia from "fuse.js";
12
12
  import { split as st } from "unicode-default-word-boundary";
@@ -150,28 +150,28 @@ class ra {
150
150
  }
151
151
  const q = new ra();
152
152
  let aA;
153
- const vt = (l) => {
154
- aA = l;
153
+ const vt = (g) => {
154
+ aA = g;
155
155
  };
156
156
  let ht;
157
- const ca = (l) => {
158
- ht = l;
159
- }, la = () => ht;
157
+ const ca = (g) => {
158
+ ht = g;
159
+ }, ga = () => ht;
160
160
  let nA;
161
- const ga = (l) => {
162
- nA = l;
163
- }, Ba = () => new Promise((l) => {
161
+ const la = (g) => {
162
+ nA = g;
163
+ }, Ba = () => new Promise((g) => {
164
164
  const e = q.getHubUrl(), t = (A) => {
165
- A.origin === e && (window.removeEventListener("message", t), l(A.data));
165
+ A.origin === e && (window.removeEventListener("message", t), g(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 l = {
169
+ const g = {
170
170
  applicationKey: ht,
171
171
  customerToken: aA,
172
172
  bearer: nA
173
173
  };
174
- return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...l } : l;
174
+ return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...g } : g;
175
175
  };
176
176
  class Ca {
177
177
  constructor() {
@@ -185,9 +185,9 @@ class Ca {
185
185
  constructShadowGraphqlClient() {
186
186
  const e = RA({
187
187
  uri: `${q.getServerUrl()}/graphql`,
188
- fetch: lt
188
+ fetch: gt
189
189
  }), t = aa(async (i, s) => {
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;
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;
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}`), 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), {
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), {
204
204
  headers: r
205
205
  };
206
206
  }), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
@@ -265,8 +265,8 @@ const x = new Ca(), wa = f`
265
265
  value
266
266
  }
267
267
  }
268
- `, De = (l) => f`
269
- ${l && wa || ""}
268
+ `, De = (g) => f`
269
+ ${g && wa || ""}
270
270
  fragment AssetFields on Asset {
271
271
  name
272
272
  key
@@ -278,7 +278,7 @@ const x = new Ca(), wa = f`
278
278
  name
279
279
  link
280
280
  }
281
- ${l && "...AssetMetadataFields" || ""}
281
+ ${g && "...AssetMetadataFields" || ""}
282
282
  }
283
283
  `, ha = f`
284
284
  ${De(!1)}
@@ -362,28 +362,28 @@ const x = new Ca(), wa = f`
362
362
  ...AssetFields
363
363
  }
364
364
  }
365
- `, ot = async (l) => (await x.getShadowGraphqlClient().query({
365
+ `, ot = async (g) => (await x.getShadowGraphqlClient().query({
366
366
  query: ha,
367
367
  errorPolicy: "all",
368
368
  fetchPolicy: "no-cache",
369
369
  variables: {
370
- keys: l
370
+ keys: g
371
371
  }
372
- })).data.assets, Qa = async (l) => (await x.getShadowGraphqlClient().query({
372
+ })).data.assets, Qa = async (g) => (await x.getShadowGraphqlClient().query({
373
373
  query: Ea,
374
374
  errorPolicy: "all",
375
375
  fetchPolicy: "no-cache",
376
376
  variables: {
377
- ids: l
377
+ ids: g
378
378
  }
379
- })).data.materials, pa = async (l, e, t, A, a) => {
379
+ })).data.materials, pa = async (g, 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: l,
386
+ name: g,
387
387
  type: e,
388
388
  mimeType: t,
389
389
  anonymous: A,
@@ -726,13 +726,13 @@ const me = new Ia(), sA = f`
726
726
  ...OptionFields
727
727
  }
728
728
  }
729
- `, Fa = async (l) => {
729
+ `, Fa = async (g) => {
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: l
735
+ ids: g
736
736
  }
737
737
  });
738
738
  return e.data.options.forEach((t) => {
@@ -741,8 +741,8 @@ 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 (l, e) => (await e).find((A) => A.id === l), Ma = async (l) => {
745
- const e = l.map((i) => me.get({ id: i })), t = l.filter((i, s) => e[s] === void 0);
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);
746
746
  if (t.length === 0)
747
747
  return Promise.all(e);
748
748
  const A = Fa(t), a = t.map(
@@ -797,7 +797,7 @@ class Sa {
797
797
  }
798
798
  }
799
799
  const V = new Sa();
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 || {}), Ge = /* @__PURE__ */ ((l) => (l.Owner = "Owner", l.Approver = "Approver", l.Editor = "Editor", l.Viewer = "Viewer", l))(Ge || {});
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
801
  const oA = f`
802
802
  fragment ActiveIntegrationFields on Integration {
803
803
  id
@@ -1333,14 +1333,14 @@ const Ja = f`
1333
1333
  }
1334
1334
  }
1335
1335
  }
1336
- `, lA = f`
1336
+ `, gA = f`
1337
1337
  query ReadWorkflowStates($ids: [String]!) {
1338
1338
  transactions(ids: $ids) {
1339
1339
  id
1340
1340
  workflowState
1341
1341
  }
1342
1342
  }
1343
- `, gA = f`
1343
+ `, lA = f`
1344
1344
  ${Be}
1345
1345
  fragment IntegrationProductFields on IntegrationProduct {
1346
1346
  id
@@ -1403,14 +1403,14 @@ const Ja = f`
1403
1403
  }
1404
1404
  }
1405
1405
  `, Ta = f`
1406
- ${gA}
1406
+ ${lA}
1407
1407
  query GetIntegrationProducts($ids: [String!]!) {
1408
1408
  integrationProducts(ids: $ids) {
1409
1409
  ...IntegrationProductFields
1410
1410
  }
1411
1411
  }
1412
1412
  `, Oa = f`
1413
- ${gA}
1413
+ ${lA}
1414
1414
  query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
1415
1415
  integrationProductFromExternalIds(
1416
1416
  externalIntegrationId: $externalIntegrationId
@@ -1431,25 +1431,25 @@ const Ja = f`
1431
1431
  }
1432
1432
  }
1433
1433
  }
1434
- `, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (l) => {
1434
+ `, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (g) => {
1435
1435
  const e = [];
1436
- l.introduction && e.push({
1436
+ g.introduction && e.push({
1437
1437
  name: "Introduction",
1438
- title: l.name,
1438
+ title: g.name,
1439
1439
  renderableSteps: [
1440
1440
  {
1441
1441
  type: M.Introduction,
1442
1442
  stepName: "Introduction",
1443
- stepTitle: l.name,
1444
- helpText: l.introduction,
1443
+ stepTitle: g.name,
1444
+ helpText: g.introduction,
1445
1445
  data: {},
1446
1446
  conditions: []
1447
1447
  }
1448
1448
  ],
1449
1449
  silentSteps: []
1450
1450
  });
1451
- for (const A of l.steps) {
1452
- const a = Ka(A.stepName, l.stepGroups);
1451
+ for (const A of g.steps) {
1452
+ const a = Ka(A.stepName, g.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: l.finalizeStepConfig ? l.finalizeStepConfig.modelAnimation : void 0,
1482
- lookAtAnimation: l.finalizeStepConfig ? l.finalizeStepConfig.lookAtAnimation : void 0
1481
+ modelAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.modelAnimation : void 0,
1482
+ lookAtAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.lookAtAnimation : void 0
1483
1483
  },
1484
1484
  conditions: []
1485
1485
  }
1486
1486
  ],
1487
1487
  silentSteps: []
1488
1488
  }), e;
1489
- }, Ka = (l, e) => e.find((t) => t.stepNames.includes(l)), ae = (l, e) => (l.conditions || []).every((t) => {
1489
+ }, Ka = (g, e) => e.find((t) => t.stepNames.includes(g)), ae = (g, e) => (g.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 = (l, e) => {
1498
+ }), ja = (g, e) => {
1499
1499
  const t = {
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))
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))
1504
1504
  };
1505
1505
  return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
1506
- }, ce = (l, e) => l.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (l, e, t = !1) => {
1506
+ }, ce = (g, e) => g.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (g, e, t = !1) => {
1507
1507
  var i;
1508
- const A = ce(l, e), a = [];
1508
+ const A = ce(g, 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;
@@ -1595,19 +1595,19 @@ class dA {
1595
1595
  }
1596
1596
  }
1597
1597
  }
1598
- function Wa(l, e, t, A) {
1599
- const a = t.width * l.zoom, n = t.height * l.zoom;
1598
+ function Wa(g, e, t, A) {
1599
+ const a = t.width * g.zoom, n = t.height * g.zoom;
1600
1600
  if (A) {
1601
- const s = l, o = Math.max(e.width / t.width, e.height / t.height);
1602
- s.zoom = Math.max(o, l.zoom);
1601
+ const s = g, o = Math.max(e.width / t.width, e.height / t.height);
1602
+ s.zoom = Math.max(o, g.zoom);
1603
1603
  const r = t.width * s.zoom, c = t.height * s.zoom;
1604
- return s.x = Fe(l.x, e.width - r, 0), s.y = Fe(l.y, e.height - c, 0), s;
1604
+ return s.x = Fe(g.x, e.width - r, 0), s.y = Fe(g.y, e.height - c, 0), s;
1605
1605
  }
1606
- const i = l;
1606
+ const i = g;
1607
1607
  return i.x = Fe(i.x, -a, e.width), i.y = Fe(i.y, -n, e.height), i;
1608
1608
  }
1609
- function Fe(l, e, t) {
1610
- return Math.min(Math.max(l, e), t);
1609
+ function Fe(g, e, t) {
1610
+ return Math.min(Math.max(g, e), t);
1611
1611
  }
1612
1612
  class Xa {
1613
1613
  constructor(e) {
@@ -1631,7 +1631,7 @@ 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 gt(s), r = this.frameData ? this.frameData[i] : void 0;
1634
+ const s = a.currentFrameSources[i], o = await lt(s), r = this.frameData ? this.frameData[i] : void 0;
1635
1635
  eA(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(
@@ -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((g) => g.panelId === a.panelId);
1833
+ const n = this.layouts.find((l) => l.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 g = "";
1839
- if ((o = this.product) != null && o.overlayImageUrl && (g = this.product.overlayImageUrl), i = g, !g)
1838
+ let l = "";
1839
+ if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1840
1840
  throw new Ue(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 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)
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)
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: g,
1850
+ src: l,
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 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) {
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) {
1874
1874
  u("Undefined vector silent step source");
1875
1875
  return;
1876
1876
  }
1877
- _(g, !0).then((E) => {
1877
+ _(l, !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
1883
  cachedObjectURL: await ve(C.svg),
1884
- src: g,
1884
+ src: l,
1885
1885
  svg: C.svg,
1886
1886
  colors: C.colors,
1887
1887
  type: s,
@@ -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 (l) => {
1930
+ const qa = async (g) => {
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: l }),
1935
+ body: JSON.stringify({ longUrl: g }),
1936
1936
  headers: {
1937
1937
  "Content-Type": "application/json"
1938
1938
  }
@@ -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, 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;
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;
1979
1979
  t.updateStorage(e.stepName, {
1980
1980
  videoShortUrl: r,
1981
1981
  videoUrl: c
@@ -2015,8 +2015,8 @@ class Za {
2015
2015
  const c = await qa(r);
2016
2016
  if (!a.data || !a.data.regions)
2017
2017
  throw new Ue(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 () => {
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 () => {
2020
2020
  A.updateStorage(a.stepName, {
2021
2021
  videoShortUrl: c,
2022
2022
  videoUrl: i.href
@@ -2029,7 +2029,7 @@ class Za {
2029
2029
  }
2030
2030
  async command(e, t, A, a) {
2031
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((g) => g.panelId === (c == null ? void 0 : c.panelId));
2032
+ const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
2033
2033
  if (!B && c)
2034
2034
  throw new z(c);
2035
2035
  if (B && !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
- ], ge = [
3401
+ ], le = [
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 = ge.map((l) => [
4744
- parseInt(l.substring(0, 2), 16),
4745
- parseInt(l.substring(2, 4), 16),
4746
- parseInt(l.substring(4, 6), 16)
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)
4747
4747
  ]);
4748
- function Ds(l) {
4749
- const e = Qe.indexOf(l);
4750
- return e >= 0 ? ge[e] : "";
4748
+ function Ds(g) {
4749
+ const e = Qe.indexOf(g);
4750
+ return e >= 0 ? le[e] : "";
4751
4751
  }
4752
- function $a(l) {
4753
- const e = ge.indexOf(l);
4752
+ function $a(g) {
4753
+ const e = le.indexOf(g);
4754
4754
  return e >= 0 ? Qe[e] : "";
4755
4755
  }
4756
- function Is(l, e = 64) {
4757
- const t = [], A = [], a = $a(l);
4756
+ function Is(g, e = 64) {
4757
+ const t = [], A = [], a = $a(g);
4758
4758
  a && t.push({
4759
4759
  pms: a,
4760
- hex: l,
4760
+ hex: g,
4761
4761
  distance: 0
4762
4762
  });
4763
- const n = parseInt(l.substring(0, 2), 16), i = parseInt(l.substring(2, 4), 16), s = parseInt(l.substring(4, 6), 16);
4763
+ const n = parseInt(g.substring(0, 2), 16), i = parseInt(g.substring(2, 4), 16), s = parseInt(g.substring(4, 6), 16);
4764
4764
  let o, r, c;
4765
- for (let B = 0; B < ge.length; B++) {
4765
+ for (let B = 0; B < le.length; B++) {
4766
4766
  o = qe[B][0], r = qe[B][1], c = qe[B][2];
4767
- const g = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
4768
- A.push(g);
4767
+ const l = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
4768
+ A.push(l);
4769
4769
  }
4770
4770
  for (let B = 0; B < A.length; B++)
4771
- A[B] <= e && !t.some((g) => g.pms === Qe[B]) && t.push({ pms: Qe[B], hex: ge[B], distance: A[B] });
4772
- return t.sort((B, g) => B.distance - g.distance);
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);
4773
4773
  }
4774
- const _a = Qe.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);
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);
4777
4777
  }
4778
4778
  let we = null;
4779
- function tn(l) {
4780
- if (l.startsWith("#"))
4781
- return Ut(l);
4779
+ function tn(g) {
4780
+ if (g.startsWith("#"))
4781
+ return Ut(g);
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 = l;
4786
+ we.fillStyle = g;
4787
4787
  const e = Ut(we.fillStyle);
4788
- return e || console.error(`Unknown browser color ${l}`), e;
4788
+ return e || console.error(`Unknown browser color ${g}`), e;
4789
4789
  }
4790
- function Ut(l) {
4791
- const e = l.substring(1).toUpperCase();
4790
+ function Ut(g) {
4791
+ const e = g.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 {
@@ -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, g = (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, l = (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: g
4857
- }), g) {
4856
+ framePatternSrc: l
4857
+ }), l) {
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(g, D, !0, B), t.updateMetadata(e.stepName, { image: g }), t.updateStorage(e.stepName, {
4862
- framePatternSrc: g
4861
+ await this.loadPatternFromString(l, D, !0, B), t.updateMetadata(e.stepName, { image: l }), t.updateStorage(e.stepName, {
4862
+ framePatternSrc: l
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 g = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
4877
- g && await t.setSelectionsAndElements(
4876
+ const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
4877
+ l && await t.setSelectionsAndElements(
4878
4878
  e.stepName,
4879
- [g],
4879
+ [l],
4880
4880
  o,
4881
4881
  async () => {
4882
4882
  const d = await Promise.all(
4883
- e.data.regions.map((C) => this.frameSourceSvg(g, C))
4883
+ e.data.regions.map((C) => this.frameSourceSvg(l, C))
4884
4884
  );
4885
4885
  t.updateStorage(e.stepName, { currentFrameSources: d }), await c();
4886
4886
  }
@@ -4959,9 +4959,6 @@ class An {
4959
4959
  stepRegion: t,
4960
4960
  stepName: a.stepName,
4961
4961
  disablePlaceholder: a.disablePlaceholder,
4962
- focalBlur: a.focalBlur,
4963
- focalBlurStrength: a.focalBlurStrength,
4964
- focalBlurRadius: a.focalBlurRadius,
4965
4962
  pattern: a.pattern,
4966
4963
  immutable: t.immutable
4967
4964
  },
@@ -4972,8 +4969,8 @@ class An {
4972
4969
  if (e.endsWith("svg")) {
4973
4970
  const i = await OA(e), s = i.width, o = i.height, r = await _(e);
4974
4971
  if (n) {
4975
- const g = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
4976
- if (g && g.length > 0)
4972
+ const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
4973
+ if (l && l.length > 0)
4977
4974
  throw new Error(
4978
4975
  "Vector files may not include images or gradients when a color limit is specified."
4979
4976
  );
@@ -5045,8 +5042,8 @@ class An {
5045
5042
  };
5046
5043
  const a = { ...e.getImageData().colors ?? {} }, n = {};
5047
5044
  Object.entries(a).forEach(([c, B]) => {
5048
- const g = { browserValue: B.browserValue };
5049
- n[c] = g;
5045
+ const l = { browserValue: B.browserValue };
5046
+ n[c] = l;
5050
5047
  });
5051
5048
  for (const [c, B] of A.entries())
5052
5049
  a[c] = { browserValue: B.browserValue, pmsValue: B.pmsValue }, n[c] = B;
@@ -5054,8 +5051,8 @@ class An {
5054
5051
  const s = t.data.colorOption;
5055
5052
  return s && ((r = s.variants) == null || r.forEach((c) => {
5056
5053
  i = i.map((B) => {
5057
- var g;
5058
- return B.toLowerCase() === ((g = c.color) == null ? void 0 : g.toLowerCase()) ? c.name : B;
5054
+ var l;
5055
+ return B.toLowerCase() === ((l = c.color) == null ? void 0 : l.toLowerCase()) ? c.name : B;
5059
5056
  });
5060
5057
  })), {
5061
5058
  newColors: a,
@@ -5072,8 +5069,8 @@ class An {
5072
5069
  );
5073
5070
  }
5074
5071
  async selectVariantCommand(e, t, A, a, n, i) {
5075
- var g;
5076
- const s = (g = a.getStepSpecificServices(e.stepName)) == null ? void 0 : g.frameService;
5072
+ var l;
5073
+ const s = (l = a.getStepSpecificServices(e.stepName)) == null ? void 0 : l.frameService;
5077
5074
  if (!s)
5078
5075
  throw new Error("Frame service unavailable, cannot load pattern!");
5079
5076
  const o = await Promise.all(
@@ -5082,7 +5079,7 @@ class An {
5082
5079
  n && n(!0);
5083
5080
  const r = await Promise.all(
5084
5081
  e.data.regions.map(async (d, C) => {
5085
- const w = await gt(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 lt(o[C]), h = s.getImageData(), u = A.map((I) => new ne(I.id)), E = h ? Bt(h, w) : void 0, D = h ? {
5086
5083
  id: J(),
5087
5084
  src: h.src,
5088
5085
  x: (E == null ? void 0 : E.x) || 0,
@@ -5100,9 +5097,6 @@ class An {
5100
5097
  frameData: w,
5101
5098
  pattern: D,
5102
5099
  disablePlaceholder: e.data.disablePlaceholder,
5103
- focalBlur: e.data.focalBlur,
5104
- focalBlurStrength: e.data.focalBlurStrength,
5105
- focalBlurRadius: e.data.focalBlurRadius,
5106
5100
  stepName: e.stepName
5107
5101
  }),
5108
5102
  regionEl: {
@@ -5245,13 +5239,13 @@ class an {
5245
5239
  if (a != null && a.selectedVariants) {
5246
5240
  const c = a.selectedVariants[0].id;
5247
5241
  if (o && c) {
5248
- const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5242
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5249
5243
  if (B) {
5250
- const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5244
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5251
5245
  await t.setSelectionsAndElements(
5252
5246
  e.stepName,
5253
5247
  [B],
5254
- g,
5248
+ l,
5255
5249
  async () => {
5256
5250
  var d;
5257
5251
  t.updateMetadata(e.stepName, {
@@ -5277,12 +5271,12 @@ class an {
5277
5271
  async changeColorsCommand(e, t, A, a, n) {
5278
5272
  var c;
5279
5273
  const i = {};
5280
- for (const [B, g] of n.entries())
5281
- i[B] = { browserValue: g, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
5274
+ for (const [B, l] of n.entries())
5275
+ i[B] = { browserValue: l, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
5282
5276
  const s = zA(e, t, A, i), o = await ve(s), r = [];
5283
5277
  for (const B of a) {
5284
- for (const [g, d] of n.entries())
5285
- r.push(new at(B, g, d));
5278
+ for (const [l, d] of n.entries())
5279
+ r.push(new at(B, l, d));
5286
5280
  r.push(new KA(B, s, o));
5287
5281
  }
5288
5282
  return new k(r);
@@ -5314,7 +5308,7 @@ class an {
5314
5308
  B.set(w, h.browserValue);
5315
5309
  }), !i.svg)
5316
5310
  throw new Error("Colors changed before SVG loaded. This should never happen!");
5317
- const g = await this.changeColorsCommand(
5311
+ const l = await this.changeColorsCommand(
5318
5312
  i.svg,
5319
5313
  i.width,
5320
5314
  i.height,
@@ -5323,7 +5317,7 @@ class an {
5323
5317
  );
5324
5318
  A.updateStorage(e.stepName, {
5325
5319
  colors: o
5326
- }), A.getCommandDispatcher()(g);
5320
+ }), A.getCommandDispatcher()(l);
5327
5321
  }
5328
5322
  async selectVariant(e, t, A, a, n) {
5329
5323
  const i = await this.selectVariantCommand(e, t, A, a, n);
@@ -5356,7 +5350,7 @@ class an {
5356
5350
  svg: r
5357
5351
  })
5358
5352
  };
5359
- }, g = e.data.regions.map(B), C = [...g.map((E) => E.command), ...i];
5353
+ }, l = e.data.regions.map(B), C = [...l.map((E) => E.command), ...i];
5360
5354
  let w = Array.from(Object.values(r.colors)).map((E) => E.browserValue);
5361
5355
  const h = e.data.colorOption;
5362
5356
  return h && ((u = h.variants) == null || u.forEach((E) => {
@@ -5370,7 +5364,7 @@ class an {
5370
5364
  await n.setSelectionsAndElements(
5371
5365
  e.stepName,
5372
5366
  [t],
5373
- g.map((Q) => Q.regionElement),
5367
+ l.map((Q) => Q.regionElement),
5374
5368
  async () => {
5375
5369
  n.setMandatoryFulfilled(e.stepName, !0), a(!1);
5376
5370
  }
@@ -5380,7 +5374,7 @@ class an {
5380
5374
  const Q = E[0], p = D[0];
5381
5375
  await this.changeColors(
5382
5376
  e,
5383
- g.map((m) => m.regionElement),
5377
+ l.map((m) => m.regionElement),
5384
5378
  n,
5385
5379
  () => n.getCommandContext().getAllLayouts(),
5386
5380
  /* @__PURE__ */ new Map([[p, Q.variant.color]])
@@ -5388,7 +5382,7 @@ class an {
5388
5382
  } else
5389
5383
  e.data.colorPickerEnabled && await this.changeColors(
5390
5384
  e,
5391
- g.map((Q) => Q.regionElement),
5385
+ l.map((Q) => Q.regionElement),
5392
5386
  n,
5393
5387
  () => n.getCommandContext().getAllLayouts(),
5394
5388
  /* @__PURE__ */ new Map()
@@ -5424,9 +5418,9 @@ class nn {
5424
5418
  if (a != null && a.selectedVariants) {
5425
5419
  const c = a.selectedVariants[0].id;
5426
5420
  if (c) {
5427
- const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5421
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5428
5422
  if (B) {
5429
- const g = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5423
+ const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5430
5424
  await t.setSelectionsAndElements(
5431
5425
  e.stepName,
5432
5426
  [B],
@@ -5437,7 +5431,7 @@ class nn {
5437
5431
  const w = e.data.targetMaterials.map((h) => C.applyMaterialVariant(
5438
5432
  h,
5439
5433
  o.id || "",
5440
- g || {}
5434
+ l || {}
5441
5435
  ));
5442
5436
  Promise.all(w).then(
5443
5437
  () => t.setMandatoryFulfilled(e.stepName, !0)
@@ -5500,13 +5494,13 @@ class sn {
5500
5494
  if (a != null && a.selectedVariants) {
5501
5495
  const c = a.selectedVariants[0].id;
5502
5496
  if (o && c) {
5503
- const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5497
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5504
5498
  if (B) {
5505
- const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5499
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5506
5500
  await t.setSelectionsAndElements(
5507
5501
  e.stepName,
5508
5502
  [B],
5509
- g,
5503
+ l,
5510
5504
  async () => {
5511
5505
  var C;
5512
5506
  const d = t.getModelContainer();
@@ -5596,55 +5590,55 @@ class on {
5596
5590
  if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
5597
5591
  return console.error("Missing configuration."), null;
5598
5592
  A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
5599
- const r = (B, g, d) => {
5600
- const C = d || J(), h = A.getLayouts().find((E) => E.panelId === g.panelId);
5593
+ const r = (B, l, d) => {
5594
+ const C = d || J(), h = A.getLayouts().find((E) => E.panelId === l.panelId);
5601
5595
  if (!h)
5602
- return console.error(`Can not find layout for region: ${g.panelId}`), null;
5596
+ return console.error(`Can not find layout for region: ${l.panelId}`), null;
5603
5597
  const u = [];
5604
5598
  return d && u.push(new ne(C)), u.push(
5605
5599
  new L(
5606
5600
  {
5607
- stepRegion: g,
5601
+ stepRegion: l,
5608
5602
  stepName: e.stepName,
5609
5603
  colors: {},
5610
5604
  id: C,
5611
5605
  svg: B,
5612
5606
  type: G.Illustration,
5613
- y: g.top,
5614
- x: g.left,
5615
- rotation: g.rotation,
5616
- width: g.width,
5617
- height: g.height,
5618
- layer: g.layer,
5619
- layerIndex: g.layerIndex,
5620
- immutable: g.immutable
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
5621
5615
  },
5622
5616
  h
5623
5617
  )
5624
5618
  ), {
5625
5619
  id: C,
5626
- region: g,
5620
+ region: l,
5627
5621
  command: new k(u)
5628
5622
  };
5629
5623
  };
5630
5624
  if (i.length > 0) {
5631
- const g = i.map((d) => {
5625
+ const l = i.map((d) => {
5632
5626
  if (!d.region)
5633
5627
  return null;
5634
5628
  const C = s.svgPrint(t, d.region);
5635
5629
  return r(C, d.region, d.id);
5636
5630
  }).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
5637
5631
  return {
5638
- command: new k(g),
5632
+ command: new k(l),
5639
5633
  followup: async () => {
5640
5634
  }
5641
5635
  };
5642
5636
  } else {
5643
5637
  const B = e.data.regions.map(
5644
5638
  (d) => r(s.svgPrint(t, d), d)
5645
- ), g = B.filter((d) => !!d).map((d) => d && d.command);
5639
+ ), l = B.filter((d) => !!d).map((d) => d && d.command);
5646
5640
  return {
5647
- command: new k(g),
5641
+ command: new k(l),
5648
5642
  followup: async () => {
5649
5643
  const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
5650
5644
  await A.setSelectionsAndElements(
@@ -5696,13 +5690,13 @@ class rn {
5696
5690
  if (a != null && a.selectedVariants) {
5697
5691
  const c = a.selectedVariants[0].id;
5698
5692
  if (o && c) {
5699
- const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5693
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5700
5694
  if (B) {
5701
- const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5695
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5702
5696
  await t.setSelectionsAndElements(
5703
5697
  e.stepName,
5704
5698
  [B],
5705
- g,
5699
+ l,
5706
5700
  async () => {
5707
5701
  t.setMandatoryFulfilled(e.stepName, !0);
5708
5702
  }
@@ -5826,7 +5820,7 @@ class cn {
5826
5820
  }
5827
5821
  }
5828
5822
  const QA = new cn();
5829
- class ln {
5823
+ class gn {
5830
5824
  constructor() {
5831
5825
  this.shapeFillId = "spiff-fill-shape";
5832
5826
  }
@@ -5883,13 +5877,13 @@ class ln {
5883
5877
  if (a != null && a.selectedVariants) {
5884
5878
  const c = a.selectedVariants[0].id;
5885
5879
  if (o && c) {
5886
- const B = (r = o.variants) == null ? void 0 : r.find((g) => g.id === c);
5880
+ const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
5887
5881
  if (B) {
5888
- const g = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5882
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5889
5883
  await t.setSelectionsAndElements(
5890
5884
  e.stepName,
5891
5885
  [B],
5892
- g,
5886
+ l,
5893
5887
  async () => {
5894
5888
  var d;
5895
5889
  t.updateStorage(e.stepName, {
@@ -5913,9 +5907,9 @@ class ln {
5913
5907
  };
5914
5908
  if (A.length > 0) {
5915
5909
  const r = (B) => {
5916
- const g = B.region;
5917
- if (!n.find((w) => w.panelId === (g == null ? void 0 : g.panelId)))
5918
- throw new z(g);
5910
+ const l = B.region;
5911
+ if (!n.find((w) => w.panelId === (l == null ? void 0 : l.panelId)))
5912
+ throw new z(l);
5919
5913
  const C = s();
5920
5914
  return new at(B.id, this.shapeFillId, C);
5921
5915
  }, c = A.map(r).filter((B) => !!B);
@@ -5981,14 +5975,14 @@ class ln {
5981
5975
  C
5982
5976
  )
5983
5977
  };
5984
- }, 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 }));
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 }));
5985
5979
  return {
5986
5980
  command: new k(B),
5987
5981
  followup: async () => {
5988
5982
  await a.setSelectionsAndElements(
5989
5983
  e.stepName,
5990
5984
  t.variant ? [t.variant] : [],
5991
- g,
5985
+ l,
5992
5986
  async () => {
5993
5987
  a.updateStorage(e.stepName, { colour: s() });
5994
5988
  }
@@ -5998,8 +5992,8 @@ class ln {
5998
5992
  }
5999
5993
  }
6000
5994
  }
6001
- const Ee = new ln();
6002
- class gn {
5995
+ const Ee = new gn();
5996
+ class ln {
6003
5997
  constructor() {
6004
5998
  this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
6005
5999
  }
@@ -6024,7 +6018,7 @@ class gn {
6024
6018
  );
6025
6019
  }
6026
6020
  }
6027
- const Bn = new gn(), Ze = 30;
6021
+ const Bn = new ln(), Ze = 30;
6028
6022
  class be extends Error {
6029
6023
  constructor(e) {
6030
6024
  super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = be.name;
@@ -6093,11 +6087,11 @@ class Cn {
6093
6087
  color: ((s = await this.getDefaultColorVariant(e.data)) == null ? void 0 : s.name) || await this.getDefaultColor(e.data),
6094
6088
  fillImage: o == null ? void 0 : o.name
6095
6089
  });
6096
- const g = V.getDefaultVariant(a);
6097
- if (g)
6090
+ const l = V.getDefaultVariant(a);
6091
+ if (l)
6098
6092
  return this.selectVariantCommand(
6099
6093
  e,
6100
- g,
6094
+ l,
6101
6095
  {},
6102
6096
  [],
6103
6097
  t,
@@ -6221,19 +6215,19 @@ class Cn {
6221
6215
  for (const B of t) {
6222
6216
  if (!B.fontData)
6223
6217
  throw new b("Failed to resolve font data for text.");
6224
- const [g, d] = xe(
6218
+ const [l, d] = xe(
6225
6219
  B.fontSize,
6226
6220
  B.fontData,
6227
6221
  { left: B.x, top: B.y, width: B.width, height: B.height, rotation: B.rotation, panelId: "" },
6228
6222
  [i],
6229
6223
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
6230
6224
  );
6231
- r.set(B.id, g), c.set(B.id, d);
6225
+ r.set(B.id, l), c.set(B.id, d);
6232
6226
  const C = A.data.curved ? i : (d || []).join(`
6233
6227
  `);
6234
- o.push(this.generateTextChangeCommandsForRegion(g, A.data, B.id, C));
6228
+ o.push(this.generateTextChangeCommandsForRegion(l, A.data, B.id, C));
6235
6229
  }
6236
- 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, {
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, {
6237
6231
  text: i
6238
6232
  }), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(o), s);
6239
6233
  }
@@ -6266,11 +6260,11 @@ class Cn {
6266
6260
  const a = t.getSerializedStep(
6267
6261
  e.stepName,
6268
6262
  A.serializableWorkflow.steps
6269
- ), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
6263
+ ), s = Object.values(A.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === e.stepName), o = e.option;
6270
6264
  if (a != null && a.selectedVariants) {
6271
- const g = a.selectedVariants[0].id;
6272
- if (o && g) {
6273
- const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === g);
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);
6274
6268
  if (d) {
6275
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;
6276
6270
  await t.setSelectionsAndElements(
@@ -6328,10 +6322,10 @@ class Cn {
6328
6322
  var B;
6329
6323
  const r = n.markUpdatePending(), c = await this.fontDataFromVariant(t);
6330
6324
  if (a.length > 0) {
6331
- const g = a.map((w) => new St(w.id, c));
6325
+ const l = a.map((w) => new St(w.id, c));
6332
6326
  if (o) {
6333
6327
  const w = a.map((h) => new Xe(h.id, o));
6334
- g.push(...w);
6328
+ l.push(...w);
6335
6329
  }
6336
6330
  const d = await this.changeInputTextWithRegion(
6337
6331
  e,
@@ -6344,14 +6338,14 @@ class Cn {
6344
6338
  i,
6345
6339
  s
6346
6340
  );
6347
- return d && g.push(d), {
6348
- command: new k(g),
6341
+ return d && l.push(d), {
6342
+ command: new k(l),
6349
6343
  followup: async () => {
6350
6344
  n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
6351
6345
  }
6352
6346
  };
6353
6347
  } else {
6354
- const g = await this.createTextboxRegions(
6348
+ const l = await this.createTextboxRegions(
6355
6349
  e.stepName,
6356
6350
  t,
6357
6351
  e.data,
@@ -6362,15 +6356,15 @@ class Cn {
6362
6356
  e,
6363
6357
  e.data.size || Ze,
6364
6358
  c,
6365
- ((B = g[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
6359
+ ((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
6366
6360
  A,
6367
6361
  n,
6368
6362
  !!A.customiseAllText,
6369
6363
  i,
6370
6364
  s
6371
- ), C = g.flatMap((h) => h.commands);
6365
+ ), C = l.flatMap((h) => h.commands);
6372
6366
  if (o) {
6373
- const h = g.map(
6367
+ const h = l.map(
6374
6368
  (u) => new Xe(u.regionElement.id, o)
6375
6369
  );
6376
6370
  C.push(...h);
@@ -6496,30 +6490,30 @@ class Cn {
6496
6490
  * @deprecated
6497
6491
  */
6498
6492
  async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, c) {
6499
- 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();
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();
6500
6494
  for (const Q of d)
6501
6495
  if (Q.region) {
6502
6496
  const [p, m] = xe(
6503
6497
  t,
6504
6498
  A,
6505
6499
  Q.region,
6506
- [g],
6500
+ [l],
6507
6501
  { size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
6508
6502
  );
6509
6503
  C.set(Q.id, p), w.set(Q.id, m);
6510
6504
  }
6511
6505
  const u = (() => {
6512
- if (e.data && e.data.maxLength && g.length > e.data.maxLength)
6506
+ if (e.data && e.data.maxLength && l.length > e.data.maxLength)
6513
6507
  return c && c(!0), { info: "0" };
6514
- const Q = i.getProfanities(), p = st(g.toLowerCase());
6508
+ const Q = i.getProfanities(), p = st(l.toLowerCase());
6515
6509
  for (const m of p)
6516
6510
  for (const I in Q) {
6517
6511
  const F = Q[I].toLowerCase().replace(/\s/g, "");
6518
6512
  if (m === F)
6519
6513
  return o(!0), { error: "Blocked profanity." };
6520
6514
  }
6521
- return !e.data.vertical && !e.data.allowNewlines && (g.includes(`
6522
- `) || 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() });
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() });
6523
6517
  })();
6524
6518
  if (u.error) {
6525
6519
  r(u.error);
@@ -6532,7 +6526,7 @@ class Cn {
6532
6526
  }), (n.defaultCleared || !e.data.deleteDefaultOnFocus) && i.setMandatoryFulfilled(e.stepName, !0);
6533
6527
  const E = [];
6534
6528
  for (const Q of d) {
6535
- const p = e.data.curved ? g : (w.get(Q.id) || []).join(`
6529
+ const p = e.data.curved ? l : (w.get(Q.id) || []).join(`
6536
6530
  `);
6537
6531
  E.push(
6538
6532
  this.generateTextChangeCommandsForRegion(
@@ -7810,42 +7804,42 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
7810
7804
  </g>
7811
7805
  </svg>
7812
7806
 
7813
- `, v = (l) => ZA("http://www.w3.org/2000/svg", l), Qt = (l, e) => {
7807
+ `, v = (g) => ZA("http://www.w3.org/2000/svg", g), Qt = (g, e) => {
7814
7808
  const t = v("rect");
7815
- return t.setAttribute("height", `${l}`), t.setAttribute("width", `${e}`), t;
7809
+ return t.setAttribute("height", `${g}`), t.setAttribute("width", `${e}`), t;
7816
7810
  }, En = () => {
7817
- const l = v("svg");
7818
- 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;
7819
- }, un = (l) => {
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) => {
7820
7814
  const e = v("use");
7821
- return e.setAttribute("xlink:href", l), e.setAttribute("href", l), e;
7815
+ return e.setAttribute("xlink:href", g), e.setAttribute("href", g), e;
7822
7816
  };
7823
- function pA(l) {
7824
- const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(l) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
7817
+ function pA(g) {
7818
+ const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
7825
7819
  return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
7826
7820
  }
7827
- const mn = (l, e, t) => {
7821
+ const mn = (g, e, t) => {
7828
7822
  const A = v("g");
7829
- l.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
7823
+ g.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
7830
7824
  };
7831
- function DA(l, e, t) {
7825
+ function DA(g, e, t) {
7832
7826
  const A = J();
7833
- mn(e, t, `bgdef-${A}`), l.appendChild(un(`#bgdef-${A}`));
7827
+ mn(e, t, `bgdef-${A}`), g.appendChild(un(`#bgdef-${A}`));
7834
7828
  }
7835
- const IA = (l, e, t, A) => {
7829
+ const IA = (g, e, t, A) => {
7836
7830
  const a = Ie("filter");
7837
7831
  a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
7838
7832
  const n = Ie("feOffset");
7839
- a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${l}`), n.setAttribute("dy", `${e}`);
7833
+ a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${g}`), n.setAttribute("dy", `${e}`);
7840
7834
  const i = Ie("feGaussianBlur");
7841
7835
  a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
7842
7836
  const s = Ie("feBlend");
7843
7837
  return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
7844
- }, fA = (l) => {
7845
- let e = l;
7838
+ }, fA = (g) => {
7839
+ let e = g;
7846
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;
7847
7841
  };
7848
- function pt(l, e, t, A, a, n) {
7842
+ function pt(g, e, t, A, a, n) {
7849
7843
  const i = a || 1, s = n || 1, o = {
7850
7844
  x: e[0],
7851
7845
  y: e[1],
@@ -7855,10 +7849,10 @@ function pt(l, e, t, A, a, n) {
7855
7849
  if (o.width <= 0)
7856
7850
  return;
7857
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;
7858
- l.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
7852
+ g.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
7859
7853
  }
7860
- function Qn(l, e, t, A) {
7861
- const a = t / l, n = A / e;
7854
+ function Qn(g, e, t, A) {
7855
+ const a = t / g, n = A / e;
7862
7856
  return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
7863
7857
  }
7864
7858
  const Gt = {
@@ -7895,18 +7889,18 @@ class Dt {
7895
7889
  o && (i.push(s), t = s);
7896
7890
  for (const c of r) {
7897
7891
  const B = n[c];
7898
- let g;
7892
+ let l;
7899
7893
  switch (typeof B) {
7900
7894
  case "boolean":
7901
- g = B | 0;
7895
+ l = B | 0;
7902
7896
  break;
7903
7897
  case "number":
7904
- g = (B * 100 | 0) / 100;
7898
+ l = (B * 100 | 0) / 100;
7905
7899
  break;
7906
7900
  default:
7907
7901
  throw new he("Failed to encode path.");
7908
7902
  }
7909
- o || i.push(" "), i.push(g), o = !1;
7903
+ o || i.push(" "), i.push(l), o = !1;
7910
7904
  }
7911
7905
  return i.join("");
7912
7906
  };
@@ -7928,8 +7922,8 @@ class Dt {
7928
7922
  );
7929
7923
  for (let c = 0; c < s.length / r.length; c++) {
7930
7924
  const B = { type: i, relative: o };
7931
- for (let g = 0; g < r.length; g++)
7932
- B[r[g]] = s[c * r.length + g];
7925
+ for (let l = 0; l < r.length; l++)
7926
+ B[r[l]] = s[c * r.length + l];
7933
7927
  a.push(B);
7934
7928
  }
7935
7929
  } else
@@ -8002,16 +7996,16 @@ class pn extends mt {
8002
7996
  return "";
8003
7997
  const B = v("defs");
8004
7998
  o.appendChild(B), DA(o, B, t);
8005
- const g = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
7999
+ const l = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
8006
8000
  o.appendChild(h), h.setAttribute("transform", `translate(${C} ${w}) rotate(-21)`);
8007
- const u = Qt(g, d);
8001
+ const u = Qt(l, d);
8008
8002
  u.setAttribute("opacity", "0"), h.appendChild(u);
8009
8003
  const E = v("g");
8010
8004
  h.appendChild(E);
8011
8005
  const D = s();
8012
8006
  E.appendChild(D);
8013
8007
  const Q = wt(i);
8014
- return pt(E, Q, g, d), fA(o.outerHTML);
8008
+ return pt(E, Q, l, d), fA(o.outerHTML);
8015
8009
  }
8016
8010
  }
8017
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==";
@@ -8042,13 +8036,13 @@ class In extends mt {
8042
8036
  S,
8043
8037
  T + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
8044
8038
  ]), N.transform(([S, T]) => [S - (i - T) * (s - S) / 800, T]), I;
8045
- }, [c, B, g] = pA(t);
8039
+ }, [c, B, l] = pA(t);
8046
8040
  if (!c)
8047
8041
  return "";
8048
8042
  const d = v("defs");
8049
8043
  c.appendChild(d), DA(c, d, t);
8050
8044
  let C, w, h, u;
8051
- 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);
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);
8052
8046
  const E = v("g");
8053
8047
  c.appendChild(E), E.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
8054
8048
  const D = Qt(C, w);
@@ -8089,34 +8083,34 @@ class Fn extends mt {
8089
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;
8090
8084
  const y = v("g");
8091
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;
8092
- }, g = v("g");
8093
- g.classList.add("module-root");
8086
+ }, l = v("g");
8087
+ l.classList.add("module-root");
8094
8088
  const d = v("defs");
8095
- g.appendChild(d);
8089
+ l.appendChild(d);
8096
8090
  const C = v("g");
8097
- C.classList.add("module-bounds"), g.appendChild(C);
8091
+ C.classList.add("module-bounds"), l.appendChild(C);
8098
8092
  const w = Qt(t.height, t.width);
8099
8093
  w.setAttribute("opacity", "0"), C.appendChild(w);
8100
8094
  const h = v("g");
8101
- h.classList.add("module-text-enclosure"), g.appendChild(h);
8095
+ h.classList.add("module-text-enclosure"), l.appendChild(h);
8102
8096
  const u = B();
8103
8097
  h.appendChild(u);
8104
8098
  const E = wt(c);
8105
- return pt(h, E, t.height, t.width, 0.35, 0.65), fA(g.outerHTML);
8099
+ return pt(h, E, t.height, t.width, 0.35, 0.65), fA(l.outerHTML);
8106
8100
  }
8107
8101
  }
8108
- async function FA(l) {
8109
- if (l === "Favourites")
8102
+ async function FA(g) {
8103
+ if (g === "Favourites")
8110
8104
  return new pn();
8111
- if (l === "Maltesers") {
8105
+ if (g === "Maltesers") {
8112
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]);
8113
8107
  return new In(A[0], A[1]);
8114
8108
  }
8115
- if (l === "Vegemite")
8109
+ if (g === "Vegemite")
8116
8110
  return new Fn();
8117
- throw new b(`Failed to resolve Module, Module ${l} not found`);
8111
+ throw new b(`Failed to resolve Module, Module ${g} not found`);
8118
8112
  }
8119
- var Ve = /* @__PURE__ */ ((l) => (l.Error = "Error", l.Warning = "Warning", l.Info = "Info", l))(Ve || {});
8113
+ var Ve = /* @__PURE__ */ ((g) => (g.Error = "Error", g.Warning = "Warning", g.Info = "Info", g))(Ve || {});
8120
8114
  const yn = 1e3;
8121
8115
  class bt extends BA {
8122
8116
  constructor(e) {
@@ -8131,7 +8125,7 @@ class bt extends BA {
8131
8125
  }
8132
8126
  }
8133
8127
  class Mn {
8134
- constructor(e, t, A, a, n, i, s, o, r, c, B, g, d, C = !1, w, h = !1, u = !1, E = !1) {
8128
+ constructor(e, t, A, a, n, i, s, o, r, c, B, l, d, C = !1, w, h = !1, u = !1, E = !1) {
8135
8129
  this.workflowStatePromiseQueue = new dA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
8136
8130
  var p;
8137
8131
  if (!this.previewService)
@@ -8140,7 +8134,7 @@ class Mn {
8140
8134
  if (Q)
8141
8135
  for (const [, m] of Q)
8142
8136
  m.render(D);
8143
- }, 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(() => {
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(() => {
8144
8138
  this.initialized = !0;
8145
8139
  }), this.initializationPromise.catch((D) => {
8146
8140
  throw console.error(D), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
@@ -8377,8 +8371,8 @@ class Mn {
8377
8371
  throw new b(
8378
8372
  "We should always have a model container when injecting a preview!"
8379
8373
  );
8380
- const g = (B = o.asset) == null ? void 0 : B.fileLink;
8381
- if (!g) {
8374
+ const l = (B = o.asset) == null ? void 0 : B.fileLink;
8375
+ if (!l) {
8382
8376
  console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
8383
8377
  return;
8384
8378
  }
@@ -8386,14 +8380,14 @@ class Mn {
8386
8380
  this.modelContainer.applyModelVariant(
8387
8381
  i.stepName,
8388
8382
  {
8389
- model: g,
8383
+ model: l,
8390
8384
  contextService: this.getLayoutPreviewService()
8391
8385
  },
8392
8386
  d.replaceProductModel || !1
8393
8387
  );
8394
8388
  } else {
8395
- const g = o.material;
8396
- if (!g) {
8389
+ const l = o.material;
8390
+ if (!l) {
8397
8391
  console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
8398
8392
  return;
8399
8393
  }
@@ -8402,7 +8396,7 @@ class Mn {
8402
8396
  throw new b(
8403
8397
  "We should always have a model container when injecting a preview!"
8404
8398
  );
8405
- this.modelContainer.applyMaterialVariant(C, i.option.id, g);
8399
+ this.modelContainer.applyMaterialVariant(C, i.option.id, l);
8406
8400
  });
8407
8401
  }
8408
8402
  }), await A.getInitializationPromise(), this.renderLayouts();
@@ -8474,7 +8468,7 @@ class Mn {
8474
8468
  const e = this.getCommandContext().getState();
8475
8469
  if (!e)
8476
8470
  throw new b("Attempted to serialize state before it was initialized.");
8477
- return { transaction: JSON.stringify(this.dehydrateState(le(e.transaction))) };
8471
+ return { transaction: JSON.stringify(this.dehydrateState(ge(e.transaction))) };
8478
8472
  }
8479
8473
  dehydrateState(e) {
8480
8474
  var t;
@@ -8515,15 +8509,15 @@ class Mn {
8515
8509
  return Promise.resolve({ stepElements: {}, commands: [] });
8516
8510
  const a = async (r, c, B) => {
8517
8511
  if (r.type === M.SilentIllustration) {
8518
- const g = await new kt(r, c).trigger();
8519
- return { step: r, results: g };
8512
+ const l = await new kt(r, c).trigger();
8513
+ return { step: r, results: l };
8520
8514
  } else if (r.type === M.ProductOverlay) {
8521
- const g = await new kt(
8515
+ const l = await new kt(
8522
8516
  r,
8523
8517
  c,
8524
8518
  B
8525
8519
  ).trigger();
8526
- return { step: r, results: g };
8520
+ return { step: r, results: l };
8527
8521
  }
8528
8522
  return Promise.reject("Unknown silent step. This is a bug");
8529
8523
  }, n = e.filter(
@@ -8595,18 +8589,18 @@ class Mn {
8595
8589
  r.forEach((m) => {
8596
8590
  ae(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
8597
8591
  });
8598
- const g = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8592
+ const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8599
8593
  this.stepElements = {
8600
8594
  ...this.stepElements,
8601
8595
  ...d,
8602
8596
  [e]: A
8603
- }, this.removeElements(g);
8597
+ }, this.removeElements(l);
8604
8598
  const w = this.workflow.steps.find((m) => m.stepName === e);
8605
8599
  if ((w == null ? void 0 : w.type) === M.Frame) {
8606
8600
  const m = this.getStepSpecificServices(e);
8607
8601
  (p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((I) => I.id));
8608
8602
  }
8609
- const h = g.map((m) => new ne(m.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
8603
+ const h = l.map((m) => new ne(m.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
8610
8604
  E.length > 0 && this.commandContext.apply(new k(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
8611
8605
  const D = this.getInvalidModelVariants(), Q = this.modelContainer;
8612
8606
  if (Q) {
@@ -9119,22 +9113,15 @@ class vn extends X {
9119
9113
  * throw when a non-custom variant is selected.
9120
9114
  */
9121
9115
  setCustomColor(e) {
9122
- var t;
9123
- if (((t = this.getCurrentVariant()) == null ? void 0 : t.getColor()) !== "#custom")
9124
- throw new Error(
9125
- "Custom colors can only be set on a non-custom variant. Please add a custom variant to the step."
9126
- );
9127
- return Ee.setCustomColor(e, this.step, this.manager);
9116
+ var t, A;
9117
+ return ((t = this.getCurrentVariant()) == null ? void 0 : t.getColor()) !== "#custom" && console.warn(`setting custom color for step ${this.step.stepName} but color is ${(A = this.getCurrentVariant()) == null ? void 0 : A.getColor()}`), Ee.setCustomColor(e, this.step, this.manager);
9128
9118
  }
9129
9119
  getCustomColor() {
9130
- var t, A;
9131
- const e = (t = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : t.colour;
9132
- if (((A = this.getCurrentVariant()) == null ? void 0 : A.getColor()) !== "#custom")
9133
- throw new Error(
9134
- "Custom colors can only be set on a non-custom variant. Please add a custom variant to the step."
9135
- );
9120
+ var t, A, a;
9121
+ ((t = this.getCurrentVariant()) == null ? void 0 : t.getColor()) !== "#custom" && console.warn(`setting custom color for step ${this.step.stepName} but color is ${(A = this.getCurrentVariant()) == null ? void 0 : A.getColor()}`);
9122
+ const e = (a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.colour;
9136
9123
  if (!e)
9137
- throw new Error("Color not available on step. Set a default on the workflow to fix this.");
9124
+ throw new Error(`Color not available on step ${this.step.stepName}. Set a default on the workflow to fix this.`);
9138
9125
  return e;
9139
9126
  }
9140
9127
  }
@@ -9499,11 +9486,11 @@ const MA = f`
9499
9486
  }
9500
9487
  }
9501
9488
  `;
9502
- function Te(l) {
9503
- const e = JSON.parse(atob(l.split(".")[1])).exp;
9489
+ function Te(g) {
9490
+ const e = JSON.parse(atob(g.split(".")[1])).exp;
9504
9491
  return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
9505
9492
  }
9506
- const Jn = async (l) => {
9493
+ const Jn = async (g) => {
9507
9494
  var i, s;
9508
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 = {};
9509
9496
  return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
@@ -9511,20 +9498,20 @@ const Jn = async (l) => {
9511
9498
  errorPolicy: "all",
9512
9499
  fetchPolicy: "no-cache",
9513
9500
  variables: {
9514
- name: l.name,
9515
- layouts: l.layouts,
9516
- workflowId: l.workflowId,
9517
- transactionId: l.transactionId,
9518
- previewImage: l.previewImage,
9519
- useThreeDimPreview: l.useThreeDimPreview,
9520
- metadata: l.metadata,
9521
- selectedVariants: l.selectedVariants
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
9522
9509
  },
9523
9510
  context: {
9524
9511
  headers: a
9525
9512
  }
9526
9513
  })).data) == null ? void 0 : s.designCreate;
9527
- }, Tn = async (l) => {
9514
+ }, Tn = async (g) => {
9528
9515
  var i, s;
9529
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 = {};
9530
9517
  return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
@@ -9532,7 +9519,7 @@ const Jn = async (l) => {
9532
9519
  errorPolicy: "all",
9533
9520
  fetchPolicy: "no-cache",
9534
9521
  variables: {
9535
- inputs: l.map((o) => ({
9522
+ inputs: g.map((o) => ({
9536
9523
  name: o.name,
9537
9524
  layouts: o.layouts,
9538
9525
  workflowId: o.workflowId,
@@ -9547,17 +9534,17 @@ const Jn = async (l) => {
9547
9534
  headers: a
9548
9535
  }
9549
9536
  })).data) == null ? void 0 : s.designCreateMany;
9550
- }, ct = (l, e, t) => {
9537
+ }, ct = (g, e, t) => {
9551
9538
  const A = (n) => {
9552
9539
  const i = {};
9553
9540
  if (n.type === "Frame") {
9554
- const s = l[n.stepName], o = n.data;
9541
+ const s = g[n.stepName], o = n.data;
9555
9542
  if (!s || !s.image || o.hideImageInCart && t)
9556
9543
  return i;
9557
9544
  i[`${n.stepTitle} image`] = s.image;
9558
9545
  }
9559
9546
  if (n.type === "Illustration") {
9560
- const s = l[n.stepName], o = n.data;
9547
+ const s = g[n.stepName], o = n.data;
9561
9548
  if (!s || o.hideColorsInCart && t || !s.colors)
9562
9549
  return i;
9563
9550
  if (s.colors.length > 0) {
@@ -9566,13 +9553,13 @@ const Jn = async (l) => {
9566
9553
  }
9567
9554
  }
9568
9555
  if (n.type === "Module") {
9569
- const s = l[n.stepName], o = n.data;
9556
+ const s = g[n.stepName], o = n.data;
9570
9557
  if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && t)
9571
9558
  return i;
9572
9559
  i[`${n.stepTitle} text`] = s.text;
9573
9560
  }
9574
9561
  if (n.type === "Text") {
9575
- const s = l[n.stepName];
9562
+ const s = g[n.stepName];
9576
9563
  if (!s)
9577
9564
  return i;
9578
9565
  const o = n.data;
@@ -9583,14 +9570,14 @@ const Jn = async (l) => {
9583
9570
  return e.steps.forEach((n) => {
9584
9571
  Object.assign(a, A(n));
9585
9572
  }), a;
9586
- }, On = (l, e, t, A) => {
9573
+ }, On = (g, e, t, A) => {
9587
9574
  const a = {};
9588
9575
  let n = {};
9589
9576
  t ? n = ct(t, e, !1) : A && (n = A);
9590
9577
  const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
9591
9578
  for (const o of s) {
9592
- if (Object.keys(l).includes(o)) {
9593
- const r = l[o], c = e.steps.find((B) => B.stepTitle === o);
9579
+ if (Object.keys(g).includes(o)) {
9580
+ const r = g[o], c = e.steps.find((B) => B.stepTitle === o);
9594
9581
  a[`${c == null ? void 0 : c.stepTitle} selection`] = {
9595
9582
  value: r[0].name,
9596
9583
  priceModifier: r[0].priceModifier
@@ -9603,39 +9590,39 @@ const Jn = async (l) => {
9603
9590
  });
9604
9591
  }
9605
9592
  return a;
9606
- }, SA = (l, e, t, A, a, n, i, s) => {
9593
+ }, SA = (g, e, t, A, a, n, i, s) => {
9607
9594
  var C, w;
9608
- 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 = {
9609
- additionalExternalProductId: (C = l.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
9610
- additionalExternalVariantId: (w = l.integrationProduct) == null ? void 0 : w.additionalExternalVariantId,
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,
9611
9598
  baseCost: o,
9612
- designExternalVariants: l.designExternalVariants,
9613
- designProductId: l.externalDesignProductId,
9614
- designProductVariantId: l.externalDesignProductVariantId,
9599
+ designExternalVariants: g.designExternalVariants,
9600
+ designProductId: g.externalDesignProductId,
9601
+ designProductVariantId: g.externalDesignProductVariantId,
9615
9602
  event: "onComplete",
9616
9603
  exportedData: c,
9617
- externalCartProductId: l.externalCartProductId,
9618
- externalCartProductVariantId: l.externalCartProductVariantId,
9604
+ externalCartProductId: g.externalCartProductId,
9605
+ externalCartProductVariantId: g.externalCartProductVariantId,
9619
9606
  lineItemImageUrl: i || "",
9620
9607
  optionsCost: r,
9621
9608
  processExecutionId: s,
9622
- quantity: l.quantity,
9623
- transactionId: l.id,
9624
- transactionOwnerId: g,
9609
+ quantity: g.quantity,
9610
+ transactionId: g.id,
9611
+ transactionOwnerId: l,
9625
9612
  weight: e.weight,
9626
- workflowViewerLink: l.workflowViewerLink || "",
9627
- workflowViewerReadOnlyLink: l.workflowViewerReadOnlyLink || ""
9613
+ workflowViewerLink: g.workflowViewerLink || "",
9614
+ workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
9628
9615
  };
9629
9616
  return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
9630
- }, YA = async (l, e, t, A, a, n, i, s, o, r) => {
9617
+ }, YA = async (g, e, t, A, a, n, i, s, o, r) => {
9631
9618
  var F;
9632
9619
  await (async () => {
9633
9620
  var R;
9634
9621
  if (r !== void 0)
9635
9622
  return r;
9636
- await l.outstandingRequestsPromise();
9623
+ await g.outstandingRequestsPromise();
9637
9624
  const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), S = await x.getShadowGraphqlClient().query({
9638
- query: lA,
9625
+ query: gA,
9639
9626
  variables: { ids: [a.id] },
9640
9627
  fetchPolicy: "no-cache",
9641
9628
  errorPolicy: "all",
@@ -9646,8 +9633,8 @@ const Jn = async (l) => {
9646
9633
  return S.errors ? (S.errors.forEach((W) => {
9647
9634
  S.errors && console.log("Server Error:", W.message);
9648
9635
  }), null) : T ?? null;
9649
- })() || (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"));
9650
- 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) => {
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) => {
9651
9638
  const Y = {};
9652
9639
  let N = 0;
9653
9640
  if (Object.keys(n).length > 0)
@@ -9721,11 +9708,11 @@ const Jn = async (l) => {
9721
9708
  cartSelectionsWithPrices: E,
9722
9709
  cartMetadata: w
9723
9710
  };
9724
- }, Ln = async (l, e, t, A, a, n, i, s, o, r, c) => {
9711
+ }, Ln = async (g, e, t, A, a, n, i, s, o, r, c) => {
9725
9712
  var u, E;
9726
9713
  o("workflow.steps.finish.finalize.buildingLayouts");
9727
- const { designDetails: B, cartSelectionsWithPrices: g, cartMetadata: d } = await YA(
9728
- l,
9714
+ const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await YA(
9715
+ g,
9729
9716
  e,
9730
9717
  t,
9731
9718
  A,
@@ -9745,23 +9732,23 @@ const Jn = async (l) => {
9745
9732
  h,
9746
9733
  a,
9747
9734
  e,
9748
- g,
9735
+ l,
9749
9736
  C == null ? void 0 : C.sku,
9750
9737
  d,
9751
9738
  w,
9752
9739
  (E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
9753
9740
  );
9754
- }, zn = async (l, e, t) => {
9741
+ }, zn = async (g, e, t) => {
9755
9742
  e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
9756
- l.map(async (s) => {
9743
+ g.map(async (s) => {
9757
9744
  await s.workflowManager.outstandingRequestsPromise();
9758
9745
  })
9759
9746
  );
9760
9747
  const a = await (async () => {
9761
9748
  var r;
9762
9749
  const o = await x.getShadowGraphqlClient().query({
9763
- query: lA,
9764
- variables: { ids: l.map((c) => c.transaction.id) },
9750
+ query: gA,
9751
+ variables: { ids: g.map((c) => c.transaction.id) },
9765
9752
  fetchPolicy: "no-cache",
9766
9753
  errorPolicy: "all"
9767
9754
  });
@@ -9769,7 +9756,7 @@ const Jn = async (l) => {
9769
9756
  o.errors && console.log("Server Error:", c.message);
9770
9757
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((c) => c.workflowState ?? null) : null;
9771
9758
  })(), n = await Promise.all(
9772
- l.map(async (s, o) => await YA(
9759
+ g.map(async (s, o) => await YA(
9773
9760
  s.workflowManager,
9774
9761
  s.workflow,
9775
9762
  s.layouts,
@@ -9787,8 +9774,8 @@ const Jn = async (l) => {
9787
9774
  if (!i)
9788
9775
  throw new Error("Failed to create designs");
9789
9776
  return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
9790
- var g;
9791
- const r = l[o], c = n[o], B = s.transaction;
9777
+ var l;
9778
+ const r = g[o], c = n[o], B = s.transaction;
9792
9779
  return SA(
9793
9780
  B,
9794
9781
  r.product,
@@ -9798,7 +9785,7 @@ const Jn = async (l) => {
9798
9785
  c.cartMetadata,
9799
9786
  //lineItemImageLink,
9800
9787
  void 0,
9801
- (g = s.processExecution) == null ? void 0 : g.id
9788
+ (l = s.processExecution) == null ? void 0 : l.id
9802
9789
  );
9803
9790
  });
9804
9791
  };
@@ -9884,7 +9871,7 @@ const $e = new Kn(), jn = f`
9884
9871
  }
9885
9872
  }
9886
9873
  `;
9887
- var Vn = /* @__PURE__ */ ((l) => (l.QuantityChanged = "QuantityChanged", l.PriceBreakChanged = "PriceBreakChanged", l))(Vn || {});
9874
+ var Vn = /* @__PURE__ */ ((g) => (g.QuantityChanged = "QuantityChanged", g.PriceBreakChanged = "PriceBreakChanged", g))(Vn || {});
9888
9875
  class Me {
9889
9876
  constructor(e, t) {
9890
9877
  var a;
@@ -9987,10 +9974,10 @@ class Me {
9987
9974
  y: 0,
9988
9975
  width: c.layoutState.layout.width,
9989
9976
  height: c.layoutState.layout.height
9990
- }, g = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
9977
+ }, l = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
9991
9978
  if (!d)
9992
9979
  throw new je("Failed to obtain 2D context for preview image creation");
9993
- const C = zt(g.layoutState.layout, g.layoutState.elements, {
9980
+ const C = zt(l.layoutState.layout, l.layoutState.elements, {
9994
9981
  renderingConfiguration: {
9995
9982
  purpose: Kt.Print,
9996
9983
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
@@ -10002,7 +9989,7 @@ class Me {
10002
9989
  createCanvas: He,
10003
9990
  createImage: Vt,
10004
9991
  DOMParser: Wt(),
10005
- fetch: lt
9992
+ fetch: gt
10006
9993
  })).render();
10007
9994
  const u = await this.getCanvasObjectURLAsync(i);
10008
9995
  return i.toDataURL(u);
@@ -10098,17 +10085,17 @@ class Me {
10098
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);
10099
10086
  i.forEach((r) => {
10100
10087
  const c = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
10101
- B !== void 0 && (B.forEach((g) => c.add(JSON.stringify(g))), s.forEach((g) => {
10102
- const d = g.getRaw().globalPropertyAspectConfigurations;
10088
+ B !== void 0 && (B.forEach((l) => c.add(JSON.stringify(l))), s.forEach((l) => {
10089
+ const d = l.getRaw().globalPropertyAspectConfigurations;
10103
10090
  d !== void 0 && d.forEach((C) => {
10104
10091
  const w = o(C), h = c.has(JSON.stringify(C));
10105
10092
  if (h && (w == null ? void 0 : w.getType()) === "Option") {
10106
- const u = g.getCurrentVariant();
10093
+ const u = l.getCurrentVariant();
10107
10094
  if (!u)
10108
10095
  return;
10109
10096
  r.selectVariant(u), c.delete(JSON.stringify(C));
10110
10097
  } else if (h && (w == null ? void 0 : w.getType()) === "Text") {
10111
- const u = g.getText();
10098
+ const u = l.getText();
10112
10099
  r.setText(u), c.delete(JSON.stringify(C));
10113
10100
  }
10114
10101
  });
@@ -10188,7 +10175,7 @@ class Me {
10188
10175
  }
10189
10176
  async copy() {
10190
10177
  var s;
10191
- const e = le(this.getCommandContext().getState());
10178
+ const e = ge(this.getCommandContext().getState());
10192
10179
  if (!e)
10193
10180
  throw new b("Internal state is undefined! Cannot copy experience!");
10194
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;
@@ -10288,11 +10275,11 @@ const Wn = [
10288
10275
  "textPath",
10289
10276
  "tref",
10290
10277
  "tspan"
10291
- ], Xn = async (l, e, t) => {
10278
+ ], Xn = async (g, e, t) => {
10292
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);
10293
10280
  s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
10294
10281
  const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await tA(o, { type: "svg" }))}`, B = (d) => {
10295
- const C = l.find((h) => h.panelId === d.panelId);
10282
+ const C = g.find((h) => h.panelId === d.panelId);
10296
10283
  if (!C)
10297
10284
  throw new z(d);
10298
10285
  const w = J();
@@ -10309,13 +10296,13 @@ const Wn = [
10309
10296
  },
10310
10297
  C
10311
10298
  );
10312
- }, g = t.data.regions;
10299
+ }, l = t.data.regions;
10313
10300
  try {
10314
- return g.map(B);
10301
+ return l.map(B);
10315
10302
  } catch (d) {
10316
10303
  return console.error(d), [];
10317
10304
  }
10318
- }, qn = async (l, e, t, A) => {
10305
+ }, qn = async (g, e, t, A) => {
10319
10306
  const a = t.data, n = a.assetUrl, i = await nt(n);
10320
10307
  try {
10321
10308
  const s = _A(a, A.option);
@@ -10328,7 +10315,7 @@ const Wn = [
10328
10315
  height: 1
10329
10316
  },
10330
10317
  (w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
10331
- ), B = await gt(c), g = J(), d = l.find((h) => h.panelId === r.panelId);
10318
+ ), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
10332
10319
  if (!d)
10333
10320
  throw new z(r);
10334
10321
  const C = Bt(i, B, {
@@ -10339,14 +10326,11 @@ const Wn = [
10339
10326
  return [
10340
10327
  new L(
10341
10328
  {
10342
- id: g,
10329
+ id: l,
10343
10330
  path: B.path,
10344
10331
  dataWidth: B.width,
10345
10332
  dataHeight: B.height,
10346
10333
  type: G.Frame,
10347
- focalBlur: A.data.focalBlur,
10348
- focalBlurStrength: A.data.focalBlurStrength,
10349
- focalBlurRadius: A.data.focalBlurRadius,
10350
10334
  forceImageCover: A.data.forceImageCover,
10351
10335
  x: r.left,
10352
10336
  y: r.top,
@@ -10361,14 +10345,14 @@ const Wn = [
10361
10345
  },
10362
10346
  d
10363
10347
  ),
10364
- new Lt(g, i, C)
10348
+ new Lt(l, i, C)
10365
10349
  ];
10366
10350
  };
10367
10351
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
10368
10352
  } catch (s) {
10369
10353
  return console.error(s), [];
10370
10354
  }
10371
- }, Zn = async (l, e, t, A) => {
10355
+ }, Zn = async (g, e, t, A) => {
10372
10356
  var p, m;
10373
10357
  const a = t.data, n = A.option;
10374
10358
  if (!n)
@@ -10410,7 +10394,7 @@ const Wn = [
10410
10394
  }
10411
10395
  }
10412
10396
  const D = (I) => {
10413
- const F = l.find((Y) => Y.panelId === I.panelId);
10397
+ const F = g.find((Y) => Y.panelId === I.panelId);
10414
10398
  if (!F)
10415
10399
  throw new z(I);
10416
10400
  const y = J();
@@ -10437,9 +10421,9 @@ const Wn = [
10437
10421
  } catch (I) {
10438
10422
  return console.error(I), [];
10439
10423
  }
10440
- }, $n = async (l, e, t) => {
10424
+ }, $n = async (g, e, t) => {
10441
10425
  const A = await FA(t.data.module), a = e.data, n = (s, o) => {
10442
- const r = l.find((B) => B.panelId === o.panelId);
10426
+ const r = g.find((B) => B.panelId === o.panelId);
10443
10427
  if (!r)
10444
10428
  throw new z(o);
10445
10429
  const c = J();
@@ -10467,12 +10451,12 @@ const Wn = [
10467
10451
  } catch (s) {
10468
10452
  return console.error(s), [];
10469
10453
  }
10470
- }, _n = async (l, e, t, A) => {
10454
+ }, _n = async (g, e, t, A) => {
10471
10455
  var c, B;
10472
10456
  const a = t.data, n = A.option;
10473
10457
  if (!n)
10474
10458
  return console.error(`No option for step ${A.stepName}.`), [];
10475
- const i = ((c = n.variants) == null ? void 0 : c.find((g) => g.id === a.pictureVariantId)) || ze(n);
10459
+ const i = ((c = n.variants) == null ? void 0 : c.find((l) => l.id === a.pictureVariantId)) || ze(n);
10476
10460
  if (!i)
10477
10461
  return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
10478
10462
  if (!i.asset)
@@ -10481,24 +10465,24 @@ const Wn = [
10481
10465
  const s = (B = i.asset) == null ? void 0 : B.fileLink;
10482
10466
  if (!s)
10483
10467
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
10484
- const o = (g) => {
10485
- const d = l.find((w) => w.panelId === g.panelId);
10468
+ const o = (l) => {
10469
+ const d = g.find((w) => w.panelId === l.panelId);
10486
10470
  if (!d)
10487
- throw new z(g);
10471
+ throw new z(l);
10488
10472
  const C = J();
10489
10473
  return new L(
10490
10474
  {
10491
10475
  id: C,
10492
10476
  src: s,
10493
10477
  type: G.Image,
10494
- y: g.top,
10495
- x: g.left,
10496
- rotation: g.rotation,
10497
- width: g.width,
10498
- height: g.height,
10499
- layer: g.layer,
10500
- layerIndex: g.layerIndex,
10501
- immutable: g.immutable,
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,
10502
10486
  preserveAspectRatio: "none"
10503
10487
  },
10504
10488
  d
@@ -10506,10 +10490,10 @@ const Wn = [
10506
10490
  }, r = A.data.regions;
10507
10491
  try {
10508
10492
  return r.map(o);
10509
- } catch (g) {
10510
- return console.error(g), [];
10493
+ } catch (l) {
10494
+ return console.error(l), [];
10511
10495
  }
10512
- }, ei = async (l, e, t, A) => {
10496
+ }, ei = async (g, e, t, A) => {
10513
10497
  var r;
10514
10498
  const a = t.data, n = A.option;
10515
10499
  if (!n)
@@ -10519,10 +10503,10 @@ const Wn = [
10519
10503
  return console.error(`No variant with ID: ${a.colorVariantId}`), [];
10520
10504
  e[A.stepName] = { selectedVariants: [i] };
10521
10505
  const s = (c) => {
10522
- const B = l.find((h) => h.panelId === c.panelId);
10506
+ const B = g.find((h) => h.panelId === c.panelId);
10523
10507
  if (!B)
10524
10508
  throw new z(c);
10525
- const g = `
10509
+ const l = `
10526
10510
  <svg
10527
10511
  xmlns="http://www.w3.org/2000/svg"
10528
10512
  xmlnsXlink="http://www.w3.org/1999/xlink"
@@ -10547,7 +10531,7 @@ const Wn = [
10547
10531
  {
10548
10532
  colors: C,
10549
10533
  id: w,
10550
- svg: g,
10534
+ svg: l,
10551
10535
  type: G.Illustration,
10552
10536
  y: c.top,
10553
10537
  x: c.left,
@@ -10566,7 +10550,7 @@ const Wn = [
10566
10550
  } catch (c) {
10567
10551
  return console.error(c), [];
10568
10552
  }
10569
- }, ti = async (l, e, t) => {
10553
+ }, ti = async (g, e, t) => {
10570
10554
  const A = [], n = (() => {
10571
10555
  var r, c;
10572
10556
  return e.type === M.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = e.data.asset) == null ? void 0 : c.fileLink) || "";
@@ -10574,7 +10558,7 @@ const Wn = [
10574
10558
  if (s === "image")
10575
10559
  try {
10576
10560
  o.forEach((r) => {
10577
- const c = l.find((g) => g.panelId === r.panelId);
10561
+ const c = g.find((l) => l.panelId === r.panelId);
10578
10562
  if (!c)
10579
10563
  throw new z(r);
10580
10564
  const B = {
@@ -10601,14 +10585,14 @@ const Wn = [
10601
10585
  }
10602
10586
  else {
10603
10587
  const r = await _(n, !0), c = (B) => {
10604
- const g = /<svg.*?<\/svg>/s, d = B.match(g) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Xt().parseFromString(C, "image/svg+xml").firstElementChild;
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;
10605
10589
  if (!u)
10606
10590
  throw new he("Failed to read SVG.");
10607
10591
  return qt(u), Zt().serializeToString(u);
10608
10592
  };
10609
10593
  o.forEach((B) => {
10610
- const g = l.find((C) => C.panelId === B.panelId);
10611
- if (!g)
10594
+ const l = g.find((C) => C.panelId === B.panelId);
10595
+ if (!l)
10612
10596
  throw new z(B);
10613
10597
  const d = {
10614
10598
  id: J(),
@@ -10629,11 +10613,11 @@ const Wn = [
10629
10613
  productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
10630
10614
  excludeFromExport: e.data.excludeFromPrint
10631
10615
  };
10632
- A.push(new L(d, g));
10616
+ A.push(new L(d, l));
10633
10617
  });
10634
10618
  }
10635
10619
  return A;
10636
- }, Ai = async (l, e, t, A) => {
10620
+ }, Ai = async (g, e, t, A) => {
10637
10621
  const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
10638
10622
  var D;
10639
10623
  const h = A.option;
@@ -10655,7 +10639,7 @@ const Wn = [
10655
10639
  assetUrl: h,
10656
10640
  name: u.names.fullName.en
10657
10641
  };
10658
- })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", g = it(B, {
10642
+ })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = it(B, {
10659
10643
  vertical: A.data.vertical,
10660
10644
  uppercase: A.data.uppercase
10661
10645
  }), d = async (h) => {
@@ -10666,7 +10650,7 @@ const Wn = [
10666
10650
  return E == null ? void 0 : E.color;
10667
10651
  }, C = n.color || await d(A.data), w = A.data.regions;
10668
10652
  for (const h of w) {
10669
- const u = l.find((D) => D.panelId === h.panelId);
10653
+ const u = g.find((D) => D.panelId === h.panelId);
10670
10654
  if (!u)
10671
10655
  continue;
10672
10656
  const E = {
@@ -10682,7 +10666,7 @@ const Wn = [
10682
10666
  layerIndex: h.layerIndex,
10683
10667
  paths: A.data.paths,
10684
10668
  rotation: h.rotation,
10685
- text: g,
10669
+ text: l,
10686
10670
  type: G.Textbox,
10687
10671
  vertical: A.data.vertical,
10688
10672
  verticalAlign: A.data.verticalAlign || "middle",
@@ -10696,7 +10680,7 @@ const Wn = [
10696
10680
  c,
10697
10681
  h,
10698
10682
  [
10699
- it(g, {
10683
+ it(l, {
10700
10684
  vertical: A.data.vertical,
10701
10685
  uppercase: A.data.uppercase
10702
10686
  })
@@ -10722,7 +10706,7 @@ const Wn = [
10722
10706
  a.push(new L(E, u));
10723
10707
  }
10724
10708
  return a;
10725
- }, ai = (l, e) => l.conditions ? l.conditions.every((t) => {
10709
+ }, ai = (g, e) => g.conditions ? g.conditions.every((t) => {
10726
10710
  const A = e[t.targetStepName];
10727
10711
  if (A && A.selectedVariants) {
10728
10712
  const a = A.selectedVariants;
@@ -10731,9 +10715,9 @@ const Wn = [
10731
10715
  );
10732
10716
  }
10733
10717
  return !1;
10734
- }) : !0, ni = async (l, e, t, A) => {
10718
+ }) : !0, ni = async (g, e, t, A) => {
10735
10719
  const a = [], n = {};
10736
- for (const i of l) {
10720
+ for (const i of g) {
10737
10721
  const s = e.steps.find((o) => o.stepName === i.name);
10738
10722
  if (s)
10739
10723
  switch (s.type) {
@@ -10805,12 +10789,12 @@ class Se {
10805
10789
  return this.layouts;
10806
10790
  }
10807
10791
  }
10808
- const ii = () => new Promise((l, e) => {
10792
+ const ii = () => new Promise((g, e) => {
10809
10793
  try {
10810
10794
  const A = He().getContext("webgl2");
10811
- l(!!A);
10795
+ g(!!A);
10812
10796
  } catch {
10813
- l(!1);
10797
+ g(!1);
10814
10798
  }
10815
10799
  }), si = ii();
10816
10800
  class oi {
@@ -10861,7 +10845,7 @@ class oi {
10861
10845
  * Actions to perform when a static render event is fired for this canvas.
10862
10846
  */
10863
10847
  async render(e) {
10864
- const t = le(e);
10848
+ const t = ge(e);
10865
10849
  this.lastRequestedRenderArguments = t;
10866
10850
  const A = this.getStaticContext();
10867
10851
  if (!A) {
@@ -10934,7 +10918,7 @@ class ri extends BA {
10934
10918
  o = n.width, r = n.height;
10935
10919
  const c = zt(e.layoutState.layout, t, {
10936
10920
  renderingConfiguration: { purpose: Kt.ThreeD }
10937
- }), B = jt(c), g = await $t.from(this.ctx, B, {
10921
+ }), B = jt(c), l = await $t.from(this.ctx, B, {
10938
10922
  anonymousCrossOrigin: !0,
10939
10923
  ignoreDimensions: !this.nonPOTSupport,
10940
10924
  ignoreAnimation: !0,
@@ -10944,14 +10928,14 @@ class ri extends BA {
10944
10928
  createCanvas: He,
10945
10929
  createImage: Vt,
10946
10930
  DOMParser: Wt(),
10947
- fetch: lt
10931
+ fetch: gt
10948
10932
  });
10949
- g.resize(o, r), await g.render(), this.onRender();
10933
+ l.resize(o, r), await l.render(), this.onRender();
10950
10934
  }
10951
10935
  }
10952
- const Fs = (l, e) => {
10936
+ const Fs = (g, e) => {
10953
10937
  const t = [];
10954
- return l.forEach((A) => {
10938
+ return g.forEach((A) => {
10955
10939
  const a = e.steps.find((n) => n.stepName === A.stepName);
10956
10940
  (a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
10957
10941
  name: a.stepName,
@@ -10960,13 +10944,13 @@ const Fs = (l, e) => {
10960
10944
  }
10961
10945
  });
10962
10946
  }), t;
10963
- }, ys = async (l, e, t, A) => {
10947
+ }, ys = async (g, e, t, A) => {
10964
10948
  let a = {
10965
10949
  serializableWorkflow: { steps: [] },
10966
10950
  layouts: {}
10967
10951
  };
10968
10952
  a = new k(t.map((o) => new Aa(o))).apply(a);
10969
- const i = await ni(l, e, t, A);
10953
+ const i = await ni(g, e, t, A);
10970
10954
  return new k(i).apply(a);
10971
10955
  }, ci = f`
10972
10956
  ${Be}
@@ -11022,8 +11006,8 @@ const Fs = (l, e) => {
11022
11006
  ...ProductFields
11023
11007
  }
11024
11008
  }
11025
- `, We = (l) => f`
11026
- ${l ? PA : ""}
11009
+ `, We = (g) => f`
11010
+ ${g ? PA : ""}
11027
11011
  fragment ProductCollectionFields on ProductCollection {
11028
11012
  id
11029
11013
  name
@@ -11048,7 +11032,7 @@ const Fs = (l, e) => {
11048
11032
  }
11049
11033
  }
11050
11034
  }
11051
- ${l ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
11035
+ ${g ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
11052
11036
  transformCollection {
11053
11037
  id
11054
11038
  name
@@ -11073,8 +11057,8 @@ const Fs = (l, e) => {
11073
11057
  }
11074
11058
  }
11075
11059
  }
11076
- `, li = (l) => f`
11077
- ${We(l)}
11060
+ `, gi = (g) => f`
11061
+ ${We(g)}
11078
11062
  query GetBundle($id: String!) {
11079
11063
  bundles(ids: [$id]) {
11080
11064
  id
@@ -11095,7 +11079,7 @@ const Fs = (l, e) => {
11095
11079
  }
11096
11080
  }
11097
11081
  }
11098
- `, gi = f`
11082
+ `, li = f`
11099
11083
  query GetBundleStakeholders($id: String!) {
11100
11084
  bundles(ids: [$id]) {
11101
11085
  id
@@ -11146,8 +11130,8 @@ const Fs = (l, e) => {
11146
11130
  }
11147
11131
  }
11148
11132
  }
11149
- `, Ci = (l) => f`
11150
- ${We(l)}
11133
+ `, Ci = (g) => f`
11134
+ ${We(g)}
11151
11135
  mutation CreateBundle(
11152
11136
  $collectionId: String
11153
11137
  $initialMetadata: [MetadataInput!]
@@ -11175,8 +11159,8 @@ const Fs = (l, e) => {
11175
11159
  }
11176
11160
  }
11177
11161
  }
11178
- `, wi = (l) => f`
11179
- ${We(l)}
11162
+ `, wi = (g) => f`
11163
+ ${We(g)}
11180
11164
  mutation DuplicateBundle(
11181
11165
  $id: String!
11182
11166
  $template: Boolean
@@ -11306,8 +11290,8 @@ const Fs = (l, e) => {
11306
11290
  id
11307
11291
  }
11308
11292
  }
11309
- `, Fi = (l) => f`
11310
- ${We(l)}
11293
+ `, Fi = (g) => f`
11294
+ ${We(g)}
11311
11295
  mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
11312
11296
  bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
11313
11297
  id
@@ -11316,7 +11300,7 @@ const Fs = (l, e) => {
11316
11300
  }
11317
11301
  }
11318
11302
  }
11319
- `, yi = (l) => f`
11303
+ `, yi = (g) => f`
11320
11304
  query CustomerBundlesFeed($id: String!, $limit: Int!, $offset: Int!, $template: Boolean, $templateStatus: BundleTemplateStatus) {
11321
11305
  customerBundlesFeed(id: $id, limit: $limit, offset: $offset, template: $template, templateStatus: $templateStatus) {
11322
11306
  items {
@@ -11334,7 +11318,7 @@ const Fs = (l, e) => {
11334
11318
  fileLink
11335
11319
  }
11336
11320
  }
11337
- ${l ? "metadata { key, value }" : ""}
11321
+ ${g ? "metadata { key, value }" : ""}
11338
11322
  }
11339
11323
  total
11340
11324
  }
@@ -11818,7 +11802,7 @@ class vi {
11818
11802
  }
11819
11803
  async setGlobalPropertyState(e) {
11820
11804
  this.globalPropertyState || await this.initPromise;
11821
- const t = le(this.globalPropertyState);
11805
+ const t = ge(this.globalPropertyState);
11822
11806
  this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
11823
11807
  }
11824
11808
  getAspect(e) {
@@ -11842,7 +11826,7 @@ class vi {
11842
11826
  const a = this.configuration.aspects.find((s) => s.name === e);
11843
11827
  if (!a)
11844
11828
  throw new Error(`Failed to find configuration aspect with name: ${e}`);
11845
- const n = le(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
11829
+ const n = ge(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
11846
11830
  i ? (i.value = t, i.type = a.type, A !== void 0 && (i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
11847
11831
  name: e,
11848
11832
  value: t,
@@ -11858,7 +11842,7 @@ class vi {
11858
11842
  const A = this.configuration.aspects.find((i) => i.name === e);
11859
11843
  if (!A)
11860
11844
  throw new Error(`Failed to find configuration aspect with name: ${e}`);
11861
- const a = le(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
11845
+ const a = ge(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
11862
11846
  n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
11863
11847
  name: e,
11864
11848
  value: "",
@@ -11875,18 +11859,21 @@ class vi {
11875
11859
  variables: {
11876
11860
  id: this.globalPropertyState.id,
11877
11861
  aspects: this.globalPropertyState.aspects.map((a) => {
11878
- const n = a.type && a.storage ? {} : void 0;
11862
+ let n = a.type && a.storage ? {} : void 0;
11879
11863
  if (n)
11880
11864
  switch (a.type) {
11881
11865
  case $.FileUpload: {
11882
11866
  n.fileUpload = a.storage;
11883
11867
  break;
11884
11868
  }
11885
- case $.Option:
11886
- case $.ColorOption: {
11869
+ case $.Option: {
11887
11870
  n.option = a.storage;
11888
11871
  break;
11889
11872
  }
11873
+ case $.ColorOption: {
11874
+ n = a.storage;
11875
+ break;
11876
+ }
11890
11877
  }
11891
11878
  return {
11892
11879
  name: a.name,
@@ -12583,7 +12570,7 @@ class et {
12583
12570
  }
12584
12571
  async getAllStakeholders() {
12585
12572
  const e = await x.getShadowGraphqlClient().query({
12586
- query: gi,
12573
+ query: li,
12587
12574
  errorPolicy: "all",
12588
12575
  fetchPolicy: "no-cache",
12589
12576
  variables: {
@@ -12775,14 +12762,14 @@ class bi {
12775
12762
  * @returns
12776
12763
  */
12777
12764
  async execute(e, t, A) {
12778
- var B, g, d;
12779
- const n = (g = (B = (await x.getShadowGraphqlClient().mutate({
12765
+ var B, l, d;
12766
+ const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
12780
12767
  mutation: Gi,
12781
12768
  variables: {
12782
12769
  processFlowId: e,
12783
12770
  inputs: [...t.map((C) => C.getValueForTransmission())]
12784
12771
  }
12785
- })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : g.id;
12772
+ })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
12786
12773
  if (!n)
12787
12774
  throw new Error("Failed to create process execution.");
12788
12775
  function i(C) {
@@ -12918,7 +12905,7 @@ class Ft {
12918
12905
  return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
12919
12906
  }
12920
12907
  }
12921
- 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 || {});
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 || {});
12922
12909
  class Ms extends Ft {
12923
12910
  constructor(e) {
12924
12911
  super(`"${e}"`);
@@ -13198,8 +13185,8 @@ const Oi = f`
13198
13185
  loop
13199
13186
  name
13200
13187
  }
13201
- `, $i = (l) => f`
13202
- ${De(l)}
13188
+ `, $i = (g) => f`
13189
+ ${De(g)}
13203
13190
  ${Et}
13204
13191
  ${sA}
13205
13192
  ${Wi}
@@ -13356,9 +13343,6 @@ const Oi = f`
13356
13343
  disablePlaceholder
13357
13344
  displayImageOnFinishStep
13358
13345
  displaySelectionOnFinishStep
13359
- focalBlur
13360
- focalBlurRadius
13361
- focalBlurStrength
13362
13346
  forceImageCover
13363
13347
  hideImageInCart
13364
13348
  hideSelectionInCart
@@ -13645,33 +13629,33 @@ const Oi = f`
13645
13629
  ...TagFields
13646
13630
  }
13647
13631
  }
13648
- `, re = async (l) => {
13632
+ `, re = async (g) => {
13649
13633
  var e;
13650
- for (const t in l.layouts) {
13651
- const A = l.layouts[t].elements.filter(
13634
+ for (const t in g.layouts) {
13635
+ const A = g.layouts[t].elements.filter(
13652
13636
  (n) => n.type === G.Illustration
13653
13637
  );
13654
13638
  for (let n = 0; n < A.length; ++n) {
13655
13639
  const i = A[n];
13656
13640
  i.src && i.svg && (i.cachedObjectURL = await ve(i.svg));
13657
13641
  }
13658
- const a = l.layouts[t].elements.filter((n) => n.type === G.Textbox);
13642
+ const a = g.layouts[t].elements.filter((n) => n.type === G.Textbox);
13659
13643
  for (let n = 0; n < a.length; ++n) {
13660
13644
  const i = a[n];
13661
13645
  (e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
13662
13646
  }
13663
13647
  }
13664
- }, as = async (l, e) => {
13648
+ }, as = async (g, e) => {
13665
13649
  var a;
13666
13650
  const t = await x.getShadowGraphqlClient().query({
13667
13651
  query: $i(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
13668
13652
  errorPolicy: "all",
13669
13653
  fetchPolicy: "no-cache",
13670
13654
  variables: {
13671
- ids: l
13655
+ ids: g
13672
13656
  }
13673
13657
  }), A = t.data.workflows;
13674
- if (A === void 0 || A.length !== l.length)
13658
+ if (A === void 0 || A.length !== g.length)
13675
13659
  throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
13676
13660
  return A.forEach((n) => {
13677
13661
  n.steps.forEach((i) => {
@@ -13681,20 +13665,20 @@ const Oi = f`
13681
13665
  }), me.set({ id: i.option.id }, Promise.resolve(i.option)));
13682
13666
  }), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
13683
13667
  }), A;
13684
- }, ns = async (l, e) => {
13685
- const A = (await e).find((a) => a.id === l);
13668
+ }, ns = async (g, e) => {
13669
+ const A = (await e).find((a) => a.id === g);
13686
13670
  if (!A)
13687
- throw new Error(`Workflow not found: ${l}`);
13671
+ throw new Error(`Workflow not found: ${g}`);
13688
13672
  return A;
13689
- }, vA = async (l, e) => {
13690
- const t = l.map((s) => me.get({ id: s, options: e })), A = l.filter((s, o) => t[o] === void 0);
13673
+ }, vA = async (g, e) => {
13674
+ const t = g.map((s) => me.get({ id: s, options: e })), A = g.filter((s, o) => t[o] === void 0);
13691
13675
  if (A.length === 0)
13692
13676
  return Promise.all(t);
13693
13677
  const a = as(A, e), n = A.map(
13694
13678
  (s) => me.set({ id: s, options: e }, ns(s, a))
13695
13679
  ), i = t.filter((s) => s !== void 0);
13696
13680
  return await Promise.all(i.concat(n));
13697
- }, Pe = async (l, e) => (await vA([l], e))[0], is = (l) => l.sort((e, t) => e.index - t.index).map((e) => ({
13681
+ }, Pe = async (g, e) => (await vA([g], e))[0], is = (g) => g.sort((e, t) => e.index - t.index).map((e) => ({
13698
13682
  id: J(),
13699
13683
  panelId: e.name,
13700
13684
  name: e.name,
@@ -13707,8 +13691,8 @@ const Oi = f`
13707
13691
  previewRegion: e.previewRegion,
13708
13692
  useEditableArea: e.useEditableArea,
13709
13693
  editableArea: e.editableArea
13710
- })), tt = (l, e) => {
13711
- const t = l.workflowState, A = t ? JSON.parse(t) : void 0;
13694
+ })), tt = (g, e) => {
13695
+ const t = g.workflowState, A = t ? JSON.parse(t) : void 0;
13712
13696
  return A ? Object.values(A.layouts).map((a) => a.layout) : is(e.panels);
13713
13697
  };
13714
13698
  class ss {
@@ -13722,14 +13706,14 @@ class ss {
13722
13706
  } catch (A) {
13723
13707
  throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
13724
13708
  }
13725
- }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.13.2"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13709
+ }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.13.4"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13726
13710
  }
13727
13711
  /** @deprecated Use `configure` instead */
13728
13712
  configureUrls(e, t, A) {
13729
13713
  q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
13730
13714
  }
13731
13715
  configure(e) {
13732
- 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();
13716
+ 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();
13733
13717
  }
13734
13718
  /**
13735
13719
  * @returns The asset manager allows for common operations related to assets
@@ -13744,7 +13728,7 @@ class ss {
13744
13728
  return this.currencyCode;
13745
13729
  }
13746
13730
  getFlowService() {
13747
- if (!la())
13731
+ if (!ga())
13748
13732
  throw new Error("Application key required to use Flow Service.");
13749
13733
  return new bi();
13750
13734
  }
@@ -13785,8 +13769,8 @@ class ss {
13785
13769
  if (o && await this.authenticateCustomerId(o)) {
13786
13770
  const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
13787
13771
  (B) => {
13788
- var g;
13789
- return ((g = B.bundle) == null ? void 0 : g.id) === e;
13772
+ var l;
13773
+ return ((l = B.bundle) == null ? void 0 : l.id) === e;
13790
13774
  }
13791
13775
  );
13792
13776
  if (c)
@@ -13809,7 +13793,7 @@ class ss {
13809
13793
  * @throws An error if the transaction is not found.
13810
13794
  */
13811
13795
  async authenticateTransactionFromLocalStorage(e) {
13812
- var c, B, g, d, C, w;
13796
+ var c, B, l, d, C, w;
13813
13797
  const t = x.getShadowGraphqlClient(), A = await t.query({
13814
13798
  query: _i,
13815
13799
  errorPolicy: "all",
@@ -13832,7 +13816,7 @@ class ss {
13832
13816
  if (s != null && s.has(e)) {
13833
13817
  const h = s.get(e);
13834
13818
  if (h && await this.authenticateCustomerId(h)) {
13835
- const E = ((d = (g = this.customer) == null ? void 0 : g.bundleStakeholders) == null ? void 0 : d.find(
13819
+ const E = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
13836
13820
  (D) => {
13837
13821
  var Q, p;
13838
13822
  return (p = (Q = D.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
@@ -13997,7 +13981,7 @@ class ss {
13997
13981
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
13998
13982
  */
13999
13983
  async getNewBundle(e, t, A) {
14000
- var r, c, B, g, d;
13984
+ var r, c, B, l, d;
14001
13985
  const n = (B = (await x.getShadowGraphqlClient().mutate({
14002
13986
  mutation: Ci(((c = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : c.eagerFetchProducts) || !1),
14003
13987
  variables: {
@@ -14015,7 +13999,7 @@ class ss {
14015
13999
  const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
14016
14000
  s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
14017
14001
  const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
14018
- eagerFetchProducts: (d = (g = A == null ? void 0 : A.graphql) == null ? void 0 : g.productCollection) == null ? void 0 : d.eagerFetchProducts
14002
+ eagerFetchProducts: (d = (l = A == null ? void 0 : A.graphql) == null ? void 0 : l.productCollection) == null ? void 0 : d.eagerFetchProducts
14019
14003
  });
14020
14004
  return await o.getInitializationPromise(), o;
14021
14005
  }
@@ -14034,8 +14018,8 @@ class ss {
14034
14018
  bundleOwnerId: i,
14035
14019
  ...c,
14036
14020
  ...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
14037
- }, g = await x.getShadowGraphqlClient().query({
14038
- query: li(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
14021
+ }, l = await x.getShadowGraphqlClient().query({
14022
+ query: gi(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
14039
14023
  variables: {
14040
14024
  id: e
14041
14025
  },
@@ -14044,9 +14028,9 @@ class ss {
14044
14028
  headers: B
14045
14029
  }
14046
14030
  });
14047
- if (!((Q = g.data) != null && Q.bundles) || ((p = g.data) == null ? void 0 : p.bundles.length) === 0 || !((m = g.data) != null && m.bundles[0]))
14031
+ if (!((Q = l.data) != null && Q.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((m = l.data) != null && m.bundles[0]))
14048
14032
  throw new Error(`Unable to find bundle: ${e}`);
14049
- const d = (I = g.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
14033
+ const d = (I = l.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
14050
14034
  C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
14051
14035
  const w = new et(this, d, t, A, i, {
14052
14036
  additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
@@ -14068,7 +14052,7 @@ class ss {
14068
14052
  bundleOwnerId: n,
14069
14053
  ...r,
14070
14054
  ...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
14071
- }, g = (p = (await x.getShadowGraphqlClient().mutate({
14055
+ }, l = (p = (await x.getShadowGraphqlClient().mutate({
14072
14056
  mutation: wi(((Q = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : Q.eagerFetchProducts) || !1),
14073
14057
  variables: {
14074
14058
  id: e,
@@ -14082,13 +14066,13 @@ class ss {
14082
14066
  },
14083
14067
  fetchPolicy: "no-cache"
14084
14068
  })).data) == null ? void 0 : p.bundleDuplicate;
14085
- if (!(g != null && g.id))
14069
+ if (!(l != null && l.id))
14086
14070
  throw new Error("Unable to duplicate bundle");
14087
14071
  const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
14088
- d.set(g.id, g.partner.id), P.setMap("bundlePartnerIds", d);
14072
+ d.set(l.id, l.partner.id), P.setMap("bundlePartnerIds", d);
14089
14073
  const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
14090
- C.set(g.id, g.bundleOwnerId), P.setMap("bundleOwnerIds", C);
14091
- const w = new et(this, g, void 0, void 0, g.bundleOwnerId, {
14074
+ C.set(l.id, l.bundleOwnerId), P.setMap("bundleOwnerIds", C);
14075
+ const w = new et(this, l, void 0, void 0, l.bundleOwnerId, {
14092
14076
  eagerFetchProducts: (I = (m = a == null ? void 0 : a.graphql) == null ? void 0 : m.productCollection) == null ? void 0 : I.eagerFetchProducts
14093
14077
  });
14094
14078
  return await w.getInitializationPromise(), w;
@@ -14165,7 +14149,7 @@ class ss {
14165
14149
  * @returns A workflow experience configured as requested.
14166
14150
  */
14167
14151
  async getWorkflowExperience(e, t, A, a) {
14168
- var g, d, C, w, h;
14152
+ var l, d, C, w, h;
14169
14153
  if (!a)
14170
14154
  return await this.getWorkflowExperienceDeprecated(e, t, A);
14171
14155
  const n = async () => {
@@ -14223,7 +14207,7 @@ class ss {
14223
14207
  }
14224
14208
  throw new H("No workflow ID provided.");
14225
14209
  }, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
14226
- this.currencyCode = (g = i.product.partner) == null ? void 0 : g.currencyCode;
14210
+ this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
14227
14211
  const c = {
14228
14212
  product: i.product,
14229
14213
  transaction: i,
@@ -14338,7 +14322,7 @@ class ss {
14338
14322
  ), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
14339
14323
  ...r.map(a),
14340
14324
  ...c.map(n)
14341
- ])).flat(), g = [...new Set(B.map((p) => p.workflowId))], d = await vA(g, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
14325
+ ])).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) => {
14342
14326
  var W;
14343
14327
  const { transaction: m, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
14344
14328
  !w.get(m.id) && m.transactionOwnerId && w.set(m.id, m.transactionOwnerId);
@@ -14428,19 +14412,19 @@ class ss {
14428
14412
  throw new H("No transaction ID provided.");
14429
14413
  const A = x.getShadowGraphqlClient(), a = async () => {
14430
14414
  var d, C;
14431
- const g = (d = (await A.query({
14415
+ const l = (d = (await A.query({
14432
14416
  query: fe,
14433
14417
  variables: { ids: [e] },
14434
14418
  fetchPolicy: "no-cache",
14435
14419
  errorPolicy: "all"
14436
14420
  })).data) == null ? void 0 : d.transactions[0];
14437
- if (!g)
14421
+ if (!l)
14438
14422
  throw new H("Failed to read transaction.");
14439
- if (!g.product)
14423
+ if (!l.product)
14440
14424
  throw new H("Failed to load transaction, product not available.");
14441
- this.currencyCode = (C = g.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
14442
- product: g.product,
14443
- transaction: g,
14425
+ this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
14426
+ product: l.product,
14427
+ transaction: l,
14444
14428
  layouts: [],
14445
14429
  stateMutationFunc: async () => {
14446
14430
  throw new b("State mutation is forbidden in read only mode!");
@@ -14452,20 +14436,20 @@ class ss {
14452
14436
  return await a();
14453
14437
  const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
14454
14438
  if (i) {
14455
- const g = (s = (await A.query({
14439
+ const l = (s = (await A.query({
14456
14440
  query: fe,
14457
14441
  variables: {
14458
14442
  ids: [e]
14459
14443
  },
14460
14444
  errorPolicy: "all"
14461
14445
  })).data) == null ? void 0 : s.transactions[0];
14462
- if (!g)
14446
+ if (!l)
14463
14447
  throw new H("Failed to read transaction.");
14464
- if (!g.product)
14448
+ if (!l.product)
14465
14449
  throw new H("Failed to load transaction, product not available.");
14466
- this.currencyCode = (o = g.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
14467
- product: g.product,
14468
- transaction: g,
14450
+ this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
14451
+ product: l.product,
14452
+ transaction: l,
14469
14453
  layouts: [],
14470
14454
  stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
14471
14455
  readOnly: t
@@ -14473,22 +14457,22 @@ class ss {
14473
14457
  return;
14474
14458
  }
14475
14459
  try {
14476
- const g = (r = (await A.mutate({
14460
+ const l = (r = (await A.mutate({
14477
14461
  mutation: ka,
14478
14462
  variables: { id: e },
14479
14463
  errorPolicy: "all"
14480
14464
  })).data) == null ? void 0 : r.transactionClaim;
14481
- if (!g)
14465
+ if (!l)
14482
14466
  throw new H("Failed to read transaction.");
14483
- if (!g.product)
14467
+ if (!l.product)
14484
14468
  throw new H("Failed to load transaction, product not available.");
14485
- 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 = {
14486
- product: g.product,
14487
- transaction: g,
14469
+ 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 = {
14470
+ product: l.product,
14471
+ transaction: l,
14488
14472
  layouts: [],
14489
14473
  stateMutationFunc: async (d) => this.updateTransactionState({
14490
14474
  ...d,
14491
- context: { transactionOwnerId: g.transactionOwnerId }
14475
+ context: { transactionOwnerId: l.transactionOwnerId }
14492
14476
  }),
14493
14477
  readOnly: t
14494
14478
  }, this.initialized = !0;
@@ -14539,8 +14523,8 @@ class ss {
14539
14523
  model: this.experienceOptions.product.modelUrl,
14540
14524
  contextService: this.experienceOptions.renderableContextService
14541
14525
  }));
14542
- const g = new Me(this, this.experienceOptions);
14543
- return await g.getWorkflowManager().getInitializationPromise(), g;
14526
+ const l = new Me(this, this.experienceOptions);
14527
+ return await l.getWorkflowManager().getInitializationPromise(), l;
14544
14528
  }
14545
14529
  throw new H("No workflow ID provided.");
14546
14530
  }
@@ -14776,7 +14760,7 @@ class Ys {
14776
14760
  return [];
14777
14761
  }
14778
14762
  }
14779
- var os = /* @__PURE__ */ ((l) => (l.SelectFrame = "SelectFrame", l.SelectImage = "SelectImage", l.Position = "Position", l))(os || {});
14763
+ var os = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(os || {});
14780
14764
  class rs extends X {
14781
14765
  constructor(e, t, A) {
14782
14766
  var a;
@@ -15046,8 +15030,8 @@ export {
15046
15030
  ni as generateCommands,
15047
15031
  co as generateSVGWithUnknownColors,
15048
15032
  ys as generateStateFromDesignInputSteps,
15049
- lo as getAttributesFromArrayBuffer,
15050
- go as getAxisAlignedBoundingBox,
15033
+ go as getAttributesFromArrayBuffer,
15034
+ lo as getAxisAlignedBoundingBox,
15051
15035
  Wa as getBoundedOffsets,
15052
15036
  Bo as getFrameData,
15053
15037
  Co as getSvgElement,
@@ -15070,7 +15054,7 @@ export {
15070
15054
  uo as registerWindowImplementation,
15071
15055
  mo as rehydrateSerializedLayout,
15072
15056
  $a as rgbToPms,
15073
- ga as setBearerAuthenticationToken,
15057
+ la as setBearerAuthenticationToken,
15074
15058
  Qo as setCanvasModule,
15075
15059
  Ee as shapeStepService,
15076
15060
  qa as shortenUrl,