@spiffcommerce/core 21.11.0-alpha.3 → 21.11.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createHttpLink as IA, InMemoryCache as fA, ApolloClient as DA, from as FA, gql as D } from "@apollo/client/core";
2
- import { fetch as et, getAttributesFromArrayBuffer as Rt, AssetType as ut, StepType as y, getFrameData as tt, frameDataCache as yA, GroupCommand as v, UpdateFramePattern as Ht, UpdateFrameThresholdSettingsCommand as MA, calculateOffsets as At, LayoutElementType as k, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Ut, svgObjectURL as Pe, fetchAsString as _, DeleteElementCommand as ee, generateDefaultRectangleFrameSvg as Ct, GetSVGDimensions as SA, patternImageDataCache as Qt, fetchAsArrayBuffer as YA, findElement as xe, modifySVGWithElementProperties as PA, IllustrationColorCommand as We, IllustrationCacheCommand as xA, getFontMetrics as NA, getPatternImageData as Xe, FontAlignmentCommand as RA, FontColorCommand as HA, FontImageFillCommand as Te, applyTextTransformations as qe, determineCorrectFontSizeAndLines as Me, FontSourceCommand as mt, loadFont as at, TextChangeCommand as UA, FontSizeCommand as vA, createElementNS as GA, createElement as Qe, _loadFontExternalDataURL as nt, UpdateWorkflowStateCommand as pt, CommandContext as kA, createCanvas as Ne, getSvgElement as vt, LayoutRenderingPurpose as Gt, renderPapyrusComponentAsString as kt, loadImage as bt, getDomParser as Jt, toBase64 as It, getVariant as bA, generateFrameSVG as JA, getDefaultVariant as be, domParser as Lt, sanitizeSvgTree as Ot, traverse as LA, xmlSerializer as Tt, CreateLayoutCommand as OA, AspectType as Be, rehydrateSerializedLayout as Ae } from "@spiffcommerce/papyrus";
3
- import { AspectType as es, AssetType as ts, BringForwardCommand as As, BringToBackCommand as as, BringToFrontCommand as ns, CanvasCommand as is, CommandContext as ss, CreateElementCommand as os, CreateLayoutCommand as rs, DeleteElementCommand as cs, FontAlignmentCommand as gs, FontColorCommand as ls, FontSizeCommand as Bs, FontSourceCommand as ds, GroupCommand as ws, LayoutElementFactory as hs, LayoutElementType as Es, MoveCommand as us, ResizeCommand as Cs, RotateCommand as Qs, SendBackwardsCommand as ms, StepAspectType as ps, StepType as Is, TextChangeCommand as fs, UnitOfMeasurement as Ds, UpdateImageSourceCommand as Fs, dataUrlFromExternalUrl as ys, determineCorrectFontSizeAndLines as Ms, findElement as Ss, frameDataCache as Ys, generate as Ps, generateSVGWithUnknownColors as xs, getAttributesFromArrayBuffer as Ns, getAxisAlignedBoundingBox as Rs, getFrameData as Hs, getSvgElement as Us, loadFont as vs, patternImageDataCache as Gs, registerFetchImplementation as ks, registerWindowImplementation as bs, rehydrateSerializedLayout as Js, setCanvasModule as Ls } from "@spiffcommerce/papyrus";
2
+ import { fetch as et, getAttributesFromArrayBuffer as Ht, AssetType as ut, StepType as y, getFrameData as tt, frameDataCache as yA, GroupCommand as v, UpdateFramePattern as Rt, UpdateFrameThresholdSettingsCommand as MA, calculateOffsets as At, LayoutElementType as k, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Ut, svgObjectURL as Pe, fetchAsString as _, DeleteElementCommand as ee, generateDefaultRectangleFrameSvg as Ct, GetSVGDimensions as SA, patternImageDataCache as Qt, fetchAsArrayBuffer as YA, findElement as xe, modifySVGWithElementProperties as PA, IllustrationColorCommand as We, IllustrationCacheCommand as xA, getFontMetrics as NA, getPatternImageData as Xe, FontAlignmentCommand as HA, FontColorCommand as RA, FontImageFillCommand as Te, applyTextTransformations as qe, determineCorrectFontSizeAndLines as Me, FontSourceCommand as mt, loadFont as at, TextChangeCommand as UA, FontSizeCommand as vA, createElementNS as GA, createElement as Qe, _loadFontExternalDataURL as nt, UpdateWorkflowStateCommand as pt, CommandContext as kA, createCanvas as Ne, getSvgElement as vt, LayoutRenderingPurpose as Gt, renderPapyrusComponentAsString as kt, loadImage as bt, getDomParser as Jt, toBase64 as It, getVariant as bA, generateFrameSVG as JA, getDefaultVariant as be, domParser as Lt, sanitizeSvgTree as Ot, traverse as LA, xmlSerializer as Tt, CreateLayoutCommand as OA, AspectType as Be, rehydrateSerializedLayout as Ae } from "@spiffcommerce/papyrus";
3
+ import { AspectType as es, AssetType as ts, BringForwardCommand as As, BringToBackCommand as as, BringToFrontCommand as ns, CanvasCommand as is, CommandContext as ss, CreateElementCommand as os, CreateLayoutCommand as rs, DeleteElementCommand as cs, FontAlignmentCommand as gs, FontColorCommand as ls, FontSizeCommand as Bs, FontSourceCommand as ds, GroupCommand as ws, LayoutElementFactory as hs, LayoutElementType as Es, MoveCommand as us, ResizeCommand as Cs, RotateCommand as Qs, SendBackwardsCommand as ms, StepAspectType as ps, StepType as Is, TextChangeCommand as fs, UnitOfMeasurement as Ds, UpdateImageSourceCommand as Fs, dataUrlFromExternalUrl as ys, determineCorrectFontSizeAndLines as Ms, findElement as Ss, frameDataCache as Ys, generate as Ps, generateSVGWithUnknownColors as xs, getAttributesFromArrayBuffer as Ns, getAxisAlignedBoundingBox as Hs, getFrameData as Rs, getSvgElement as Us, loadFont as vs, patternImageDataCache as Gs, registerFetchImplementation as ks, registerWindowImplementation as bs, rehydrateSerializedLayout as Js, setCanvasModule as Ls } from "@spiffcommerce/papyrus";
4
4
  import { setContext as TA } from "@apollo/client/link/context";
5
5
  import { onError as zA } from "@apollo/client/link/error";
6
6
  import { Pith as zt } from "pith";
@@ -21,7 +21,7 @@ class ue extends Wt {
21
21
  super(`ConfigurationError - ${e}`);
22
22
  }
23
23
  }
24
- class Re extends ue {
24
+ class He extends ue {
25
25
  constructor(e) {
26
26
  super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
27
27
  }
@@ -41,7 +41,7 @@ class he extends ue {
41
41
  super(`Resource not found for asset: ${e.name}`), this.asset = e;
42
42
  }
43
43
  }
44
- class He extends ue {
44
+ class Re extends ue {
45
45
  constructor(e, t) {
46
46
  super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
47
47
  }
@@ -388,7 +388,7 @@ const x = new $A(), _A = D`
388
388
  class sa {
389
389
  constructor() {
390
390
  this.cache = /* @__PURE__ */ new Map(), this.bgrmCache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (e) => {
391
- const t = await e.arrayBuffer(), A = await Rt(t), a = (n, i) => {
391
+ const t = await e.arrayBuffer(), A = await Ht(t), a = (n, i) => {
392
392
  const s = atob(n.split(",")[1]), o = [];
393
393
  for (let r = 0; r < s.length; r++)
394
394
  o.push(s.charCodeAt(r));
@@ -487,8 +487,8 @@ class sa {
487
487
  const t = e.key;
488
488
  if (this.bgrmCache.has(t))
489
489
  return this.bgrmCache.get(t);
490
- if (W.has(t)) {
491
- const n = this.getLocalOrFromServer(W.get(t));
490
+ if (K.has(t)) {
491
+ const n = this.getLocalOrFromServer(K.get(t));
492
492
  return this.bgrmCache.set(t, n), n;
493
493
  }
494
494
  const a = (async () => {
@@ -503,12 +503,12 @@ class sa {
503
503
  });
504
504
  if (!((s = (i = n.data) == null ? void 0 : i.assetRemoveBackground) != null && s.key))
505
505
  throw new Error("Failed to remove background from image");
506
- return ae.add(n.data.assetRemoveBackground), W.add(t, n.data.assetRemoveBackground.key), n.data.assetRemoveBackground;
506
+ return ae.add(n.data.assetRemoveBackground), K.add(t, n.data.assetRemoveBackground.key), this.bgrmCache.delete(t), n.data.assetRemoveBackground;
507
507
  })();
508
508
  return this.bgrmCache.set(t, a), a;
509
509
  }
510
510
  removePersistedAsset(e) {
511
- ae.remove(e);
511
+ ae.remove(e), K.delete(e), K.deleteForBgRemovedKey(e);
512
512
  }
513
513
  getPersistedAssets() {
514
514
  return ae.list();
@@ -600,22 +600,30 @@ const re = "persistentAssets", Zt = class Z {
600
600
  Zt.callbacks = [];
601
601
  let ae = Zt;
602
602
  const yt = "bgrmPersistentAssets";
603
- class W {
603
+ class K {
604
604
  static has(e) {
605
- return W.getMap().has(e);
605
+ return K.getMap().has(e);
606
606
  }
607
607
  static get(e) {
608
- return W.getMap().get(e);
608
+ return K.getMap().get(e);
609
609
  }
610
610
  static keys() {
611
- return W.getMap().keys();
611
+ return K.getMap().keys();
612
612
  }
613
613
  static values() {
614
- return W.getMap().values();
614
+ return K.getMap().values();
615
615
  }
616
616
  static add(e, t) {
617
- const A = W.getMap();
618
- A.set(e, t), W.setMap(A);
617
+ const A = K.getMap();
618
+ A.set(e, t), K.setMap(A);
619
+ }
620
+ static delete(e) {
621
+ const t = K.getMap();
622
+ t.delete(e), K.setMap(t);
623
+ }
624
+ static deleteForBgRemovedKey(e) {
625
+ const t = K.getMap(), A = Array.from(t.keys()).find((a) => t.get(a) === e);
626
+ A && (t.delete(A), K.setMap(t));
619
627
  }
620
628
  static getMap() {
621
629
  return Y.getMap(yt) || /* @__PURE__ */ new Map();
@@ -782,7 +790,7 @@ class Ba {
782
790
  }
783
791
  }
784
792
  }
785
- const j = new Ba();
793
+ const V = new Ba();
786
794
  var da = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(da || {}), rt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(rt || {}), wa = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(wa || {}), ha = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(ha || {}), Ea = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(Ea || {}), Ue = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ue || {});
787
795
  const oe = D`
788
796
  fragment AdditionalIntegrationProductFields on IntegrationProduct {
@@ -1622,7 +1630,7 @@ class Ya {
1622
1630
  n.forEach((o, r) => {
1623
1631
  s(
1624
1632
  new v([
1625
- new Ht(o, t, e[r]),
1633
+ new Rt(o, t, e[r]),
1626
1634
  new MA(o, a.useThreshold, a.invertThreshold, a.threshold, a.thresholdSaturation)
1627
1635
  ])
1628
1636
  );
@@ -1658,7 +1666,7 @@ class St {
1658
1666
  if (this.configuration.type === y.ProductOverlay) {
1659
1667
  let l = "";
1660
1668
  if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1661
- throw new He(this.configuration, "Couldn't find an asset for product overlay step");
1669
+ throw new Re(this.configuration, "Couldn't find an asset for product overlay step");
1662
1670
  }
1663
1671
  const s = this.evaluateAssetType();
1664
1672
  if (s === k.Image) {
@@ -1729,7 +1737,7 @@ class St {
1729
1737
  }
1730
1738
  async trigger() {
1731
1739
  if (!this.configuration.data.regions)
1732
- throw new He(this.configuration, "Missing regions.");
1740
+ throw new Re(this.configuration, "Missing regions.");
1733
1741
  if (this.configuration.type === y.SilentIllustration) {
1734
1742
  const e = this.configuration.data.regions.map(this.processRegion);
1735
1743
  return Promise.all(e);
@@ -1836,7 +1844,7 @@ class xa {
1836
1844
  throw new Le("Cannot create QR code, URL too long.");
1837
1845
  const E = await Pa(w);
1838
1846
  if (s(E), !i.data || !i.data.regions)
1839
- throw new He(i, "Missing regions.");
1847
+ throw new Re(i, "Missing regions.");
1840
1848
  const h = await this.regionElements(i), C = await this.command(E, h, n, i.stepName);
1841
1849
  C && (C.command && n.getCommandDispatcher()(C.command), C.followup && await C.followup()), await n.setSelectionsAndElements(i.stepName, [], h, async () => {
1842
1850
  n.updateStorage(i.stepName, {
@@ -1881,7 +1889,7 @@ class xa {
1881
1889
  }
1882
1890
  }
1883
1891
  const Na = new xa();
1884
- class Ra {
1892
+ class Ha {
1885
1893
  constructor() {
1886
1894
  this.frameSourceSvg = async (e, t) => {
1887
1895
  if (!e)
@@ -1899,7 +1907,7 @@ class Ra {
1899
1907
  if (A)
1900
1908
  return await this.reload(e, t, A), null;
1901
1909
  if (t.setMandatoryFulfilled(e.stepName, !1), t.markStepsAsInitialised([e.stepName]), e.option && e.option.variants && e.option.variants.length > 0) {
1902
- const a = e.option, n = j.getDefaultVariant(a);
1910
+ const a = e.option, n = V.getDefaultVariant(a);
1903
1911
  return n ? this.selectVariantCommand(
1904
1912
  e,
1905
1913
  n,
@@ -2043,7 +2051,7 @@ class Ra {
2043
2051
  };
2044
2052
  Qt.set(e, i), t.setPatternData(i);
2045
2053
  } else {
2046
- const A = await YA(e, !0), a = await Rt(A), n = {
2054
+ const A = await YA(e, !0), a = await Ht(A), n = {
2047
2055
  src: e,
2048
2056
  width: a.width,
2049
2057
  height: a.height,
@@ -2139,8 +2147,8 @@ class Ra {
2139
2147
  }), A.markUpdateCompleted(n);
2140
2148
  }
2141
2149
  }
2142
- const Se = new Ra();
2143
- class Ha {
2150
+ const Se = new Ha();
2151
+ class Ra {
2144
2152
  async getIllustrationBody(e) {
2145
2153
  return new Promise((t) => {
2146
2154
  _(e, !0).then((A) => {
@@ -2191,7 +2199,7 @@ class Ha {
2191
2199
  if (A)
2192
2200
  return this.reload(e, t, A);
2193
2201
  {
2194
- const n = j.getDefaultVariant(a);
2202
+ const n = V.getDefaultVariant(a);
2195
2203
  if (n)
2196
2204
  return await this.selectVariantCommand(e, n, [], () => {
2197
2205
  }, t);
@@ -2294,7 +2302,7 @@ class Ha {
2294
2302
  async selectVariantCommand(e, t, A, a, n) {
2295
2303
  var C;
2296
2304
  if (!e.data || !e.data.regions)
2297
- throw new He(e, "Missing regions.");
2305
+ throw new Re(e, "Missing regions.");
2298
2306
  a(!0);
2299
2307
  const i = A.map((u) => new ee(u.id));
2300
2308
  n.setMandatoryFulfilled(e.stepName, !1);
@@ -2352,16 +2360,16 @@ class Ha {
2352
2360
  };
2353
2361
  }
2354
2362
  }
2355
- const Ye = new Ha();
2363
+ const Ye = new Ra();
2356
2364
  class Ua {
2357
2365
  async init(e, t, A) {
2358
2366
  const a = e.option;
2359
2367
  if (!a)
2360
- throw new Re(e);
2368
+ throw new He(e);
2361
2369
  if (A)
2362
2370
  await this.reload(e, t, A);
2363
2371
  else {
2364
- const n = j.getDefaultVariant(a);
2372
+ const n = V.getDefaultVariant(a);
2365
2373
  if (n)
2366
2374
  return await this.selectVariantLambda(e, n, t, () => {
2367
2375
  });
@@ -2375,7 +2383,7 @@ class Ua {
2375
2383
  A.serializableWorkflow.steps
2376
2384
  ), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
2377
2385
  if (!o)
2378
- throw new Re(e);
2386
+ throw new He(e);
2379
2387
  if (a != null && a.selectedVariants) {
2380
2388
  const g = a.selectedVariants[0].id;
2381
2389
  if (g) {
@@ -2431,11 +2439,11 @@ class va {
2431
2439
  async init(e, t, A) {
2432
2440
  const a = e.option;
2433
2441
  if (!a)
2434
- throw new Re(e);
2442
+ throw new He(e);
2435
2443
  if (A)
2436
2444
  await this.reload(e, t, A);
2437
2445
  else {
2438
- const n = j.getDefaultVariant(a);
2446
+ const n = V.getDefaultVariant(a);
2439
2447
  if (n)
2440
2448
  return await this.selectVariantLambda(e, n, t, () => {
2441
2449
  });
@@ -2727,7 +2735,7 @@ class Ja {
2727
2735
  await this.reload(e, t, A);
2728
2736
  else {
2729
2737
  const n = a.variants;
2730
- if (j.getDefaultVariant(a)) {
2738
+ if (V.getDefaultVariant(a)) {
2731
2739
  const s = n == null ? void 0 : n.find((o) => {
2732
2740
  var r;
2733
2741
  return o.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
@@ -2803,11 +2811,11 @@ class La {
2803
2811
  async init(e, t, A) {
2804
2812
  const a = e.option;
2805
2813
  if (!a)
2806
- throw new Re(e);
2814
+ throw new He(e);
2807
2815
  if (A)
2808
2816
  await this.reload(e, t, A);
2809
2817
  else {
2810
- const n = j.getDefaultVariant(a);
2818
+ const n = V.getDefaultVariant(a);
2811
2819
  return n ? this.selectVariantCommand(
2812
2820
  e,
2813
2821
  {
@@ -3040,7 +3048,7 @@ class Ka {
3040
3048
  color: ((s = await this.getDefaultColorVariant(e.data)) == null ? void 0 : s.name) || await this.getDefaultColor(e.data),
3041
3049
  fillImage: o == null ? void 0 : o.name
3042
3050
  });
3043
- const l = j.getDefaultVariant(a);
3051
+ const l = V.getDefaultVariant(a);
3044
3052
  if (l)
3045
3053
  return this.selectVariantCommand(
3046
3054
  e,
@@ -3086,7 +3094,7 @@ class Ka {
3086
3094
  return;
3087
3095
  const n = a.getCommandDispatcher();
3088
3096
  for (const i of A) {
3089
- const s = new RA(i.id, t);
3097
+ const s = new HA(i.id, t);
3090
3098
  n(s);
3091
3099
  }
3092
3100
  }
@@ -3106,7 +3114,7 @@ class Ka {
3106
3114
  for (const r of A) {
3107
3115
  if (!t.fill)
3108
3116
  throw new Error("Fill not set on new color selection!");
3109
- const g = new HA(r.id, t.fill, s);
3117
+ const g = new RA(r.id, t.fill, s);
3110
3118
  n(g);
3111
3119
  }
3112
3120
  }
@@ -3231,7 +3239,7 @@ class Ka {
3231
3239
  t.getCommandDispatcher()(Q), t.setMandatoryFulfilled(e.stepName, !0);
3232
3240
  }
3233
3241
  );
3234
- const { command: u } = K.updateInputText(
3242
+ const { command: u } = j.updateInputText(
3235
3243
  C || "",
3236
3244
  s,
3237
3245
  e,
@@ -3245,19 +3253,19 @@ class Ka {
3245
3253
  async getDefaultColorVariant(e) {
3246
3254
  const t = e.colorOption;
3247
3255
  if (t)
3248
- return j.getDefaultVariant(t);
3256
+ return V.getDefaultVariant(t);
3249
3257
  }
3250
3258
  async getDefaultColor(e) {
3251
3259
  const t = e.colorOption;
3252
3260
  if (!t)
3253
3261
  return;
3254
- const A = j.getDefaultVariant(t);
3262
+ const A = V.getDefaultVariant(t);
3255
3263
  return A == null ? void 0 : A.color;
3256
3264
  }
3257
3265
  getDefaultImageFillVariant(e) {
3258
3266
  const t = e.imageFillOption;
3259
3267
  if (t)
3260
- return j.getDefaultVariant(t);
3268
+ return V.getDefaultVariant(t);
3261
3269
  }
3262
3270
  async fontDataFromVariant(e) {
3263
3271
  const t = e.asset;
@@ -3351,9 +3359,9 @@ class Ka {
3351
3359
  const h = A.colorOption;
3352
3360
  let C;
3353
3361
  if (h && h.variants) {
3354
- const N = h.variants.find((R) => {
3362
+ const N = h.variants.find((H) => {
3355
3363
  var T;
3356
- return R.id === ((T = h.defaultVariant) == null ? void 0 : T.id);
3364
+ return H.id === ((T = h.defaultVariant) == null ? void 0 : T.id);
3357
3365
  }) || h.variants[0];
3358
3366
  C = this.createTextFillSpotColor(h, N), i.updateStorage(e, {
3359
3367
  colorProfileAssetKey: (E = h.colorProfile) == null ? void 0 : E.key
@@ -3494,7 +3502,7 @@ class Ka {
3494
3502
  return new v(u);
3495
3503
  }
3496
3504
  }
3497
- const K = new Ka();
3505
+ const j = new Ka();
3498
3506
  class ct {
3499
3507
  }
3500
3508
  const ja = "data:application/font-woff;base64,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", Va = `<?xml version="1.0" encoding="iso-8859-1"?>
@@ -4758,14 +4766,14 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
4758
4766
  </g>
4759
4767
  </svg>
4760
4768
 
4761
- `, H = (c) => GA("http://www.w3.org/2000/svg", c), gt = (c, e) => {
4762
- const t = H("rect");
4769
+ `, R = (c) => GA("http://www.w3.org/2000/svg", c), gt = (c, e) => {
4770
+ const t = R("rect");
4763
4771
  return t.setAttribute("height", `${c}`), t.setAttribute("width", `${e}`), t;
4764
4772
  }, Wa = () => {
4765
- const c = H("svg");
4773
+ const c = R("svg");
4766
4774
  return c.setAttribute("xmlns", "http://www.w3.org/2000/svg"), c.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), c.setAttribute("version", "1.1"), c;
4767
4775
  }, Xa = (c) => {
4768
- const e = H("use");
4776
+ const e = R("use");
4769
4777
  return e.setAttribute("xlink:href", c), e.setAttribute("href", c), e;
4770
4778
  };
4771
4779
  function rA(c) {
@@ -4773,7 +4781,7 @@ function rA(c) {
4773
4781
  return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
4774
4782
  }
4775
4783
  const qa = (c, e, t) => {
4776
- const A = H("g");
4784
+ const A = R("g");
4777
4785
  c.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
4778
4786
  };
4779
4787
  function cA(c, e, t) {
@@ -4935,26 +4943,26 @@ class $a extends ct {
4935
4943
  }
4936
4944
  brandSvg(e, t) {
4937
4945
  const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
4938
- const m = H("g"), p = H("defs");
4946
+ const m = R("g"), p = R("defs");
4939
4947
  m.appendChild(p), p.appendChild(gA(3, 7, 4, "shadow"));
4940
- const I = H("g");
4948
+ const I = R("g");
4941
4949
  m.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
4942
- const F = H("g");
4950
+ const F = R("g");
4943
4951
  m.appendChild(F), F.setAttribute("fill", "red"), F.setAttribute("stroke", "red"), F.setAttribute("stroke-width", "9"), F.innerHTML = A;
4944
- const M = H("g");
4952
+ const M = R("g");
4945
4953
  m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
4946
- const P = H("g");
4947
- return m.appendChild(P), P.setAttribute("fill", "yellow"), P.innerHTML = A, new Bt(m).transform(([N, R]) => [N, R + (n / 2 - N) ** 2 / (n * 2.9)]), m;
4954
+ const P = R("g");
4955
+ return m.appendChild(P), P.setAttribute("fill", "yellow"), P.innerHTML = A, new Bt(m).transform(([N, H]) => [N, H + (n / 2 - N) ** 2 / (n * 2.9)]), m;
4948
4956
  }, [o, r, g] = rA(t);
4949
4957
  if (!o)
4950
4958
  return "";
4951
- const B = H("defs");
4959
+ const B = R("defs");
4952
4960
  o.appendChild(B), cA(o, B, t);
4953
- const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = H("g");
4961
+ const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = R("g");
4954
4962
  o.appendChild(h), h.setAttribute("transform", `translate(${w} ${E}) rotate(-21)`);
4955
4963
  const C = gt(l, d);
4956
4964
  C.setAttribute("opacity", "0"), h.appendChild(C);
4957
- const u = H("g");
4965
+ const u = R("g");
4958
4966
  h.appendChild(u);
4959
4967
  const f = s();
4960
4968
  u.appendChild(f);
@@ -4979,29 +4987,29 @@ class en extends ct {
4979
4987
  }
4980
4988
  brandSvg(e, t, A) {
4981
4989
  const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
4982
- const I = H("g"), F = H("g");
4990
+ const I = R("g"), F = R("g");
4983
4991
  I.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
4984
- const M = H("g");
4992
+ const M = R("g");
4985
4993
  I.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
4986
- const P = H("g");
4994
+ const P = R("g");
4987
4995
  I.appendChild(P), P.setAttribute("fill", "white"), P.innerHTML = a;
4988
4996
  const S = new Bt(I);
4989
- return S.transform(([N, R]) => [N, R + ((s - N) * R) ** 2 / (s * 5e4)]), S.transform(([N, R]) => [
4997
+ return S.transform(([N, H]) => [N, H + ((s - N) * H) ** 2 / (s * 5e4)]), S.transform(([N, H]) => [
4990
4998
  N,
4991
- R + (s / 3 - N) ** 2 / s * this.indicator(N < s / 3)
4992
- ]), S.transform(([N, R]) => [N - (i - R) * (s - N) / 800, R]), I;
4999
+ H + (s / 3 - N) ** 2 / s * this.indicator(N < s / 3)
5000
+ ]), S.transform(([N, H]) => [N - (i - H) * (s - N) / 800, H]), I;
4993
5001
  }, [g, B, l] = rA(t);
4994
5002
  if (!g)
4995
5003
  return "";
4996
- const d = H("defs");
5004
+ const d = R("defs");
4997
5005
  g.appendChild(d), cA(g, d, t);
4998
5006
  let w, E, h, C;
4999
5007
  A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22, C = B * 0.32) : (w = B * 0.22 * (1 + 0.1), E = l * 0.8, h = l * 0.067, C = B * 0.33);
5000
- const u = H("g");
5008
+ const u = R("g");
5001
5009
  g.appendChild(u), u.setAttribute("transform", `translate(${h} ${C}) rotate(-10)`);
5002
5010
  const f = gt(w, E);
5003
5011
  f.setAttribute("opacity", "0"), u.appendChild(f);
5004
- const Q = H("g");
5012
+ const Q = R("g");
5005
5013
  u.appendChild(Q);
5006
5014
  const m = r();
5007
5015
  Q.appendChild(m);
@@ -5023,29 +5031,29 @@ class An extends ct {
5023
5031
  }
5024
5032
  svgElement(e, t) {
5025
5033
  const A = nt(tn), n = e !== "" ? ((f) => f.charAt(0).toUpperCase() + f.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, g = i.toPathData(3), B = () => {
5026
- const f = H("g");
5034
+ const f = R("g");
5027
5035
  f.classList.add("module-text-group");
5028
- const Q = H("defs");
5036
+ const Q = R("defs");
5029
5037
  f.appendChild(Q), Q.appendChild(gA(0, 2, 2, "shadow"));
5030
- const m = H("path");
5038
+ const m = R("path");
5031
5039
  m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), Q.appendChild(m);
5032
- const p = H("g");
5040
+ const p = R("g");
5033
5041
  p.classList.add("module-layer0"), f.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = m.outerHTML;
5034
- const I = H("g");
5042
+ const I = R("g");
5035
5043
  I.classList.add("module-layer1"), f.appendChild(I), I.setAttribute("stroke-width", "3"), I.setAttribute("stroke", "rgb(45,41,38)"), I.setAttribute("fill", "rgb(45,41,38)"), I.setAttribute("transform", "translate(0.5,0)"), I.innerHTML = s;
5036
- const F = H("g");
5044
+ const F = R("g");
5037
5045
  F.classList.add("module-layer2"), f.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
5038
- const M = H("g");
5046
+ const M = R("g");
5039
5047
  return M.classList.add("module-layer3"), f.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = s, new Bt(f).transform(([S, N]) => [S, N + (r / 2 - S) ** 2 / (r * 6)]), f;
5040
- }, l = H("g");
5048
+ }, l = R("g");
5041
5049
  l.classList.add("module-root");
5042
- const d = H("defs");
5050
+ const d = R("defs");
5043
5051
  l.appendChild(d);
5044
- const w = H("g");
5052
+ const w = R("g");
5045
5053
  w.classList.add("module-bounds"), l.appendChild(w);
5046
5054
  const E = gt(t.height, t.width);
5047
5055
  E.setAttribute("opacity", "0"), w.appendChild(E);
5048
- const h = H("g");
5056
+ const h = R("g");
5049
5057
  h.classList.add("module-text-enclosure"), l.appendChild(h);
5050
5058
  const C = B();
5051
5059
  h.appendChild(C);
@@ -5585,7 +5593,7 @@ class nn {
5585
5593
  A.push(le.init(o, this, this.reloadedState));
5586
5594
  break;
5587
5595
  case y.Text:
5588
- A.push(K.init(o, this, this.reloadedState));
5596
+ A.push(j.init(o, this, this.reloadedState));
5589
5597
  break;
5590
5598
  }
5591
5599
  const n = (await Promise.allSettled(A)).map((o) => {
@@ -6044,7 +6052,7 @@ class Bn extends X {
6044
6052
  * @param variant The font variant to use.
6045
6053
  */
6046
6054
  async selectVariant(e) {
6047
- K.selectVariant(
6055
+ j.selectVariant(
6048
6056
  this.step,
6049
6057
  e.getResource(),
6050
6058
  this.manager,
@@ -6071,7 +6079,7 @@ class Bn extends X {
6071
6079
  * @returns A list of colors that can be used to fill the text.
6072
6080
  */
6073
6081
  getAvailableFillColors() {
6074
- return this.step.data.colorPickerEnabled ? K.availableFillColors(this.step) : [];
6082
+ return this.step.data.colorPickerEnabled ? j.availableFillColors(this.step) : [];
6075
6083
  }
6076
6084
  /**
6077
6085
  * Changes the fill of text related to this step to the new fill value.
@@ -6079,7 +6087,7 @@ class Bn extends X {
6079
6087
  */
6080
6088
  async setFillColor(e) {
6081
6089
  const t = this.manager.getRegionElements(this.step.stepName);
6082
- await K.changeFillColor(this.step, e, t, this.manager);
6090
+ await j.changeFillColor(this.step, e, t, this.manager);
6083
6091
  }
6084
6092
  /**
6085
6093
  * Gets the color currently applied to the element.
@@ -6089,23 +6097,23 @@ class Bn extends X {
6089
6097
  return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.color) || "#000000";
6090
6098
  }
6091
6099
  getAvailableFillImages() {
6092
- return K.availableFillImages(this.step);
6100
+ return j.availableFillImages(this.step);
6093
6101
  }
6094
6102
  async setFillImage(e) {
6095
6103
  const t = this.manager.getRegionElements(this.step.stepName);
6096
- await K.changeFillImage(this.step, e, t, this.manager);
6104
+ await j.changeFillImage(this.step, e, t, this.manager);
6097
6105
  }
6098
6106
  getFillImage() {
6099
6107
  var e;
6100
6108
  return (e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.fillImage;
6101
6109
  }
6102
6110
  getAlignment() {
6103
- const e = K.findLayoutElements(this.manager, this.step);
6111
+ const e = j.findLayoutElements(this.manager, this.step);
6104
6112
  return e == null ? void 0 : e[0].align;
6105
6113
  }
6106
6114
  setAlignment(e) {
6107
6115
  const t = this.manager.getRegionElements(this.step.stepName);
6108
- K.changeAlignment(this.step, e, t, this.manager);
6116
+ j.changeAlignment(this.step, e, t, this.manager);
6109
6117
  }
6110
6118
  /**
6111
6119
  * When true & the step has replaceable text configured the user will be
@@ -6129,14 +6137,14 @@ class Bn extends X {
6129
6137
  var d, w;
6130
6138
  const t = {
6131
6139
  input: e
6132
- }, A = K.findLayoutElements(this.manager, this.step), a = K.filterUnsupportedCharacters(e, (d = A[0]) == null ? void 0 : d.fontData);
6140
+ }, A = j.findLayoutElements(this.manager, this.step), a = j.filterUnsupportedCharacters(e, (d = A[0]) == null ? void 0 : d.fontData);
6133
6141
  !!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (t.input = a);
6134
6142
  const i = A.length <= 0, s = i ? { inputText: a, text: a } : { inputText: a };
6135
6143
  if (this.manager.updateStorage(this.step.stepName, s), this.manager.updateMetadata(this.step.stepName, {
6136
6144
  text: a
6137
6145
  }), i)
6138
6146
  return t;
6139
- const { command: o, errors: r, helperText: g } = K.updateInputText(
6147
+ const { command: o, errors: r, helperText: g } = j.updateInputText(
6140
6148
  a,
6141
6149
  A,
6142
6150
  this.step,
@@ -6240,7 +6248,7 @@ class Ie {
6240
6248
  case y.Model:
6241
6249
  return new rn(e, t);
6242
6250
  case y.Frame:
6243
- return new Hi(e, t);
6251
+ return new Ri(e, t);
6244
6252
  default:
6245
6253
  throw new b(`Step type ${t.type} not yet supported in Core SDK`);
6246
6254
  }
@@ -6468,34 +6476,34 @@ const En = async (c) => {
6468
6476
  context: {
6469
6477
  transactionOwnerId: P
6470
6478
  }
6471
- }), R = (T = N.data) == null ? void 0 : T.transactions[0].workflowState;
6479
+ }), H = (T = N.data) == null ? void 0 : T.transactions[0].workflowState;
6472
6480
  return N.errors ? (N.errors.forEach((L) => {
6473
6481
  N.errors && console.log("Server Error:", L.message);
6474
- }), null) : R ?? null;
6482
+ }), null) : H ?? null;
6475
6483
  })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
6476
6484
  const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && _e(o, e, !0), h = o && _e(o, e, !1), C = async (M) => {
6477
6485
  const P = {};
6478
6486
  let S = 0;
6479
6487
  if (Object.keys(n).length > 0)
6480
6488
  for (const N of Object.keys(n)) {
6481
- const R = n[N], T = e.steps.find((L) => L.stepName === N);
6482
- for (let L = 0; L < R.selections.length; ++L) {
6483
- const V = R.selections[L];
6489
+ const H = n[N], T = e.steps.find((L) => L.stepName === N);
6490
+ for (let L = 0; L < H.selections.length; ++L) {
6491
+ const W = H.selections[L];
6484
6492
  if (T && (!M || T.option && (T.option.variants || []).length > 1 && !T.data.hideSelectionInCart && !T.data.hideSelectionsInCart)) {
6485
6493
  const Oe = T.stepTitle;
6486
6494
  P[Oe] ? P[Oe].push({
6487
- id: V.id || "",
6488
- name: V.name,
6489
- priceModifier: V.priceModifier
6495
+ id: W.id || "",
6496
+ name: W.name,
6497
+ priceModifier: W.priceModifier
6490
6498
  }) : P[Oe] = [
6491
6499
  {
6492
- id: V.id || "",
6493
- name: V.name,
6494
- priceModifier: V.priceModifier
6500
+ id: W.id || "",
6501
+ name: W.name,
6502
+ priceModifier: W.priceModifier
6495
6503
  }
6496
6504
  ];
6497
6505
  }
6498
- S += V.priceModifier;
6506
+ S += W.priceModifier;
6499
6507
  }
6500
6508
  }
6501
6509
  return [P, S];
@@ -7168,7 +7176,7 @@ const Dn = [
7168
7176
  },
7169
7177
  d
7170
7178
  ),
7171
- new Ht(l, i, w)
7179
+ new Rt(l, i, w)
7172
7180
  ];
7173
7181
  };
7174
7182
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
@@ -7469,7 +7477,7 @@ const Dn = [
7469
7477
  const C = h.colorOption;
7470
7478
  if (!C)
7471
7479
  return;
7472
- const u = j.getDefaultVariant(C);
7480
+ const u = V.getDefaultVariant(C);
7473
7481
  return u == null ? void 0 : u.color;
7474
7482
  }, w = n.color || await d(A.data), E = A.data.regions;
7475
7483
  for (const h of E) {
@@ -7529,7 +7537,7 @@ const Dn = [
7529
7537
  a.push(new O(u, C));
7530
7538
  }
7531
7539
  return a;
7532
- }, Rn = (c, e) => c.conditions ? c.conditions.every((t) => {
7540
+ }, Hn = (c, e) => c.conditions ? c.conditions.every((t) => {
7533
7541
  const A = e[t.targetStepName];
7534
7542
  if (A && A.selectedVariants) {
7535
7543
  const a = A.selectedVariants;
@@ -7538,7 +7546,7 @@ const Dn = [
7538
7546
  );
7539
7547
  }
7540
7548
  return !1;
7541
- }) : !0, Hn = async (c, e, t, A) => {
7549
+ }) : !0, Rn = async (c, e, t, A) => {
7542
7550
  const a = [], n = {};
7543
7551
  for (const i of c) {
7544
7552
  const s = e.steps.find((o) => o.stepName === i.name);
@@ -7586,7 +7594,7 @@ const Dn = [
7586
7594
  }
7587
7595
  }
7588
7596
  for (const i of e.steps)
7589
- i.type !== y.SilentIllustration && i.type !== y.ProductOverlay || Rn(i, n) && a.push(
7597
+ i.type !== y.SilentIllustration && i.type !== y.ProductOverlay || Hn(i, n) && a.push(
7590
7598
  ...await xn(t, i, A)
7591
7599
  );
7592
7600
  return a;
@@ -7771,7 +7779,7 @@ const Vi = (c, e) => {
7771
7779
  layouts: {}
7772
7780
  };
7773
7781
  a = new v(t.map((o) => new OA(o))).apply(a);
7774
- const i = await Hn(c, e, t, A);
7782
+ const i = await Rn(c, e, t, A);
7775
7783
  return new v(i).apply(a);
7776
7784
  }, bn = D`
7777
7785
  ${oe}
@@ -8110,7 +8118,7 @@ class ei {
8110
8118
  case Be.FileUpload:
8111
8119
  return new ti(this.bundle, e);
8112
8120
  case Be.Option: {
8113
- const t = e.entityId ? await j.getOption(e.entityId) : void 0;
8121
+ const t = e.entityId ? await V.getOption(e.entityId) : void 0;
8114
8122
  return (t == null ? void 0 : t.type) === "Color" ? new ai(this.bundle, e, t) : new QA(this.bundle, e, t);
8115
8123
  }
8116
8124
  case Be.Text:
@@ -10772,11 +10780,11 @@ class Ni {
10772
10780
  throw new U(`Not all transactions were found: ${S}`);
10773
10781
  }
10774
10782
  return F.map((S, N) => {
10775
- var R;
10783
+ var H;
10776
10784
  return {
10777
10785
  transaction: S,
10778
10786
  workflowId: S.workflowId,
10779
- readOnly: ((R = m.find((T) => T.option.transactionId === S.id)) == null ? void 0 : R.option.readOnly) ?? !1,
10787
+ readOnly: ((H = m.find((T) => T.option.transactionId === S.id)) == null ? void 0 : H.option.readOnly) ?? !1,
10780
10788
  index: m[N].index
10781
10789
  };
10782
10790
  });
@@ -10817,7 +10825,7 @@ class Ni {
10817
10825
  var T;
10818
10826
  const { transaction: p, workflowId: I, readOnly: F, index: M } = m, P = w.get(I), S = e[M];
10819
10827
  !E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
10820
- const N = E.get(p.id) || void 0, R = {
10828
+ const N = E.get(p.id) || void 0, H = {
10821
10829
  product: p.product,
10822
10830
  transaction: p,
10823
10831
  layouts: [],
@@ -10831,18 +10839,18 @@ class Ni {
10831
10839
  };
10832
10840
  if (S.type === "transaction" && p.workflowState) {
10833
10841
  const L = JSON.parse(p.workflowState);
10834
- R.layouts = Object.values(L.layouts || {}).map((V) => V.layout), await Ae(L), await ne(L), R.reloadedState = L;
10842
+ H.layouts = Object.values(L.layouts || {}).map((W) => W.layout), await Ae(L), await ne(L), H.reloadedState = L;
10835
10843
  } else if (!F && S.workflowState) {
10836
10844
  const L = JSON.parse(S.workflowState);
10837
- R.layouts = Object.values(L.layouts || {}).map((V) => V.layout), await Ae(L), await ne(L), R.reloadedState = L;
10845
+ H.layouts = Object.values(L.layouts || {}).map((W) => W.layout), await Ae(L), await ne(L), H.reloadedState = L;
10838
10846
  } else
10839
- R.layouts = Ve(
10840
- R.transaction,
10841
- R.workflow
10847
+ H.layouts = Ve(
10848
+ H.transaction,
10849
+ H.workflow
10842
10850
  );
10843
- return R.renderableContextService = new De(
10844
- R.layouts
10845
- ), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: M, options: S };
10851
+ return H.renderableContextService = new De(
10852
+ H.layouts
10853
+ ), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: M, options: S };
10846
10854
  });
10847
10855
  Y.setMap("transactionOwnerIds", E);
10848
10856
  const f = (await Promise.all(h)).sort((m, p) => m.index - p.index).map(async (m) => {
@@ -11213,8 +11221,8 @@ class Zi {
11213
11221
  setWorkflowStateSyncEnabled(e) {
11214
11222
  }
11215
11223
  }
11216
- var Ri = /* @__PURE__ */ ((c) => (c.SelectFrame = "SelectFrame", c.SelectImage = "SelectImage", c.Position = "Position", c))(Ri || {});
11217
- class Hi extends X {
11224
+ var Hi = /* @__PURE__ */ ((c) => (c.SelectFrame = "SelectFrame", c.SelectImage = "SelectImage", c.Position = "Position", c))(Hi || {});
11225
+ class Ri extends X {
11218
11226
  constructor(e, t) {
11219
11227
  var A;
11220
11228
  super(e, t), this.frameService = (A = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : A.frameService;
@@ -11370,8 +11378,8 @@ export {
11370
11378
  Bs as FontSizeCommand,
11371
11379
  ds as FontSourceCommand,
11372
11380
  Ya as FrameService,
11373
- Ri as FrameStep,
11374
- Hi as FrameStepHandle,
11381
+ Hi as FrameStep,
11382
+ Ri as FrameStepHandle,
11375
11383
  wt as GlobalPropertyHandle,
11376
11384
  ws as GroupCommand,
11377
11385
  sn as IllustrationStepHandle,
@@ -11383,14 +11391,14 @@ export {
11383
11391
  Es as LayoutElementType,
11384
11392
  z as LayoutNotFoundError,
11385
11393
  on as MaterialStepHandle,
11386
- He as MisconfigurationError,
11394
+ Re as MisconfigurationError,
11387
11395
  Zi as MockWorkflowManager,
11388
11396
  rn as ModelStepHandle,
11389
11397
  us as MoveCommand,
11390
11398
  mA as ObjectInput,
11391
11399
  hi as ObjectInputType,
11392
11400
  QA as OptionGlobalPropertyHandle,
11393
- Re as OptionNotFoundError,
11401
+ He as OptionNotFoundError,
11394
11402
  ge as ParseError,
11395
11403
  cn as PictureStepHandle,
11396
11404
  wa as ProductCameraRig,
@@ -11432,13 +11440,13 @@ export {
11432
11440
  Ys as frameDataCache,
11433
11441
  Se as frameStepService,
11434
11442
  Ps as generate,
11435
- Hn as generateCommands,
11443
+ Rn as generateCommands,
11436
11444
  xs as generateSVGWithUnknownColors,
11437
11445
  Wi as generateStateFromDesignInputSteps,
11438
11446
  Ns as getAttributesFromArrayBuffer,
11439
- Rs as getAxisAlignedBoundingBox,
11447
+ Hs as getAxisAlignedBoundingBox,
11440
11448
  Sa as getBoundedOffsets,
11441
- Hs as getFrameData,
11449
+ Rs as getFrameData,
11442
11450
  Us as getSvgElement,
11443
11451
  ye as getWorkflow,
11444
11452
  pA as getWorkflows,
@@ -11448,7 +11456,7 @@ export {
11448
11456
  nA as materialStepService,
11449
11457
  iA as modelStepService,
11450
11458
  ka as moduleStepService,
11451
- j as optionService,
11459
+ V as optionService,
11452
11460
  Gs as patternImageDataCache,
11453
11461
  Y as persistenceService,
11454
11462
  sA as pictureStepService,
@@ -11461,6 +11469,6 @@ export {
11461
11469
  Pa as shortenUrl,
11462
11470
  $ as spiffCoreConfiguration,
11463
11471
  Vi as stepAspectValuesToDesignInputSteps,
11464
- K as textStepService,
11472
+ j as textStepService,
11465
11473
  Ta as toast
11466
11474
  };