@spiffcommerce/core 22.3.0 → 22.4.1

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,14 +1,14 @@
1
- import { createHttpLink as NA, InMemoryCache as vA, ApolloClient as RA, from as HA, gql as f } from "@apollo/client/core";
2
- import { fetch as ot, getAttributesFromArrayBuffer as Tt, AssetType as _e, StepType as F, getFrameData as rt, frameDataCache as UA, modifySVGColors as kA, svgToDataUrl as GA, GroupCommand as k, UpdateFramePattern as Ot, UpdateFrameThresholdSettingsCommand as bA, calculateOffsets as ct, LayoutElementType as G, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Oe, svgObjectURL as ve, fetchAsString as $, DeleteElementCommand as te, generateDefaultRectangleFrameSvg as ft, GetSVGDimensions as JA, patternImageDataCache as Ft, fetchAsArrayBuffer as TA, findElement as Re, modifySVGWithElementProperties as OA, IllustrationColorCommand as et, IllustrationCacheCommand as LA, getFontMetrics as zA, getPatternImageData as tt, FontAlignmentCommand as KA, FontColorCommand as jA, FontImageFillCommand as Ve, applyTextTransformations as At, determineCorrectFontSizeAndLines as xe, FontSourceCommand as yt, loadFont as gt, TextChangeCommand as VA, FontSizeCommand as WA, createElementNS as XA, createElement as Ie, _loadFontExternalDataURL as lt, UpdateWorkflowStateCommand as Mt, CommandContext as qA, createCanvas as He, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as St, getVariant as ZA, generateFrameSVG as $A, getDefaultVariant as Le, domParser as Wt, sanitizeSvgTree as Xt, traverse as _A, xmlSerializer as qt, CreateLayoutCommand as ea, AspectType as oe, rehydrateSerializedLayout as ae } from "@spiffcommerce/papyrus";
3
- import { AspectType as ys, AssetType as Ms, BringForwardCommand as Ss, BringToBackCommand as Ys, BringToFrontCommand as Ps, CanvasCommand as xs, CommandContext as Ns, CreateElementCommand as vs, CreateLayoutCommand as Rs, DeleteElementCommand as Hs, FontAlignmentCommand as Us, FontColorCommand as ks, FontSizeCommand as Gs, FontSourceCommand as bs, GroupCommand as Js, LayoutElementFactory as Ts, LayoutElementType as Os, MoveCommand as Ls, ResizeCommand as zs, RotateCommand as Ks, SendBackwardsCommand as js, StepAspectType as Vs, StepType as Ws, TextChangeCommand as Xs, UnitOfMeasurement as qs, UpdateImageSourceCommand as Zs, dataUrlFromExternalUrl as $s, determineCorrectFontSizeAndLines as _s, findElement as eo, frameDataCache as to, generate as Ao, generateSVGWithUnknownColors as ao, getAttributesFromArrayBuffer as no, getAxisAlignedBoundingBox as io, getFrameData as so, getSvgElement as oo, loadFont as ro, patternImageDataCache as co, registerFetchImplementation as go, registerWindowImplementation as lo, rehydrateSerializedLayout as Bo, setCanvasModule as Co, svgToDataUrl as wo } from "@spiffcommerce/papyrus";
4
- import { setContext as ta } from "@apollo/client/link/context";
5
- import { onError as Aa } from "@apollo/client/link/error";
1
+ import { createHttpLink as vA, InMemoryCache as HA, ApolloClient as UA, from as kA, gql as f } from "@apollo/client/core";
2
+ import { fetch as ot, getAttributesFromArrayBuffer as Tt, AssetType as _e, StepType as F, getFrameData as rt, frameDataCache as GA, modifySVGColors as bA, svgToDataUrl as JA, GroupCommand as k, UpdateFramePattern as Ot, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as ct, LayoutElementType as G, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Oe, svgObjectURL as ve, fetchAsString as $, DeleteElementCommand as te, generateDefaultRectangleFrameSvg as ft, GetSVGDimensions as OA, patternImageDataCache as Ft, fetchAsArrayBuffer as LA, findElement as He, modifySVGWithElementProperties as zA, IllustrationColorCommand as et, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as tt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Ve, applyTextTransformations as At, determineCorrectFontSizeAndLines as Ne, FontSourceCommand as yt, loadFont as gt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as fe, _loadFontExternalDataURL as lt, UpdateWorkflowStateCommand as Mt, CommandContext as $A, createCanvas as Ue, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as St, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as Le, domParser as Wt, sanitizeSvgTree as Xt, traverse as ta, xmlSerializer as qt, CreateLayoutCommand as Aa, AspectType as oe, rehydrateSerializedLayout as ae } from "@spiffcommerce/papyrus";
3
+ import { AspectType as ys, AssetType as Ms, BringForwardCommand as Ss, BringToBackCommand as Ys, BringToFrontCommand as Ps, CanvasCommand as xs, CommandContext as Ns, CreateElementCommand as Rs, CreateLayoutCommand as vs, DeleteElementCommand as Hs, FontAlignmentCommand as Us, FontColorCommand as ks, FontSizeCommand as Gs, FontSourceCommand as bs, GroupCommand as Js, LayoutElementFactory as Ts, LayoutElementType as Os, MoveCommand as Ls, ResizeCommand as zs, RotateCommand as Ks, SendBackwardsCommand as js, StepAspectType as Vs, StepType as Ws, TextChangeCommand as Xs, UnitOfMeasurement as qs, UpdateImageSourceCommand as Zs, dataUrlFromExternalUrl as $s, determineCorrectFontSizeAndLines as _s, findElement as eo, frameDataCache as to, generate as Ao, generateSVGWithUnknownColors as ao, getAttributesFromArrayBuffer as no, getAxisAlignedBoundingBox as io, getFrameData as so, getSvgElement as oo, loadFont as ro, patternImageDataCache as co, registerFetchImplementation as go, registerWindowImplementation as lo, rehydrateSerializedLayout as Bo, setCanvasModule as Co, svgToDataUrl as wo } from "@spiffcommerce/papyrus";
4
+ import { setContext as aa } from "@apollo/client/link/context";
5
+ import { onError as na } from "@apollo/client/link/error";
6
6
  import { Pith as Zt } from "pith";
7
7
  import $t from "lodash.debounce";
8
8
  import _t from "lodash.isequal";
9
9
  import he from "lodash.clonedeep";
10
10
  import { toString as eA } from "qrcode";
11
- import aa from "fuse.js";
11
+ import ia from "fuse.js";
12
12
  import { split as at } from "unicode-default-word-boundary";
13
13
  import Bt from "svg-path-bbox";
14
14
  import Yt from "lodash.chunk";
@@ -17,32 +17,32 @@ class tA extends Error {
17
17
  super(e), this.name = this.constructor.name;
18
18
  }
19
19
  }
20
- class pe extends tA {
20
+ class De extends tA {
21
21
  constructor(e) {
22
22
  super(`ConfigurationError - ${e}`);
23
23
  }
24
24
  }
25
- class Ue extends pe {
25
+ class ke extends De {
26
26
  constructor(e) {
27
27
  super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
28
28
  }
29
29
  }
30
- class z extends pe {
30
+ class z extends De {
31
31
  constructor(e) {
32
32
  super(`Panel not Found: ${e.panelId}`), this.panelId = (e == null ? void 0 : e.panelId) || "N/A";
33
33
  }
34
34
  }
35
- class Ae extends pe {
35
+ class Ae extends De {
36
36
  constructor(e) {
37
37
  super(`Asset not found for variant: ${e.name}`), this.variant = e;
38
38
  }
39
39
  }
40
- class ue extends pe {
40
+ class ue extends De {
41
41
  constructor(e) {
42
42
  super(`Resource not found for asset: ${e.name}`), this.asset = e;
43
43
  }
44
44
  }
45
- class ke extends pe {
45
+ class Ge extends De {
46
46
  constructor(e, t) {
47
47
  super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
48
48
  }
@@ -57,7 +57,7 @@ class b extends ze {
57
57
  super(`Unhandled Behavior Encountered: ${e}`);
58
58
  }
59
59
  }
60
- class de extends ze {
60
+ class Ce extends ze {
61
61
  constructor(e) {
62
62
  super(`Parsing Error: ${e}`);
63
63
  }
@@ -72,7 +72,7 @@ class Ke extends ze {
72
72
  super(`Resource Generation Failed: ${e}`);
73
73
  }
74
74
  }
75
- class na {
75
+ class sa {
76
76
  get(e) {
77
77
  return localStorage.getItem(e) || void 0;
78
78
  }
@@ -115,14 +115,14 @@ class Pt {
115
115
  this.set(e, A);
116
116
  }
117
117
  }
118
- const ia = () => {
118
+ const oa = () => {
119
119
  try {
120
- return localStorage ? new na() : new Pt();
120
+ return localStorage ? new sa() : new Pt();
121
121
  } catch {
122
122
  return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Pt();
123
123
  }
124
- }, Y = ia();
125
- class sa {
124
+ }, Y = oa();
125
+ class ra {
126
126
  constructor() {
127
127
  this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
128
128
  }
@@ -148,32 +148,32 @@ class sa {
148
148
  this.serverUrlCallbacks.push(e);
149
149
  }
150
150
  }
151
- const q = new sa();
151
+ const q = new ra();
152
152
  let AA;
153
153
  const xt = (c) => {
154
154
  AA = c;
155
155
  };
156
- let Ct;
157
- const oa = (c) => {
158
- Ct = c;
159
- }, ra = () => Ct;
160
- let aA;
156
+ let dt;
161
157
  const ca = (c) => {
158
+ dt = c;
159
+ }, ga = () => dt;
160
+ let aA;
161
+ const la = (c) => {
162
162
  aA = c;
163
- }, ga = () => new Promise((c) => {
163
+ }, Ba = () => new Promise((c) => {
164
164
  const e = q.getHubUrl(), t = (A) => {
165
165
  A.origin === e && (window.removeEventListener("message", t), c(A.data));
166
166
  };
167
167
  window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
168
- }), la = async () => {
168
+ }), da = async () => {
169
169
  const c = {
170
- applicationKey: Ct,
170
+ applicationKey: dt,
171
171
  customerToken: AA,
172
172
  bearer: aA
173
173
  };
174
- return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await ga(), ...c } : c;
174
+ return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...c } : c;
175
175
  };
176
- class Ba {
176
+ class Ca {
177
177
  constructor() {
178
178
  this.shadowGraphqlClient = this.constructShadowGraphqlClient(), q.addServerUrlCallback(() => {
179
179
  this.shadowGraphqlClient = this.constructShadowGraphqlClient();
@@ -183,27 +183,27 @@ class Ba {
183
183
  return this.shadowGraphqlClient;
184
184
  }
185
185
  constructShadowGraphqlClient() {
186
- const e = NA({
186
+ const e = vA({
187
187
  uri: `${q.getServerUrl()}/graphql`,
188
188
  fetch: ot
189
- }), t = ta(async (i, s) => {
190
- const { headers: o } = s, r = o || {}, g = await la(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, C = s.activeIntegration ?? g.activeIntegration, d = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, w = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
189
+ }), t = aa(async (i, s) => {
190
+ const { headers: o } = s, r = o || {}, g = await da(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, C = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, w = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
191
191
  try {
192
192
  if (window && window.__SENTRY__) {
193
193
  const h = window.__SENTRY__.hub;
194
194
  if (h) {
195
195
  const I = h.traceHeaders();
196
- Object.entries(I).forEach(([Q, p]) => {
197
- r[Q] = p;
196
+ Object.entries(I).forEach(([D, m]) => {
197
+ r[D] = m;
198
198
  });
199
199
  }
200
200
  }
201
201
  } catch {
202
202
  }
203
- return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), C && (r.activeIntegration = C), d && (r.transactionOwnerId = d), E && (r.customerToken = E), w && (r["X-Application-Key"] = w), u && (r.bundleOwnerId = u), {
203
+ return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), E && (r.customerToken = E), w && (r["X-Application-Key"] = w), u && (r.bundleOwnerId = u), {
204
204
  headers: r
205
205
  };
206
- }), A = Aa(({ operation: i, graphQLErrors: s, networkError: o }) => {
206
+ }), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
207
207
  const r = s || [];
208
208
  o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + i.operationName));
209
209
  });
@@ -217,7 +217,7 @@ class Ba {
217
217
  }
218
218
  };
219
219
  }
220
- const n = new vA({
220
+ const n = new HA({
221
221
  addTypename: !1,
222
222
  typePolicies: {
223
223
  Transaction: {
@@ -251,22 +251,22 @@ class Ba {
251
251
  }
252
252
  }
253
253
  });
254
- return new RA({
255
- link: HA([A, t, e]),
254
+ return new UA({
255
+ link: kA([A, t, e]),
256
256
  cache: n,
257
257
  name: "Core"
258
258
  });
259
259
  }
260
260
  }
261
- const P = new Ba(), Ca = f`
261
+ const P = new Ca(), wa = f`
262
262
  fragment AssetMetadataFields on Asset {
263
263
  metadata {
264
264
  key
265
265
  value
266
266
  }
267
267
  }
268
- `, De = (c) => f`
269
- ${c && Ca || ""}
268
+ `, Ie = (c) => f`
269
+ ${c && wa || ""}
270
270
  fragment AssetFields on Asset {
271
271
  name
272
272
  key
@@ -280,14 +280,14 @@ const P = new Ba(), Ca = f`
280
280
  }
281
281
  ${c && "...AssetMetadataFields" || ""}
282
282
  }
283
- `, da = f`
284
- ${De(!1)}
283
+ `, Ea = f`
284
+ ${Ie(!1)}
285
285
  query GetAssets($keys: [String]!) {
286
286
  assets(keys: $keys) {
287
287
  ...AssetFields
288
288
  }
289
289
  }
290
- `, dt = f`
290
+ `, Ct = f`
291
291
  fragment MaterialFields on Material {
292
292
  id
293
293
  name
@@ -334,14 +334,14 @@ const P = new Ba(), Ca = f`
334
334
  fileLink
335
335
  }
336
336
  }
337
- `, wa = f`
338
- ${dt}
337
+ `, ha = f`
338
+ ${Ct}
339
339
  query GetMaterials($ids: [String]) {
340
340
  materials(id: $ids) {
341
341
  ...MaterialFields
342
342
  }
343
343
  }
344
- `, Ea = f`
344
+ `, ua = f`
345
345
  mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
346
346
  assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
347
347
  uploadUrl
@@ -355,31 +355,31 @@ const P = new Ba(), Ca = f`
355
355
  }
356
356
  }
357
357
  }
358
- `, ha = f`
359
- ${De(!1)}
358
+ `, Qa = f`
359
+ ${Ie(!1)}
360
360
  mutation RemoveBackgroundFromAsset($key: String!) {
361
361
  assetRemoveBackground(key: $key) {
362
362
  ...AssetFields
363
363
  }
364
364
  }
365
365
  `, nt = async (c) => (await P.getShadowGraphqlClient().query({
366
- query: da,
366
+ query: Ea,
367
367
  errorPolicy: "all",
368
368
  fetchPolicy: "no-cache",
369
369
  variables: {
370
370
  keys: c
371
371
  }
372
- })).data.assets, ua = async (c) => (await P.getShadowGraphqlClient().query({
373
- query: wa,
372
+ })).data.assets, ma = async (c) => (await P.getShadowGraphqlClient().query({
373
+ query: ha,
374
374
  errorPolicy: "all",
375
375
  fetchPolicy: "no-cache",
376
376
  variables: {
377
377
  ids: c
378
378
  }
379
- })).data.materials, Qa = async (c, e, t, A, a) => {
379
+ })).data.materials, pa = async (c, e, t, A, a) => {
380
380
  var i;
381
381
  return (i = (await P.getShadowGraphqlClient().mutate({
382
- mutation: Ea,
382
+ mutation: ua,
383
383
  errorPolicy: "all",
384
384
  fetchPolicy: "no-cache",
385
385
  variables: {
@@ -391,7 +391,7 @@ const P = new Ba(), Ca = f`
391
391
  }
392
392
  })).data) == null ? void 0 : i.assetCreate;
393
393
  };
394
- class ma {
394
+ class Da {
395
395
  constructor() {
396
396
  this.cache = /* @__PURE__ */ new Map(), this.bgrmProcessCache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (e) => {
397
397
  const t = await e.arrayBuffer(), A = await Tt(t), a = (n, i) => {
@@ -458,7 +458,7 @@ class ma {
458
458
  async getMaterialLocalOrFromServer(e) {
459
459
  if (this.materialCache.has(e))
460
460
  return this.materialCache.get(e);
461
- const A = (async () => (await ua([e]))[0])();
461
+ const A = (async () => (await ma([e]))[0])();
462
462
  return this.materialCache.set(e, A), A;
463
463
  }
464
464
  /**
@@ -507,7 +507,7 @@ class ma {
507
507
  const a = (async () => {
508
508
  var i, s;
509
509
  const n = await P.getShadowGraphqlClient().mutate({
510
- mutation: ha,
510
+ mutation: Qa,
511
511
  fetchPolicy: "no-cache",
512
512
  errorPolicy: "all",
513
513
  variables: {
@@ -541,7 +541,7 @@ class ma {
541
541
  * @param assetType The type of asset we're expecting to upload
542
542
  */
543
543
  async dispatchCreateAssetRequest(e, t, A, a) {
544
- const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await Qa(e.name, t, n, A, a);
544
+ const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await pa(e.name, t, n, A, a);
545
545
  if (i)
546
546
  return {
547
547
  assetResponse: i,
@@ -648,8 +648,8 @@ class K {
648
648
  Y.setMap(Nt, e);
649
649
  }
650
650
  }
651
- const U = new ma();
652
- class pa {
651
+ const U = new Da();
652
+ class Ia {
653
653
  constructor() {
654
654
  this.cache = {}, this.disabled = !1;
655
655
  }
@@ -680,7 +680,7 @@ class pa {
680
680
  this.disabled = e;
681
681
  }
682
682
  }
683
- const Qe = new pa(), iA = f`
683
+ const Qe = new Ia(), iA = f`
684
684
  fragment OptionFields on Option {
685
685
  id
686
686
  name
@@ -720,18 +720,18 @@ const Qe = new pa(), iA = f`
720
720
  ...AssetFields
721
721
  }
722
722
  }
723
- `, Da = f`
724
- ${De(!1)}
725
- ${dt}
723
+ `, fa = f`
724
+ ${Ie(!1)}
725
+ ${Ct}
726
726
  ${iA}
727
727
  query GetOptions($ids: [String]!) {
728
728
  options(ids: $ids) {
729
729
  ...OptionFields
730
730
  }
731
731
  }
732
- `, Ia = async (c) => {
732
+ `, Fa = async (c) => {
733
733
  const e = await P.getShadowGraphqlClient().query({
734
- query: Da,
734
+ query: fa,
735
735
  errorPolicy: "all",
736
736
  fetchPolicy: "no-cache",
737
737
  variables: {
@@ -744,16 +744,16 @@ const Qe = new pa(), iA = f`
744
744
  n.asset && U.cacheAsset(n.asset), n.displayImage && U.cacheAsset(n.displayImage), n.thumbnail && U.cacheAsset(n.thumbnail), n.material && U.cacheMaterial(n.material);
745
745
  });
746
746
  }), e.data.options;
747
- }, fa = async (c, e) => (await e).find((A) => A.id === c), Fa = async (c) => {
747
+ }, ya = async (c, e) => (await e).find((A) => A.id === c), Ma = async (c) => {
748
748
  const e = c.map((i) => Qe.get({ id: i })), t = c.filter((i, s) => e[s] === void 0);
749
749
  if (t.length === 0)
750
750
  return Promise.all(e);
751
- const A = Ia(t), a = t.map(
752
- (i) => Qe.set({ id: i }, fa(i, A))
751
+ const A = Fa(t), a = t.map(
752
+ (i) => Qe.set({ id: i }, ya(i, A))
753
753
  ), n = e.filter((i) => i !== void 0);
754
754
  return await Promise.all(n.concat(a));
755
755
  };
756
- class ya {
756
+ class Sa {
757
757
  constructor() {
758
758
  this.getDisplayImageSource = (e) => {
759
759
  var t;
@@ -774,7 +774,7 @@ class ya {
774
774
  */
775
775
  async getOption(e) {
776
776
  return (async () => {
777
- const a = (await Fa([e]))[0];
777
+ const a = (await Ma([e]))[0];
778
778
  if (a)
779
779
  return a;
780
780
  })();
@@ -806,8 +806,8 @@ class ya {
806
806
  }
807
807
  }
808
808
  }
809
- const j = new ya();
810
- var Ma = /* @__PURE__ */ ((c) => (c.Hyperlink = "Hyperlink", c.Edit = "Edit", c.Approve = "Approve", c))(Ma || {}), Sa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(Sa || {}), wt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(wt || {}), Ya = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(Ya || {}), Pa = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(Pa || {}), xa = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(xa || {}), Ge = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ge || {});
809
+ const j = new Sa();
810
+ var Ya = /* @__PURE__ */ ((c) => (c.Hyperlink = "Hyperlink", c.Edit = "Edit", c.Approve = "Approve", c))(Ya || {}), Pa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(Pa || {}), wt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(wt || {}), xa = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(xa || {}), Na = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(Na || {}), Ra = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(Ra || {}), be = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(be || {});
811
811
  const sA = f`
812
812
  fragment ActiveIntegrationFields on Integration {
813
813
  id
@@ -825,7 +825,7 @@ const sA = f`
825
825
  activeAddons
826
826
  }
827
827
  }
828
- `, Na = f`
828
+ `, va = f`
829
829
  ${sA}
830
830
  query GetCurrentIntegration {
831
831
  currentIntegration {
@@ -850,7 +850,7 @@ const sA = f`
850
850
  preloadImageUrl
851
851
  }
852
852
  }
853
- `, vt = f`
853
+ `, Rt = f`
854
854
  ${ge}
855
855
  mutation CreateTransaction(
856
856
  $integrationProductId: String
@@ -946,7 +946,7 @@ const sA = f`
946
946
  }
947
947
  }
948
948
  }
949
- `, va = f`
949
+ `, Ha = f`
950
950
  ${ge}
951
951
  mutation CreateTransactions(
952
952
  $inputs: [TransactionCreateInput]!
@@ -1032,7 +1032,7 @@ const sA = f`
1032
1032
  }
1033
1033
  }
1034
1034
  }
1035
- `, Ra = f`
1035
+ `, Ua = f`
1036
1036
  ${ge}
1037
1037
  mutation ClaimTransaction($id: String!) {
1038
1038
  transactionClaim(id: $id) {
@@ -1127,7 +1127,7 @@ const sA = f`
1127
1127
  precedence
1128
1128
  url
1129
1129
  }
1130
- `, fe = f`
1130
+ `, Fe = f`
1131
1131
  ${ge}
1132
1132
  ${oA}
1133
1133
  ${rA}
@@ -1267,19 +1267,19 @@ const sA = f`
1267
1267
  }
1268
1268
  }
1269
1269
  }
1270
- `, Ha = f`
1270
+ `, ka = f`
1271
1271
  mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
1272
1272
  transactionUpdate(id: $id, workflowState: $workflowState) {
1273
1273
  id
1274
1274
  }
1275
1275
  }
1276
- `, Ua = f`
1276
+ `, Ga = f`
1277
1277
  mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
1278
1278
  transactionUpdate(id: $id, workflowId: $workflowId) {
1279
1279
  id
1280
1280
  }
1281
1281
  }
1282
- `, ka = f`
1282
+ `, ba = f`
1283
1283
  mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
1284
1284
  transactionUpdate(id: $id, quantity: $quantity) {
1285
1285
  id
@@ -1332,7 +1332,7 @@ f`
1332
1332
  }
1333
1333
  }
1334
1334
  `;
1335
- const Ga = f`
1335
+ const Ja = f`
1336
1336
  ${rA}
1337
1337
  query ReadTransactionForShareActions($id: String!) {
1338
1338
  transactions(ids: [$id]) {
@@ -1412,14 +1412,14 @@ const Ga = f`
1412
1412
  }
1413
1413
  }
1414
1414
  }
1415
- `, ba = f`
1415
+ `, Ta = f`
1416
1416
  ${gA}
1417
1417
  query GetIntegrationProducts($ids: [String!]!) {
1418
1418
  integrationProducts(ids: $ids) {
1419
1419
  ...IntegrationProductFields
1420
1420
  }
1421
1421
  }
1422
- `, Ja = f`
1422
+ `, Oa = f`
1423
1423
  ${gA}
1424
1424
  query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
1425
1425
  integrationProductFromExternalIds(
@@ -1429,7 +1429,7 @@ const Ga = f`
1429
1429
  ...IntegrationProductFields
1430
1430
  }
1431
1431
  }
1432
- `, Ta = f`
1432
+ `, La = f`
1433
1433
  ${oA}
1434
1434
  query ReadTransactionForStakeholders($id: String!) {
1435
1435
  transactions(ids: [$id]) {
@@ -1441,7 +1441,7 @@ const Ga = f`
1441
1441
  }
1442
1442
  }
1443
1443
  }
1444
- `, Be = [F.SilentIllustration, F.ProductOverlay], Oa = async (c) => {
1444
+ `, Be = [F.SilentIllustration, F.ProductOverlay], za = async (c) => {
1445
1445
  const e = [];
1446
1446
  c.introduction && e.push({
1447
1447
  name: "Introduction",
@@ -1459,7 +1459,7 @@ const Ga = f`
1459
1459
  silentSteps: []
1460
1460
  });
1461
1461
  for (const A of c.steps) {
1462
- const a = La(A.stepName, c.stepGroups);
1462
+ const a = Ka(A.stepName, c.stepGroups);
1463
1463
  if (!a)
1464
1464
  e.push({
1465
1465
  name: A.stepName,
@@ -1496,7 +1496,7 @@ const Ga = f`
1496
1496
  ],
1497
1497
  silentSteps: []
1498
1498
  }), e;
1499
- }, La = (c, e) => e.find((t) => t.stepNames.includes(c)), re = (c, e) => (c.conditions || []).every((t) => {
1499
+ }, Ka = (c, e) => e.find((t) => t.stepNames.includes(c)), re = (c, e) => (c.conditions || []).every((t) => {
1500
1500
  const A = e[t.targetStepName];
1501
1501
  if (A && A.selectedVariants) {
1502
1502
  const a = A.selectedVariants;
@@ -1505,7 +1505,7 @@ const Ga = f`
1505
1505
  );
1506
1506
  }
1507
1507
  return !1;
1508
- }), za = (c, e) => {
1508
+ }), ja = (c, e) => {
1509
1509
  const t = {
1510
1510
  name: c.name,
1511
1511
  title: c.title,
@@ -1513,7 +1513,7 @@ const Ga = f`
1513
1513
  silentSteps: c.silentSteps.filter((A) => re(A, e))
1514
1514
  };
1515
1515
  return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
1516
- }, se = (c, e) => c.map((t) => za(t, e)).filter((t) => t !== null), Ka = async (c, e, t = !1) => {
1516
+ }, se = (c, e) => c.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (c, e, t = !1) => {
1517
1517
  var i;
1518
1518
  const A = se(c, e), a = [];
1519
1519
  for (const s of A)
@@ -1605,21 +1605,21 @@ class BA {
1605
1605
  }
1606
1606
  }
1607
1607
  }
1608
- function ja(c, e, t, A) {
1608
+ function Wa(c, e, t, A) {
1609
1609
  const a = t.width * c.zoom, n = t.height * c.zoom;
1610
1610
  if (A) {
1611
1611
  const s = c, o = Math.max(e.width / t.width, e.height / t.height);
1612
1612
  s.zoom = Math.max(o, c.zoom);
1613
1613
  const r = t.width * s.zoom, g = t.height * s.zoom;
1614
- return s.x = Fe(c.x, e.width - r, 0), s.y = Fe(c.y, e.height - g, 0), s;
1614
+ return s.x = ye(c.x, e.width - r, 0), s.y = ye(c.y, e.height - g, 0), s;
1615
1615
  }
1616
1616
  const i = c;
1617
- return i.x = Fe(i.x, -a, e.width), i.y = Fe(i.y, -n, e.height), i;
1617
+ return i.x = ye(i.x, -a, e.width), i.y = ye(i.y, -n, e.height), i;
1618
1618
  }
1619
- function Fe(c, e, t) {
1619
+ function ye(c, e, t) {
1620
1620
  return Math.min(Math.max(c, e), t);
1621
1621
  }
1622
- class Va {
1622
+ class Xa {
1623
1623
  constructor(e) {
1624
1624
  this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = $t(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = {
1625
1625
  useThreshold: !1,
@@ -1676,7 +1676,7 @@ class Va {
1676
1676
  return;
1677
1677
  }
1678
1678
  e.forEach((t, A) => {
1679
- const a = UA.get(t);
1679
+ const a = GA.get(t);
1680
1680
  a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
1681
1681
  });
1682
1682
  }
@@ -1694,8 +1694,8 @@ class Va {
1694
1694
  getImageSrc() {
1695
1695
  if (this.imageData) {
1696
1696
  if (this.imageData.svg) {
1697
- const e = kA(this.imageData.svg, this.imageData.colors || {}, !1);
1698
- return GA(e);
1697
+ const e = bA(this.imageData.svg, this.imageData.colors || {}, !1);
1698
+ return JA(e);
1699
1699
  }
1700
1700
  return this.imageData.src;
1701
1701
  }
@@ -1762,7 +1762,7 @@ class Va {
1762
1762
  return;
1763
1763
  }
1764
1764
  (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((i, s) => {
1765
- this.offsets[s] = ja(e[s], i, this.imageData, this.forceImageCover);
1765
+ this.offsets[s] = Wa(e[s], i, this.imageData, this.forceImageCover);
1766
1766
  }), this._debouncedUpdateFrameOffsets(
1767
1767
  this.offsets,
1768
1768
  a,
@@ -1806,7 +1806,7 @@ class Va {
1806
1806
  i(
1807
1807
  new k([
1808
1808
  new Ot(s, t, e[o]),
1809
- new bA(
1809
+ new TA(
1810
1810
  s,
1811
1811
  a.useThreshold,
1812
1812
  a.invertThreshold,
@@ -1836,7 +1836,7 @@ class Va {
1836
1836
  }), this._debouncedUpdateFrameOffsets(this.offsets, e, this.frameData, this.thresholdSettings));
1837
1837
  }
1838
1838
  }
1839
- class Rt {
1839
+ class vt {
1840
1840
  constructor(e, t, A) {
1841
1841
  this.processRegion = async (a) => {
1842
1842
  var o, r, g, B;
@@ -1847,14 +1847,14 @@ class Rt {
1847
1847
  if (this.configuration.type === F.ProductOverlay) {
1848
1848
  let l = "";
1849
1849
  if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1850
- throw new ke(this.configuration, "Couldn't find an asset for product overlay step");
1850
+ throw new Ge(this.configuration, "Couldn't find an asset for product overlay step");
1851
1851
  }
1852
1852
  const s = this.evaluateAssetType();
1853
1853
  if (s === G.Image) {
1854
1854
  const l = this.configuration.type === F.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
1855
1855
  if (!l)
1856
1856
  throw new Error("Undefined raster silent step source");
1857
- const C = {
1857
+ const d = {
1858
1858
  stepName: this.configuration.stepName,
1859
1859
  id: J(),
1860
1860
  src: l,
@@ -1873,13 +1873,13 @@ class Rt {
1873
1873
  };
1874
1874
  return {
1875
1875
  regionElement: {
1876
- id: C.id,
1876
+ id: d.id,
1877
1877
  region: a
1878
1878
  },
1879
- command: new O(C, n)
1879
+ command: new O(d, n)
1880
1880
  };
1881
1881
  } else {
1882
- const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, d = await Oe(await (async () => new Promise((w, u) => {
1882
+ const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Oe(await (async () => new Promise((w, u) => {
1883
1883
  if (!l) {
1884
1884
  u("Undefined vector silent step source");
1885
1885
  return;
@@ -1890,10 +1890,10 @@ class Rt {
1890
1890
  }))()), E = {
1891
1891
  stepName: this.configuration.stepName,
1892
1892
  id: J(),
1893
- cachedObjectURL: await ve(d.svg),
1893
+ cachedObjectURL: await ve(C.svg),
1894
1894
  src: l,
1895
- svg: d.svg,
1896
- colors: d.colors,
1895
+ svg: C.svg,
1896
+ colors: C.colors,
1897
1897
  type: s,
1898
1898
  y: a.top,
1899
1899
  x: a.left,
@@ -1918,7 +1918,7 @@ class Rt {
1918
1918
  }
1919
1919
  async trigger() {
1920
1920
  if (!this.configuration.data.regions)
1921
- throw new ke(this.configuration, "Missing regions.");
1921
+ throw new Ge(this.configuration, "Missing regions.");
1922
1922
  if (this.configuration.type === F.SilentIllustration) {
1923
1923
  const e = this.configuration.data.regions.map(this.processRegion);
1924
1924
  return Promise.all(e);
@@ -1937,7 +1937,7 @@ class Rt {
1937
1937
  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;
1938
1938
  }
1939
1939
  }
1940
- const Wa = async (c) => {
1940
+ const qa = async (c) => {
1941
1941
  const e = `${q.getServicesApiUrl()}/shortener`;
1942
1942
  try {
1943
1943
  return (await (await fetch(e, {
@@ -1951,7 +1951,7 @@ const Wa = async (c) => {
1951
1951
  throw console.error(t), new Ke("Failed to shorten URL, see console.");
1952
1952
  }
1953
1953
  };
1954
- class CA {
1954
+ class dA {
1955
1955
  async poll() {
1956
1956
  try {
1957
1957
  if (await this.predicate()) {
@@ -1974,7 +1974,7 @@ class CA {
1974
1974
  this.onSuccess = t, this.onFailure = A, this.predicate = e, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts = n, this.poll();
1975
1975
  }
1976
1976
  }
1977
- class Xa {
1977
+ class Za {
1978
1978
  async init(e, t, A) {
1979
1979
  return A && await this.reload(e, t, A), null;
1980
1980
  }
@@ -1992,49 +1992,46 @@ class Xa {
1992
1992
  });
1993
1993
  });
1994
1994
  }
1995
- async regenerateQRCode(e, t, A, a, n, i, s, o, r) {
1996
- if (!t && A !== "" && a === "") {
1997
- const g = async () => {
1998
- var Q, p;
1999
- const h = (await nt([A]))[0], I = (p = (Q = h == null ? void 0 : h.versions) == null ? void 0 : Q.find((m) => m.name === "mpeg4")) == null ? void 0 : p.link;
2000
- return { asset: h, link: I };
2001
- }, B = await new Promise((h, I) => {
2002
- new CA(
2003
- async () => !!(await g()).link,
2004
- async () => {
2005
- const Q = await g();
2006
- if (!Q.link || !Q.link)
2007
- throw new ue(Q.asset);
2008
- h({
2009
- rel: "mpeg4",
2010
- href: Q.link
2011
- });
2012
- },
2013
- () => {
2014
- I("Poller timed out with 40 attempts @ 3 second interval");
2015
- },
2016
- 3e3,
2017
- 40
2018
- );
2019
- });
2020
- e.forEach((h) => o(new te(h.id)));
2021
- const l = i.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", C = new URL(l + i.data.baseUrl);
2022
- C.searchParams.append("video", btoa(JSON.stringify([B]))), C.pathname = C.pathname + (C.pathname.slice(-1) === "/" ? "" : "/");
2023
- const d = C.toString();
2024
- if (d.length >= 2e3)
2025
- throw new Ke("Cannot create QR code, URL too long.");
2026
- const E = await Wa(d);
2027
- if (s(E), !i.data || !i.data.regions)
2028
- throw new ke(i, "Missing regions.");
2029
- const w = await this.regionElements(i), u = await this.command(E, w, n, i.stepName);
2030
- u && (u.command && n.getCommandDispatcher()(u.command), u.followup && await u.followup()), await n.setSelectionsAndElements(i.stepName, [], w, async () => {
2031
- n.updateStorage(i.stepName, {
2032
- videoShortUrl: E,
2033
- videoUrl: a
2034
- }), r(!1);
1995
+ async regenerateQRCode(e, t, A, a) {
1996
+ const n = async () => {
1997
+ var E, w;
1998
+ const d = (await nt([t]))[0], C = (w = (E = d == null ? void 0 : d.versions) == null ? void 0 : E.find((u) => u.name === "mpeg4")) == null ? void 0 : w.link;
1999
+ return { asset: d, link: C };
2000
+ }, i = await new Promise((d, C) => {
2001
+ new dA(
2002
+ async () => !!(await n()).link,
2003
+ async () => {
2004
+ const E = await n();
2005
+ if (!E.link || !E.link)
2006
+ throw new ue(E.asset);
2007
+ d({
2008
+ rel: "mpeg4",
2009
+ href: E.link
2010
+ });
2011
+ },
2012
+ () => {
2013
+ C("Poller timed out with 40 attempts @ 3 second interval");
2014
+ },
2015
+ 3e3,
2016
+ 40
2017
+ );
2018
+ });
2019
+ e.forEach((d) => A.getCommandDispatcher()(new te(d.id)));
2020
+ const s = a.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", o = new URL(s + a.data.baseUrl);
2021
+ o.searchParams.append("video", btoa(JSON.stringify([i]))), o.pathname = o.pathname + (o.pathname.slice(-1) === "/" ? "" : "/");
2022
+ const r = o.toString();
2023
+ if (r.length >= 2e3)
2024
+ throw new Ke("Cannot create QR code, URL too long.");
2025
+ const g = await qa(r);
2026
+ if (!a.data || !a.data.regions)
2027
+ throw new Ge(a, "Missing regions.");
2028
+ const B = await this.regionElements(a), l = await this.command(g, B, A, a.stepName);
2029
+ return l && (l.command && A.getCommandDispatcher()(l.command), l.followup && await l.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
2030
+ A.updateStorage(a.stepName, {
2031
+ videoShortUrl: g,
2032
+ videoUrl: i.href
2035
2033
  });
2036
- } else
2037
- r(!1);
2034
+ }), g;
2038
2035
  }
2039
2036
  async regionElements(e) {
2040
2037
  const t = (A) => ({ id: J(), region: A });
@@ -2069,7 +2066,7 @@ class Xa {
2069
2066
  } };
2070
2067
  }
2071
2068
  }
2072
- const qa = new Xa(), me = [
2069
+ const CA = new Za(), me = [
2073
2070
  "Yellow C",
2074
2071
  "Yellow 012 C",
2075
2072
  "Orange 021 C",
@@ -4762,12 +4759,12 @@ function Es(c) {
4762
4759
  const e = me.indexOf(c);
4763
4760
  return e >= 0 ? ce[e] : "";
4764
4761
  }
4765
- function Za(c) {
4762
+ function $a(c) {
4766
4763
  const e = ce.indexOf(c);
4767
4764
  return e >= 0 ? me[e] : "";
4768
4765
  }
4769
4766
  function hs(c, e = 64) {
4770
- const t = [], A = [], a = Za(c);
4767
+ const t = [], A = [], a = $a(c);
4771
4768
  a && t.push({
4772
4769
  pms: a,
4773
4770
  hex: c,
@@ -4784,27 +4781,27 @@ function hs(c, e = 64) {
4784
4781
  A[B] <= e && !t.some((l) => l.pms === me[B]) && t.push({ pms: me[B], hex: ce[B], distance: A[B] });
4785
4782
  return t.sort((B, l) => B.distance - l.distance);
4786
4783
  }
4787
- const $a = me.map((c, e) => ({ pms: c, hex: ce[e] })), _a = new aa($a, { keys: ["pms"] });
4784
+ const _a = me.map((c, e) => ({ pms: c, hex: ce[e] })), en = new ia(_a, { keys: ["pms"] });
4788
4785
  function us(c, e) {
4789
- return _a.search(c, e ? { limit: e } : void 0);
4786
+ return en.search(c, e ? { limit: e } : void 0);
4790
4787
  }
4791
- let Ce = null;
4792
- function en(c) {
4788
+ let de = null;
4789
+ function tn(c) {
4793
4790
  if (c.startsWith("#"))
4794
4791
  return Ht(c);
4795
4792
  if (!document)
4796
4793
  throw new Error("browserColorToHex is only supported on browsers");
4797
- if (Ce || (Ce = document.createElement("canvas").getContext("2d")), !Ce)
4794
+ if (de || (de = document.createElement("canvas").getContext("2d")), !de)
4798
4795
  throw new Error("Failed to create canvas context required to convert colors");
4799
- Ce.fillStyle = c;
4800
- const e = Ht(Ce.fillStyle);
4796
+ de.fillStyle = c;
4797
+ const e = Ht(de.fillStyle);
4801
4798
  return e || console.error(`Unknown browser color ${c}`), e;
4802
4799
  }
4803
4800
  function Ht(c) {
4804
4801
  const e = c.substring(1).toUpperCase();
4805
4802
  return e.length === 6 ? e : e.length === 3 ? `${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}` : "";
4806
4803
  }
4807
- class tn {
4804
+ class An {
4808
4805
  constructor() {
4809
4806
  this.frameSourceSvg = async (e, t) => {
4810
4807
  if (!e)
@@ -4862,10 +4859,10 @@ class tn {
4862
4859
  }
4863
4860
  if (a) {
4864
4861
  const g = async () => {
4865
- var d, E, w, u, h;
4866
- const B = (d = a.storage) == null ? void 0 : d.colors, l = (E = a.storage) == null ? void 0 : E.framePatternSrc, C = (w = a.storage) == null ? void 0 : w.frameOffsetsList;
4862
+ var C, E, w, u, h;
4863
+ const B = (C = a.storage) == null ? void 0 : C.colors, l = (E = a.storage) == null ? void 0 : E.framePatternSrc, d = (w = a.storage) == null ? void 0 : w.frameOffsetsList;
4867
4864
  if (t.updateMetadata(e.stepName, {
4868
- frameOffsetsList: C,
4865
+ frameOffsetsList: d,
4869
4866
  framePatternSrc: l
4870
4867
  }), l) {
4871
4868
  const I = (u = t.getStepSpecificServices(e.stepName)) == null ? void 0 : u.frameService;
@@ -4875,27 +4872,27 @@ class tn {
4875
4872
  framePatternSrc: l
4876
4873
  }), this.validateColorCount(e, t);
4877
4874
  }
4878
- if (C != null && C.some((I) => I.zoom)) {
4875
+ if (d != null && d.some((I) => I.zoom)) {
4879
4876
  const I = (h = t.getStepSpecificServices(e.stepName)) == null ? void 0 : h.frameService;
4880
4877
  if (!I)
4881
4878
  throw new Error("Frame service unavailable, cannot load pattern!");
4882
- I.updateOffsets(C);
4879
+ I.updateOffsets(d);
4883
4880
  }
4884
4881
  t.setMandatoryFulfilled(e.stepName, !0);
4885
4882
  };
4886
4883
  if (a.selectedVariants && a.selectedVariants.length > 0) {
4887
4884
  const B = a.selectedVariants[0].id;
4888
4885
  if (e.option && B) {
4889
- const l = (r = e.option.variants) == null ? void 0 : r.find((C) => C.id === B);
4886
+ const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
4890
4887
  l && await t.setSelectionsAndElements(
4891
4888
  e.stepName,
4892
4889
  [l],
4893
4890
  o,
4894
4891
  async () => {
4895
- const C = await Promise.all(
4896
- e.data.regions.map((d) => this.frameSourceSvg(l, d))
4892
+ const d = await Promise.all(
4893
+ e.data.regions.map((C) => this.frameSourceSvg(l, C))
4897
4894
  );
4898
- t.updateStorage(e.stepName, { currentFrameSources: C }), await g();
4895
+ t.updateStorage(e.stepName, { currentFrameSources: d }), await g();
4899
4896
  }
4900
4897
  );
4901
4898
  }
@@ -4922,10 +4919,10 @@ class tn {
4922
4919
  const s = t.fileLink || "";
4923
4920
  return s.endsWith(".pdf") || s.endsWith(".eps") || s.endsWith(".ai") ? new Promise((r) => {
4924
4921
  A.addPoller(
4925
- new CA(
4922
+ new dA(
4926
4923
  async () => {
4927
- var C;
4928
- const B = (C = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : C.find((d) => d.name === "svg");
4924
+ var d;
4925
+ const B = (d = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : d.find((C) => C.name === "svg");
4929
4926
  return B ? (await fetch(B.link)).status === 200 : !1;
4930
4927
  },
4931
4928
  () => {
@@ -4983,7 +4980,7 @@ class tn {
4983
4980
  }
4984
4981
  async loadPatternFromString(e, t, A = !0, a = void 0, n) {
4985
4982
  if (e.endsWith("svg")) {
4986
- const i = await JA(e), s = i.width, o = i.height, r = await $(e);
4983
+ const i = await OA(e), s = i.width, o = i.height, r = await $(e);
4987
4984
  if (n) {
4988
4985
  const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
4989
4986
  if (l && l.length > 0)
@@ -5001,7 +4998,7 @@ class tn {
5001
4998
  };
5002
4999
  Ft.set(e, B), t.setPatternData(B, A);
5003
5000
  } else {
5004
- const i = await TA(e, !0), s = await Tt(i), o = {
5001
+ const i = await LA(e, !0), s = await Tt(i), o = {
5005
5002
  src: e,
5006
5003
  width: s.width,
5007
5004
  height: s.height,
@@ -5042,7 +5039,7 @@ class tn {
5042
5039
  const g = r.pmsValue.trim().toLocaleLowerCase();
5043
5040
  n.includes(g) || n.push(g);
5044
5041
  } else if (r.browserValue) {
5045
- const g = en(r.browserValue);
5042
+ const g = tn(r.browserValue);
5046
5043
  n.includes(g) || n.push(g);
5047
5044
  }
5048
5045
  }
@@ -5090,12 +5087,12 @@ class tn {
5090
5087
  if (!s)
5091
5088
  throw new Error("Frame service unavailable, cannot load pattern!");
5092
5089
  const o = await Promise.all(
5093
- e.data.regions.map((C) => this.frameSourceSvg(t, C))
5090
+ e.data.regions.map((d) => this.frameSourceSvg(t, d))
5094
5091
  );
5095
5092
  n && n(!0);
5096
5093
  const r = await Promise.all(
5097
- e.data.regions.map(async (C, d) => {
5098
- const E = await rt(o[d]), w = s.getImageData(), u = A.map((D) => new te(D.id)), h = w ? ct(w, E) : void 0, I = w ? {
5094
+ e.data.regions.map(async (d, C) => {
5095
+ const E = await rt(o[C]), w = s.getImageData(), u = A.map((p) => new te(p.id)), h = w ? ct(w, E) : void 0, I = w ? {
5099
5096
  id: J(),
5100
5097
  src: w.src,
5101
5098
  x: (h == null ? void 0 : h.x) || 0,
@@ -5105,11 +5102,11 @@ class tn {
5105
5102
  scaleX: (h == null ? void 0 : h.zoom) || 1,
5106
5103
  scaleY: (h == null ? void 0 : h.zoom) || 1,
5107
5104
  rotation: 0
5108
- } : void 0, Q = J(), m = a.getLayouts().find((D) => D.panelId === C.panelId);
5109
- if (!m)
5110
- throw new z(C);
5105
+ } : void 0, D = J(), Q = a.getLayouts().find((p) => p.panelId === d.panelId);
5106
+ if (!Q)
5107
+ throw new z(d);
5111
5108
  return {
5112
- command: this.getCreateElementCommand(Q, C, m, {
5109
+ command: this.getCreateElementCommand(D, d, Q, {
5113
5110
  frameData: E,
5114
5111
  pattern: I,
5115
5112
  disablePlaceholder: e.data.disablePlaceholder,
@@ -5119,29 +5116,29 @@ class tn {
5119
5116
  stepName: e.stepName
5120
5117
  }),
5121
5118
  regionEl: {
5122
- id: Q,
5123
- region: C
5119
+ id: D,
5120
+ region: d
5124
5121
  },
5125
5122
  removeExistingCommands: u
5126
5123
  };
5127
5124
  })
5128
- ), g = r.map((C) => C.command), B = r.map((C) => C.removeExistingCommands).flat();
5125
+ ), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
5129
5126
  return {
5130
5127
  command: new k([...g, ...B]),
5131
5128
  followup: async () => {
5132
5129
  n && n(!1), await a.setSelectionsAndElements(
5133
5130
  e.stepName,
5134
5131
  t ? [t] : [],
5135
- [...r.map((C) => C.regionEl)],
5132
+ [...r.map((d) => d.regionEl)],
5136
5133
  async () => {
5137
- var C;
5134
+ var d;
5138
5135
  if (a.updateStorage(e.stepName, { currentFrameSources: o }), i) {
5139
- const d = (C = a.getStepSpecificServices(
5136
+ const C = (d = a.getStepSpecificServices(
5140
5137
  e.stepName
5141
- )) == null ? void 0 : C.frameService;
5142
- if (!d)
5138
+ )) == null ? void 0 : d.frameService;
5139
+ if (!C)
5143
5140
  throw new Error("Frame service unavailable, cannot load pattern!");
5144
- await this.loadPatternFromString(i, d, !0);
5141
+ await this.loadPatternFromString(i, C, !0);
5145
5142
  }
5146
5143
  }
5147
5144
  );
@@ -5190,8 +5187,8 @@ class tn {
5190
5187
  ), this.validateColorCount(t, A);
5191
5188
  }
5192
5189
  }
5193
- const ee = new tn();
5194
- class An {
5190
+ const ee = new An();
5191
+ class an {
5195
5192
  async getIllustrationBody(e) {
5196
5193
  return new Promise((t) => {
5197
5194
  $(e, !0).then((A) => {
@@ -5227,7 +5224,7 @@ class An {
5227
5224
  if (A.length === 0)
5228
5225
  return [];
5229
5226
  try {
5230
- return Re(
5227
+ return He(
5231
5228
  A[0].id,
5232
5229
  t.getAllLayoutData()
5233
5230
  ).colors;
@@ -5260,15 +5257,15 @@ class An {
5260
5257
  if (o && g) {
5261
5258
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5262
5259
  if (B) {
5263
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5260
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5264
5261
  await t.setSelectionsAndElements(
5265
5262
  e.stepName,
5266
5263
  [B],
5267
5264
  l,
5268
5265
  async () => {
5269
- var C;
5266
+ var d;
5270
5267
  t.updateMetadata(e.stepName, {
5271
- colors: (C = a.storage) == null ? void 0 : C.colors
5268
+ colors: (d = a.storage) == null ? void 0 : d.colors
5272
5269
  }), t.setMandatoryFulfilled(e.stepName, !0);
5273
5270
  }
5274
5271
  );
@@ -5292,19 +5289,19 @@ class An {
5292
5289
  const i = {};
5293
5290
  for (const [B, l] of n.entries())
5294
5291
  i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
5295
- const s = OA(e, t, A, i), o = await ve(s), r = [];
5292
+ const s = zA(e, t, A, i), o = await ve(s), r = [];
5296
5293
  for (const B of a) {
5297
- for (const [l, C] of n.entries())
5298
- r.push(new et(B, l, C));
5299
- r.push(new LA(B, s, o));
5294
+ for (const [l, d] of n.entries())
5295
+ r.push(new et(B, l, d));
5296
+ r.push(new KA(B, s, o));
5300
5297
  }
5301
5298
  return new k(r);
5302
5299
  }
5303
5300
  async changeColors(e, t, A, a, n) {
5304
- var C, d;
5301
+ var d, C;
5305
5302
  if (t.length === 0)
5306
5303
  return;
5307
- const i = Re(
5304
+ const i = He(
5308
5305
  t[0].id,
5309
5306
  a().map((E) => E.layoutState)
5310
5307
  ), s = { ...i.colors }, o = {};
@@ -5313,10 +5310,10 @@ class An {
5313
5310
  h && (u.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), o[E] = u;
5314
5311
  });
5315
5312
  for (const [E, w] of n.entries())
5316
- s[E] = { browserValue: w, spotColor: (C = s[E]) == null ? void 0 : C.spotColor }, o[E] = { browserValue: w };
5313
+ s[E] = { browserValue: w, spotColor: (d = s[E]) == null ? void 0 : d.spotColor }, o[E] = { browserValue: w };
5317
5314
  let r = Array.from(Object.values(s)).map((E) => E.browserValue);
5318
5315
  const g = e.data.colorOption;
5319
- g && ((d = g.variants) == null || d.forEach((E) => {
5316
+ g && ((C = g.variants) == null || C.forEach((E) => {
5320
5317
  r = r.map((w) => {
5321
5318
  var u;
5322
5319
  return w.toLowerCase() === ((u = E.color) == null ? void 0 : u.toLowerCase()) ? E.name : w;
@@ -5345,7 +5342,7 @@ class An {
5345
5342
  async selectVariantCommand(e, t, A, a, n) {
5346
5343
  var u;
5347
5344
  if (!e.data || !e.data.regions)
5348
- throw new ke(e, "Missing regions.");
5345
+ throw new Ge(e, "Missing regions.");
5349
5346
  a(!0);
5350
5347
  const i = A.map((h) => new te(h.id));
5351
5348
  e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
@@ -5356,29 +5353,29 @@ class An {
5356
5353
  if (!o)
5357
5354
  throw new ue(s);
5358
5355
  const r = await Oe(await this.getIllustrationBody(o)), g = await ve(r.svg), B = (h) => {
5359
- const I = n.getLayouts().find((p) => p.panelId === h.panelId);
5356
+ const I = n.getLayouts().find((m) => m.panelId === h.panelId);
5360
5357
  if (!I)
5361
5358
  throw new z(h);
5362
- const Q = J();
5359
+ const D = J();
5363
5360
  return {
5364
- regionElement: { id: Q, region: h },
5365
- command: this.getCreateElementCommand(Q, h, I, {
5361
+ regionElement: { id: D, region: h },
5362
+ command: this.getCreateElementCommand(D, h, I, {
5366
5363
  stepName: e.stepName,
5367
5364
  src: o,
5368
5365
  objectURL: g,
5369
5366
  svg: r
5370
5367
  })
5371
5368
  };
5372
- }, l = e.data.regions.map(B), d = [...l.map((h) => h.command), ...i];
5369
+ }, l = e.data.regions.map(B), C = [...l.map((h) => h.command), ...i];
5373
5370
  let E = Array.from(Object.values(r.colors)).map((h) => h.browserValue);
5374
5371
  const w = e.data.colorOption;
5375
5372
  return w && ((u = w.variants) == null || u.forEach((h) => {
5376
5373
  E = E.map((I) => {
5377
- var Q;
5378
- return I.toLowerCase() === ((Q = h.color) == null ? void 0 : Q.toLowerCase()) ? h.name : I;
5374
+ var D;
5375
+ return I.toLowerCase() === ((D = h.color) == null ? void 0 : D.toLowerCase()) ? h.name : I;
5379
5376
  });
5380
5377
  })), n.updateMetadata(e.stepName, { colors: E }), {
5381
- command: new k(d),
5378
+ command: new k(C),
5382
5379
  followup: async () => {
5383
5380
  await n.setSelectionsAndElements(
5384
5381
  e.stepName,
@@ -5398,12 +5395,12 @@ class An {
5398
5395
  };
5399
5396
  }
5400
5397
  }
5401
- const Ne = new An();
5402
- class an {
5398
+ const Re = new an();
5399
+ class nn {
5403
5400
  async init(e, t, A) {
5404
5401
  const a = e.option;
5405
5402
  if (!a)
5406
- throw new Ue(e);
5403
+ throw new ke(e);
5407
5404
  if (A)
5408
5405
  await this.reload(e, t, A);
5409
5406
  else {
@@ -5421,21 +5418,21 @@ class an {
5421
5418
  A.serializableWorkflow.steps
5422
5419
  ), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
5423
5420
  if (!o)
5424
- throw new Ue(e);
5421
+ throw new ke(e);
5425
5422
  if (a != null && a.selectedVariants) {
5426
5423
  const g = a.selectedVariants[0].id;
5427
5424
  if (g) {
5428
5425
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5429
5426
  if (B) {
5430
- const l = B.material, C = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5427
+ const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5431
5428
  await t.setSelectionsAndElements(
5432
5429
  e.stepName,
5433
5430
  [B],
5434
- C,
5431
+ d,
5435
5432
  async () => {
5436
- const d = t.getModelContainer();
5437
- if (d) {
5438
- const E = e.data.targetMaterials.map((w) => d.applyMaterialVariant(
5433
+ const C = t.getModelContainer();
5434
+ if (C) {
5435
+ const E = e.data.targetMaterials.map((w) => C.applyMaterialVariant(
5439
5436
  w,
5440
5437
  o.id || "",
5441
5438
  l || {}
@@ -5476,12 +5473,12 @@ class an {
5476
5473
  };
5477
5474
  }
5478
5475
  }
5479
- const dA = new an();
5480
- class nn {
5476
+ const wA = new nn();
5477
+ class sn {
5481
5478
  async init(e, t, A) {
5482
5479
  const a = e.option;
5483
5480
  if (!a)
5484
- throw new Ue(e);
5481
+ throw new ke(e);
5485
5482
  if (A)
5486
5483
  await this.reload(e, t, A);
5487
5484
  else {
@@ -5503,19 +5500,19 @@ class nn {
5503
5500
  if (o && g) {
5504
5501
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5505
5502
  if (B) {
5506
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5503
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5507
5504
  await t.setSelectionsAndElements(
5508
5505
  e.stepName,
5509
5506
  [B],
5510
5507
  l,
5511
5508
  async () => {
5512
- var d;
5513
- const C = t.getModelContainer();
5514
- if (C && e.option) {
5515
- const E = (d = B.asset) == null ? void 0 : d.fileLink;
5509
+ var C;
5510
+ const d = t.getModelContainer();
5511
+ if (d && e.option) {
5512
+ const E = (C = B.asset) == null ? void 0 : C.fileLink;
5516
5513
  if (!E)
5517
5514
  throw new Ae(B);
5518
- await C.applyModelVariant(
5515
+ await d.applyModelVariant(
5519
5516
  e.stepName || "",
5520
5517
  {
5521
5518
  model: E,
@@ -5562,8 +5559,8 @@ class nn {
5562
5559
  };
5563
5560
  }
5564
5561
  }
5565
- const wA = new nn();
5566
- class sn {
5562
+ const EA = new sn();
5563
+ class on {
5567
5564
  async init(e, t, A) {
5568
5565
  if (A)
5569
5566
  await this.reload(e, t, A);
@@ -5596,19 +5593,19 @@ class sn {
5596
5593
  return A.setMandatoryFulfilled(e.stepName, !1), console.error(a), null;
5597
5594
  if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
5598
5595
  return console.error("Missing configuration."), null;
5599
- A.updateStorage(e.stepName, { text: t });
5600
- const r = (B, l, C) => {
5601
- const d = C || J(), w = A.getLayouts().find((h) => h.panelId === l.panelId);
5596
+ A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
5597
+ const r = (B, l, d) => {
5598
+ const C = d || J(), w = A.getLayouts().find((h) => h.panelId === l.panelId);
5602
5599
  if (!w)
5603
5600
  return console.error(`Can not find layout for region: ${l.panelId}`), null;
5604
5601
  const u = [];
5605
- return C && u.push(new te(d)), u.push(
5602
+ return d && u.push(new te(C)), u.push(
5606
5603
  new O(
5607
5604
  {
5608
5605
  stepRegion: l,
5609
5606
  stepName: e.stepName,
5610
5607
  colors: {},
5611
- id: d,
5608
+ id: C,
5612
5609
  svg: B,
5613
5610
  type: G.Illustration,
5614
5611
  y: l.top,
@@ -5623,18 +5620,18 @@ class sn {
5623
5620
  w
5624
5621
  )
5625
5622
  ), {
5626
- id: d,
5623
+ id: C,
5627
5624
  region: l,
5628
5625
  command: new k(u)
5629
5626
  };
5630
5627
  };
5631
5628
  if (i.length > 0) {
5632
- const l = i.map((C) => {
5633
- if (!C.region)
5629
+ const l = i.map((d) => {
5630
+ if (!d.region)
5634
5631
  return null;
5635
- const d = s.svgPrint(t, C.region);
5636
- return r(d, C.region, C.id);
5637
- }).filter((C) => !!C).filter((C) => !!C).map((C) => C && C.command);
5632
+ const C = s.svgPrint(t, d.region);
5633
+ return r(C, d.region, d.id);
5634
+ }).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
5638
5635
  return {
5639
5636
  command: new k(l),
5640
5637
  followup: async () => {
@@ -5642,16 +5639,16 @@ class sn {
5642
5639
  };
5643
5640
  } else {
5644
5641
  const B = e.data.regions.map(
5645
- (C) => r(s.svgPrint(t, C), C)
5646
- ), l = B.filter((C) => !!C).map((C) => C && C.command);
5642
+ (d) => r(s.svgPrint(t, d), d)
5643
+ ), l = B.filter((d) => !!d).map((d) => d && d.command);
5647
5644
  return {
5648
5645
  command: new k(l),
5649
5646
  followup: async () => {
5650
- const C = B.filter((d) => d).map((d) => d && { id: d.id, region: d.region });
5647
+ const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
5651
5648
  await A.setSelectionsAndElements(
5652
5649
  e.stepName,
5653
5650
  [],
5654
- C
5651
+ d
5655
5652
  );
5656
5653
  }
5657
5654
  };
@@ -5675,7 +5672,7 @@ class sn {
5675
5672
  return a(""), !0;
5676
5673
  }
5677
5674
  }
5678
- const on = new sn();
5675
+ const hA = new on();
5679
5676
  class rn {
5680
5677
  async init(e, t, A) {
5681
5678
  const a = e.option;
@@ -5699,7 +5696,7 @@ class rn {
5699
5696
  if (o && g) {
5700
5697
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5701
5698
  if (B) {
5702
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5699
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5703
5700
  await t.setSelectionsAndElements(
5704
5701
  e.stepName,
5705
5702
  [B],
@@ -5725,17 +5722,17 @@ class rn {
5725
5722
  return console.error("No URL for picture!"), null;
5726
5723
  a(!0), e.mandatory && A.setMandatoryFulfilled(e.stepName, !1);
5727
5724
  const o = A.getRegionElements(e.stepName).map((B) => new te(B.id)), r = (B) => {
5728
- const C = A.getLayouts().find((E) => E.panelId === B.panelId);
5729
- if (!C)
5725
+ const d = A.getLayouts().find((E) => E.panelId === B.panelId);
5726
+ if (!d)
5730
5727
  throw new z(B);
5731
- const d = J();
5728
+ const C = J();
5732
5729
  return {
5733
- regionElement: { id: d, region: B },
5730
+ regionElement: { id: C, region: B },
5734
5731
  command: new O(
5735
5732
  {
5736
5733
  stepName: e.stepName,
5737
5734
  stepRegion: B,
5738
- id: d,
5735
+ id: C,
5739
5736
  src: i,
5740
5737
  type: G.Image,
5741
5738
  y: B.top,
@@ -5748,7 +5745,7 @@ class rn {
5748
5745
  immutable: B.immutable,
5749
5746
  preserveAspectRatio: "none"
5750
5747
  },
5751
- C
5748
+ d
5752
5749
  )
5753
5750
  };
5754
5751
  }, g = e.data.regions.map(r);
@@ -5767,7 +5764,7 @@ class rn {
5767
5764
  };
5768
5765
  }
5769
5766
  }
5770
- const EA = new rn();
5767
+ const uA = new rn();
5771
5768
  class cn {
5772
5769
  async init(e, t, A) {
5773
5770
  const a = e.option;
@@ -5826,7 +5823,7 @@ class cn {
5826
5823
  };
5827
5824
  }
5828
5825
  }
5829
- const hA = new cn();
5826
+ const QA = new cn();
5830
5827
  class gn {
5831
5828
  constructor() {
5832
5829
  this.shapeFillId = "spiff-fill-shape";
@@ -5853,7 +5850,7 @@ class gn {
5853
5850
  async init(e, t, A) {
5854
5851
  const a = e.option;
5855
5852
  if (!a)
5856
- throw new Ue(e);
5853
+ throw new ke(e);
5857
5854
  if (A)
5858
5855
  await this.reload(e, t, A);
5859
5856
  else {
@@ -5886,15 +5883,15 @@ class gn {
5886
5883
  if (o && g) {
5887
5884
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5888
5885
  if (B) {
5889
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5886
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5890
5887
  await t.setSelectionsAndElements(
5891
5888
  e.stepName,
5892
5889
  [B],
5893
5890
  l,
5894
5891
  async () => {
5895
- var C;
5892
+ var d;
5896
5893
  t.updateStorage(e.stepName, {
5897
- colour: ((C = a == null ? void 0 : a.storage) == null ? void 0 : C.colour) || ""
5894
+ colour: ((d = a == null ? void 0 : a.storage) == null ? void 0 : d.colour) || ""
5898
5895
  }), t.setMandatoryFulfilled(e.stepName, !0);
5899
5896
  }
5900
5897
  );
@@ -5917,8 +5914,8 @@ class gn {
5917
5914
  const l = B.region;
5918
5915
  if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
5919
5916
  throw new z(l);
5920
- const d = s();
5921
- return new et(B.id, this.shapeFillId, d);
5917
+ const C = s();
5918
+ return new et(B.id, this.shapeFillId, C);
5922
5919
  }, g = A.map(r).filter((B) => !!B);
5923
5920
  return {
5924
5921
  command: new k(g),
@@ -5931,10 +5928,10 @@ class gn {
5931
5928
  }
5932
5929
  };
5933
5930
  } else {
5934
- const r = (C) => {
5935
- const d = n.find((I) => I.panelId === C.panelId);
5936
- if (!d)
5937
- throw new z(C);
5931
+ const r = (d) => {
5932
+ const C = n.find((I) => I.panelId === d.panelId);
5933
+ if (!C)
5934
+ throw new z(d);
5938
5935
  const E = s(), w = `
5939
5936
  <svg
5940
5937
  xmlns="http://www.w3.org/2000/svg"
@@ -5960,29 +5957,29 @@ class gn {
5960
5957
  const h = J();
5961
5958
  return {
5962
5959
  id: h,
5963
- region: C,
5960
+ region: d,
5964
5961
  command: new O(
5965
5962
  {
5966
- stepRegion: C,
5963
+ stepRegion: d,
5967
5964
  stepName: e.stepName,
5968
5965
  colors: u,
5969
5966
  id: h,
5970
5967
  svg: w,
5971
5968
  type: G.Illustration,
5972
- y: C.top,
5973
- x: C.left,
5974
- rotation: C.rotation,
5975
- width: C.width,
5976
- height: C.height,
5977
- layer: C.layer,
5978
- layerIndex: C.layerIndex,
5979
- immutable: C.immutable,
5969
+ y: d.top,
5970
+ x: d.left,
5971
+ rotation: d.rotation,
5972
+ width: d.width,
5973
+ height: d.height,
5974
+ layer: d.layer,
5975
+ layerIndex: d.layerIndex,
5976
+ immutable: d.immutable,
5980
5977
  excludeFromExport: e.data.excludeFromPrint
5981
5978
  },
5982
- d
5979
+ C
5983
5980
  )
5984
5981
  };
5985
- }, g = e.data.regions.map(r), B = g.filter((C) => !!C).map((C) => C == null ? void 0 : C.command), l = g.filter((C) => !!C).map((C) => ({ id: C.id, region: C.region }));
5982
+ }, g = e.data.regions.map(r), B = g.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = g.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
5986
5983
  return {
5987
5984
  command: new k(B),
5988
5985
  followup: async () => {
@@ -6026,28 +6023,28 @@ class ln {
6026
6023
  }
6027
6024
  }
6028
6025
  const Bn = new ln(), Xe = 30;
6029
- class be extends Error {
6026
+ class Je extends Error {
6030
6027
  constructor(e) {
6031
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = be.name;
6028
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
6032
6029
  }
6033
6030
  }
6034
- const Cn = ["‘", "’", "“", "”", `
6031
+ const dn = ["‘", "’", "“", "”", `
6035
6032
  `];
6036
- class Je extends Error {
6033
+ class Te extends Error {
6037
6034
  constructor(e) {
6038
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
6035
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Te.name;
6039
6036
  }
6040
6037
  }
6041
- class dn {
6038
+ class Cn {
6042
6039
  constructor() {
6043
6040
  this.cachedColors = /* @__PURE__ */ new Map(), this.filterUnsupportedCharacters = (e, t) => {
6044
6041
  let A = e.replace(
6045
6042
  /(\r\n|\r|(\u2665|\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,
6046
6043
  ""
6047
6044
  );
6048
- const a = [], n = t ? zA(t.assetUrl) : void 0;
6045
+ const a = [], n = t ? jA(t.assetUrl) : void 0;
6049
6046
  if (n) {
6050
- const i = A.split("").filter((o) => !Cn.includes(o)).join(""), s = i.split("").map((o) => n.getFont().charToGlyph(o));
6047
+ const i = A.split("").filter((o) => !dn.includes(o)).join(""), s = i.split("").map((o) => n.getFont().charToGlyph(o));
6051
6048
  for (let o = 0; o < s.length; o++)
6052
6049
  s[o].name === ".notdef" && a.push(String.fromCharCode(i.charCodeAt(o)));
6053
6050
  }
@@ -6112,7 +6109,7 @@ class dn {
6112
6109
  return null;
6113
6110
  }
6114
6111
  findLayoutElements(e, t) {
6115
- return e.getRegionElements(t.stepName).map((n) => Re(n.id, e.getAllLayoutData()));
6112
+ return e.getRegionElements(t.stepName).map((n) => He(n.id, e.getAllLayoutData()));
6116
6113
  }
6117
6114
  /**
6118
6115
  * Get the colors that can be used for a given text step.
@@ -6140,7 +6137,7 @@ class dn {
6140
6137
  return;
6141
6138
  const n = a.getCommandDispatcher();
6142
6139
  for (const i of A) {
6143
- const s = new KA(i.id, t);
6140
+ const s = new VA(i.id, t);
6144
6141
  n(s);
6145
6142
  }
6146
6143
  }
@@ -6160,7 +6157,7 @@ class dn {
6160
6157
  for (const r of A) {
6161
6158
  if (!t.fill)
6162
6159
  throw new Error("Fill not set on new color selection!");
6163
- const g = new jA(r.id, t.fill, s);
6160
+ const g = new WA(r.id, t.fill, s);
6164
6161
  n(g);
6165
6162
  }
6166
6163
  }
@@ -6223,19 +6220,19 @@ class dn {
6223
6220
  for (const l of t) {
6224
6221
  if (!l.fontData)
6225
6222
  throw new b("Failed to resolve font data for text.");
6226
- const [C, d] = xe(
6223
+ const [d, C] = Ne(
6227
6224
  l.fontSize,
6228
6225
  l.fontData,
6229
6226
  { left: l.x, top: l.y, width: l.width, height: l.height, rotation: l.rotation, panelId: "" },
6230
6227
  [i],
6231
6228
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
6232
6229
  );
6233
- g.set(l.id, C), B.set(l.id, d);
6234
- const E = A.data.curved ? i : (d || []).join(`
6230
+ g.set(l.id, d), B.set(l.id, C);
6231
+ const E = A.data.curved ? i : (C || []).join(`
6235
6232
  `);
6236
- r.push(this.generateTextChangeCommandsForRegion(C, A.data, l.id, E));
6233
+ r.push(this.generateTextChangeCommandsForRegion(d, A.data, l.id, E));
6237
6234
  }
6238
- return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((C) => C) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
6235
+ return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((d) => d) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
6239
6236
  text: i
6240
6237
  }), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(r), s);
6241
6238
  }
@@ -6272,17 +6269,17 @@ class dn {
6272
6269
  if (a != null && a.selectedVariants) {
6273
6270
  const l = a.selectedVariants[0].id;
6274
6271
  if (o && l) {
6275
- const C = (r = o.variants) == null ? void 0 : r.find((d) => d.id === l);
6276
- if (C) {
6277
- const d = await this.fontDataFromVariant(C), E = s.map((I) => ({ id: I.id, region: I.stepRegion })), w = (g = a.storage) == null ? void 0 : g.color, u = (B = a.storage) == null ? void 0 : B.text;
6272
+ const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
6273
+ if (d) {
6274
+ const C = await this.fontDataFromVariant(d), E = s.map((I) => ({ id: I.id, region: I.stepRegion })), w = (g = a.storage) == null ? void 0 : g.color, u = (B = a.storage) == null ? void 0 : B.text;
6278
6275
  await t.setSelectionsAndElements(
6279
6276
  e.stepName,
6280
- [C],
6277
+ [d],
6281
6278
  E,
6282
6279
  async () => {
6283
6280
  t.updateMetadata(e.stepName, { color: w, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
6284
- const I = s.map((p) => new yt(p.id, d)), Q = new k(I);
6285
- t.getCommandDispatcher()(Q);
6281
+ const I = s.map((m) => new yt(m.id, C)), D = new k(I);
6282
+ t.getCommandDispatcher()(D);
6286
6283
  }
6287
6284
  );
6288
6285
  const { command: h } = V.updateInputText(
@@ -6335,7 +6332,7 @@ class dn {
6335
6332
  const E = a.map((w) => new Ve(w.id, o));
6336
6333
  l.push(...E);
6337
6334
  }
6338
- const C = await this.changeInputTextWithRegion(
6335
+ const d = await this.changeInputTextWithRegion(
6339
6336
  e,
6340
6337
  e.data.size || Xe,
6341
6338
  g,
@@ -6346,7 +6343,7 @@ class dn {
6346
6343
  i,
6347
6344
  s
6348
6345
  );
6349
- return C && l.push(C), {
6346
+ return d && l.push(d), {
6350
6347
  command: new k(l),
6351
6348
  followup: async () => {
6352
6349
  n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
@@ -6360,7 +6357,7 @@ class dn {
6360
6357
  g,
6361
6358
  A,
6362
6359
  n
6363
- ), C = await this.changeInputTextWithRegion(
6360
+ ), d = await this.changeInputTextWithRegion(
6364
6361
  e,
6365
6362
  e.data.size || Xe,
6366
6363
  g,
@@ -6370,15 +6367,15 @@ class dn {
6370
6367
  !!A.customiseAllText,
6371
6368
  i,
6372
6369
  s
6373
- ), d = l.flatMap((w) => w.commands);
6370
+ ), C = l.flatMap((w) => w.commands);
6374
6371
  if (o) {
6375
6372
  const w = l.map(
6376
6373
  (u) => new Ve(u.regionElement.id, o)
6377
6374
  );
6378
- d.push(...w);
6375
+ C.push(...w);
6379
6376
  }
6380
- return C && d.push(C), {
6381
- command: new k(d),
6377
+ return d && C.push(d), {
6378
+ command: new k(C),
6382
6379
  followup: async () => {
6383
6380
  n.markUpdateCompleted(r);
6384
6381
  }
@@ -6398,29 +6395,29 @@ class dn {
6398
6395
  throw new Error("Step data not supplied");
6399
6396
  const s = n.text || A.defaultText || "", o = this.getProcessedInput(s, A, !1), r = async (B) => {
6400
6397
  var E;
6401
- const C = i.getLayouts().find((w) => w.panelId === B.panelId), d = J();
6398
+ const d = i.getLayouts().find((w) => w.panelId === B.panelId), C = J();
6402
6399
  try {
6403
- if (!C)
6404
- throw new Je("Failed to find layout for region: " + B.panelId);
6400
+ if (!d)
6401
+ throw new Te("Failed to find layout for region: " + B.panelId);
6405
6402
  const w = A.colorOption;
6406
6403
  let u;
6407
6404
  if (w && w.variants) {
6408
- const x = w.variants.find((v) => {
6405
+ const x = w.variants.find((R) => {
6409
6406
  var L;
6410
- return v.id === ((L = w.defaultVariant) == null ? void 0 : L.id);
6407
+ return R.id === ((L = w.defaultVariant) == null ? void 0 : L.id);
6411
6408
  }) || w.variants[0];
6412
6409
  u = this.createTextFillSpotColor(w, x), i.updateStorage(e, {
6413
6410
  colorProfileAssetKey: (E = w.colorProfile) == null ? void 0 : E.key
6414
6411
  });
6415
6412
  }
6416
- const h = await this.getDefaultColor(A), I = h || "#000000", Q = {
6413
+ const h = await this.getDefaultColor(A), I = h || "#000000", D = {
6417
6414
  stepRegion: B,
6418
6415
  stepName: e,
6419
6416
  align: this.textAlign(A),
6420
6417
  fill: n.color ? n.color : I,
6421
6418
  fontSize: A.size || Xe,
6422
6419
  fontData: a,
6423
- id: d,
6420
+ id: C,
6424
6421
  layer: B.layer,
6425
6422
  layerIndex: B.layerIndex,
6426
6423
  rotation: B.rotation,
@@ -6437,41 +6434,41 @@ class dn {
6437
6434
  curved: A.curved,
6438
6435
  paths: A.paths,
6439
6436
  fillSpotColorDefinition: u
6440
- }, p = [], m = /* @__PURE__ */ new Map(), D = /* @__PURE__ */ new Map();
6441
- if (!Q.fontData)
6437
+ }, m = [], Q = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
6438
+ if (!D.fontData)
6442
6439
  throw new b("Failed to resolve font data for text.");
6443
- const [y, M] = xe(
6444
- Q.fontSize,
6445
- Q.fontData,
6440
+ const [y, M] = Ne(
6441
+ D.fontSize,
6442
+ D.fontData,
6446
6443
  {
6447
- left: Q.x,
6448
- top: Q.y,
6449
- width: Q.width,
6450
- height: Q.height,
6451
- rotation: Q.rotation,
6444
+ left: D.x,
6445
+ top: D.y,
6446
+ width: D.width,
6447
+ height: D.height,
6448
+ rotation: D.rotation,
6452
6449
  panelId: ""
6453
6450
  },
6454
6451
  [o],
6455
6452
  { size: A.size, minSize: A.minSize, maxSize: A.maxSize }
6456
6453
  );
6457
- m.set(Q.id, y), D.set(Q.id, M);
6454
+ Q.set(D.id, y), p.set(D.id, M);
6458
6455
  const S = A.curved || A.vertical ? o : (M || []).join(`
6459
6456
  `);
6460
- p.push(
6461
- this.generateTextChangeCommandsForRegion(y, A, Q.id, S)
6457
+ m.push(
6458
+ this.generateTextChangeCommandsForRegion(y, A, D.id, S)
6462
6459
  );
6463
- const N = new O(Q, C);
6460
+ const N = new O(D, d);
6464
6461
  return {
6465
- regionElement: { id: d, region: B },
6466
- commands: [N, ...p],
6467
- newElement: Q,
6462
+ regionElement: { id: C, region: B },
6463
+ commands: [N, ...m],
6464
+ newElement: D,
6468
6465
  fontData: a
6469
6466
  };
6470
6467
  } catch (w) {
6471
- throw console.log(w), new be("Error adding font to region");
6468
+ throw console.log(w), new Je("Error adding font to region");
6472
6469
  }
6473
6470
  }, g = await Promise.all(A.regions.map(r)).catch((B) => {
6474
- throw B instanceof be ? (Bn.setLatestToast("Failed to load font.", Te.Error), B) : B instanceof Je ? B : new Error(B);
6471
+ throw B instanceof Je ? (Bn.setLatestToast("Failed to load font.", pe.Error), B) : B instanceof Te ? B : new Error(B);
6475
6472
  });
6476
6473
  return await i.setSelectionsAndElements(
6477
6474
  e,
@@ -6487,9 +6484,9 @@ class dn {
6487
6484
  ), g;
6488
6485
  }
6489
6486
  generateTextChangeCommandsForRegion(e, t, A, a) {
6490
- const n = [], i = new VA(A, a);
6487
+ const n = [], i = new XA(A, a);
6491
6488
  if (n.push(i), !t.size) {
6492
- const o = new WA(A, e);
6489
+ const o = new qA(A, e);
6493
6490
  n.push(o);
6494
6491
  }
6495
6492
  return new k(n);
@@ -6498,30 +6495,30 @@ class dn {
6498
6495
  * @deprecated
6499
6496
  */
6500
6497
  async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, g) {
6501
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), C = i.getRegionElements(e.stepName), d = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
6502
- for (const Q of C)
6503
- if (Q.region) {
6504
- const [p, m] = xe(
6498
+ 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(), E = /* @__PURE__ */ new Map();
6499
+ for (const D of d)
6500
+ if (D.region) {
6501
+ const [m, Q] = Ne(
6505
6502
  t,
6506
6503
  A,
6507
- Q.region,
6504
+ D.region,
6508
6505
  [l],
6509
6506
  { size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
6510
6507
  );
6511
- d.set(Q.id, p), E.set(Q.id, m);
6508
+ C.set(D.id, m), E.set(D.id, Q);
6512
6509
  }
6513
6510
  const u = (() => {
6514
6511
  if (e.data && e.data.maxLength && l.length > e.data.maxLength)
6515
6512
  return g && g(!0), { info: "0" };
6516
- const Q = i.getProfanities(), p = at(l.toLowerCase());
6517
- for (const m of p)
6518
- for (const D in Q) {
6519
- const y = Q[D].toLowerCase().replace(/\s/g, "");
6520
- if (m === y)
6513
+ const D = i.getProfanities(), m = at(l.toLowerCase());
6514
+ for (const Q of m)
6515
+ for (const p in D) {
6516
+ const y = D[p].toLowerCase().replace(/\s/g, "");
6517
+ if (Q === y)
6521
6518
  return o(!0), { error: "Blocked profanity." };
6522
6519
  }
6523
6520
  return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
6524
- `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((D) => D) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
6521
+ `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((p) => p) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
6525
6522
  })();
6526
6523
  if (u.error) {
6527
6524
  r(u.error);
@@ -6533,22 +6530,22 @@ class dn {
6533
6530
  text: this.injectReplaceableText(B, e.data)
6534
6531
  }), n.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
6535
6532
  const h = [];
6536
- for (const Q of C) {
6537
- const p = e.data.curved ? l : (E.get(Q.id) || []).join(`
6533
+ for (const D of d) {
6534
+ const m = e.data.curved ? l : (E.get(D.id) || []).join(`
6538
6535
  `);
6539
6536
  h.push(
6540
6537
  this.generateTextChangeCommandsForRegion(
6541
- d.get(Q.id) || 1,
6538
+ C.get(D.id) || 1,
6542
6539
  e.data,
6543
- Q.id,
6544
- p
6540
+ D.id,
6541
+ m
6545
6542
  )
6546
6543
  );
6547
6544
  }
6548
6545
  return new k(h);
6549
6546
  }
6550
6547
  }
6551
- const V = new dn();
6548
+ const V = new Cn();
6552
6549
  class Et {
6553
6550
  }
6554
6551
  const wn = "data:application/font-woff;base64,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", En = `<?xml version="1.0" encoding="iso-8859-1"?>
@@ -7812,38 +7809,38 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
7812
7809
  </g>
7813
7810
  </svg>
7814
7811
 
7815
- `, R = (c) => XA("http://www.w3.org/2000/svg", c), ht = (c, e) => {
7816
- const t = R("rect");
7812
+ `, v = (c) => ZA("http://www.w3.org/2000/svg", c), ht = (c, e) => {
7813
+ const t = v("rect");
7817
7814
  return t.setAttribute("height", `${c}`), t.setAttribute("width", `${e}`), t;
7818
7815
  }, hn = () => {
7819
- const c = R("svg");
7816
+ const c = v("svg");
7820
7817
  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;
7821
7818
  }, un = (c) => {
7822
- const e = R("use");
7819
+ const e = v("use");
7823
7820
  return e.setAttribute("xlink:href", c), e.setAttribute("href", c), e;
7824
7821
  };
7825
- function uA(c) {
7822
+ function mA(c) {
7826
7823
  const e = hn(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(c) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
7827
7824
  return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
7828
7825
  }
7829
7826
  const Qn = (c, e, t) => {
7830
- const A = R("g");
7827
+ const A = v("g");
7831
7828
  c.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
7832
7829
  };
7833
- function QA(c, e, t) {
7830
+ function pA(c, e, t) {
7834
7831
  const A = J();
7835
7832
  Qn(e, t, `bgdef-${A}`), c.appendChild(un(`#bgdef-${A}`));
7836
7833
  }
7837
- const mA = (c, e, t, A) => {
7838
- const a = Ie("filter");
7834
+ const DA = (c, e, t, A) => {
7835
+ const a = fe("filter");
7839
7836
  a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
7840
- const n = Ie("feOffset");
7837
+ const n = fe("feOffset");
7841
7838
  a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${e}`);
7842
- const i = Ie("feGaussianBlur");
7839
+ const i = fe("feGaussianBlur");
7843
7840
  a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
7844
- const s = Ie("feBlend");
7841
+ const s = fe("feBlend");
7845
7842
  return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
7846
- }, pA = (c) => {
7843
+ }, IA = (c) => {
7847
7844
  let e = c;
7848
7845
  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;
7849
7846
  };
@@ -7906,7 +7903,7 @@ class Qt {
7906
7903
  l = (B * 100 | 0) / 100;
7907
7904
  break;
7908
7905
  default:
7909
- throw new de("Failed to encode path.");
7906
+ throw new Ce("Failed to encode path.");
7910
7907
  }
7911
7908
  o || i.push(" "), i.push(l), o = !1;
7912
7909
  }
@@ -7920,12 +7917,12 @@ class Qt {
7920
7917
  for (t.lastIndex = 0; n = t.exec(e); ) {
7921
7918
  const i = n[1].toLowerCase(), s = (n[2].match(A) || []).map(parseFloat), o = i === n[1], r = Ut[i];
7922
7919
  if (s.length < r.length)
7923
- throw new de(
7920
+ throw new Ce(
7924
7921
  `Path type "${i}" given ${s.length} arguments, expected ${r.length}.`
7925
7922
  );
7926
7923
  if (r.length > 0) {
7927
7924
  if (s.length % r.length !== 0)
7928
- throw new de(
7925
+ throw new Ce(
7929
7926
  `Path type "${i}" given ${s.length} arguments, not divisible by ${r.length}`
7930
7927
  );
7931
7928
  for (let g = 0; g < s.length / r.length; g++) {
@@ -7950,7 +7947,7 @@ class Qt {
7950
7947
  if (s in n && o in n) {
7951
7948
  const r = [n[s], n[o]], g = t(r);
7952
7949
  if (g.length < 2)
7953
- throw new de("Transformer must return at least 2 points.");
7950
+ throw new Ce("Transformer must return at least 2 points.");
7954
7951
  n[s] = g[0], n[o] = g[1];
7955
7952
  }
7956
7953
  }
@@ -7989,31 +7986,31 @@ class pn extends Et {
7989
7986
  }
7990
7987
  brandSvg(e, t) {
7991
7988
  const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
7992
- const p = R("g"), m = R("defs");
7993
- p.appendChild(m), m.appendChild(mA(3, 7, 4, "shadow"));
7994
- const D = R("g");
7995
- p.appendChild(D), D.setAttribute("filter", "url(#shadow)"), D.innerHTML = A;
7996
- const y = R("g");
7997
- p.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = A;
7998
- const M = R("g");
7999
- p.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
8000
- const S = R("g");
8001
- return p.appendChild(S), S.setAttribute("fill", "yellow"), S.innerHTML = A, new Qt(p).transform(([x, v]) => [x, v + (n / 2 - x) ** 2 / (n * 2.9)]), p;
8002
- }, [o, r, g] = uA(t);
7989
+ const m = v("g"), Q = v("defs");
7990
+ m.appendChild(Q), Q.appendChild(DA(3, 7, 4, "shadow"));
7991
+ const p = v("g");
7992
+ m.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = A;
7993
+ const y = v("g");
7994
+ m.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = A;
7995
+ const M = v("g");
7996
+ m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
7997
+ const S = v("g");
7998
+ return m.appendChild(S), S.setAttribute("fill", "yellow"), S.innerHTML = A, new Qt(m).transform(([x, R]) => [x, R + (n / 2 - x) ** 2 / (n * 2.9)]), m;
7999
+ }, [o, r, g] = mA(t);
8003
8000
  if (!o)
8004
8001
  return "";
8005
- const B = R("defs");
8006
- o.appendChild(B), QA(o, B, t);
8007
- const l = r * 0.23, C = g * 0.94, d = g * 0.04, E = r * 0.53, w = R("g");
8008
- o.appendChild(w), w.setAttribute("transform", `translate(${d} ${E}) rotate(-21)`);
8009
- const u = ht(l, C);
8002
+ const B = v("defs");
8003
+ o.appendChild(B), pA(o, B, t);
8004
+ const l = r * 0.23, d = g * 0.94, C = g * 0.04, E = r * 0.53, w = v("g");
8005
+ o.appendChild(w), w.setAttribute("transform", `translate(${C} ${E}) rotate(-21)`);
8006
+ const u = ht(l, d);
8010
8007
  u.setAttribute("opacity", "0"), w.appendChild(u);
8011
- const h = R("g");
8008
+ const h = v("g");
8012
8009
  w.appendChild(h);
8013
8010
  const I = s();
8014
8011
  h.appendChild(I);
8015
- const Q = Bt(i);
8016
- return ut(h, Q, l, C), pA(o.outerHTML);
8012
+ const D = Bt(i);
8013
+ return ut(h, D, l, d), IA(o.outerHTML);
8017
8014
  }
8018
8015
  }
8019
8016
  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==";
@@ -8033,34 +8030,34 @@ class In extends Et {
8033
8030
  }
8034
8031
  brandSvg(e, t, A) {
8035
8032
  const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
8036
- const D = R("g"), y = R("g");
8037
- D.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
8038
- const M = R("g");
8039
- D.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
8040
- const S = R("g");
8041
- D.appendChild(S), S.setAttribute("fill", "white"), S.innerHTML = a;
8042
- const N = new Qt(D);
8043
- return N.transform(([x, v]) => [x, v + ((s - x) * v) ** 2 / (s * 5e4)]), N.transform(([x, v]) => [
8033
+ const p = v("g"), y = v("g");
8034
+ p.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
8035
+ const M = v("g");
8036
+ p.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
8037
+ const S = v("g");
8038
+ p.appendChild(S), S.setAttribute("fill", "white"), S.innerHTML = a;
8039
+ const N = new Qt(p);
8040
+ return N.transform(([x, R]) => [x, R + ((s - x) * R) ** 2 / (s * 5e4)]), N.transform(([x, R]) => [
8044
8041
  x,
8045
- v + (s / 3 - x) ** 2 / s * this.indicator(x < s / 3)
8046
- ]), N.transform(([x, v]) => [x - (i - v) * (s - x) / 800, v]), D;
8047
- }, [g, B, l] = uA(t);
8042
+ R + (s / 3 - x) ** 2 / s * this.indicator(x < s / 3)
8043
+ ]), N.transform(([x, R]) => [x - (i - R) * (s - x) / 800, R]), p;
8044
+ }, [g, B, l] = mA(t);
8048
8045
  if (!g)
8049
8046
  return "";
8050
- const C = R("defs");
8051
- g.appendChild(C), QA(g, C, t);
8052
- let d, E, w, u;
8053
- A ? (d = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), w = l * 0.22, u = B * 0.32) : (d = B * 0.22 * (1 + 0.1), E = l * 0.8, w = l * 0.067, u = B * 0.33);
8054
- const h = R("g");
8047
+ const d = v("defs");
8048
+ g.appendChild(d), pA(g, d, t);
8049
+ let C, E, w, u;
8050
+ A ? (C = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), w = l * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), E = l * 0.8, w = l * 0.067, u = B * 0.33);
8051
+ const h = v("g");
8055
8052
  g.appendChild(h), h.setAttribute("transform", `translate(${w} ${u}) rotate(-10)`);
8056
- const I = ht(d, E);
8053
+ const I = ht(C, E);
8057
8054
  I.setAttribute("opacity", "0"), h.appendChild(I);
8058
- const Q = R("g");
8059
- h.appendChild(Q);
8060
- const p = r();
8061
- Q.appendChild(p);
8062
- const m = Bt(o);
8063
- return ut(Q, m, d, E), g.outerHTML;
8055
+ const D = v("g");
8056
+ h.appendChild(D);
8057
+ const m = r();
8058
+ D.appendChild(m);
8059
+ const Q = Bt(o);
8060
+ return ut(D, Q, C, E), g.outerHTML;
8064
8061
  }
8065
8062
  // 1 if true, 0 if false.
8066
8063
  }
@@ -8077,37 +8074,37 @@ class Fn extends Et {
8077
8074
  }
8078
8075
  svgElement(e, t) {
8079
8076
  const A = lt(fn), n = e !== "" ? ((I) => I.charAt(0).toUpperCase() + I.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 = () => {
8080
- const I = R("g");
8077
+ const I = v("g");
8081
8078
  I.classList.add("module-text-group");
8082
- const Q = R("defs");
8083
- I.appendChild(Q), Q.appendChild(mA(0, 2, 2, "shadow"));
8084
- const p = R("path");
8085
- p.setAttribute("d", g), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), Q.appendChild(p);
8086
- const m = R("g");
8087
- m.classList.add("module-layer0"), I.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = p.outerHTML;
8088
- const D = R("g");
8089
- D.classList.add("module-layer1"), I.appendChild(D), D.setAttribute("stroke-width", "3"), D.setAttribute("stroke", "rgb(45,41,38)"), D.setAttribute("fill", "rgb(45,41,38)"), D.setAttribute("transform", "translate(0.5,0)"), D.innerHTML = s;
8090
- const y = R("g");
8079
+ const D = v("defs");
8080
+ I.appendChild(D), D.appendChild(DA(0, 2, 2, "shadow"));
8081
+ const m = v("path");
8082
+ m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), D.appendChild(m);
8083
+ const Q = v("g");
8084
+ Q.classList.add("module-layer0"), I.appendChild(Q), Q.setAttribute("filter", "url(#shadow)"), Q.innerHTML = m.outerHTML;
8085
+ const p = v("g");
8086
+ p.classList.add("module-layer1"), I.appendChild(p), p.setAttribute("stroke-width", "3"), p.setAttribute("stroke", "rgb(45,41,38)"), p.setAttribute("fill", "rgb(45,41,38)"), p.setAttribute("transform", "translate(0.5,0)"), p.innerHTML = s;
8087
+ const y = v("g");
8091
8088
  y.classList.add("module-layer2"), I.appendChild(y), y.setAttribute("fill", "rgb(255,209,0)"), y.setAttribute("transform", "translate(1,-0.1)"), y.innerHTML = s;
8092
- const M = R("g");
8089
+ const M = v("g");
8093
8090
  return M.classList.add("module-layer3"), I.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = s, new Qt(I).transform(([N, x]) => [N, x + (r / 2 - N) ** 2 / (r * 6)]), I;
8094
- }, l = R("g");
8091
+ }, l = v("g");
8095
8092
  l.classList.add("module-root");
8096
- const C = R("defs");
8097
- l.appendChild(C);
8098
- const d = R("g");
8099
- d.classList.add("module-bounds"), l.appendChild(d);
8093
+ const d = v("defs");
8094
+ l.appendChild(d);
8095
+ const C = v("g");
8096
+ C.classList.add("module-bounds"), l.appendChild(C);
8100
8097
  const E = ht(t.height, t.width);
8101
- E.setAttribute("opacity", "0"), d.appendChild(E);
8102
- const w = R("g");
8098
+ E.setAttribute("opacity", "0"), C.appendChild(E);
8099
+ const w = v("g");
8103
8100
  w.classList.add("module-text-enclosure"), l.appendChild(w);
8104
8101
  const u = B();
8105
8102
  w.appendChild(u);
8106
8103
  const h = Bt(g);
8107
- return ut(w, h, t.height, t.width, 0.35, 0.65), pA(l.outerHTML);
8104
+ return ut(w, h, t.height, t.width, 0.35, 0.65), IA(l.outerHTML);
8108
8105
  }
8109
8106
  }
8110
- async function DA(c) {
8107
+ async function fA(c) {
8111
8108
  if (c === "Favourites")
8112
8109
  return new pn();
8113
8110
  if (c === "Maltesers") {
@@ -8118,7 +8115,7 @@ async function DA(c) {
8118
8115
  return new Fn();
8119
8116
  throw new b(`Failed to resolve Module, Module ${c} not found`);
8120
8117
  }
8121
- var Te = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(Te || {});
8118
+ var pe = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(pe || {});
8122
8119
  const yn = 1e3;
8123
8120
  class kt extends lA {
8124
8121
  constructor(e) {
@@ -8133,16 +8130,16 @@ class kt extends lA {
8133
8130
  }
8134
8131
  }
8135
8132
  class Mn {
8136
- constructor(e, t, A, a, n, i, s, o, r, g, B, l, C = !1, d, E = !1, w = !1, u = !1) {
8133
+ constructor(e, t, A, a, n, i, s, o, r, g, B, l, d = !1, C, E = !1, w = !1, u = !1) {
8137
8134
  this.workflowStatePromiseQueue = new BA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
8138
- var Q;
8135
+ var D;
8139
8136
  if (!this.previewService)
8140
8137
  return;
8141
- const h = this.getCommandContext().getAllLayouts(), I = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
8138
+ const h = this.getCommandContext().getAllLayouts(), I = (D = this.getLayoutPreviewService()) == null ? void 0 : D.getAll();
8142
8139
  if (I)
8143
- for (const [, p] of I)
8144
- p.render(h);
8145
- }, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = l, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = w, 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 = g, this.modelContainer = d, 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 = B, this.isReloadedTransaction = E, u && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
8140
+ for (const [, m] of I)
8141
+ m.render(h);
8142
+ }, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = l, this.transaction = o, this.readOnly = d, this.singleVariantsRenderable = w, 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 = g, this.modelContainer = C, 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 = B, this.isReloadedTransaction = E, u && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
8146
8143
  this.initialized = !0;
8147
8144
  }), this.initializationPromise.catch((h) => {
8148
8145
  throw console.error(h), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
@@ -8163,7 +8160,7 @@ class Mn {
8163
8160
  };
8164
8161
  this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((s) => {
8165
8162
  this.storage[s.stepName] = s.storage || {};
8166
- }), this.allScenes = await Oa(e);
8163
+ }), this.allScenes = await za(e);
8167
8164
  const a = se(this.allScenes, this.stepSelections).map((s) => s.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
8168
8165
  this.commandContext.apply(new k(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
8169
8166
  }
@@ -8381,14 +8378,14 @@ class Mn {
8381
8378
  console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
8382
8379
  return;
8383
8380
  }
8384
- const C = i.data;
8381
+ const d = i.data;
8385
8382
  this.modelContainer.applyModelVariant(
8386
8383
  i.stepName,
8387
8384
  {
8388
8385
  model: l,
8389
8386
  contextService: this.getLayoutPreviewService()
8390
8387
  },
8391
- C.replaceProductModel || !1
8388
+ d.replaceProductModel || !1
8392
8389
  );
8393
8390
  } else {
8394
8391
  const l = o.material;
@@ -8396,12 +8393,12 @@ class Mn {
8396
8393
  console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
8397
8394
  return;
8398
8395
  }
8399
- i.data.targetMaterials.forEach((d) => {
8396
+ i.data.targetMaterials.forEach((C) => {
8400
8397
  if (!this.modelContainer)
8401
8398
  throw new b(
8402
8399
  "We should always have a model container when injecting a preview!"
8403
8400
  );
8404
- this.modelContainer.applyMaterialVariant(d, i.option.id, l);
8401
+ this.modelContainer.applyMaterialVariant(C, i.option.id, l);
8405
8402
  });
8406
8403
  }
8407
8404
  }), await A.getInitializationPromise(), this.renderLayouts();
@@ -8514,10 +8511,10 @@ class Mn {
8514
8511
  return Promise.resolve({ stepElements: {}, commands: [] });
8515
8512
  const a = async (r, g, B) => {
8516
8513
  if (r.type === F.SilentIllustration) {
8517
- const l = await new Rt(r, g).trigger();
8514
+ const l = await new vt(r, g).trigger();
8518
8515
  return { step: r, results: l };
8519
8516
  } else if (r.type === F.ProductOverlay) {
8520
- const l = await new Rt(
8517
+ const l = await new vt(
8521
8518
  r,
8522
8519
  g,
8523
8520
  B
@@ -8560,7 +8557,7 @@ class Mn {
8560
8557
  async updateTransactionStakeholders() {
8561
8558
  var t;
8562
8559
  const e = await P.getShadowGraphqlClient().query({
8563
- query: Ta,
8560
+ query: La,
8564
8561
  errorPolicy: "all",
8565
8562
  fetchPolicy: "no-cache",
8566
8563
  variables: {
@@ -8577,45 +8574,45 @@ class Mn {
8577
8574
  ), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, await this.ensureStepsAreLoaded();
8578
8575
  }
8579
8576
  async setSelectionsAndElements(e, t, A, a) {
8580
- var p;
8577
+ var m;
8581
8578
  const n = this.stepSelections;
8582
8579
  this.stepSelections = {
8583
8580
  ...this.stepSelections,
8584
8581
  [e]: { selectedVariants: t }
8585
- }, this.selectionCost = Object.values(this.stepSelections).reduce((m, D) => m + D.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, M) => y + M, 0), 0), this.workflow.steps.forEach((m) => {
8586
- re(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1, delete this.stepMetadata[m.stepName], delete this.stepSelections[m.stepName], delete this.storage[m.stepName]);
8582
+ }, this.selectionCost = Object.values(this.stepSelections).reduce((Q, p) => Q + p.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, M) => y + M, 0), 0), this.workflow.steps.forEach((Q) => {
8583
+ re(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1, delete this.stepMetadata[Q.stepName], delete this.stepSelections[Q.stepName], delete this.storage[Q.stepName]);
8587
8584
  });
8588
- const i = this.allScenes, s = se(i, n), o = se(i, this.stepSelections), r = s.map((m) => m.silentSteps).flat(), B = o.map((m) => m.silentSteps).flat().filter(
8589
- (m) => !r.some((D) => D.stepName === m.stepName)
8585
+ const i = this.allScenes, s = se(i, n), o = se(i, this.stepSelections), r = s.map((Q) => Q.silentSteps).flat(), B = o.map((Q) => Q.silentSteps).flat().filter(
8586
+ (Q) => !r.some((p) => p.stepName === Q.stepName)
8590
8587
  );
8591
- r.forEach((m) => {
8592
- re(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
8588
+ r.forEach((Q) => {
8589
+ re(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1);
8593
8590
  });
8594
- const l = this.getInvalidCanvasRegions(), { stepElements: C, commands: d } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8591
+ const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8595
8592
  this.stepElements = {
8596
8593
  ...this.stepElements,
8597
- ...C,
8594
+ ...d,
8598
8595
  [e]: A
8599
8596
  }, this.removeElements(l);
8600
- const E = this.workflow.steps.find((m) => m.stepName === e);
8597
+ const E = this.workflow.steps.find((Q) => Q.stepName === e);
8601
8598
  if ((E == null ? void 0 : E.type) === F.Frame) {
8602
- const m = this.getStepSpecificServices(e);
8603
- (p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((D) => D.id));
8599
+ const Q = this.getStepSpecificServices(e);
8600
+ (m = Q == null ? void 0 : Q.frameService) == null || m.setTargetElements(A.map((p) => p.id));
8604
8601
  }
8605
- const w = l.map((m) => new te(m.id)), u = new Mt(this.constructSerializableWorkflow()), h = [...d, ...w, u];
8602
+ const w = l.map((Q) => new te(Q.id)), u = new Mt(this.constructSerializableWorkflow()), h = [...C, ...w, u];
8606
8603
  h.length > 0 && this.commandContext.apply(new k(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
8607
- const I = this.getInvalidModelVariants(), Q = this.modelContainer;
8608
- if (Q) {
8609
- const m = I.map(
8610
- (D) => Q.applyModelVariant(
8611
- D,
8604
+ const I = this.getInvalidModelVariants(), D = this.modelContainer;
8605
+ if (D) {
8606
+ const Q = I.map(
8607
+ (p) => D.applyModelVariant(
8608
+ p,
8612
8609
  {
8613
8610
  contextService: this.getLayoutPreviewService()
8614
8611
  },
8615
8612
  !1
8616
8613
  )
8617
8614
  );
8618
- await Promise.all(m);
8615
+ await Promise.all(Q);
8619
8616
  }
8620
8617
  await this.onSelectionChange(), a && await a();
8621
8618
  }
@@ -8626,7 +8623,7 @@ class Mn {
8626
8623
  switch (this.stepInitialised[o.stepName] = !0, o.type) {
8627
8624
  case F.DigitalContent:
8628
8625
  A.push(
8629
- qa.init(
8626
+ CA.init(
8630
8627
  o,
8631
8628
  this,
8632
8629
  this.reloadedState
@@ -8635,7 +8632,7 @@ class Mn {
8635
8632
  break;
8636
8633
  case F.Frame:
8637
8634
  {
8638
- const r = new Va(o.data.forceImageCover);
8635
+ const r = new Xa(o.data.forceImageCover);
8639
8636
  r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
8640
8637
  frameService: r
8641
8638
  }, A.push(
@@ -8645,32 +8642,32 @@ class Mn {
8645
8642
  break;
8646
8643
  case F.Illustration:
8647
8644
  A.push(
8648
- Ne.init(o, this, this.reloadedState)
8645
+ Re.init(o, this, this.reloadedState)
8649
8646
  );
8650
8647
  break;
8651
8648
  case F.Material:
8652
8649
  A.push(
8653
- dA.init(o, this, this.reloadedState)
8650
+ wA.init(o, this, this.reloadedState)
8654
8651
  );
8655
8652
  break;
8656
8653
  case F.Model:
8657
- A.push(wA.init(o, this, this.reloadedState));
8654
+ A.push(EA.init(o, this, this.reloadedState));
8658
8655
  break;
8659
8656
  case F.Module:
8660
8657
  this.stepSpecificServices[o.stepName] = {
8661
- module: await DA(o.data.module)
8658
+ module: await fA(o.data.module)
8662
8659
  }, A.push(
8663
- on.init(o, this, this.reloadedState)
8660
+ hA.init(o, this, this.reloadedState)
8664
8661
  );
8665
8662
  break;
8666
8663
  case F.Picture:
8667
8664
  A.push(
8668
- EA.init(o, this, this.reloadedState)
8665
+ uA.init(o, this, this.reloadedState)
8669
8666
  );
8670
8667
  break;
8671
8668
  case F.Question:
8672
8669
  A.push(
8673
- hA.init(o, this, this.reloadedState)
8670
+ QA.init(o, this, this.reloadedState)
8674
8671
  );
8675
8672
  break;
8676
8673
  case F.Shape:
@@ -8737,7 +8734,7 @@ class Mn {
8737
8734
  this.validationCallbacks.forEach((e) => e(this.validationErrors));
8738
8735
  }
8739
8736
  traversableScenes() {
8740
- return Ka(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
8737
+ return Va(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
8741
8738
  }
8742
8739
  }
8743
8740
  class Z {
@@ -8831,7 +8828,7 @@ class Z {
8831
8828
  return this.variantData.enabled;
8832
8829
  }
8833
8830
  }
8834
- const IA = class it {
8831
+ const FA = class it {
8835
8832
  constructor(e, t) {
8836
8833
  this.manager = e, this.step = t;
8837
8834
  }
@@ -8950,8 +8947,8 @@ const IA = class it {
8950
8947
  e ? a && e.executeCameraAnimation(a) : console.warn("No preview service available, cannot execute camera animations."), t ? A && t.executeAnimation(A) : console.warn("No model container available, cannot execute model animations.");
8951
8948
  }
8952
8949
  };
8953
- IA.updateState = /* @__PURE__ */ new Map();
8954
- let X = IA;
8950
+ FA.updateState = /* @__PURE__ */ new Map();
8951
+ let X = FA;
8955
8952
  class Sn extends X {
8956
8953
  constructor(e, t) {
8957
8954
  super(e, t);
@@ -8963,7 +8960,7 @@ class Sn extends X {
8963
8960
  */
8964
8961
  async selectVariant(e) {
8965
8962
  if (!this.getUpdateState() && this.getCurrentVariant() !== e)
8966
- return Ne.selectVariant(
8963
+ return Re.selectVariant(
8967
8964
  this.step,
8968
8965
  e.getResource(),
8969
8966
  this.manager.getRegionElements(this.step.stepName) || [],
@@ -8979,7 +8976,7 @@ class Sn extends X {
8979
8976
  const e = this.manager.getRegionElements(this.step.stepName) || [];
8980
8977
  if (e.length !== 0)
8981
8978
  try {
8982
- return Re(e[0].id, this.manager.getAllLayoutData()).colors;
8979
+ return He(e[0].id, this.manager.getAllLayoutData()).colors;
8983
8980
  } catch (t) {
8984
8981
  console.error(t);
8985
8982
  }
@@ -8989,7 +8986,7 @@ class Sn extends X {
8989
8986
  */
8990
8987
  setColor(e, t) {
8991
8988
  const A = /* @__PURE__ */ new Map();
8992
- return A.set(e, t), Ne.changeColors(
8989
+ return A.set(e, t), Re.changeColors(
8993
8990
  this.step,
8994
8991
  this.manager.getRegionElements(this.step.stepName),
8995
8992
  this.manager,
@@ -9001,7 +8998,7 @@ class Sn extends X {
9001
8998
  return this.step.data.colorOption;
9002
8999
  }
9003
9000
  getAvailableColors() {
9004
- return this.step.data.colorPickerEnabled ? Ne.availableColors(this.step, this.manager) : Promise.resolve([]);
9001
+ return this.step.data.colorPickerEnabled ? Re.availableColors(this.step, this.manager) : Promise.resolve([]);
9005
9002
  }
9006
9003
  isColorPickerEnabled() {
9007
9004
  return this.step.data.colorPickerEnabled ?? !1;
@@ -9012,7 +9009,7 @@ class Yn extends X {
9012
9009
  super(e, t);
9013
9010
  }
9014
9011
  selectVariant(e) {
9015
- return dA.selectVariant(
9012
+ return wA.selectVariant(
9016
9013
  this.step,
9017
9014
  e.getResource(),
9018
9015
  this.manager,
@@ -9025,7 +9022,7 @@ class Pn extends X {
9025
9022
  super(e, t);
9026
9023
  }
9027
9024
  selectVariant(e) {
9028
- return wA.selectVariant(
9025
+ return EA.selectVariant(
9029
9026
  this.step,
9030
9027
  e.getResource(),
9031
9028
  this.manager,
@@ -9043,7 +9040,7 @@ class xn extends X {
9043
9040
  * @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
9044
9041
  */
9045
9042
  selectVariant(e) {
9046
- return EA.selectVariant(
9043
+ return uA.selectVariant(
9047
9044
  this.step,
9048
9045
  e.getResource(),
9049
9046
  this.manager,
@@ -9058,7 +9055,7 @@ class Nn extends X {
9058
9055
  async selectVariant(e) {
9059
9056
  if (!e.getId())
9060
9057
  throw new Error("Unable to select variant with a null ID");
9061
- await hA.selectVariant(this.step, e.getId(), this.manager);
9058
+ await QA.selectVariant(this.step, e.getId(), this.manager);
9062
9059
  }
9063
9060
  /**
9064
9061
  * The way that this step expects to be rendered.
@@ -9068,7 +9065,7 @@ class Nn extends X {
9068
9065
  return this.step.data.displayType || ((e = this.step.option) == null ? void 0 : e.displayType);
9069
9066
  }
9070
9067
  }
9071
- class vn extends X {
9068
+ class Rn extends X {
9072
9069
  constructor(e, t) {
9073
9070
  super(e, t);
9074
9071
  }
@@ -9130,7 +9127,7 @@ class vn extends X {
9130
9127
  return e;
9131
9128
  }
9132
9129
  }
9133
- class Rn extends X {
9130
+ class vn extends X {
9134
9131
  constructor(e, t) {
9135
9132
  super(e, t);
9136
9133
  }
@@ -9149,7 +9146,7 @@ class Rn extends X {
9149
9146
  ...this.manager.getInformationResults(),
9150
9147
  {
9151
9148
  message: "An issue has occurred with text",
9152
- messageType: Te.Error,
9149
+ messageType: pe.Error,
9153
9150
  stepID: this.step.stepName
9154
9151
  }
9155
9152
  ]);
@@ -9221,10 +9218,10 @@ class Rn extends X {
9221
9218
  * @param userInput Input from the user.
9222
9219
  */
9223
9220
  setText(e) {
9224
- var C, d;
9221
+ var d, C;
9225
9222
  const t = {
9226
9223
  input: e
9227
- }, A = V.findLayoutElements(this.manager, this.step), a = V.filterUnsupportedCharacters(e, (C = A[0]) == null ? void 0 : C.fontData);
9224
+ }, A = V.findLayoutElements(this.manager, this.step), a = V.filterUnsupportedCharacters(e, (d = A[0]) == null ? void 0 : d.fontData);
9228
9225
  !!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (t.input = a);
9229
9226
  const i = A.length <= 0, s = i ? { inputText: a, text: a } : { inputText: a };
9230
9227
  if (this.manager.updateStorage(this.step.stepName, s), this.manager.updateMetadata(this.step.stepName, {
@@ -9238,13 +9235,13 @@ class Rn extends X {
9238
9235
  this.manager
9239
9236
  );
9240
9237
  o && this.manager.getCommandDispatcher()(o);
9241
- const B = this.manager.getInformationResults(), l = (d = r[0]) == null ? void 0 : d.localizationKey;
9238
+ const B = this.manager.getInformationResults(), l = (C = r[0]) == null ? void 0 : C.localizationKey;
9242
9239
  if (l)
9243
9240
  this.manager.setInformationResults([
9244
9241
  ...B,
9245
9242
  {
9246
9243
  message: `${l} - ${this.step.stepTitle}`,
9247
- messageType: Te.Error,
9244
+ messageType: pe.Error,
9248
9245
  stepID: this.step.stepName
9249
9246
  }
9250
9247
  ]);
@@ -9327,15 +9324,75 @@ class Un extends X {
9327
9324
  }
9328
9325
  async selectVariant() {
9329
9326
  }
9327
+ /**
9328
+ * Returns a preview URL used to show the generated QR code in your UI.
9329
+ */
9330
+ getPreviewURL() {
9331
+ var e;
9332
+ return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.videoUrl) || "";
9333
+ }
9334
+ /**
9335
+ * Turns an asset into a QR code that can be used to access the content.
9336
+ * @param asset The asset to use for the QR code.
9337
+ * @returns The final URL string for the QR code.
9338
+ */
9339
+ async selectVideo(e) {
9340
+ return CA.regenerateQRCode(
9341
+ this.manager.getRegionElements(this.step.stepName),
9342
+ e.key,
9343
+ this.manager,
9344
+ this.step
9345
+ );
9346
+ }
9330
9347
  }
9331
9348
  class kn extends X {
9332
9349
  constructor(e, t) {
9333
9350
  super(e, t);
9334
9351
  }
9335
9352
  async selectVariant() {
9353
+ console.info("Text Modules don't support variants.");
9354
+ }
9355
+ /**
9356
+ * Return the remaining amount of characters that
9357
+ * the user is allowed to add, or undefined if there is no limit.
9358
+ */
9359
+ getCharactersRemaining() {
9360
+ const e = this.step.data.maxLength;
9361
+ if (e === void 0)
9362
+ return;
9363
+ const t = this.getText();
9364
+ return e - t.length;
9365
+ }
9366
+ /**
9367
+ * Return the maximum characters allowed for
9368
+ * this step, or undefined if there is no limit.
9369
+ */
9370
+ getCharacterLimit() {
9371
+ return this.step.data.maxLength;
9372
+ }
9373
+ getText() {
9374
+ var e;
9375
+ return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.text) || "";
9376
+ }
9377
+ setText(e) {
9378
+ hA.changeText(this.step, e, this.manager, "", (t) => {
9379
+ if (t)
9380
+ this.manager.setInformationResults([
9381
+ ...this.manager.getInformationResults(),
9382
+ {
9383
+ message: t,
9384
+ messageType: pe.Error,
9385
+ stepID: this.step.stepName
9386
+ }
9387
+ ]);
9388
+ else {
9389
+ const A = this.manager.getInformationResults().filter((a) => a.stepID !== this.step.stepName);
9390
+ this.manager.setInformationResults(A);
9391
+ }
9392
+ });
9336
9393
  }
9337
9394
  }
9338
- class ye {
9395
+ class Me {
9339
9396
  static get(e, t) {
9340
9397
  switch (t.type) {
9341
9398
  case F.DigitalContent:
@@ -9345,13 +9402,13 @@ class ye {
9345
9402
  case F.Question:
9346
9403
  return new Nn(e, t);
9347
9404
  case F.Text:
9348
- return new Rn(e, t);
9405
+ return new vn(e, t);
9349
9406
  case F.Illustration:
9350
9407
  return new Sn(e, t);
9351
9408
  case F.Picture:
9352
9409
  return new xn(e, t);
9353
9410
  case F.Shape:
9354
- return new vn(e, t);
9411
+ return new Rn(e, t);
9355
9412
  case F.Material:
9356
9413
  return new Yn(e, t);
9357
9414
  case F.Model:
@@ -9365,7 +9422,7 @@ class ye {
9365
9422
  }
9366
9423
  }
9367
9424
  }
9368
- const fA = f`
9425
+ const yA = f`
9369
9426
  fragment CreateDesignTransaction on Transaction {
9370
9427
  id
9371
9428
  designName
@@ -9391,7 +9448,7 @@ const fA = f`
9391
9448
  }
9392
9449
  }
9393
9450
  `, Gn = f`
9394
- ${fA}
9451
+ ${yA}
9395
9452
  mutation CreateDesign(
9396
9453
  $name: String!
9397
9454
  $layouts: [LayoutInput]!
@@ -9423,7 +9480,7 @@ const fA = f`
9423
9480
  }
9424
9481
  }
9425
9482
  `, bn = f`
9426
- ${fA}
9483
+ ${yA}
9427
9484
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
9428
9485
  designCreateMany(inputs: $inputs) {
9429
9486
  id
@@ -9541,10 +9598,10 @@ const Jn = async (c) => {
9541
9598
  });
9542
9599
  }
9543
9600
  return a;
9544
- }, FA = (c, e, t, A, a, n, i, s) => {
9545
- var d, E;
9546
- const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = On(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), C = {
9547
- additionalExternalProductId: (d = c.integrationProduct) == null ? void 0 : d.additionalExternalProductId,
9601
+ }, MA = (c, e, t, A, a, n, i, s) => {
9602
+ var C, E;
9603
+ const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = On(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
9604
+ additionalExternalProductId: (C = c.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
9548
9605
  additionalExternalVariantId: (E = c.integrationProduct) == null ? void 0 : E.additionalExternalVariantId,
9549
9606
  baseCost: o,
9550
9607
  designExternalVariants: c.designExternalVariants,
@@ -9564,8 +9621,8 @@ const Jn = async (c) => {
9564
9621
  workflowViewerLink: c.workflowViewerLink || "",
9565
9622
  workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
9566
9623
  };
9567
- return n && (C.metadata = n), A && (C.selectedVariants = A), a && (C.sku = a), C;
9568
- }, yA = async (c, e, t, A, a, n, i, s, o, r) => {
9624
+ return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
9625
+ }, SA = async (c, e, t, A, a, n, i, s, o, r) => {
9569
9626
  var y;
9570
9627
  await (async () => {
9571
9628
  var L;
@@ -9580,19 +9637,19 @@ const Jn = async (c) => {
9580
9637
  context: {
9581
9638
  transactionOwnerId: S
9582
9639
  }
9583
- }), v = (L = x.data) == null ? void 0 : L.transactions[0].workflowState;
9640
+ }), R = (L = x.data) == null ? void 0 : L.transactions[0].workflowState;
9584
9641
  return x.errors ? (x.errors.forEach((T) => {
9585
9642
  x.errors && console.log("Server Error:", T.message);
9586
- }), null) : v ?? null;
9643
+ }), null) : R ?? null;
9587
9644
  })() || (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"));
9588
- const l = c.getPreviewService(), C = (y = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, d = l && e.showModelOnFinishStep && !!C, E = o && st(o, e, !0), w = o && st(o, e, !1), u = async (M) => {
9645
+ const l = c.getPreviewService(), d = (y = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, E = o && st(o, e, !0), w = o && st(o, e, !1), u = async (M) => {
9589
9646
  const S = {};
9590
9647
  let N = 0;
9591
9648
  if (Object.keys(n).length > 0)
9592
9649
  for (const x of Object.keys(n)) {
9593
- const v = n[x], L = e.steps.find((T) => T.stepName === x);
9594
- for (let T = 0; T < v.selections.length; ++T) {
9595
- const W = v.selections[T];
9650
+ const R = n[x], L = e.steps.find((T) => T.stepName === x);
9651
+ for (let T = 0; T < R.selections.length; ++T) {
9652
+ const W = R.selections[T];
9596
9653
  if (L && (!M || L.option && (L.option.variants || []).length > 1 && !L.data.hideSelectionInCart && !L.data.hideSelectionsInCart)) {
9597
9654
  const je = L.stepTitle;
9598
9655
  S[je] ? S[je].push({
@@ -9613,16 +9670,16 @@ const Jn = async (c) => {
9613
9670
  return [S, N];
9614
9671
  }, [h] = await u(!0), I = Object.fromEntries(
9615
9672
  Object.keys(h).map((M) => [M, h[M].map((S) => S.id)])
9616
- ), [Q] = await u(!1), p = Object.fromEntries(
9617
- Object.keys(Q).map((M) => [
9673
+ ), [D] = await u(!1), m = Object.fromEntries(
9674
+ Object.keys(D).map((M) => [
9618
9675
  M,
9619
- Q[M].map((S) => S.id)
9676
+ D[M].map((S) => S.id)
9620
9677
  ])
9621
9678
  );
9622
- let m = await s(d, a.id);
9623
- if (m) {
9624
- const M = await (await fetch(m)).blob();
9625
- m = (await U.uploadAsset(
9679
+ let Q = await s(C, a.id);
9680
+ if (Q) {
9681
+ const M = await (await fetch(Q)).blob();
9682
+ Q = (await U.uploadAsset(
9626
9683
  { name: `${a.id}-preview-image.png`, blob: M },
9627
9684
  _e.Image,
9628
9685
  !0,
@@ -9639,8 +9696,8 @@ const Jn = async (c) => {
9639
9696
  })),
9640
9697
  workflowId: e.id,
9641
9698
  transactionId: a.id,
9642
- useThreeDimPreview: !!d,
9643
- previewImage: m
9699
+ useThreeDimPreview: !!C,
9700
+ previewImage: Q
9644
9701
  };
9645
9702
  if (w) {
9646
9703
  const S = [];
@@ -9650,7 +9707,7 @@ const Jn = async (c) => {
9650
9707
  }
9651
9708
  if (I) {
9652
9709
  const S = [];
9653
- for (const [N, x] of Object.entries(p))
9710
+ for (const [N, x] of Object.entries(m))
9654
9711
  S.push({ key: N, ids: x });
9655
9712
  M.selectedVariants = S;
9656
9713
  }
@@ -9662,7 +9719,7 @@ const Jn = async (c) => {
9662
9719
  }, Ln = async (c, e, t, A, a, n, i, s, o, r, g) => {
9663
9720
  var u, h;
9664
9721
  o("workflow.steps.finish.finalize.buildingLayouts");
9665
- const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: C } = await yA(
9722
+ const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await SA(
9666
9723
  c,
9667
9724
  e,
9668
9725
  t,
@@ -9674,20 +9731,20 @@ const Jn = async (c) => {
9674
9731
  g
9675
9732
  );
9676
9733
  o("workflow.steps.finish.finalize.creatingDesign");
9677
- const d = await Jn(B), E = (u = d == null ? void 0 : d.transaction) == null ? void 0 : u.previewImageLink;
9678
- if (!(d != null && d.transaction))
9734
+ const C = await Jn(B), E = (u = C == null ? void 0 : C.transaction) == null ? void 0 : u.previewImageLink;
9735
+ if (!(C != null && C.transaction))
9679
9736
  throw new Error("Failed to create design");
9680
9737
  o("workflow.steps.finish.finalize.updatingTransaction");
9681
- const w = d.transaction;
9682
- return FA(
9738
+ const w = C.transaction;
9739
+ return MA(
9683
9740
  w,
9684
9741
  a,
9685
9742
  e,
9686
9743
  l,
9687
- d == null ? void 0 : d.sku,
9688
- C,
9744
+ C == null ? void 0 : C.sku,
9745
+ d,
9689
9746
  E,
9690
- (h = d == null ? void 0 : d.processExecution) == null ? void 0 : h.id
9747
+ (h = C == null ? void 0 : C.processExecution) == null ? void 0 : h.id
9691
9748
  );
9692
9749
  }, zn = async (c, e, t) => {
9693
9750
  e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
@@ -9707,7 +9764,7 @@ const Jn = async (c) => {
9707
9764
  o.errors && console.log("Server Error:", g.message);
9708
9765
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
9709
9766
  })(), n = await Promise.all(
9710
- c.map(async (s, o) => await yA(
9767
+ c.map(async (s, o) => await SA(
9711
9768
  s.workflowManager,
9712
9769
  s.workflow,
9713
9770
  s.layouts,
@@ -9727,7 +9784,7 @@ const Jn = async (c) => {
9727
9784
  return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
9728
9785
  var l;
9729
9786
  const r = c[o], g = n[o], B = s.transaction;
9730
- return FA(
9787
+ return MA(
9731
9788
  B,
9732
9789
  r.product,
9733
9790
  r.workflow,
@@ -9823,7 +9880,7 @@ const qe = new Kn(), jn = f`
9823
9880
  }
9824
9881
  `;
9825
9882
  var Vn = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(Vn || {});
9826
- class Me {
9883
+ class Se {
9827
9884
  constructor(e, t) {
9828
9885
  var a;
9829
9886
  if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = $t(async () => {
@@ -9845,7 +9902,7 @@ class Me {
9845
9902
  throw new Error("No Workflow ID provided.");
9846
9903
  this.client = e;
9847
9904
  const A = t.layouts;
9848
- this.commandContext = new qA(), this.commandContext.initialize(A, t.reloadedState), this.isReadOnly = t.transaction.isOrdered || !!t.readOnly, this.workflowManager = new Mn(
9905
+ this.commandContext = new $A(), this.commandContext.initialize(A, t.reloadedState), this.isReadOnly = t.transaction.isOrdered || !!t.readOnly, this.workflowManager = new Mn(
9849
9906
  this,
9850
9907
  e,
9851
9908
  t.workflow,
@@ -9911,9 +9968,9 @@ class Me {
9911
9968
  }
9912
9969
  let n = 2048;
9913
9970
  t && t <= 2048 && (n = t);
9914
- const i = He(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
9915
- var p;
9916
- return ((p = Q.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
9971
+ const i = Ue(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((D) => {
9972
+ var m;
9973
+ return ((m = D.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
9917
9974
  }) || s[0], B = g.layoutState.layout.previewRegion ? {
9918
9975
  x: g.layoutState.layout.previewRegion.left,
9919
9976
  y: g.layoutState.layout.previewRegion.top,
@@ -9924,19 +9981,19 @@ class Me {
9924
9981
  y: 0,
9925
9982
  width: g.layoutState.layout.width,
9926
9983
  height: g.layoutState.layout.height
9927
- }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), C = i.getContext("2d");
9928
- if (!C)
9984
+ }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
9985
+ if (!d)
9929
9986
  throw new Ke("Failed to obtain 2D context for preview image creation");
9930
- const d = Lt(l.layoutState.layout, l.layoutState.elements, {
9987
+ const C = Lt(l.layoutState.layout, l.layoutState.elements, {
9931
9988
  renderingConfiguration: {
9932
9989
  purpose: zt.Print,
9933
9990
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
9934
9991
  }
9935
- }), E = Kt(d);
9936
- await (await Zt.from(C, E, {
9992
+ }), E = Kt(C);
9993
+ await (await Zt.from(d, E, {
9937
9994
  anonymousCrossOrigin: !0,
9938
9995
  ignoreDimensions: !1,
9939
- createCanvas: He,
9996
+ createCanvas: Ue,
9940
9997
  createImage: jt,
9941
9998
  DOMParser: Vt(),
9942
9999
  fetch: ot
@@ -9951,7 +10008,7 @@ class Me {
9951
10008
  const A = this.cachedStepHandles.get(t.stepName);
9952
10009
  if (A)
9953
10010
  return A;
9954
- const a = ye.get(this.getWorkflowManager(), t);
10011
+ const a = Me.get(this.getWorkflowManager(), t);
9955
10012
  return this.cachedStepHandles.set(t.stepName, a), a;
9956
10013
  }
9957
10014
  getSteps() {
@@ -10029,17 +10086,17 @@ class Me {
10029
10086
  i.forEach((r) => {
10030
10087
  const g = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
10031
10088
  B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))), s.forEach((l) => {
10032
- const C = l.getRaw().globalPropertyAspectConfigurations;
10033
- C !== void 0 && C.forEach((d) => {
10034
- const E = o(d), w = g.has(JSON.stringify(d));
10089
+ const d = l.getRaw().globalPropertyAspectConfigurations;
10090
+ d !== void 0 && d.forEach((C) => {
10091
+ const E = o(C), w = g.has(JSON.stringify(C));
10035
10092
  if (w && (E == null ? void 0 : E.getType()) === "Option") {
10036
10093
  const u = l.getCurrentVariant();
10037
10094
  if (!u)
10038
10095
  return;
10039
- r.selectVariant(u), g.delete(JSON.stringify(d));
10096
+ r.selectVariant(u), g.delete(JSON.stringify(C));
10040
10097
  } else if (w && (E == null ? void 0 : E.getType()) === "Text") {
10041
10098
  const u = l.getText();
10042
- r.setText(u), g.delete(JSON.stringify(d));
10099
+ r.setText(u), g.delete(JSON.stringify(C));
10043
10100
  }
10044
10101
  });
10045
10102
  }));
@@ -10048,10 +10105,10 @@ class Me {
10048
10105
  getStepByName(e) {
10049
10106
  const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
10050
10107
  if (!(!t || !this.stepHasHandle(t)))
10051
- return ye.get(this.getWorkflowManager(), t);
10108
+ return Me.get(this.getWorkflowManager(), t);
10052
10109
  }
10053
10110
  getStepsByType(e) {
10054
- return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => ye.get(this.getWorkflowManager(), t));
10111
+ return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Me.get(this.getWorkflowManager(), t));
10055
10112
  }
10056
10113
  getStepsByScene(e) {
10057
10114
  if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
@@ -10060,7 +10117,7 @@ class Me {
10060
10117
  );
10061
10118
  return e.stepIds.map(
10062
10119
  (A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
10063
- ).filter((A) => this.stepHasHandle(A)).map((A) => ye.get(this.getWorkflowManager(), A));
10120
+ ).filter((A) => this.stepHasHandle(A)).map((A) => Me.get(this.getWorkflowManager(), A));
10064
10121
  }
10065
10122
  async attachCustomerDetails(e) {
10066
10123
  return this.assignCustomerDetails({ emailAddress: e.email });
@@ -10181,7 +10238,7 @@ class Me {
10181
10238
  ), this.checkForPriceBreakChanges();
10182
10239
  const t = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), A = this.getWorkflowManager().getTransaction(), a = t.get(A.id) || void 0;
10183
10240
  await P.getShadowGraphqlClient().mutate({
10184
- mutation: ka,
10241
+ mutation: ba,
10185
10242
  variables: {
10186
10243
  id: A.id,
10187
10244
  quantity: e
@@ -10221,47 +10278,47 @@ const Wn = [
10221
10278
  ], Xn = async (c, e, t) => {
10222
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);
10223
10280
  s.searchParams.append("video", St(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
10224
- const o = s.toString(), g = `data:image/svg+xml;base64,${St(await eA(o, { type: "svg" }))}`, B = (C) => {
10225
- const d = c.find((w) => w.panelId === C.panelId);
10226
- if (!d)
10227
- throw new z(C);
10281
+ const o = s.toString(), g = `data:image/svg+xml;base64,${St(await eA(o, { type: "svg" }))}`, B = (d) => {
10282
+ const C = c.find((w) => w.panelId === d.panelId);
10283
+ if (!C)
10284
+ throw new z(d);
10228
10285
  const E = J();
10229
10286
  return new O(
10230
10287
  {
10231
10288
  id: E,
10232
10289
  src: g,
10233
10290
  type: G.Image,
10234
- y: C.top,
10235
- x: C.left,
10236
- width: C.width,
10237
- height: C.height,
10291
+ y: d.top,
10292
+ x: d.left,
10293
+ width: d.width,
10294
+ height: d.height,
10238
10295
  rotation: 0
10239
10296
  },
10240
- d
10297
+ C
10241
10298
  );
10242
10299
  }, l = t.data.regions;
10243
10300
  try {
10244
10301
  return l.map(B);
10245
- } catch (C) {
10246
- return console.error(C), [];
10302
+ } catch (d) {
10303
+ return console.error(d), [];
10247
10304
  }
10248
10305
  }, qn = async (c, e, t, A) => {
10249
10306
  const a = t.data, n = a.assetUrl, i = await tt(n);
10250
10307
  try {
10251
- const s = ZA(a, A.option);
10308
+ const s = _A(a, A.option);
10252
10309
  s && (e[A.stepName] = { selectedVariants: [s] });
10253
10310
  const o = async (r) => {
10254
10311
  var E;
10255
- const g = await $A(
10312
+ const g = await ea(
10256
10313
  r || {
10257
10314
  width: 1,
10258
10315
  height: 1
10259
10316
  },
10260
10317
  (E = s == null ? void 0 : s.asset) == null ? void 0 : E.fileLink
10261
- ), B = await rt(g), l = J(), C = c.find((w) => w.panelId === r.panelId);
10262
- if (!C)
10318
+ ), B = await rt(g), l = J(), d = c.find((w) => w.panelId === r.panelId);
10319
+ if (!d)
10263
10320
  throw new z(r);
10264
- const d = ct(i, B, {
10321
+ const C = ct(i, B, {
10265
10322
  scale: a.scale,
10266
10323
  left: a.x,
10267
10324
  top: a.y
@@ -10289,9 +10346,9 @@ const Wn = [
10289
10346
  scaleY: r.height / B.height,
10290
10347
  pattern: void 0
10291
10348
  },
10292
- C
10349
+ d
10293
10350
  ),
10294
- new Ot(l, i, d)
10351
+ new Ot(l, i, C)
10295
10352
  ];
10296
10353
  };
10297
10354
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
@@ -10299,50 +10356,50 @@ const Wn = [
10299
10356
  return console.error(s), [];
10300
10357
  }
10301
10358
  }, Zn = async (c, e, t, A) => {
10302
- var p, m;
10359
+ var m, Q;
10303
10360
  const a = t.data, n = A.option;
10304
10361
  if (!n)
10305
10362
  return console.error(`No option for step ${A.stepName}.`), [];
10306
- const i = ((p = n.variants) == null ? void 0 : p.find((D) => D.id === a.illustrationVariantId)) || Le(n);
10363
+ const i = ((m = n.variants) == null ? void 0 : m.find((p) => p.id === a.illustrationVariantId)) || Le(n);
10307
10364
  if (!i)
10308
10365
  return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
10309
10366
  if (!i.asset)
10310
10367
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
10311
10368
  e[A.stepName] = { selectedVariants: [i] };
10312
- const s = (m = i.asset) == null ? void 0 : m.fileLink;
10369
+ const s = (Q = i.asset) == null ? void 0 : Q.fileLink;
10313
10370
  if (!s)
10314
10371
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
10315
- const o = await $(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", d = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
10316
- if (!d)
10372
+ const o = await $(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", C = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
10373
+ if (!C)
10317
10374
  return console.error("Failed to read SVG."), [];
10318
- Xt(d);
10375
+ Xt(C);
10319
10376
  const E = {};
10320
- _A(d, (D) => {
10321
- Wn.includes(D.tagName) && !D.attributes.getNamedItem("fill") && D.setAttribute("fill", "#000000");
10322
- const y = D.attributes.getNamedItem("fill");
10377
+ ta(C, (p) => {
10378
+ Wn.includes(p.tagName) && !p.attributes.getNamedItem("fill") && p.setAttribute("fill", "#000000");
10379
+ const y = p.attributes.getNamedItem("fill");
10323
10380
  if (y && y.value !== "none") {
10324
10381
  const S = y.value, x = `spiff-fill-${S.replace(/\W/g, "")}`;
10325
- D.classList.add(x), E[x] = { browserValue: S };
10382
+ p.classList.add(x), E[x] = { browserValue: S };
10326
10383
  }
10327
- const M = D.attributes.getNamedItem("stroke");
10384
+ const M = p.attributes.getNamedItem("stroke");
10328
10385
  if (M && M.value !== "none") {
10329
10386
  const S = M.value, x = `spiff-stroke-${S.replace(/\W/g, "")}`;
10330
- D.classList.add(x), E[x] = { browserValue: S };
10387
+ p.classList.add(x), E[x] = { browserValue: S };
10331
10388
  }
10332
10389
  });
10333
- const u = qt().serializeToString(d), h = a.colors;
10390
+ const u = qt().serializeToString(C), h = a.colors;
10334
10391
  if (h) {
10335
- for (const [D, y] of Object.entries(E))
10392
+ for (const [p, y] of Object.entries(E))
10336
10393
  for (const M of Object.keys(h))
10337
10394
  if (y.browserValue === M) {
10338
- E[D] = { browserValue: h[M] };
10395
+ E[p] = { browserValue: h[M] };
10339
10396
  break;
10340
10397
  }
10341
10398
  }
10342
- const I = (D) => {
10343
- const y = c.find((S) => S.panelId === D.panelId);
10399
+ const I = (p) => {
10400
+ const y = c.find((S) => S.panelId === p.panelId);
10344
10401
  if (!y)
10345
- throw new z(D);
10402
+ throw new z(p);
10346
10403
  const M = J();
10347
10404
  return new O(
10348
10405
  {
@@ -10350,25 +10407,25 @@ const Wn = [
10350
10407
  id: M,
10351
10408
  svg: u,
10352
10409
  type: G.Illustration,
10353
- y: D.top,
10354
- x: D.left,
10355
- rotation: D.rotation,
10356
- width: D.width,
10357
- height: D.height,
10358
- layer: D.layer,
10359
- layerIndex: D.layerIndex,
10360
- immutable: D.immutable
10410
+ y: p.top,
10411
+ x: p.left,
10412
+ rotation: p.rotation,
10413
+ width: p.width,
10414
+ height: p.height,
10415
+ layer: p.layer,
10416
+ layerIndex: p.layerIndex,
10417
+ immutable: p.immutable
10361
10418
  },
10362
10419
  y
10363
10420
  );
10364
- }, Q = A.data.regions;
10421
+ }, D = A.data.regions;
10365
10422
  try {
10366
- return Q.map(I);
10367
- } catch (D) {
10368
- return console.error(D), [];
10423
+ return D.map(I);
10424
+ } catch (p) {
10425
+ return console.error(p), [];
10369
10426
  }
10370
10427
  }, $n = async (c, e, t) => {
10371
- const A = await DA(t.data.module), a = e.data, n = (s, o) => {
10428
+ const A = await fA(t.data.module), a = e.data, n = (s, o) => {
10372
10429
  const r = c.find((B) => B.panelId === o.panelId);
10373
10430
  if (!r)
10374
10431
  throw new z(o);
@@ -10412,13 +10469,13 @@ const Wn = [
10412
10469
  if (!s)
10413
10470
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
10414
10471
  const o = (l) => {
10415
- const C = c.find((E) => E.panelId === l.panelId);
10416
- if (!C)
10472
+ const d = c.find((E) => E.panelId === l.panelId);
10473
+ if (!d)
10417
10474
  throw new z(l);
10418
- const d = J();
10475
+ const C = J();
10419
10476
  return new O(
10420
10477
  {
10421
- id: d,
10478
+ id: C,
10422
10479
  src: s,
10423
10480
  type: G.Image,
10424
10481
  y: l.top,
@@ -10431,7 +10488,7 @@ const Wn = [
10431
10488
  immutable: l.immutable,
10432
10489
  preserveAspectRatio: "none"
10433
10490
  },
10434
- C
10491
+ d
10435
10492
  );
10436
10493
  }, r = A.data.regions;
10437
10494
  try {
@@ -10472,10 +10529,10 @@ const Wn = [
10472
10529
  fill="${i == null ? void 0 : i.color}"
10473
10530
  />
10474
10531
  </svg>
10475
- `, d = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, E = J();
10532
+ `, C = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, E = J();
10476
10533
  return new O(
10477
10534
  {
10478
- colors: d,
10535
+ colors: C,
10479
10536
  id: E,
10480
10537
  svg: l,
10481
10538
  type: G.Illustration,
@@ -10531,16 +10588,16 @@ const Wn = [
10531
10588
  }
10532
10589
  else {
10533
10590
  const r = await $(n, !0), g = (B) => {
10534
- const l = /<svg.*?<\/svg>/s, C = B.match(l) || [], d = (C == null ? void 0 : C.length) > 0 ? C[0] : "", u = Wt().parseFromString(d, "image/svg+xml").firstElementChild;
10591
+ const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Wt().parseFromString(C, "image/svg+xml").firstElementChild;
10535
10592
  if (!u)
10536
- throw new de("Failed to read SVG.");
10593
+ throw new Ce("Failed to read SVG.");
10537
10594
  return Xt(u), qt().serializeToString(u);
10538
10595
  };
10539
10596
  o.forEach((B) => {
10540
- const l = c.find((d) => d.panelId === B.panelId);
10597
+ const l = c.find((C) => C.panelId === B.panelId);
10541
10598
  if (!l)
10542
10599
  throw new z(B);
10543
- const C = {
10600
+ const d = {
10544
10601
  id: J(),
10545
10602
  src: n,
10546
10603
  asset_key: n,
@@ -10559,7 +10616,7 @@ const Wn = [
10559
10616
  productOverlay: e.type === F.ProductOverlay ? !0 : void 0,
10560
10617
  excludeFromExport: e.data.excludeFromPrint
10561
10618
  };
10562
- A.push(new O(C, l));
10619
+ A.push(new O(d, l));
10563
10620
  });
10564
10621
  }
10565
10622
  return A;
@@ -10569,7 +10626,7 @@ const Wn = [
10569
10626
  const w = A.option;
10570
10627
  if (!w)
10571
10628
  return;
10572
- const u = ((I = w.variants) == null ? void 0 : I.find((Q) => Q.id === n.fontVariantId)) || Le(w);
10629
+ const u = ((I = w.variants) == null ? void 0 : I.find((D) => D.id === n.fontVariantId)) || Le(w);
10573
10630
  if (!u || !u.asset)
10574
10631
  return;
10575
10632
  e[A.stepName] = { selectedVariants: [u] };
@@ -10588,13 +10645,13 @@ const Wn = [
10588
10645
  })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = At(B, {
10589
10646
  vertical: A.data.vertical,
10590
10647
  uppercase: A.data.uppercase
10591
- }), C = async (w) => {
10648
+ }), d = async (w) => {
10592
10649
  const u = w.colorOption;
10593
10650
  if (!u)
10594
10651
  return;
10595
10652
  const h = j.getDefaultVariant(u);
10596
10653
  return h == null ? void 0 : h.color;
10597
- }, d = n.color || await C(A.data), E = A.data.regions;
10654
+ }, C = n.color || await d(A.data), E = A.data.regions;
10598
10655
  for (const w of E) {
10599
10656
  const u = c.find((I) => I.panelId === w.panelId);
10600
10657
  if (!u)
@@ -10604,7 +10661,7 @@ const Wn = [
10604
10661
  id: J(),
10605
10662
  align: s(A.data),
10606
10663
  curved: A.data.curved,
10607
- fill: n.color || d || "#000000",
10664
+ fill: n.color || C || "#000000",
10608
10665
  fontData: g,
10609
10666
  fontSize: A.data.size || i,
10610
10667
  height: w.height,
@@ -10621,7 +10678,7 @@ const Wn = [
10621
10678
  y: w.top
10622
10679
  };
10623
10680
  if (g) {
10624
- const [I, Q] = xe(
10681
+ const [I, D] = Ne(
10625
10682
  A.data.size || i,
10626
10683
  g,
10627
10684
  w,
@@ -10642,7 +10699,7 @@ const Wn = [
10642
10699
  {
10643
10700
  ...h,
10644
10701
  fontSize: I,
10645
- text: h.curved ? h.text : (Q || []).join(`
10702
+ text: h.curved ? h.text : (D || []).join(`
10646
10703
  `)
10647
10704
  },
10648
10705
  u
@@ -10714,7 +10771,7 @@ const Wn = [
10714
10771
  );
10715
10772
  return a;
10716
10773
  };
10717
- class Se {
10774
+ class Ye {
10718
10775
  constructor(e) {
10719
10776
  this.handleCompleteRender = null;
10720
10777
  const t = /* @__PURE__ */ new Map();
@@ -10737,7 +10794,7 @@ class Se {
10737
10794
  }
10738
10795
  const ii = () => new Promise((c, e) => {
10739
10796
  try {
10740
- const A = He().getContext("webgl2");
10797
+ const A = Ue().getContext("webgl2");
10741
10798
  c(!!A);
10742
10799
  } catch {
10743
10800
  c(!1);
@@ -10850,14 +10907,14 @@ class ri extends lA {
10850
10907
  * a loose target but should be kept in mind when making changes.
10851
10908
  */
10852
10909
  async execute() {
10853
- const e = this.layouts.find((C) => C.layoutState.layout.id === this.layoutId);
10910
+ const e = this.layouts.find((d) => d.layoutState.layout.id === this.layoutId);
10854
10911
  if (!e)
10855
10912
  return;
10856
10913
  const t = e.layoutState.elements || [], A = e.layoutState.layout.width, a = e.layoutState.layout.height, n = A === 1 || a === 1 ? { width: 1, height: 1 } : this.getDynamicTextureResolution(), i = n.width, s = n.height;
10857
10914
  let o, r;
10858
10915
  if (this.nonPOTSupport) {
10859
- const C = i / s;
10860
- A / a < C ? (o = i, r = a * (i / A)) : (o = A * (s / a), r = s);
10916
+ const d = i / s;
10917
+ A / a < d ? (o = i, r = a * (i / A)) : (o = A * (s / a), r = s);
10861
10918
  const E = this.resizeFit({ width: o, height: r });
10862
10919
  o = E.width, r = E.height;
10863
10920
  } else
@@ -10871,7 +10928,7 @@ class ri extends lA {
10871
10928
  ignoreClear: !0,
10872
10929
  ignoreMouse: !0,
10873
10930
  enableRedraw: !1,
10874
- createCanvas: He,
10931
+ createCanvas: Ue,
10875
10932
  createImage: jt,
10876
10933
  DOMParser: Vt(),
10877
10934
  fetch: ot
@@ -10895,7 +10952,7 @@ const Qs = (c, e) => {
10895
10952
  serializableWorkflow: { steps: [] },
10896
10953
  layouts: {}
10897
10954
  };
10898
- a = new k(t.map((o) => new ea(o))).apply(a);
10955
+ a = new k(t.map((o) => new Aa(o))).apply(a);
10899
10956
  const i = await ni(c, e, t, A);
10900
10957
  return new k(i).apply(a);
10901
10958
  }, ci = f`
@@ -10942,7 +10999,7 @@ const Qs = (c, e) => {
10942
10999
  name
10943
11000
  }
10944
11001
  }
10945
- `, MA = f`
11002
+ `, YA = f`
10946
11003
  ${ci}
10947
11004
  fragment ProductCollectionProductFields on ProductCollectionProduct {
10948
11005
  id
@@ -10952,8 +11009,8 @@ const Qs = (c, e) => {
10952
11009
  ...ProductFields
10953
11010
  }
10954
11011
  }
10955
- `, SA = (c) => f`
10956
- ${c ? MA : ""}
11012
+ `, PA = (c) => f`
11013
+ ${c ? YA : ""}
10957
11014
  fragment ProductCollectionFields on ProductCollection {
10958
11015
  id
10959
11016
  name
@@ -10998,7 +11055,7 @@ const Qs = (c, e) => {
10998
11055
  }
10999
11056
  }
11000
11057
  `, gi = (c) => f`
11001
- ${SA(c)}
11058
+ ${PA(c)}
11002
11059
  query GetBundle($id: String!) {
11003
11060
  bundles(ids: [$id]) {
11004
11061
  id
@@ -11060,8 +11117,8 @@ const Qs = (c, e) => {
11060
11117
  }
11061
11118
  }
11062
11119
  }
11063
- `, Ci = f`
11064
- ${MA}
11120
+ `, di = f`
11121
+ ${YA}
11065
11122
  query GetProductCollectionProducts($id: String!) {
11066
11123
  productCollections(ids: [$id]) {
11067
11124
  id
@@ -11070,8 +11127,8 @@ const Qs = (c, e) => {
11070
11127
  }
11071
11128
  }
11072
11129
  }
11073
- `, di = (c) => f`
11074
- ${SA(c)}
11130
+ `, Ci = (c) => f`
11131
+ ${PA(c)}
11075
11132
  mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
11076
11133
  bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
11077
11134
  id
@@ -11243,7 +11300,7 @@ class fi {
11243
11300
  );
11244
11301
  case oe.Option: {
11245
11302
  const t = e.entityId ? await j.getOption(e.entityId) : void 0;
11246
- return (t == null ? void 0 : t.type) === "Color" ? new Gt(this.bundle, e, t) : new YA(this.bundle, e, t);
11303
+ return (t == null ? void 0 : t.type) === "Color" ? new Gt(this.bundle, e, t) : new xA(this.bundle, e, t);
11247
11304
  }
11248
11305
  case oe.Text:
11249
11306
  return new yi(this.bundle, e);
@@ -11481,7 +11538,7 @@ class yi extends pt {
11481
11538
  await Promise.all(a);
11482
11539
  }
11483
11540
  }
11484
- class YA extends pt {
11541
+ class xA extends pt {
11485
11542
  constructor(e, t, A) {
11486
11543
  super(e, t), this.optionResource = A;
11487
11544
  }
@@ -11536,14 +11593,14 @@ class YA extends pt {
11536
11593
  if (!t)
11537
11594
  return Promise.resolve();
11538
11595
  const A = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((i) => i.id === t);
11539
- return A ? this.applyVariantSelection(new Z(A), e) : Promise.resolve();
11596
+ return A ? (console.log("Applying Global Variant: ", A), this.applyVariantSelection(new Z(A), e)) : Promise.resolve();
11540
11597
  }
11541
11598
  async applyVariantSelection(e, t) {
11542
11599
  const a = this.getSharedSteps(t).map((n) => n.selectVariant(e));
11543
11600
  await Promise.all(a);
11544
11601
  }
11545
11602
  }
11546
- class Gt extends YA {
11603
+ class Gt extends xA {
11547
11604
  constructor(e, t, A) {
11548
11605
  super(e, t, A);
11549
11606
  }
@@ -11563,7 +11620,7 @@ class Gt extends YA {
11563
11620
  if (!t)
11564
11621
  return Promise.resolve();
11565
11622
  const A = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((i) => i.id === t);
11566
- return A ? this.applyColorVariant(new Z(A), e) : Promise.resolve();
11623
+ return A ? (console.log("Applying Global Variant: ", A), this.applyColorVariant(new Z(A), e)) : Promise.resolve();
11567
11624
  }
11568
11625
  async applyColorVariant(e, t) {
11569
11626
  const a = this.getSharedSteps(t).map((n) => {
@@ -11882,7 +11939,7 @@ class Ni {
11882
11939
  if (this.collection.productCollectionProducts)
11883
11940
  return this.collection.productCollectionProducts.map((t) => new Ze(t));
11884
11941
  const e = await P.getShadowGraphqlClient().query({
11885
- query: Ci,
11942
+ query: di,
11886
11943
  variables: {
11887
11944
  id: this.getId()
11888
11945
  },
@@ -11893,7 +11950,7 @@ class Ni {
11893
11950
  }
11894
11951
  getTransformCollection() {
11895
11952
  if (this.collection.transformCollection)
11896
- return new vi(this.collection.transformCollection);
11953
+ return new Ri(this.collection.transformCollection);
11897
11954
  }
11898
11955
  /**
11899
11956
  * The raw collection resource. This is generally not needed and should be avoided.
@@ -12045,7 +12102,7 @@ class Ee {
12045
12102
  return this.workflow.imageUrl;
12046
12103
  }
12047
12104
  }
12048
- class vi {
12105
+ class Ri {
12049
12106
  constructor(e) {
12050
12107
  this.collection = e;
12051
12108
  }
@@ -12065,10 +12122,10 @@ class vi {
12065
12122
  * @returns The transforms in this collection.
12066
12123
  */
12067
12124
  getTransforms() {
12068
- return this.collection.transforms.map((e) => new Ri(e));
12125
+ return this.collection.transforms.map((e) => new vi(e));
12069
12126
  }
12070
12127
  }
12071
- class Ri {
12128
+ class vi {
12072
12129
  constructor(e) {
12073
12130
  this.transform = e;
12074
12131
  }
@@ -12175,19 +12232,20 @@ class bt {
12175
12232
  return this.productCollection ? new Ni(this.productCollection) : void 0;
12176
12233
  }
12177
12234
  async addWorkflowExperience(e) {
12178
- e.setBundle(this), await this.appendWorkflowExperience(e), await this.injectExperienceIntoPreviewService(e);
12235
+ e.setBundle(this), await this.appendWorkflowExperience(e), await this.injectExperienceIntoPreviewService(e), await e.getWorkflowManager().getInitializationPromise();
12179
12236
  const t = await this.getGlobalProperties();
12180
- await Promise.all(t.map((A) => A.applyGlobalState([e])));
12237
+ for (const A of t)
12238
+ await A.applyGlobalState([e]);
12181
12239
  }
12182
12240
  async addWorkflowExperiences(e) {
12183
- const t = e.map((i) => i.getWorkflowManager().getTransaction().id), A = t.map(
12184
- (i) => this.workflowExperiences.find((s) => s.getWorkflowManager().getTransaction().id === i)
12241
+ const t = e.map((s) => s.getWorkflowManager().getTransaction().id), A = t.map(
12242
+ (s) => this.workflowExperiences.find((o) => o.getWorkflowManager().getTransaction().id === s)
12185
12243
  );
12186
- if (A.some((i) => !!i))
12244
+ if (A.some((s) => !!s))
12187
12245
  throw new Error(
12188
- "Unable to add transaction to bundle - Already Exists: " + A.filter((i) => !!i).map((i) => i == null ? void 0 : i.getWorkflowManager().getTransaction().id).join(", ")
12246
+ "Unable to add transaction to bundle - Already Exists: " + A.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
12189
12247
  );
12190
- const a = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = t.map((i) => a.get(i));
12248
+ const a = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = t.map((s) => a.get(s));
12191
12249
  await P.getShadowGraphqlClient().mutate({
12192
12250
  mutation: hi,
12193
12251
  variables: {
@@ -12198,17 +12256,18 @@ class bt {
12198
12256
  context: {
12199
12257
  bundleOwnerId: this.ownerId
12200
12258
  }
12201
- }).catch((i) => {
12202
- console.error(i);
12203
- }), this.workflowExperiences.push(...e), await Promise.all([
12204
- this.updateTransactionOrder(),
12205
- (async () => {
12206
- for (const s of e)
12207
- await this.injectExperienceIntoPreviewService(s);
12208
- const i = await this.getGlobalProperties();
12209
- await Promise.all(i.map((s) => s.applyGlobalState(e)));
12210
- })()
12211
- ]), this.workflowExperiences.forEach((i) => i.setBundle(this)), this.workflowExperiences.forEach((i) => i.checkForPriceBreakChanges());
12259
+ }).catch((s) => {
12260
+ console.error(s);
12261
+ }), this.workflowExperiences.push(...e);
12262
+ const i = async () => {
12263
+ for (const o of e)
12264
+ o.setBundle(this), await this.injectExperienceIntoPreviewService(o);
12265
+ await Promise.all(e.map((o) => o.getWorkflowManager().getInitializationPromise()));
12266
+ const s = await this.getGlobalProperties();
12267
+ for (const o of s)
12268
+ await o.applyGlobalState(e);
12269
+ };
12270
+ await Promise.all([this.updateTransactionOrder(), i()]), this.workflowExperiences.forEach((s) => s.checkForPriceBreakChanges());
12212
12271
  }
12213
12272
  async appendWorkflowExperience(e, t = !0) {
12214
12273
  const A = e.getWorkflowManager().getTransaction().id;
@@ -12348,7 +12407,7 @@ class bt {
12348
12407
  variables: {
12349
12408
  id: this.id,
12350
12409
  details: e,
12351
- type: t || Ge.Owner
12410
+ type: t || be.Owner
12352
12411
  },
12353
12412
  context: {
12354
12413
  bundleOwnerId: this.ownerId
@@ -12565,19 +12624,19 @@ class Ui {
12565
12624
  * @returns
12566
12625
  */
12567
12626
  async execute(e, t, A) {
12568
- var B, l, C;
12627
+ var B, l, d;
12569
12628
  const n = (l = (B = (await P.getShadowGraphqlClient().mutate({
12570
12629
  mutation: Hi,
12571
12630
  variables: {
12572
12631
  processFlowId: e,
12573
- inputs: [...t.map((d) => d.getValueForTransmission())]
12632
+ inputs: [...t.map((C) => C.getValueForTransmission())]
12574
12633
  }
12575
12634
  })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
12576
12635
  if (!n)
12577
12636
  throw new Error("Failed to create process execution.");
12578
- function i(d) {
12637
+ function i(C) {
12579
12638
  return new Promise((E) => {
12580
- setTimeout(E, d);
12639
+ setTimeout(E, C);
12581
12640
  });
12582
12641
  }
12583
12642
  let s = !1, o = 0, r, g;
@@ -12601,15 +12660,15 @@ class Ui {
12601
12660
  ids: [n]
12602
12661
  }
12603
12662
  });
12604
- const d = (C = r.data) == null ? void 0 : C.processExecutions[0];
12605
- if (!r || !d)
12663
+ const C = (d = r.data) == null ? void 0 : d.processExecutions[0];
12664
+ if (!r || !C)
12606
12665
  throw new Error("Failed to retrieve server response for execution.");
12607
- if (d.failedAt)
12666
+ if (C.failedAt)
12608
12667
  throw new Error(
12609
12668
  "Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
12610
12669
  );
12611
- if (d.completedAt) {
12612
- s = !0, g = new ki(d);
12670
+ if (C.completedAt) {
12671
+ s = !0, g = new ki(C);
12613
12672
  break;
12614
12673
  }
12615
12674
  o += 1;
@@ -12637,14 +12696,14 @@ class ki {
12637
12696
  * @returns The nodes contained within the execution.
12638
12697
  */
12639
12698
  getNodes() {
12640
- return this.execution.nodes.map((e) => new Ye(e));
12699
+ return this.execution.nodes.map((e) => new Pe(e));
12641
12700
  }
12642
12701
  /**
12643
12702
  * @param type The type of node to return.
12644
12703
  * @returns A list of nodes matching the requested type.
12645
12704
  */
12646
12705
  getNodesByType(e) {
12647
- return this.execution.nodes.filter((t) => t.type === e).map((t) => new Ye(t));
12706
+ return this.execution.nodes.filter((t) => t.type === e).map((t) => new Pe(t));
12648
12707
  }
12649
12708
  /**
12650
12709
  * @returns A list of input nodes that exist in this execution.
@@ -12653,7 +12712,7 @@ class ki {
12653
12712
  return this.execution.nodes.filter(
12654
12713
  (e) => e.type === "StartTerminal"
12655
12714
  /* StartTerminal */
12656
- ).map((e) => new Ye(e));
12715
+ ).map((e) => new Pe(e));
12657
12716
  }
12658
12717
  /**
12659
12718
  * @returns A list of out put nodes that exist in this execution.
@@ -12662,7 +12721,7 @@ class ki {
12662
12721
  return this.execution.nodes.filter(
12663
12722
  (e) => e.type === "EndTerminal"
12664
12723
  /* EndTerminal */
12665
- ).map((e) => new Ye(e));
12724
+ ).map((e) => new Pe(e));
12666
12725
  }
12667
12726
  /**
12668
12727
  * @returns A date object representing the point in time this execution completed.
@@ -12679,7 +12738,7 @@ class ki {
12679
12738
  return new Date(this.execution.failedAt);
12680
12739
  }
12681
12740
  }
12682
- class Ye {
12741
+ class Pe {
12683
12742
  constructor(e) {
12684
12743
  this.node = e;
12685
12744
  }
@@ -12714,9 +12773,9 @@ class ps extends It {
12714
12773
  super(`"${e}"`);
12715
12774
  }
12716
12775
  }
12717
- class PA extends It {
12776
+ class NA extends It {
12718
12777
  constructor(e, t) {
12719
- if (t !== "Asset" && !PA.validUUID(e))
12778
+ if (t !== "Asset" && !NA.validUUID(e))
12720
12779
  throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
12721
12780
  super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
12722
12781
  }
@@ -12892,8 +12951,8 @@ const bi = f`
12892
12951
  name
12893
12952
  }
12894
12953
  `, Li = (c) => f`
12895
- ${De(c)}
12896
- ${dt}
12954
+ ${Ie(c)}
12955
+ ${Ct}
12897
12956
  ${iA}
12898
12957
  ${bi}
12899
12958
  ${Ji}
@@ -13304,7 +13363,7 @@ const bi = f`
13304
13363
  }
13305
13364
  }
13306
13365
  `, Ki = f`
13307
- ${De(!1)}
13366
+ ${Ie(!1)}
13308
13367
  query GetWorkflowForTheme($id: String!) {
13309
13368
  workflow(id: $id) {
13310
13369
  id
@@ -13445,7 +13504,7 @@ const bi = f`
13445
13504
  if (!A)
13446
13505
  throw new Error(`Workflow not found: ${c}`);
13447
13506
  return A;
13448
- }, xA = async (c, e) => {
13507
+ }, RA = async (c, e) => {
13449
13508
  const t = c.map((s) => Qe.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
13450
13509
  if (A.length === 0)
13451
13510
  return Promise.all(t);
@@ -13453,7 +13512,7 @@ const bi = f`
13453
13512
  (s) => Qe.set({ id: s, options: e }, $i(s, a))
13454
13513
  ), i = t.filter((s) => s !== void 0);
13455
13514
  return await Promise.all(i.concat(n));
13456
- }, Pe = async (c, e) => (await xA([c], e))[0], _i = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
13515
+ }, xe = async (c, e) => (await RA([c], e))[0], _i = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
13457
13516
  id: J(),
13458
13517
  panelId: e.name,
13459
13518
  name: e.name,
@@ -13476,19 +13535,19 @@ class es {
13476
13535
  try {
13477
13536
  return P.getShadowGraphqlClient().mutate({
13478
13537
  ...t,
13479
- mutation: Ha
13538
+ mutation: ka
13480
13539
  });
13481
13540
  } catch (A) {
13482
13541
  throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
13483
13542
  }
13484
- }, this.initialized = !1, this.options = e, this.options.applicationKey && oa(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.2.2"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13543
+ }, 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.4.0"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13485
13544
  }
13486
13545
  /** @deprecated Use `configure` instead */
13487
13546
  configureUrls(e, t, A) {
13488
13547
  q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
13489
13548
  }
13490
13549
  configure(e) {
13491
- q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && ca(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
13550
+ 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();
13492
13551
  }
13493
13552
  /**
13494
13553
  * @returns The asset manager allows for common operations related to assets
@@ -13503,7 +13562,7 @@ class es {
13503
13562
  return this.currencyCode;
13504
13563
  }
13505
13564
  getFlowService() {
13506
- if (!ra())
13565
+ if (!ga())
13507
13566
  throw new Error("Application key required to use Flow Service.");
13508
13567
  return new Ui();
13509
13568
  }
@@ -13513,7 +13572,7 @@ class es {
13513
13572
  if (!this.options.applicationKey)
13514
13573
  throw new Error("Cannot get current Integration without specifying an Application Key.");
13515
13574
  const e = async () => (await P.getShadowGraphqlClient().query({
13516
- query: Na,
13575
+ query: va,
13517
13576
  errorPolicy: "all",
13518
13577
  fetchPolicy: "no-cache"
13519
13578
  })).data.currentIntegration;
@@ -13537,7 +13596,7 @@ class es {
13537
13596
  var a, n;
13538
13597
  const t = Y.getMap("bundleOwnerIds");
13539
13598
  if (t != null && t.has(e))
13540
- return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
13599
+ return Promise.resolve({ success: !0, stakeholderType: be.Owner });
13541
13600
  const A = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13542
13601
  if (A.has(e)) {
13543
13602
  const i = A.get(e), o = (Y.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
@@ -13568,7 +13627,7 @@ class es {
13568
13627
  * @throws An error if the transaction is not found.
13569
13628
  */
13570
13629
  async authenticateTransactionFromLocalStorage(e) {
13571
- var g, B, l, C, d, E;
13630
+ var g, B, l, d, C, E;
13572
13631
  const t = P.getShadowGraphqlClient(), A = await t.query({
13573
13632
  query: zi,
13574
13633
  errorPolicy: "all",
@@ -13586,20 +13645,20 @@ class es {
13586
13645
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
13587
13646
  const i = Y.getMap("transactionOwnerIds");
13588
13647
  if (i != null && i.has(e))
13589
- return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
13648
+ return Promise.resolve({ success: !0, stakeholderType: be.Owner });
13590
13649
  const s = Y.getMap("transactionCustomerIds");
13591
13650
  if (s != null && s.has(e)) {
13592
13651
  const w = s.get(e);
13593
13652
  if (w && await this.authenticateCustomerId(w)) {
13594
- const h = ((C = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : C.find(
13653
+ const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
13595
13654
  (I) => {
13596
- var Q, p;
13597
- return (p = (Q = I.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
13655
+ var D, m;
13656
+ return (m = (D = I.bundle) == null ? void 0 : D.transactions) == null ? void 0 : m.some((Q) => Q.id === e);
13598
13657
  }
13599
- )) || ((E = (d = this.customer) == null ? void 0 : d.stakeholders) == null ? void 0 : E.find(
13658
+ )) || ((E = (C = this.customer) == null ? void 0 : C.stakeholders) == null ? void 0 : E.find(
13600
13659
  (I) => {
13601
- var Q;
13602
- return ((Q = I.transaction) == null ? void 0 : Q.id) === e;
13660
+ var D;
13661
+ return ((D = I.transaction) == null ? void 0 : D.id) === e;
13603
13662
  }
13604
13663
  ));
13605
13664
  if (h)
@@ -13743,10 +13802,10 @@ class es {
13743
13802
  async getNewBundle(e, t, A) {
13744
13803
  var r, g, B;
13745
13804
  const n = (B = (await P.getShadowGraphqlClient().mutate({
13746
- mutation: di(((g = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : g.eagerFetchProducts) || !1),
13805
+ mutation: Ci(((g = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : g.eagerFetchProducts) || !1),
13747
13806
  variables: {
13748
13807
  collectionId: e,
13749
- initialMetadata: t ? Object.entries(t).map((l, C) => ({ key: l[0], value: l[1] })) : void 0
13808
+ initialMetadata: t ? Object.entries(t).map((l, d) => ({ key: l[0], value: l[1] })) : void 0
13750
13809
  },
13751
13810
  fetchPolicy: "no-cache"
13752
13811
  })).data) == null ? void 0 : B.bundleCreate;
@@ -13767,7 +13826,7 @@ class es {
13767
13826
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
13768
13827
  */
13769
13828
  async getExistingBundle(e, t, A, a) {
13770
- var w, u, h, I, Q, p, m, D, y;
13829
+ var w, u, h, I, D, m, Q, p, y;
13771
13830
  const n = Y.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((w = Object.entries(localStorage).find(([M, S]) => M.startsWith("CognitoIdentityServiceProvider") && M.endsWith("idToken"))) == null ? void 0 : w[0]) || "", r = localStorage.getItem(o), g = {};
13772
13831
  r && !mt(r) && (g.Authorization = `Bearer ${r}`);
13773
13832
  const B = {
@@ -13784,11 +13843,11 @@ class es {
13784
13843
  headers: B
13785
13844
  }
13786
13845
  });
13787
- if (!((Q = l.data) != null && Q.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((m = l.data) != null && m.bundles[0]))
13846
+ if (!((D = l.data) != null && D.bundles) || ((m = l.data) == null ? void 0 : m.bundles.length) === 0 || !((Q = l.data) != null && Q.bundles[0]))
13788
13847
  throw new Error(`Unable to find bundle: ${e}`);
13789
- const C = (D = l.data) == null ? void 0 : D.bundles[0], d = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13790
- d.set(C.id, C.partner.id), Y.setMap("bundlePartnerIds", d);
13791
- const E = new bt(this, C, t, A, i, {
13848
+ const d = (p = l.data) == null ? void 0 : p.bundles[0], C = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13849
+ C.set(d.id, d.partner.id), Y.setMap("bundlePartnerIds", C);
13850
+ const E = new bt(this, d, t, A, i, {
13792
13851
  additionalHeaders: (y = a == null ? void 0 : a.graphql) == null ? void 0 : y.additionalHeaders
13793
13852
  });
13794
13853
  return await E.getInitializationPromise(), E;
@@ -13825,38 +13884,38 @@ class es {
13825
13884
  * @returns A workflow experience configured as requested.
13826
13885
  */
13827
13886
  async getWorkflowExperience(e, t, A, a) {
13828
- var B, l, C, d, E;
13887
+ var B, l, d, C, E;
13829
13888
  if (!a)
13830
13889
  return await this.getWorkflowExperienceDeprecated(e, t, A);
13831
13890
  const n = async () => {
13832
13891
  var u, h, I;
13833
13892
  const w = P.getShadowGraphqlClient();
13834
13893
  if (a.type === "transaction") {
13835
- const { transactionId: Q, readOnly: p } = a, m = await w.query({
13836
- query: fe,
13894
+ const { transactionId: D, readOnly: m } = a, Q = await w.query({
13895
+ query: Fe,
13837
13896
  variables: {
13838
- ids: [Q]
13897
+ ids: [D]
13839
13898
  },
13840
13899
  errorPolicy: "all",
13841
13900
  fetchPolicy: "no-cache"
13842
13901
  });
13843
- if (!((u = m.data) != null && u.transactions) || m.data.transactions.length === 0)
13902
+ if (!((u = Q.data) != null && u.transactions) || Q.data.transactions.length === 0)
13844
13903
  throw new H("Existing transaction not found.");
13845
- const D = (h = m.data) == null ? void 0 : h.transactions[0];
13846
- if (!D.workflowId)
13904
+ const p = (h = Q.data) == null ? void 0 : h.transactions[0];
13905
+ if (!p.workflowId)
13847
13906
  throw new H("Existing transaction has no workflow ID.");
13848
- const y = await Pe(D.workflowId);
13849
- if (!D.product)
13907
+ const y = await xe(p.workflowId);
13908
+ if (!p.product)
13850
13909
  throw new H("Failed to load transaction, product not available.");
13851
- return !this.activeIntegration && ((I = D.integrationProduct) != null && I.integration) && (this.activeIntegration = Promise.resolve(D.integrationProduct.integration)), { transaction: D, workflow: y, readOnly: p };
13910
+ return !this.activeIntegration && ((I = p.integrationProduct) != null && I.integration) && (this.activeIntegration = Promise.resolve(p.integrationProduct.integration)), { transaction: p, workflow: y, readOnly: m };
13852
13911
  }
13853
13912
  if (a.type === "integration" || a.type === "external") {
13854
- const Q = async () => {
13913
+ const D = async () => {
13855
13914
  const y = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
13856
13915
  externalIntegrationId: a.externalIntegrationId,
13857
13916
  externalProductId: a.externalProductId
13858
13917
  }, M = await w.mutate({
13859
- mutation: vt,
13918
+ mutation: Rt,
13860
13919
  variables: {
13861
13920
  ...y,
13862
13921
  workflowId: a.workflowId,
@@ -13876,8 +13935,8 @@ class es {
13876
13935
  if (!S.product)
13877
13936
  throw new H("Failed to create transaction, product not available.");
13878
13937
  return S;
13879
- }, p = Pe(a.workflowId, a == null ? void 0 : a.graphql), [m, D] = await Promise.all([Q(), p]);
13880
- return { transaction: m, workflow: D };
13938
+ }, m = xe(a.workflowId, a == null ? void 0 : a.graphql), [Q, p] = await Promise.all([D(), m]);
13939
+ return { transaction: Q, workflow: p };
13881
13940
  }
13882
13941
  throw new H("No workflow ID provided.");
13883
13942
  }, { transaction: i, workflow: s, readOnly: o } = await n();
@@ -13907,12 +13966,12 @@ class es {
13907
13966
  r.transaction,
13908
13967
  r.workflow
13909
13968
  );
13910
- if (r.renderableContextService = new Se(
13969
+ if (r.renderableContextService = new Ye(
13911
13970
  r.layouts
13912
- ), a.previewService ? (r.previewService = a.previewService, (C = r.product) != null && C.modelUrl && (r.modelContainer = r.previewService.loadModel({
13971
+ ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
13913
13972
  model: r.product.modelUrl,
13914
13973
  contextService: r.renderableContextService
13915
- }))) : (r.previewService = A && A(s), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
13974
+ }))) : (r.previewService = A && A(s), (C = r.product) != null && C.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
13916
13975
  model: r.product.modelUrl,
13917
13976
  contextService: r.renderableContextService
13918
13977
  }))), a.type !== "transaction") {
@@ -13921,7 +13980,7 @@ class es {
13921
13980
  } else
13922
13981
  r.isReloadedTransaction = !0;
13923
13982
  this.initialized = !0, this.experienceOptions = r;
13924
- const g = new Me(this, r);
13983
+ const g = new Se(this, r);
13925
13984
  return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
13926
13985
  }
13927
13986
  /**
@@ -13934,39 +13993,39 @@ class es {
13934
13993
  async getWorkflowExperiences(e, t) {
13935
13994
  if (e.length === 0)
13936
13995
  throw new H("No options provided!");
13937
- const A = P.getShadowGraphqlClient(), a = async (p) => {
13996
+ const A = P.getShadowGraphqlClient(), a = async (m) => {
13938
13997
  var M, S, N;
13939
- if (p.length === 0)
13998
+ if (m.length === 0)
13940
13999
  return [];
13941
- const m = p.map((x) => x.option.transactionId), D = await A.query({
13942
- query: fe,
14000
+ const Q = m.map((x) => x.option.transactionId), p = await A.query({
14001
+ query: Fe,
13943
14002
  variables: {
13944
- ids: m
14003
+ ids: Q
13945
14004
  },
13946
14005
  errorPolicy: "all",
13947
14006
  fetchPolicy: "no-cache"
13948
- }), y = D.data.transactions;
13949
- if (y.length !== p.length) {
13950
- const x = ((S = (M = D.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
14007
+ }), y = p.data.transactions;
14008
+ if (y.length !== m.length) {
14009
+ const x = ((S = (M = p.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
13951
14010
  throw new H(`Not all transactions were found: ${x}`);
13952
14011
  }
13953
- return !this.activeIntegration && ((N = y[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(y[0].integrationProduct.integration)), y.map((x, v) => {
14012
+ return !this.activeIntegration && ((N = y[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(y[0].integrationProduct.integration)), y.map((x, R) => {
13954
14013
  var L;
13955
14014
  return {
13956
14015
  transaction: x,
13957
14016
  workflowId: x.workflowId,
13958
- readOnly: ((L = p.find((T) => T.option.transactionId === x.id)) == null ? void 0 : L.option.readOnly) ?? !1,
13959
- index: p[v].index
14017
+ readOnly: ((L = m.find((T) => T.option.transactionId === x.id)) == null ? void 0 : L.option.readOnly) ?? !1,
14018
+ index: m[R].index
13960
14019
  };
13961
14020
  });
13962
- }, n = async (p) => {
14021
+ }, n = async (m) => {
13963
14022
  var y, M, S;
13964
- if (p.length === 0)
14023
+ if (m.length === 0)
13965
14024
  return [];
13966
- const m = await A.mutate({
13967
- mutation: va,
14025
+ const Q = await A.mutate({
14026
+ mutation: Ha,
13968
14027
  variables: {
13969
- inputs: p.map((N) => ({
14028
+ inputs: m.map((N) => ({
13970
14029
  integrationProductId: N.option.type === "integration" ? N.option.integrationProductId : void 0,
13971
14030
  externalIntegrationId: N.option.type === "external" ? N.option.externalIntegrationId : void 0,
13972
14031
  externalProductId: N.option.type === "external" ? N.option.externalProductId : void 0,
@@ -13979,29 +14038,29 @@ class es {
13979
14038
  },
13980
14039
  errorPolicy: "all",
13981
14040
  fetchPolicy: "no-cache"
13982
- }), D = (y = m.data) == null ? void 0 : y.transactionCreateMany;
13983
- if (!D || D.length === 0) {
13984
- const N = ((S = (M = m.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
14041
+ }), p = (y = Q.data) == null ? void 0 : y.transactionCreateMany;
14042
+ if (!p || p.length === 0) {
14043
+ const N = ((S = (M = Q.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
13985
14044
  throw new H(`Failed to create transactions: ${N}`);
13986
14045
  }
13987
- return D.map((N, x) => ({
14046
+ return p.map((N, x) => ({
13988
14047
  transaction: N,
13989
14048
  workflowId: N.workflowId,
13990
14049
  readOnly: !1,
13991
- index: p[x].index
14050
+ index: m[x].index
13992
14051
  }));
13993
- }, i = e.map((p, m) => ({ option: p, index: m })), s = i.filter((p) => p.option.type === "transaction"), o = i.filter(
13994
- (p) => p.option.type === "integration" || p.option.type === "external"
14052
+ }, i = e.map((m, Q) => ({ option: m, index: Q })), s = i.filter((m) => m.option.type === "transaction"), o = i.filter(
14053
+ (m) => m.option.type === "integration" || m.option.type === "external"
13995
14054
  ), r = Yt(s, 10), g = Yt(o, 10), B = (await Promise.all([
13996
14055
  ...r.map(a),
13997
14056
  ...g.map(n)
13998
- ])).flat(), l = [...new Set(B.map((p) => p.workflowId))], C = await xA(l, t), d = new Map(C.map((p) => [p.id, p])), E = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = B.map(async (p) => {
14057
+ ])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await RA(l, t), C = new Map(d.map((m) => [m.id, m])), E = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = B.map(async (m) => {
13999
14058
  var L;
14000
- const { transaction: m, workflowId: D, readOnly: y, index: M } = p, S = d.get(D), N = e[M];
14001
- !E.get(m.id) && m.transactionOwnerId && E.set(m.id, m.transactionOwnerId);
14002
- const x = E.get(m.id) || void 0, v = {
14003
- product: m.product,
14004
- transaction: m,
14059
+ const { transaction: Q, workflowId: p, readOnly: y, index: M } = m, S = C.get(p), N = e[M];
14060
+ !E.get(Q.id) && Q.transactionOwnerId && E.set(Q.id, Q.transactionOwnerId);
14061
+ const x = E.get(Q.id) || void 0, R = {
14062
+ product: Q.product,
14063
+ transaction: Q,
14005
14064
  layouts: [],
14006
14065
  singleVariantsRenderable: (L = N == null ? void 0 : N.workflowConfiguration) == null ? void 0 : L.singleVariantsRenderable,
14007
14066
  stateMutationFunc: y ? async () => {
@@ -14011,27 +14070,27 @@ class es {
14011
14070
  workflow: S,
14012
14071
  isReloadedTransaction: N.type === "transaction"
14013
14072
  };
14014
- if (N.type === "transaction" && m.workflowState) {
14015
- const T = JSON.parse(m.workflowState);
14016
- v.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), v.reloadedState = T;
14073
+ if (N.type === "transaction" && Q.workflowState) {
14074
+ const T = JSON.parse(Q.workflowState);
14075
+ R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), R.reloadedState = T;
14017
14076
  } else if (!y && N.workflowState) {
14018
14077
  const T = JSON.parse(N.workflowState);
14019
- v.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), v.reloadedState = T;
14078
+ R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), R.reloadedState = T;
14020
14079
  } else
14021
- v.layouts = $e(
14022
- v.transaction,
14023
- v.workflow
14080
+ R.layouts = $e(
14081
+ R.transaction,
14082
+ R.workflow
14024
14083
  );
14025
- return v.renderableContextService = new Se(
14026
- v.layouts
14027
- ), v.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = v, { experienceOptions: v, index: M, options: N };
14084
+ return R.renderableContextService = new Ye(
14085
+ R.layouts
14086
+ ), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: M, options: N };
14028
14087
  });
14029
14088
  Y.setMap("transactionOwnerIds", E);
14030
- const I = (await Promise.all(w)).sort((p, m) => p.index - m.index).map(async (p) => {
14031
- const { experienceOptions: m, options: D } = p, y = new Me(this, m);
14032
- return await y.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await y.attachCustomerDetails({ email: this.customer.emailAddress }), y;
14033
- }), Q = await Promise.all(I);
14034
- return Q.forEach((p) => p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
14089
+ const I = (await Promise.all(w)).sort((m, Q) => m.index - Q.index).map(async (m) => {
14090
+ const { experienceOptions: Q, options: p } = m, y = new Se(this, Q);
14091
+ return await y.getWorkflowManager().getInitializationPromise(), p.type !== "transaction" && this.customer && await y.attachCustomerDetails({ email: this.customer.emailAddress }), y;
14092
+ }), D = await Promise.all(I);
14093
+ return D.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), D;
14035
14094
  }
14036
14095
  /**
14037
14096
  * Initialize the client from an integration product.
@@ -14043,7 +14102,7 @@ class es {
14043
14102
  if (e === "")
14044
14103
  throw new H("No integration product ID provided.");
14045
14104
  const A = await P.getShadowGraphqlClient().mutate({
14046
- mutation: vt,
14105
+ mutation: Rt,
14047
14106
  variables: {
14048
14107
  integrationProductId: e,
14049
14108
  claim: !0,
@@ -14083,18 +14142,18 @@ class es {
14083
14142
  if (e === "")
14084
14143
  throw new H("No transaction ID provided.");
14085
14144
  const A = P.getShadowGraphqlClient(), a = async () => {
14086
- var C, d;
14087
- const l = (C = (await A.query({
14088
- query: fe,
14145
+ var d, C;
14146
+ const l = (d = (await A.query({
14147
+ query: Fe,
14089
14148
  variables: { ids: [e] },
14090
14149
  fetchPolicy: "no-cache",
14091
14150
  errorPolicy: "all"
14092
- })).data) == null ? void 0 : C.transactions[0];
14151
+ })).data) == null ? void 0 : d.transactions[0];
14093
14152
  if (!l)
14094
14153
  throw new H("Failed to read transaction.");
14095
14154
  if (!l.product)
14096
14155
  throw new H("Failed to load transaction, product not available.");
14097
- this.currencyCode = (d = l.product.partner) == null ? void 0 : d.currencyCode, this.experienceOptions = {
14156
+ this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
14098
14157
  product: l.product,
14099
14158
  transaction: l,
14100
14159
  layouts: [],
@@ -14109,7 +14168,7 @@ class es {
14109
14168
  const n = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
14110
14169
  if (i) {
14111
14170
  const l = (s = (await A.query({
14112
- query: fe,
14171
+ query: Fe,
14113
14172
  variables: {
14114
14173
  ids: [e]
14115
14174
  },
@@ -14123,14 +14182,14 @@ class es {
14123
14182
  product: l.product,
14124
14183
  transaction: l,
14125
14184
  layouts: [],
14126
- stateMutationFunc: async (C) => this.updateTransactionState({ ...C, context: { transactionOwnerId: i } }),
14185
+ stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
14127
14186
  readOnly: t
14128
14187
  }, this.initialized = !0;
14129
14188
  return;
14130
14189
  }
14131
14190
  try {
14132
14191
  const l = (r = (await A.mutate({
14133
- mutation: Ra,
14192
+ mutation: Ua,
14134
14193
  variables: { id: e },
14135
14194
  errorPolicy: "all"
14136
14195
  })).data) == null ? void 0 : r.transactionClaim;
@@ -14142,8 +14201,8 @@ class es {
14142
14201
  product: l.product,
14143
14202
  transaction: l,
14144
14203
  layouts: [],
14145
- stateMutationFunc: async (C) => this.updateTransactionState({
14146
- ...C,
14204
+ stateMutationFunc: async (d) => this.updateTransactionState({
14205
+ ...d,
14147
14206
  context: { transactionOwnerId: l.transactionOwnerId }
14148
14207
  }),
14149
14208
  readOnly: t
@@ -14160,21 +14219,21 @@ class es {
14160
14219
  if (!this.initialized || !this.experienceOptions)
14161
14220
  throw new H("Cannot launch experience: Not initialized.");
14162
14221
  if (this.experienceOptions.transaction.workflowId) {
14163
- const o = await Pe(this.experienceOptions.transaction.workflowId);
14222
+ const o = await xe(this.experienceOptions.transaction.workflowId);
14164
14223
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
14165
14224
  const g = JSON.parse(this.experienceOptions.transaction.workflowState);
14166
14225
  this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ae(g), await ie(g), this.experienceOptions.reloadedState = g;
14167
14226
  }
14168
- this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
14227
+ this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
14169
14228
  model: this.experienceOptions.product.modelUrl,
14170
14229
  contextService: this.experienceOptions.renderableContextService
14171
14230
  }));
14172
- const r = new Me(this, this.experienceOptions);
14231
+ const r = new Se(this, this.experienceOptions);
14173
14232
  return await r.getWorkflowManager().getInitializationPromise(), r;
14174
14233
  }
14175
14234
  if (e) {
14176
14235
  const r = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.experienceOptions.transaction.id), g = P.getShadowGraphqlClient().mutate({
14177
- mutation: Ua,
14236
+ mutation: Ga,
14178
14237
  variables: {
14179
14238
  workflowId: e,
14180
14239
  id: this.experienceOptions.transaction.id
@@ -14182,20 +14241,20 @@ class es {
14182
14241
  context: {
14183
14242
  transactionOwnerId: r
14184
14243
  }
14185
- }), B = Pe(e);
14244
+ }), B = xe(e);
14186
14245
  if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
14187
- const C = JSON.parse(t);
14188
- this.experienceOptions.layouts = Object.values(C.layouts).map((d) => d.layout), await ae(C), await ie(C), this.experienceOptions.reloadedState = C;
14246
+ const d = JSON.parse(t);
14247
+ this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await ae(d), await ie(d), this.experienceOptions.reloadedState = d;
14189
14248
  } else
14190
14249
  this.experienceOptions.layouts = $e(
14191
14250
  this.experienceOptions.transaction,
14192
14251
  this.experienceOptions.workflow
14193
14252
  );
14194
- this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
14253
+ this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
14195
14254
  model: this.experienceOptions.product.modelUrl,
14196
14255
  contextService: this.experienceOptions.renderableContextService
14197
14256
  }));
14198
- const l = new Me(this, this.experienceOptions);
14257
+ const l = new Se(this, this.experienceOptions);
14199
14258
  return await l.getWorkflowManager().getInitializationPromise(), l;
14200
14259
  }
14201
14260
  throw new H("No workflow ID provided.");
@@ -14233,7 +14292,7 @@ class es {
14233
14292
  async getIntegrationProductById(e) {
14234
14293
  var n, i;
14235
14294
  const a = (n = (await P.getShadowGraphqlClient().query({
14236
- query: ba,
14295
+ query: Ta,
14237
14296
  variables: {
14238
14297
  ids: [e]
14239
14298
  },
@@ -14247,7 +14306,7 @@ class es {
14247
14306
  async getIntegrationProductFromExternalIds(e, t) {
14248
14307
  var i;
14249
14308
  const n = (i = (await P.getShadowGraphqlClient().query({
14250
- query: Ja,
14309
+ query: Oa,
14251
14310
  variables: {
14252
14311
  externalProductId: t,
14253
14312
  externalIntegrationId: e
@@ -14264,7 +14323,7 @@ class es {
14264
14323
  }
14265
14324
  async getShareActionsForTransaction(e) {
14266
14325
  const A = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(e) || void 0, a = await P.getShadowGraphqlClient().query({
14267
- query: Ga,
14326
+ query: Ja,
14268
14327
  errorPolicy: "all",
14269
14328
  fetchPolicy: "no-cache",
14270
14329
  variables: {
@@ -14612,46 +14671,46 @@ export {
14612
14671
  Ze as CollectionProduct,
14613
14672
  Gt as ColorOptionGlobalPropertyHandle,
14614
14673
  Ns as CommandContext,
14615
- xa as ConversionDataType,
14616
- Pa as ConversionLocation,
14617
- vs as CreateElementCommand,
14618
- Rs as CreateLayoutCommand,
14674
+ Ra as ConversionDataType,
14675
+ Na as ConversionLocation,
14676
+ Rs as CreateElementCommand,
14677
+ vs as CreateLayoutCommand,
14619
14678
  Hs as DeleteElementCommand,
14620
14679
  Un as DigitalContentStepHandle,
14621
14680
  Fi as FileUploadGlobalPropertyHandle,
14622
- Ye as FlowExecutionNodeResult,
14681
+ Pe as FlowExecutionNodeResult,
14623
14682
  ki as FlowExecutionResult,
14624
14683
  Ui as FlowService,
14625
14684
  Us as FontAlignmentCommand,
14626
14685
  ks as FontColorCommand,
14627
14686
  Gs as FontSizeCommand,
14628
14687
  bs as FontSourceCommand,
14629
- Va as FrameService,
14688
+ Xa as FrameService,
14630
14689
  ts as FrameStep,
14631
14690
  As as FrameStepHandle,
14632
14691
  pt as GlobalPropertyHandle,
14633
14692
  Js as GroupCommand,
14634
14693
  Sn as IllustrationStepHandle,
14635
- Te as InformationMessageType,
14694
+ pe as InformationMessageType,
14636
14695
  Hn as InformationStepHandle,
14637
14696
  Jt as IntegrationProduct,
14638
- Sa as IntegrationType,
14697
+ Pa as IntegrationType,
14639
14698
  Ts as LayoutElementFactory,
14640
14699
  Os as LayoutElementType,
14641
14700
  z as LayoutNotFoundError,
14642
14701
  Yn as MaterialStepHandle,
14643
- ke as MisconfigurationError,
14702
+ Ge as MisconfigurationError,
14644
14703
  Is as MockWorkflowManager,
14645
14704
  Pn as ModelStepHandle,
14646
14705
  kn as ModuleStepHandle,
14647
14706
  Ls as MoveCommand,
14648
- PA as ObjectInput,
14707
+ NA as ObjectInput,
14649
14708
  Gi as ObjectInputType,
14650
- YA as OptionGlobalPropertyHandle,
14651
- Ue as OptionNotFoundError,
14652
- de as ParseError,
14709
+ xA as OptionGlobalPropertyHandle,
14710
+ ke as OptionNotFoundError,
14711
+ Ce as ParseError,
14653
14712
  xn as PictureStepHandle,
14654
- Ya as ProductCameraRig,
14713
+ xa as ProductCameraRig,
14655
14714
  Ni as ProductCollection,
14656
14715
  Ee as ProductWorkflow,
14657
14716
  Qe as PromiseCache,
@@ -14662,32 +14721,32 @@ export {
14662
14721
  ue as ResourceNotFoundError,
14663
14722
  Ks as RotateCommand,
14664
14723
  js as SendBackwardsCommand,
14665
- vn as ShapeStepHandle,
14724
+ Rn as ShapeStepHandle,
14666
14725
  es as SpiffCommerceClient,
14667
- Ge as StakeholderType,
14726
+ be as StakeholderType,
14668
14727
  Vs as StepAspectType,
14669
14728
  X as StepHandle,
14670
14729
  Ws as StepType,
14671
14730
  Xs as TextChangeCommand,
14672
14731
  yi as TextGlobalPropertyHandle,
14673
14732
  ps as TextInput,
14674
- Rn as TextStepHandle,
14675
- Ma as TransactionShareActionType,
14676
- Ri as Transform,
14677
- vi as TransformCollection,
14733
+ vn as TextStepHandle,
14734
+ Ya as TransactionShareActionType,
14735
+ vi as Transform,
14736
+ Ri as TransformCollection,
14678
14737
  b as UnhandledBehaviorError,
14679
14738
  qs as UnitOfMeasurement,
14680
14739
  Zs as UpdateImageSourceCommand,
14681
14740
  Z as Variant,
14682
14741
  Vn as WorkflowExperienceEventType,
14683
- Me as WorkflowExperienceImpl,
14742
+ Se as WorkflowExperienceImpl,
14684
14743
  U as assetService,
14685
- en as browserColorToHex,
14744
+ tn as browserColorToHex,
14686
14745
  Ln as createDesign,
14687
14746
  $s as dataUrlFromExternalUrl,
14688
14747
  qe as designService,
14689
14748
  _s as determineCorrectFontSizeAndLines,
14690
- qa as digitalContentStepService,
14749
+ CA as digitalContentStepService,
14691
14750
  eo as findElement,
14692
14751
  us as findPmsColors,
14693
14752
  to as frameDataCache,
@@ -14698,32 +14757,32 @@ export {
14698
14757
  ms as generateStateFromDesignInputSteps,
14699
14758
  no as getAttributesFromArrayBuffer,
14700
14759
  io as getAxisAlignedBoundingBox,
14701
- ja as getBoundedOffsets,
14760
+ Wa as getBoundedOffsets,
14702
14761
  so as getFrameData,
14703
14762
  oo as getSvgElement,
14704
- Pe as getWorkflow,
14705
- xA as getWorkflows,
14763
+ xe as getWorkflow,
14764
+ RA as getWorkflows,
14706
14765
  P as graphQlManager,
14707
- Ne as illustrationStepService,
14766
+ Re as illustrationStepService,
14708
14767
  ro as loadFont,
14709
14768
  hs as matchHexToPms,
14710
- dA as materialStepService,
14711
- wA as modelStepService,
14712
- on as moduleStepService,
14769
+ wA as materialStepService,
14770
+ EA as modelStepService,
14771
+ hA as moduleStepService,
14713
14772
  j as optionService,
14714
14773
  co as patternImageDataCache,
14715
14774
  Y as persistenceService,
14716
- EA as pictureStepService,
14775
+ uA as pictureStepService,
14717
14776
  Es as pmsToRgb,
14718
- hA as questionStepService,
14777
+ QA as questionStepService,
14719
14778
  go as registerFetchImplementation,
14720
14779
  lo as registerWindowImplementation,
14721
14780
  Bo as rehydrateSerializedLayout,
14722
- Za as rgbToPms,
14723
- ca as setBearerAuthenticationToken,
14781
+ $a as rgbToPms,
14782
+ la as setBearerAuthenticationToken,
14724
14783
  Co as setCanvasModule,
14725
14784
  we as shapeStepService,
14726
- Wa as shortenUrl,
14785
+ qa as shortenUrl,
14727
14786
  q as spiffCoreConfiguration,
14728
14787
  Qs as stepAspectValuesToDesignInputSteps,
14729
14788
  wo as svgToDataUrl,