@spiffcommerce/core 21.13.2-alpha.0 → 21.14.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +9 -1
- package/dist/index.js +456 -458
- package/dist/index.umd.cjs +12 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHttpLink as IA, InMemoryCache as fA, ApolloClient as DA, from as FA, gql as D } from "@apollo/client/core";
|
|
2
|
-
import { fetch as
|
|
3
|
-
import { AspectType as es, AssetType as ts, BringForwardCommand as As, BringToBackCommand as as, BringToFrontCommand as ns, CanvasCommand as is, CommandContext as ss, CreateElementCommand as os, CreateLayoutCommand as rs, DeleteElementCommand as cs, FontAlignmentCommand as gs, FontColorCommand as ls, FontSizeCommand as Bs, FontSourceCommand as ds, GroupCommand as ws, LayoutElementFactory as hs, LayoutElementType as Es, MoveCommand as us, ResizeCommand as Cs, RotateCommand as Qs, SendBackwardsCommand as ms, StepAspectType as ps, StepType as Is, TextChangeCommand as fs, UnitOfMeasurement as Ds, UpdateImageSourceCommand as Fs, dataUrlFromExternalUrl as ys, determineCorrectFontSizeAndLines as Ms, findElement as Ss, frameDataCache as Ys, generate as Ps, generateSVGWithUnknownColors as xs, getAttributesFromArrayBuffer as Ns, getAxisAlignedBoundingBox as Rs, getFrameData as Hs, getSvgElement as Us, loadFont as vs, patternImageDataCache as Gs, registerFetchImplementation as ks, registerWindowImplementation as bs, rehydrateSerializedLayout as Js, setCanvasModule as
|
|
2
|
+
import { fetch as et, getAttributesFromArrayBuffer as Rt, AssetType as ut, StepType as y, getFrameData as tt, frameDataCache as yA, GroupCommand as v, UpdateFramePattern as Ht, UpdateFrameThresholdSettingsCommand as MA, calculateOffsets as At, LayoutElementType as k, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as Ut, svgObjectURL as Pe, fetchAsString as _, DeleteElementCommand as ee, generateDefaultRectangleFrameSvg as Ct, GetSVGDimensions as SA, patternImageDataCache as Qt, fetchAsArrayBuffer as YA, findElement as xe, modifySVGWithElementProperties as PA, IllustrationColorCommand as We, IllustrationCacheCommand as xA, getFontMetrics as NA, getPatternImageData as Xe, FontAlignmentCommand as RA, FontColorCommand as HA, FontImageFillCommand as Oe, applyTextTransformations as qe, determineCorrectFontSizeAndLines as Me, FontSourceCommand as mt, loadFont as at, TextChangeCommand as UA, FontSizeCommand as vA, createElementNS as GA, createElement as Qe, _loadFontExternalDataURL as nt, UpdateWorkflowStateCommand as pt, CommandContext as kA, createCanvas as Ne, getSvgElement as vt, LayoutRenderingPurpose as Gt, renderPapyrusComponentAsString as kt, loadImage as bt, getDomParser as Jt, toBase64 as It, getVariant as bA, generateFrameSVG as JA, getDefaultVariant as be, domParser as Tt, sanitizeSvgTree as Lt, traverse as TA, xmlSerializer as Ot, CreateLayoutCommand as LA, AspectType as Be, rehydrateSerializedLayout as Ae } from "@spiffcommerce/papyrus";
|
|
3
|
+
import { AspectType as es, AssetType as ts, BringForwardCommand as As, BringToBackCommand as as, BringToFrontCommand as ns, CanvasCommand as is, CommandContext as ss, CreateElementCommand as os, CreateLayoutCommand as rs, DeleteElementCommand as cs, FontAlignmentCommand as gs, FontColorCommand as ls, FontSizeCommand as Bs, FontSourceCommand as ds, GroupCommand as ws, LayoutElementFactory as hs, LayoutElementType as Es, MoveCommand as us, ResizeCommand as Cs, RotateCommand as Qs, SendBackwardsCommand as ms, StepAspectType as ps, StepType as Is, TextChangeCommand as fs, UnitOfMeasurement as Ds, UpdateImageSourceCommand as Fs, dataUrlFromExternalUrl as ys, determineCorrectFontSizeAndLines as Ms, findElement as Ss, frameDataCache as Ys, generate as Ps, generateSVGWithUnknownColors as xs, getAttributesFromArrayBuffer as Ns, getAxisAlignedBoundingBox as Rs, getFrameData as Hs, getSvgElement as Us, loadFont as vs, patternImageDataCache as Gs, registerFetchImplementation as ks, registerWindowImplementation as bs, rehydrateSerializedLayout as Js, setCanvasModule as Ts } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as OA } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as zA } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as zt } from "pith";
|
|
@@ -8,8 +8,8 @@ import Kt from "lodash.debounce";
|
|
|
8
8
|
import jt from "lodash.isequal";
|
|
9
9
|
import we from "lodash.clonedeep";
|
|
10
10
|
import { toString as Vt } from "qrcode";
|
|
11
|
-
import { split as
|
|
12
|
-
import
|
|
11
|
+
import { split as Ze } from "unicode-default-word-boundary";
|
|
12
|
+
import it from "svg-path-bbox";
|
|
13
13
|
import ft from "lodash.chunk";
|
|
14
14
|
class Wt extends Error {
|
|
15
15
|
constructor(e) {
|
|
@@ -66,7 +66,7 @@ class U extends Je {
|
|
|
66
66
|
super(`Client Error: ${e}`);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
class
|
|
69
|
+
class Te extends Je {
|
|
70
70
|
constructor(e) {
|
|
71
71
|
super(`Resource Generation Failed: ${e}`);
|
|
72
72
|
}
|
|
@@ -120,7 +120,7 @@ const jA = () => {
|
|
|
120
120
|
} catch {
|
|
121
121
|
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Dt();
|
|
122
122
|
}
|
|
123
|
-
},
|
|
123
|
+
}, Y = jA();
|
|
124
124
|
class VA {
|
|
125
125
|
constructor() {
|
|
126
126
|
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 = [];
|
|
@@ -152,17 +152,17 @@ let Xt;
|
|
|
152
152
|
const Ft = (c) => {
|
|
153
153
|
Xt = c;
|
|
154
154
|
};
|
|
155
|
-
let
|
|
155
|
+
let st;
|
|
156
156
|
const WA = (c) => {
|
|
157
|
-
|
|
158
|
-
}, XA = () =>
|
|
157
|
+
st = c;
|
|
158
|
+
}, XA = () => st, qA = () => new Promise((c) => {
|
|
159
159
|
const e = $.getHubUrl(), t = (A) => {
|
|
160
160
|
A.origin === e && (window.removeEventListener("message", t), c(A.data));
|
|
161
161
|
};
|
|
162
162
|
window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
|
|
163
163
|
}), ZA = async () => {
|
|
164
164
|
const c = {
|
|
165
|
-
applicationKey:
|
|
165
|
+
applicationKey: st,
|
|
166
166
|
customerToken: Xt
|
|
167
167
|
};
|
|
168
168
|
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await qA(), ...c } : c;
|
|
@@ -179,7 +179,7 @@ class $A {
|
|
|
179
179
|
constructShadowGraphqlClient() {
|
|
180
180
|
const e = IA({
|
|
181
181
|
uri: `${$.getServerUrl()}/graphql`,
|
|
182
|
-
fetch:
|
|
182
|
+
fetch: et
|
|
183
183
|
}), t = OA(async (i, s) => {
|
|
184
184
|
const { headers: o } = s, r = o || {}, g = await ZA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, h = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
|
|
185
185
|
try {
|
|
@@ -187,8 +187,8 @@ class $A {
|
|
|
187
187
|
const C = window.__SENTRY__.hub;
|
|
188
188
|
if (C) {
|
|
189
189
|
const I = C.traceHeaders();
|
|
190
|
-
Object.entries(I).forEach(([
|
|
191
|
-
r[
|
|
190
|
+
Object.entries(I).forEach(([m, Q]) => {
|
|
191
|
+
r[m] = Q;
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
194
|
}
|
|
@@ -281,7 +281,7 @@ const x = new $A(), _A = D`
|
|
|
281
281
|
...AssetFields
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
|
-
`,
|
|
284
|
+
`, ot = D`
|
|
285
285
|
fragment MaterialFields on Material {
|
|
286
286
|
id
|
|
287
287
|
name
|
|
@@ -329,7 +329,7 @@ const x = new $A(), _A = D`
|
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
`, ta = D`
|
|
332
|
-
${
|
|
332
|
+
${ot}
|
|
333
333
|
query GetMaterials($ids: [String]) {
|
|
334
334
|
materials(id: $ids) {
|
|
335
335
|
...MaterialFields
|
|
@@ -471,7 +471,7 @@ class sa {
|
|
|
471
471
|
}, A, a);
|
|
472
472
|
}
|
|
473
473
|
async uploadFile(e, t) {
|
|
474
|
-
const A = !(e.type === "image/svg+xml" || e.type === "application/pdf"), a = A ?
|
|
474
|
+
const A = !(e.type === "image/svg+xml" || e.type === "application/pdf"), a = A ? ut.Image : ut.Illustration;
|
|
475
475
|
if (A) {
|
|
476
476
|
const n = await this.loadImageAsFileInfo(e);
|
|
477
477
|
return await this.uploadAssetWithProgress(n, a, t, !0);
|
|
@@ -561,27 +561,27 @@ const re = "persistentAssets", Zt = class Z {
|
|
|
561
561
|
}
|
|
562
562
|
const t = /* @__PURE__ */ new Map();
|
|
563
563
|
t.set(e.key || "", e.fileLink);
|
|
564
|
-
const A =
|
|
564
|
+
const A = Y.getMap(re);
|
|
565
565
|
A && A.forEach((a, n) => {
|
|
566
566
|
t.set(n, a);
|
|
567
|
-
}),
|
|
567
|
+
}), Y.setMap(re, t), Z.executeCallbacks();
|
|
568
568
|
}
|
|
569
569
|
/**
|
|
570
570
|
* Remove an existing asset from persistence. Noop if the asset doesn't exist.
|
|
571
571
|
* @param assetKey The key to remove.
|
|
572
572
|
*/
|
|
573
573
|
static remove(e) {
|
|
574
|
-
const t =
|
|
574
|
+
const t = Y.getMap(re);
|
|
575
575
|
if (!t)
|
|
576
576
|
return;
|
|
577
577
|
const A = Array.from(t.entries()).find((a) => a[0] === e);
|
|
578
|
-
A && (t.delete(A[0]),
|
|
578
|
+
A && (t.delete(A[0]), Y.setMap(re, t), Z.executeCallbacks());
|
|
579
579
|
}
|
|
580
580
|
/**
|
|
581
581
|
* Get a list of all persisted assets.
|
|
582
582
|
*/
|
|
583
583
|
static list() {
|
|
584
|
-
const e =
|
|
584
|
+
const e = Y.getMap(re);
|
|
585
585
|
return e ? Array.from(e.entries()).map((t) => ({ assetKey: t[0], src: t[1] })) : [];
|
|
586
586
|
}
|
|
587
587
|
/**
|
|
@@ -629,13 +629,13 @@ class K {
|
|
|
629
629
|
A && (t.delete(A), K.setMap(t));
|
|
630
630
|
}
|
|
631
631
|
static getMap() {
|
|
632
|
-
return
|
|
632
|
+
return Y.getMap(yt) || /* @__PURE__ */ new Map();
|
|
633
633
|
}
|
|
634
634
|
static setMap(e) {
|
|
635
|
-
|
|
635
|
+
Y.setMap(yt, e);
|
|
636
636
|
}
|
|
637
637
|
}
|
|
638
|
-
const
|
|
638
|
+
const G = new sa();
|
|
639
639
|
class oa {
|
|
640
640
|
constructor() {
|
|
641
641
|
this.cache = {}, this.disabled = !1;
|
|
@@ -709,7 +709,7 @@ const Ee = new oa(), $t = D`
|
|
|
709
709
|
}
|
|
710
710
|
`, ra = D`
|
|
711
711
|
${Ce(!1)}
|
|
712
|
-
${
|
|
712
|
+
${ot}
|
|
713
713
|
${$t}
|
|
714
714
|
query GetOptions($ids: [String]!) {
|
|
715
715
|
options(ids: $ids) {
|
|
@@ -727,8 +727,8 @@ const Ee = new oa(), $t = D`
|
|
|
727
727
|
});
|
|
728
728
|
return e.data.options.forEach((t) => {
|
|
729
729
|
var A, a;
|
|
730
|
-
(A = t.defaultVariant) != null && A.asset &&
|
|
731
|
-
n.asset &&
|
|
730
|
+
(A = t.defaultVariant) != null && A.asset && G.cacheAsset(t.defaultVariant.asset), t.colorProfile && G.cacheAsset(t.colorProfile), (a = t.variants) == null || a.forEach((n) => {
|
|
731
|
+
n.asset && G.cacheAsset(n.asset), n.displayImage && G.cacheAsset(n.displayImage), n.thumbnail && G.cacheAsset(n.thumbnail), n.material && G.cacheMaterial(n.material);
|
|
732
732
|
});
|
|
733
733
|
}), e.data.options;
|
|
734
734
|
}, ga = async (c, e) => (await e).find((A) => A.id === c), la = async (c) => {
|
|
@@ -794,7 +794,7 @@ class Ba {
|
|
|
794
794
|
}
|
|
795
795
|
}
|
|
796
796
|
const V = new Ba();
|
|
797
|
-
var da = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(da || {}),
|
|
797
|
+
var da = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(da || {}), rt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(rt || {}), wa = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(wa || {}), ha = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(ha || {}), Ea = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(Ea || {}), Ue = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ue || {});
|
|
798
798
|
const oe = D`
|
|
799
799
|
fragment AdditionalIntegrationProductFields on IntegrationProduct {
|
|
800
800
|
id
|
|
@@ -1295,14 +1295,14 @@ const _t = D`
|
|
|
1295
1295
|
...IntegrationProductFields
|
|
1296
1296
|
}
|
|
1297
1297
|
}
|
|
1298
|
-
`, ce = [
|
|
1298
|
+
`, ce = [y.SilentIllustration, y.ProductOverlay], Da = async (c) => {
|
|
1299
1299
|
const e = [];
|
|
1300
1300
|
c.introduction && e.push({
|
|
1301
1301
|
name: "Introduction",
|
|
1302
1302
|
title: c.name,
|
|
1303
1303
|
renderableSteps: [
|
|
1304
1304
|
{
|
|
1305
|
-
type:
|
|
1305
|
+
type: y.Introduction,
|
|
1306
1306
|
stepName: "Introduction",
|
|
1307
1307
|
stepTitle: c.name,
|
|
1308
1308
|
helpText: c.introduction,
|
|
@@ -1337,7 +1337,7 @@ const _t = D`
|
|
|
1337
1337
|
title: t,
|
|
1338
1338
|
renderableSteps: [
|
|
1339
1339
|
{
|
|
1340
|
-
type:
|
|
1340
|
+
type: y.Finish,
|
|
1341
1341
|
stepName: "Finish",
|
|
1342
1342
|
stepTitle: t,
|
|
1343
1343
|
helpText: "",
|
|
@@ -1373,7 +1373,7 @@ const _t = D`
|
|
|
1373
1373
|
for (const s of A)
|
|
1374
1374
|
for (const o of s.renderableSteps) {
|
|
1375
1375
|
const r = (((i = o.option) == null ? void 0 : i.variants) || []).length;
|
|
1376
|
-
o.silent || (o.type ===
|
|
1376
|
+
o.silent || (o.type === y.Model || o.type === y.Material || o.type === y.Picture || o.type === y.Shape ? (r > 1 || t) && a.push(o.stepName) : a.push(o.stepName));
|
|
1377
1377
|
}
|
|
1378
1378
|
const n = A.filter((s) => s.renderableSteps.filter(
|
|
1379
1379
|
(r) => a.includes(r.stepName)
|
|
@@ -1495,7 +1495,7 @@ class Ya {
|
|
|
1495
1495
|
if (a.currentFrameSources) {
|
|
1496
1496
|
let n = !1;
|
|
1497
1497
|
for (let i = 0; i < a.currentFrameSources.length; i++) {
|
|
1498
|
-
const s = a.currentFrameSources[i], o = await
|
|
1498
|
+
const s = a.currentFrameSources[i], o = await tt(s), r = this.frameData ? this.frameData[i] : void 0;
|
|
1499
1499
|
jt(o, r) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
|
|
1500
1500
|
}
|
|
1501
1501
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
@@ -1652,7 +1652,7 @@ class Ya {
|
|
|
1652
1652
|
const s = this.workflowManager.getCommandDispatcher();
|
|
1653
1653
|
n.forEach((o, r) => {
|
|
1654
1654
|
s(
|
|
1655
|
-
new
|
|
1655
|
+
new v([
|
|
1656
1656
|
new Ht(o, t, e[r]),
|
|
1657
1657
|
new MA(
|
|
1658
1658
|
o,
|
|
@@ -1680,7 +1680,7 @@ class Ya {
|
|
|
1680
1680
|
}
|
|
1681
1681
|
recalculateOffsets(e) {
|
|
1682
1682
|
this.frameData && ((!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((t, A) => {
|
|
1683
|
-
this.offsets[A] =
|
|
1683
|
+
this.offsets[A] = At(e, t);
|
|
1684
1684
|
}), this._debouncedUpdateFrameOffsets(
|
|
1685
1685
|
this.offsets,
|
|
1686
1686
|
e,
|
|
@@ -1698,14 +1698,14 @@ class St {
|
|
|
1698
1698
|
if (!n)
|
|
1699
1699
|
throw new z(a);
|
|
1700
1700
|
let i = "";
|
|
1701
|
-
if (this.configuration.type ===
|
|
1701
|
+
if (this.configuration.type === y.ProductOverlay) {
|
|
1702
1702
|
let l = "";
|
|
1703
1703
|
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1704
1704
|
throw new He(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1705
1705
|
}
|
|
1706
1706
|
const s = this.evaluateAssetType();
|
|
1707
1707
|
if (s === k.Image) {
|
|
1708
|
-
const l = this.configuration.type ===
|
|
1708
|
+
const l = this.configuration.type === y.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
|
|
1709
1709
|
if (!l)
|
|
1710
1710
|
throw new Error("Undefined raster silent step source");
|
|
1711
1711
|
const d = {
|
|
@@ -1720,7 +1720,7 @@ class St {
|
|
|
1720
1720
|
layer: a.layer,
|
|
1721
1721
|
layerIndex: a.layerIndex,
|
|
1722
1722
|
immutable: a.immutable,
|
|
1723
|
-
productOverlay: this.configuration.type ===
|
|
1723
|
+
productOverlay: this.configuration.type === y.ProductOverlay ? !0 : void 0,
|
|
1724
1724
|
rotation: a.rotation,
|
|
1725
1725
|
excludeFromExport: this.configuration.data.excludeFromPrint,
|
|
1726
1726
|
preserveAspectRatio: "none"
|
|
@@ -1730,10 +1730,10 @@ class St {
|
|
|
1730
1730
|
id: d.id,
|
|
1731
1731
|
region: a
|
|
1732
1732
|
},
|
|
1733
|
-
command: new
|
|
1733
|
+
command: new L(d, n)
|
|
1734
1734
|
};
|
|
1735
1735
|
} else {
|
|
1736
|
-
const l = this.configuration.type ===
|
|
1736
|
+
const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Ut(await (async () => new Promise((h, u) => {
|
|
1737
1737
|
if (!l) {
|
|
1738
1738
|
u("Undefined vector silent step source");
|
|
1739
1739
|
return;
|
|
@@ -1757,7 +1757,7 @@ class St {
|
|
|
1757
1757
|
layerIndex: a.layerIndex,
|
|
1758
1758
|
rotation: a.rotation,
|
|
1759
1759
|
immutable: a.immutable,
|
|
1760
|
-
productOverlay: this.configuration.type ===
|
|
1760
|
+
productOverlay: this.configuration.type === y.ProductOverlay ? !0 : void 0,
|
|
1761
1761
|
excludeFromExport: this.configuration.data.excludeFromPrint
|
|
1762
1762
|
};
|
|
1763
1763
|
return {
|
|
@@ -1765,7 +1765,7 @@ class St {
|
|
|
1765
1765
|
id: E.id,
|
|
1766
1766
|
region: a
|
|
1767
1767
|
},
|
|
1768
|
-
command: new
|
|
1768
|
+
command: new L(E, n)
|
|
1769
1769
|
};
|
|
1770
1770
|
}
|
|
1771
1771
|
}, this.configuration = e, this.layouts = t, this.product = A || void 0;
|
|
@@ -1773,11 +1773,11 @@ class St {
|
|
|
1773
1773
|
async trigger() {
|
|
1774
1774
|
if (!this.configuration.data.regions)
|
|
1775
1775
|
throw new He(this.configuration, "Missing regions.");
|
|
1776
|
-
if (this.configuration.type ===
|
|
1776
|
+
if (this.configuration.type === y.SilentIllustration) {
|
|
1777
1777
|
const e = this.configuration.data.regions.map(this.processRegion);
|
|
1778
1778
|
return Promise.all(e);
|
|
1779
1779
|
} else
|
|
1780
|
-
return this.configuration.type ===
|
|
1780
|
+
return this.configuration.type === y.ProductOverlay ? Promise.all(
|
|
1781
1781
|
this.configuration.data.regions.map((e) => {
|
|
1782
1782
|
if (!this.layouts.find((A) => e.panelId === A.panelId))
|
|
1783
1783
|
throw new z(e);
|
|
@@ -1787,7 +1787,7 @@ class St {
|
|
|
1787
1787
|
}
|
|
1788
1788
|
evaluateAssetType() {
|
|
1789
1789
|
var t, A, a;
|
|
1790
|
-
const e = this.configuration.type ===
|
|
1790
|
+
const e = this.configuration.type === y.ProductOverlay && ((t = this.product) != null && t.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (a = (A = this.configuration.data.asset) == null ? void 0 : A.fileLink) == null ? void 0 : a.toLowerCase().split("?")[0];
|
|
1791
1791
|
return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? k.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? k.Illustration : k.Illustration;
|
|
1792
1792
|
}
|
|
1793
1793
|
}
|
|
@@ -1802,7 +1802,7 @@ const Pa = async (c) => {
|
|
|
1802
1802
|
}
|
|
1803
1803
|
})).json()).shortUrl;
|
|
1804
1804
|
} catch (t) {
|
|
1805
|
-
throw console.error(t), new
|
|
1805
|
+
throw console.error(t), new Te("Failed to shorten URL, see console.");
|
|
1806
1806
|
}
|
|
1807
1807
|
};
|
|
1808
1808
|
class aA {
|
|
@@ -1849,19 +1849,19 @@ class xa {
|
|
|
1849
1849
|
async regenerateQRCode(e, t, A, a, n, i, s, o, r) {
|
|
1850
1850
|
if (!t && A !== "" && a === "") {
|
|
1851
1851
|
const g = async () => {
|
|
1852
|
-
var
|
|
1853
|
-
const C = (await qt([A]))[0], I = (Q = (
|
|
1852
|
+
var m, Q;
|
|
1853
|
+
const C = (await qt([A]))[0], I = (Q = (m = C == null ? void 0 : C.versions) == null ? void 0 : m.find((p) => p.name === "mpeg4")) == null ? void 0 : Q.link;
|
|
1854
1854
|
return { asset: C, link: I };
|
|
1855
1855
|
}, B = await new Promise((C, I) => {
|
|
1856
1856
|
new aA(
|
|
1857
1857
|
async () => !!(await g()).link,
|
|
1858
1858
|
async () => {
|
|
1859
|
-
const
|
|
1860
|
-
if (!
|
|
1861
|
-
throw new he(
|
|
1859
|
+
const m = await g();
|
|
1860
|
+
if (!m.link || !m.link)
|
|
1861
|
+
throw new he(m.asset);
|
|
1862
1862
|
C({
|
|
1863
1863
|
rel: "mpeg4",
|
|
1864
|
-
href:
|
|
1864
|
+
href: m.link
|
|
1865
1865
|
});
|
|
1866
1866
|
},
|
|
1867
1867
|
() => {
|
|
@@ -1876,7 +1876,7 @@ class xa {
|
|
|
1876
1876
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1877
1877
|
const w = d.toString();
|
|
1878
1878
|
if (w.length >= 2e3)
|
|
1879
|
-
throw new
|
|
1879
|
+
throw new Te("Cannot create QR code, URL too long.");
|
|
1880
1880
|
const E = await Pa(w);
|
|
1881
1881
|
if (s(E), !i.data || !i.data.regions)
|
|
1882
1882
|
throw new He(i, "Missing regions.");
|
|
@@ -1903,7 +1903,7 @@ class xa {
|
|
|
1903
1903
|
throw new Error("Region not found");
|
|
1904
1904
|
if (!B || !g)
|
|
1905
1905
|
throw new Error("Neither a region or layout found!");
|
|
1906
|
-
return new
|
|
1906
|
+
return new L(
|
|
1907
1907
|
{
|
|
1908
1908
|
stepRegion: g,
|
|
1909
1909
|
stepName: a,
|
|
@@ -1919,7 +1919,7 @@ class xa {
|
|
|
1919
1919
|
B
|
|
1920
1920
|
);
|
|
1921
1921
|
});
|
|
1922
|
-
return { command: new
|
|
1922
|
+
return { command: new v(o), followup: async () => {
|
|
1923
1923
|
} };
|
|
1924
1924
|
}
|
|
1925
1925
|
}
|
|
@@ -2024,18 +2024,18 @@ class Ra {
|
|
|
2024
2024
|
new aA(
|
|
2025
2025
|
async () => {
|
|
2026
2026
|
var d;
|
|
2027
|
-
const B = (d = (await
|
|
2027
|
+
const B = (d = (await G.getLocalOrFromServer(t.key || "")).versions) == null ? void 0 : d.find((w) => w.name === "svg");
|
|
2028
2028
|
return B ? (await fetch(B.link)).status === 200 : !1;
|
|
2029
2029
|
},
|
|
2030
2030
|
() => {
|
|
2031
|
-
|
|
2031
|
+
G.getLocalOrFromServer(t.key || "").then((g) => {
|
|
2032
2032
|
this.loadPatternFromAsset(g, e, A, a).then(
|
|
2033
2033
|
r
|
|
2034
2034
|
);
|
|
2035
2035
|
});
|
|
2036
2036
|
},
|
|
2037
2037
|
() => {
|
|
2038
|
-
throw new
|
|
2038
|
+
throw new Te("Failed to resolve transcoded PDF");
|
|
2039
2039
|
}
|
|
2040
2040
|
)
|
|
2041
2041
|
);
|
|
@@ -2052,7 +2052,7 @@ class Ra {
|
|
|
2052
2052
|
i && (i.command && a.getCommandDispatcher()(i.command), i.followup && await i.followup());
|
|
2053
2053
|
}
|
|
2054
2054
|
getCreateElementCommand(e, t, A, a) {
|
|
2055
|
-
return new
|
|
2055
|
+
return new L(
|
|
2056
2056
|
{
|
|
2057
2057
|
id: e,
|
|
2058
2058
|
type: k.Frame,
|
|
@@ -2110,7 +2110,7 @@ class Ra {
|
|
|
2110
2110
|
n && n(!0);
|
|
2111
2111
|
const r = await Promise.all(
|
|
2112
2112
|
e.data.regions.map(async (d, w) => {
|
|
2113
|
-
const E = await
|
|
2113
|
+
const E = await tt(o[w]), h = s.getImageData(), u = A.map((f) => new ee(f.id)), C = h ? At(h, E) : void 0, I = h ? {
|
|
2114
2114
|
id: J(),
|
|
2115
2115
|
src: h.src,
|
|
2116
2116
|
x: (C == null ? void 0 : C.x) || 0,
|
|
@@ -2120,11 +2120,11 @@ class Ra {
|
|
|
2120
2120
|
scaleX: (C == null ? void 0 : C.zoom) || 1,
|
|
2121
2121
|
scaleY: (C == null ? void 0 : C.zoom) || 1,
|
|
2122
2122
|
rotation: 0
|
|
2123
|
-
} : void 0,
|
|
2124
|
-
if (!
|
|
2123
|
+
} : void 0, m = J(), p = a.getLayouts().find((f) => f.panelId === d.panelId);
|
|
2124
|
+
if (!p)
|
|
2125
2125
|
throw new z(d);
|
|
2126
2126
|
return {
|
|
2127
|
-
command: this.getCreateElementCommand(
|
|
2127
|
+
command: this.getCreateElementCommand(m, d, p, {
|
|
2128
2128
|
frameData: E,
|
|
2129
2129
|
pattern: I,
|
|
2130
2130
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
@@ -2134,7 +2134,7 @@ class Ra {
|
|
|
2134
2134
|
stepName: e.stepName
|
|
2135
2135
|
}),
|
|
2136
2136
|
regionEl: {
|
|
2137
|
-
id:
|
|
2137
|
+
id: m,
|
|
2138
2138
|
region: d
|
|
2139
2139
|
},
|
|
2140
2140
|
removeExistingCommands: u
|
|
@@ -2142,7 +2142,7 @@ class Ra {
|
|
|
2142
2142
|
})
|
|
2143
2143
|
), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
2144
2144
|
return {
|
|
2145
|
-
command: new
|
|
2145
|
+
command: new v([...g, ...B]),
|
|
2146
2146
|
followup: async () => {
|
|
2147
2147
|
n && n(!1), await a.setSelectionsAndElements(
|
|
2148
2148
|
e.stepName,
|
|
@@ -2196,7 +2196,7 @@ class Ha {
|
|
|
2196
2196
|
});
|
|
2197
2197
|
}
|
|
2198
2198
|
getCreateElementCommand(e, t, A, a) {
|
|
2199
|
-
return new
|
|
2199
|
+
return new L(
|
|
2200
2200
|
{
|
|
2201
2201
|
stepRegion: t,
|
|
2202
2202
|
stepName: a.stepName,
|
|
@@ -2291,10 +2291,10 @@ class Ha {
|
|
|
2291
2291
|
const s = PA(e, t, A, i), o = await Pe(s), r = [];
|
|
2292
2292
|
for (const B of a) {
|
|
2293
2293
|
for (const [l, d] of n.entries())
|
|
2294
|
-
r.push(new
|
|
2294
|
+
r.push(new We(B, l, d));
|
|
2295
2295
|
r.push(new xA(B, s, o));
|
|
2296
2296
|
}
|
|
2297
|
-
return new
|
|
2297
|
+
return new v(r);
|
|
2298
2298
|
}
|
|
2299
2299
|
async changeColors(e, t, A, a, n) {
|
|
2300
2300
|
var d, w;
|
|
@@ -2352,13 +2352,13 @@ class Ha {
|
|
|
2352
2352
|
if (!r)
|
|
2353
2353
|
throw new he(o);
|
|
2354
2354
|
const g = await Ut(await this.getIllustrationBody(r)), B = await Pe(g.svg), l = (I) => {
|
|
2355
|
-
const
|
|
2356
|
-
if (!
|
|
2355
|
+
const m = n.getLayouts().find((p) => p.panelId === I.panelId);
|
|
2356
|
+
if (!m)
|
|
2357
2357
|
throw new z(I);
|
|
2358
2358
|
const Q = J();
|
|
2359
2359
|
return {
|
|
2360
2360
|
regionElement: { id: Q, region: I },
|
|
2361
|
-
command: this.getCreateElementCommand(Q, I,
|
|
2361
|
+
command: this.getCreateElementCommand(Q, I, m, {
|
|
2362
2362
|
stepName: e.stepName,
|
|
2363
2363
|
src: r,
|
|
2364
2364
|
objectURL: B,
|
|
@@ -2369,12 +2369,12 @@ class Ha {
|
|
|
2369
2369
|
let h = Array.from(Object.values(g.colors)).map((I) => I.browserValue);
|
|
2370
2370
|
const u = e.data.colorOption;
|
|
2371
2371
|
return u && ((C = u.variants) == null || C.forEach((I) => {
|
|
2372
|
-
h = h.map((
|
|
2372
|
+
h = h.map((m) => {
|
|
2373
2373
|
var Q;
|
|
2374
|
-
return
|
|
2374
|
+
return m.toLowerCase() === ((Q = I.color) == null ? void 0 : Q.toLowerCase()) ? I.name : m;
|
|
2375
2375
|
});
|
|
2376
2376
|
})), n.updateMetadata(e.stepName, { colors: h }), {
|
|
2377
|
-
command: new
|
|
2377
|
+
command: new v(E),
|
|
2378
2378
|
followup: async () => {
|
|
2379
2379
|
await n.setSelectionsAndElements(
|
|
2380
2380
|
e.stepName,
|
|
@@ -2384,15 +2384,15 @@ class Ha {
|
|
|
2384
2384
|
i || n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2385
2385
|
}
|
|
2386
2386
|
);
|
|
2387
|
-
const I = await this.availableColors(e, n) || [],
|
|
2388
|
-
if (e.data.colorPickerEnabled && I.length === 1 &&
|
|
2389
|
-
const Q = I[0],
|
|
2387
|
+
const I = await this.availableColors(e, n) || [], m = Object.keys(g.colors);
|
|
2388
|
+
if (e.data.colorPickerEnabled && I.length === 1 && m.length === 1) {
|
|
2389
|
+
const Q = I[0], p = m[0];
|
|
2390
2390
|
await this.changeColors(
|
|
2391
2391
|
e,
|
|
2392
2392
|
d.map((f) => f.regionElement),
|
|
2393
2393
|
n,
|
|
2394
2394
|
() => n.getCommandContext().getAllLayouts(),
|
|
2395
|
-
/* @__PURE__ */ new Map([[
|
|
2395
|
+
/* @__PURE__ */ new Map([[p, Q.variant.color]])
|
|
2396
2396
|
);
|
|
2397
2397
|
}
|
|
2398
2398
|
}
|
|
@@ -2600,7 +2600,7 @@ class Ga {
|
|
|
2600
2600
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2601
2601
|
const u = [];
|
|
2602
2602
|
return d && u.push(new ee(w)), u.push(
|
|
2603
|
-
new
|
|
2603
|
+
new L(
|
|
2604
2604
|
{
|
|
2605
2605
|
stepRegion: l,
|
|
2606
2606
|
stepName: e.stepName,
|
|
@@ -2622,7 +2622,7 @@ class Ga {
|
|
|
2622
2622
|
), {
|
|
2623
2623
|
id: w,
|
|
2624
2624
|
region: l,
|
|
2625
|
-
command: new
|
|
2625
|
+
command: new v(u)
|
|
2626
2626
|
};
|
|
2627
2627
|
};
|
|
2628
2628
|
if (i.length > 0) {
|
|
@@ -2633,7 +2633,7 @@ class Ga {
|
|
|
2633
2633
|
return r(w, d.region, d.id);
|
|
2634
2634
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
2635
2635
|
return {
|
|
2636
|
-
command: new
|
|
2636
|
+
command: new v(l),
|
|
2637
2637
|
followup: async () => {
|
|
2638
2638
|
}
|
|
2639
2639
|
};
|
|
@@ -2642,7 +2642,7 @@ class Ga {
|
|
|
2642
2642
|
(d) => r(s.svgPrint(t, d), d)
|
|
2643
2643
|
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
2644
2644
|
return {
|
|
2645
|
-
command: new
|
|
2645
|
+
command: new v(l),
|
|
2646
2646
|
followup: async () => {
|
|
2647
2647
|
const d = B.filter((w) => w).map((w) => w && { id: w.id, region: w.region });
|
|
2648
2648
|
await A.setSelectionsAndElements(
|
|
@@ -2662,7 +2662,7 @@ class Ga {
|
|
|
2662
2662
|
}
|
|
2663
2663
|
if (!/^$|^[a-zA-Z0-9 ]+$/.test(t))
|
|
2664
2664
|
return a("Unsupported characters."), !1;
|
|
2665
|
-
const n =
|
|
2665
|
+
const n = Ze(t.toLowerCase());
|
|
2666
2666
|
for (const i of n)
|
|
2667
2667
|
for (const s in A) {
|
|
2668
2668
|
const o = A[s].toLowerCase().replace(/\s/g, "");
|
|
@@ -2728,7 +2728,7 @@ class ba {
|
|
|
2728
2728
|
const E = J();
|
|
2729
2729
|
return {
|
|
2730
2730
|
regionElement: { id: E, region: l },
|
|
2731
|
-
command: new
|
|
2731
|
+
command: new L(
|
|
2732
2732
|
{
|
|
2733
2733
|
stepName: e.stepName,
|
|
2734
2734
|
stepRegion: l,
|
|
@@ -2750,7 +2750,7 @@ class ba {
|
|
|
2750
2750
|
};
|
|
2751
2751
|
}, B = e.data.regions.map(g);
|
|
2752
2752
|
return {
|
|
2753
|
-
command: new
|
|
2753
|
+
command: new v([...r, ...B.map((l) => l.command)]),
|
|
2754
2754
|
followup: async () => {
|
|
2755
2755
|
await A.setSelectionsAndElements(
|
|
2756
2756
|
e.stepName,
|
|
@@ -2824,7 +2824,7 @@ class Ja {
|
|
|
2824
2824
|
}
|
|
2825
2825
|
}
|
|
2826
2826
|
const oA = new Ja();
|
|
2827
|
-
class
|
|
2827
|
+
class Ta {
|
|
2828
2828
|
constructor() {
|
|
2829
2829
|
this.shapeFillId = "spiff-fill-shape";
|
|
2830
2830
|
}
|
|
@@ -2843,9 +2843,9 @@ class La {
|
|
|
2843
2843
|
const o = s.region;
|
|
2844
2844
|
if (!a.find((g) => g.panelId === (o == null ? void 0 : o.panelId)))
|
|
2845
2845
|
throw new z(o);
|
|
2846
|
-
return new
|
|
2846
|
+
return new We(s.id, this.shapeFillId, e);
|
|
2847
2847
|
}).filter((s) => !!s);
|
|
2848
|
-
A.getCommandDispatcher()(new
|
|
2848
|
+
A.getCommandDispatcher()(new v(i)), A.updateStorage(t.stepName, { colour: e });
|
|
2849
2849
|
}
|
|
2850
2850
|
async init(e, t, A) {
|
|
2851
2851
|
const a = e.option;
|
|
@@ -2915,10 +2915,10 @@ class La {
|
|
|
2915
2915
|
if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
|
|
2916
2916
|
throw new z(l);
|
|
2917
2917
|
const w = s();
|
|
2918
|
-
return new
|
|
2918
|
+
return new We(B.id, this.shapeFillId, w);
|
|
2919
2919
|
}, g = A.map(r).filter((B) => !!B);
|
|
2920
2920
|
return {
|
|
2921
|
-
command: new
|
|
2921
|
+
command: new v(g),
|
|
2922
2922
|
followup: async () => {
|
|
2923
2923
|
await a.setSelectionsAndElements(
|
|
2924
2924
|
e.stepName,
|
|
@@ -2958,7 +2958,7 @@ class La {
|
|
|
2958
2958
|
return {
|
|
2959
2959
|
id: C,
|
|
2960
2960
|
region: d,
|
|
2961
|
-
command: new
|
|
2961
|
+
command: new L(
|
|
2962
2962
|
{
|
|
2963
2963
|
stepRegion: d,
|
|
2964
2964
|
stepName: e.stepName,
|
|
@@ -2981,7 +2981,7 @@ class La {
|
|
|
2981
2981
|
};
|
|
2982
2982
|
}, 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 }));
|
|
2983
2983
|
return {
|
|
2984
|
-
command: new
|
|
2984
|
+
command: new v(B),
|
|
2985
2985
|
followup: async () => {
|
|
2986
2986
|
await a.setSelectionsAndElements(
|
|
2987
2987
|
e.stepName,
|
|
@@ -2996,8 +2996,8 @@ class La {
|
|
|
2996
2996
|
}
|
|
2997
2997
|
}
|
|
2998
2998
|
}
|
|
2999
|
-
const le = new
|
|
3000
|
-
class
|
|
2999
|
+
const le = new Ta();
|
|
3000
|
+
class La {
|
|
3001
3001
|
constructor() {
|
|
3002
3002
|
this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
|
|
3003
3003
|
}
|
|
@@ -3022,7 +3022,7 @@ class Ta {
|
|
|
3022
3022
|
);
|
|
3023
3023
|
}
|
|
3024
3024
|
}
|
|
3025
|
-
const Oa = new
|
|
3025
|
+
const Oa = new La(), ze = 30;
|
|
3026
3026
|
class ve extends Error {
|
|
3027
3027
|
constructor(e) {
|
|
3028
3028
|
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = ve.name;
|
|
@@ -3054,7 +3054,7 @@ class Ka {
|
|
|
3054
3054
|
}, this.textAlign = (e) => e.vertical ? "center" : e.textAlign || "center", this.getErrorsForText = (e, t, A) => {
|
|
3055
3055
|
const a = [];
|
|
3056
3056
|
t.data && t.data.maxLength && e.length > t.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
3057
|
-
const n = A.getProfanities(), i =
|
|
3057
|
+
const n = A.getProfanities(), i = Ze(e.toLowerCase());
|
|
3058
3058
|
for (const o of i)
|
|
3059
3059
|
for (const r in n) {
|
|
3060
3060
|
const g = n[r].toLowerCase().replace(/\s/g, "");
|
|
@@ -3075,7 +3075,7 @@ class Ka {
|
|
|
3075
3075
|
if (A)
|
|
3076
3076
|
await this.reload(e, t, A);
|
|
3077
3077
|
else {
|
|
3078
|
-
const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, g = r ? await
|
|
3078
|
+
const o = this.getDefaultImageFillVariant(e.data), r = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, g = r ? await Xe(r) : void 0, B = g ? {
|
|
3079
3079
|
src: g.src,
|
|
3080
3080
|
height: g.height,
|
|
3081
3081
|
width: g.width,
|
|
@@ -3170,7 +3170,7 @@ class Ka {
|
|
|
3170
3170
|
})) == null ? void 0 : a.filter((i) => !!i)) || [];
|
|
3171
3171
|
return Promise.all(
|
|
3172
3172
|
n.map(async (i) => {
|
|
3173
|
-
const s = await
|
|
3173
|
+
const s = await Xe(i);
|
|
3174
3174
|
return {
|
|
3175
3175
|
src: i,
|
|
3176
3176
|
width: s.width,
|
|
@@ -3200,7 +3200,7 @@ class Ka {
|
|
|
3200
3200
|
}
|
|
3201
3201
|
getProcessedInput(e, t, A) {
|
|
3202
3202
|
const a = A ? e : this.injectReplaceableText(e, t);
|
|
3203
|
-
return
|
|
3203
|
+
return qe(a, {
|
|
3204
3204
|
vertical: t.vertical,
|
|
3205
3205
|
uppercase: t.uppercase
|
|
3206
3206
|
});
|
|
@@ -3233,7 +3233,7 @@ class Ka {
|
|
|
3233
3233
|
}
|
|
3234
3234
|
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, {
|
|
3235
3235
|
text: i
|
|
3236
|
-
}), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0), s.command = new
|
|
3236
|
+
}), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0), s.command = new v(r), s);
|
|
3237
3237
|
}
|
|
3238
3238
|
async selectVariant(e, t, A, a, n) {
|
|
3239
3239
|
const i = await this.selectVariantCommand(
|
|
@@ -3277,8 +3277,8 @@ class Ka {
|
|
|
3277
3277
|
E,
|
|
3278
3278
|
async () => {
|
|
3279
3279
|
t.updateMetadata(e.stepName, { color: h, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
|
|
3280
|
-
const I = s.map((Q) => new mt(Q.id, w)),
|
|
3281
|
-
t.getCommandDispatcher()(
|
|
3280
|
+
const I = s.map((Q) => new mt(Q.id, w)), m = new v(I);
|
|
3281
|
+
t.getCommandDispatcher()(m), t.setMandatoryFulfilled(e.stepName, !0);
|
|
3282
3282
|
}
|
|
3283
3283
|
);
|
|
3284
3284
|
const { command: C } = j.updateInputText(
|
|
@@ -3316,7 +3316,7 @@ class Ka {
|
|
|
3316
3316
|
const A = t.fileLink;
|
|
3317
3317
|
if (!A)
|
|
3318
3318
|
throw new he(t);
|
|
3319
|
-
const a = await
|
|
3319
|
+
const a = await at(A);
|
|
3320
3320
|
return {
|
|
3321
3321
|
assetUrl: A,
|
|
3322
3322
|
name: a.names.fullName.en
|
|
@@ -3343,7 +3343,7 @@ class Ka {
|
|
|
3343
3343
|
s
|
|
3344
3344
|
);
|
|
3345
3345
|
return d && l.push(d), {
|
|
3346
|
-
command: new
|
|
3346
|
+
command: new v(l),
|
|
3347
3347
|
followup: async () => {
|
|
3348
3348
|
n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
|
|
3349
3349
|
}
|
|
@@ -3374,7 +3374,7 @@ class Ka {
|
|
|
3374
3374
|
w.push(...h);
|
|
3375
3375
|
}
|
|
3376
3376
|
return d && w.push(d), {
|
|
3377
|
-
command: new
|
|
3377
|
+
command: new v(w),
|
|
3378
3378
|
followup: async () => {
|
|
3379
3379
|
n.markUpdateCompleted(r);
|
|
3380
3380
|
}
|
|
@@ -3409,7 +3409,7 @@ class Ka {
|
|
|
3409
3409
|
colorProfileAssetKey: (E = h.colorProfile) == null ? void 0 : E.key
|
|
3410
3410
|
});
|
|
3411
3411
|
}
|
|
3412
|
-
const C = await this.getDefaultColor(A), I = C || "#000000",
|
|
3412
|
+
const C = await this.getDefaultColor(A), I = C || "#000000", m = {
|
|
3413
3413
|
stepRegion: B,
|
|
3414
3414
|
stepName: e,
|
|
3415
3415
|
align: this.textAlign(A),
|
|
@@ -3433,34 +3433,34 @@ class Ka {
|
|
|
3433
3433
|
curved: A.curved,
|
|
3434
3434
|
paths: A.paths,
|
|
3435
3435
|
fillSpotColorDefinition: u
|
|
3436
|
-
}, Q = [],
|
|
3437
|
-
if (!
|
|
3436
|
+
}, Q = [], p = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map();
|
|
3437
|
+
if (!m.fontData)
|
|
3438
3438
|
throw new b("Failed to resolve font data for text.");
|
|
3439
|
-
const [F,
|
|
3440
|
-
|
|
3441
|
-
|
|
3439
|
+
const [F, M] = Me(
|
|
3440
|
+
m.fontSize,
|
|
3441
|
+
m.fontData,
|
|
3442
3442
|
{
|
|
3443
|
-
left:
|
|
3444
|
-
top:
|
|
3445
|
-
width:
|
|
3446
|
-
height:
|
|
3447
|
-
rotation:
|
|
3443
|
+
left: m.x,
|
|
3444
|
+
top: m.y,
|
|
3445
|
+
width: m.width,
|
|
3446
|
+
height: m.height,
|
|
3447
|
+
rotation: m.rotation,
|
|
3448
3448
|
panelId: ""
|
|
3449
3449
|
},
|
|
3450
3450
|
[o],
|
|
3451
3451
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
3452
3452
|
);
|
|
3453
|
-
|
|
3454
|
-
const
|
|
3453
|
+
p.set(m.id, F), f.set(m.id, M);
|
|
3454
|
+
const P = A.curved || A.vertical ? o : (M || []).join(`
|
|
3455
3455
|
`);
|
|
3456
3456
|
Q.push(
|
|
3457
|
-
this.generateTextChangeCommandsForRegion(F, A,
|
|
3457
|
+
this.generateTextChangeCommandsForRegion(F, A, m.id, P)
|
|
3458
3458
|
);
|
|
3459
|
-
const S = new
|
|
3459
|
+
const S = new L(m, d);
|
|
3460
3460
|
return {
|
|
3461
3461
|
regionElement: { id: w, region: B },
|
|
3462
3462
|
commands: [S, ...Q],
|
|
3463
|
-
newElement:
|
|
3463
|
+
newElement: m,
|
|
3464
3464
|
fontData: a
|
|
3465
3465
|
};
|
|
3466
3466
|
} catch (h) {
|
|
@@ -3488,32 +3488,32 @@ class Ka {
|
|
|
3488
3488
|
const o = new vA(A, e);
|
|
3489
3489
|
n.push(o);
|
|
3490
3490
|
}
|
|
3491
|
-
return new
|
|
3491
|
+
return new v(n);
|
|
3492
3492
|
}
|
|
3493
3493
|
/**
|
|
3494
3494
|
* @deprecated
|
|
3495
3495
|
*/
|
|
3496
3496
|
async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, g) {
|
|
3497
3497
|
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), w = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
|
|
3498
|
-
for (const
|
|
3499
|
-
if (
|
|
3500
|
-
const [Q,
|
|
3498
|
+
for (const m of d)
|
|
3499
|
+
if (m.region) {
|
|
3500
|
+
const [Q, p] = Me(
|
|
3501
3501
|
t,
|
|
3502
3502
|
A,
|
|
3503
|
-
|
|
3503
|
+
m.region,
|
|
3504
3504
|
[l],
|
|
3505
3505
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
3506
3506
|
);
|
|
3507
|
-
w.set(
|
|
3507
|
+
w.set(m.id, Q), E.set(m.id, p);
|
|
3508
3508
|
}
|
|
3509
3509
|
const u = (() => {
|
|
3510
3510
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
3511
3511
|
return g && g(!0), { info: "0" };
|
|
3512
|
-
const
|
|
3513
|
-
for (const
|
|
3514
|
-
for (const f in
|
|
3515
|
-
const F =
|
|
3516
|
-
if (
|
|
3512
|
+
const m = i.getProfanities(), Q = Ze(l.toLowerCase());
|
|
3513
|
+
for (const p of Q)
|
|
3514
|
+
for (const f in m) {
|
|
3515
|
+
const F = m[f].toLowerCase().replace(/\s/g, "");
|
|
3516
|
+
if (p === F)
|
|
3517
3517
|
return o(!0), { error: "Blocked profanity." };
|
|
3518
3518
|
}
|
|
3519
3519
|
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
@@ -3529,23 +3529,23 @@ class Ka {
|
|
|
3529
3529
|
text: this.injectReplaceableText(B, e.data)
|
|
3530
3530
|
}), n.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
|
|
3531
3531
|
const C = [];
|
|
3532
|
-
for (const
|
|
3533
|
-
const Q = e.data.curved ? l : (E.get(
|
|
3532
|
+
for (const m of d) {
|
|
3533
|
+
const Q = e.data.curved ? l : (E.get(m.id) || []).join(`
|
|
3534
3534
|
`);
|
|
3535
3535
|
C.push(
|
|
3536
3536
|
this.generateTextChangeCommandsForRegion(
|
|
3537
|
-
w.get(
|
|
3537
|
+
w.get(m.id) || 1,
|
|
3538
3538
|
e.data,
|
|
3539
|
-
|
|
3539
|
+
m.id,
|
|
3540
3540
|
Q
|
|
3541
3541
|
)
|
|
3542
3542
|
);
|
|
3543
3543
|
}
|
|
3544
|
-
return new
|
|
3544
|
+
return new v(C);
|
|
3545
3545
|
}
|
|
3546
3546
|
}
|
|
3547
3547
|
const j = new Ka();
|
|
3548
|
-
class
|
|
3548
|
+
class ct {
|
|
3549
3549
|
}
|
|
3550
3550
|
const ja = "data:application/font-woff;base64,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", Va = `<?xml version="1.0" encoding="iso-8859-1"?>
|
|
3551
3551
|
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
@@ -4808,7 +4808,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
4808
4808
|
</g>
|
|
4809
4809
|
</svg>
|
|
4810
4810
|
|
|
4811
|
-
`, H = (c) => GA("http://www.w3.org/2000/svg", c),
|
|
4811
|
+
`, H = (c) => GA("http://www.w3.org/2000/svg", c), gt = (c, e) => {
|
|
4812
4812
|
const t = H("rect");
|
|
4813
4813
|
return t.setAttribute("height", `${c}`), t.setAttribute("width", `${e}`), t;
|
|
4814
4814
|
}, Wa = () => {
|
|
@@ -4843,7 +4843,7 @@ const gA = (c, e, t, A) => {
|
|
|
4843
4843
|
let e = c;
|
|
4844
4844
|
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;
|
|
4845
4845
|
};
|
|
4846
|
-
function
|
|
4846
|
+
function lt(c, e, t, A, a, n) {
|
|
4847
4847
|
const i = a || 1, s = n || 1, o = {
|
|
4848
4848
|
x: e[0],
|
|
4849
4849
|
y: e[1],
|
|
@@ -4871,7 +4871,7 @@ const Yt = {
|
|
|
4871
4871
|
t: ["x", "y"],
|
|
4872
4872
|
a: ["rx", "ry", "xRotation", "largeArc", "sweep", "x", "y"]
|
|
4873
4873
|
};
|
|
4874
|
-
class
|
|
4874
|
+
class Bt {
|
|
4875
4875
|
constructor(e) {
|
|
4876
4876
|
const t = Array.from(e.querySelectorAll("path"));
|
|
4877
4877
|
this.paths = t.map((A) => {
|
|
@@ -4969,7 +4969,7 @@ class dt {
|
|
|
4969
4969
|
}
|
|
4970
4970
|
}
|
|
4971
4971
|
}
|
|
4972
|
-
class $a extends
|
|
4972
|
+
class $a extends ct {
|
|
4973
4973
|
constructor() {
|
|
4974
4974
|
super(...arguments), this.moduleName = "Favourites";
|
|
4975
4975
|
}
|
|
@@ -4980,21 +4980,21 @@ class $a extends gt {
|
|
|
4980
4980
|
return this.svg(e);
|
|
4981
4981
|
}
|
|
4982
4982
|
svg(e) {
|
|
4983
|
-
const t =
|
|
4983
|
+
const t = nt(ja), a = e !== "" ? ((i) => i.charAt(0).toUpperCase() + i.substr(1).toLowerCase())(e) : "", n = t.getPath(a, 0, 72, 72);
|
|
4984
4984
|
return this.brandSvg(n, Va);
|
|
4985
4985
|
}
|
|
4986
4986
|
brandSvg(e, t) {
|
|
4987
4987
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
4988
|
-
const Q = H("g"),
|
|
4989
|
-
Q.appendChild(
|
|
4988
|
+
const Q = H("g"), p = H("defs");
|
|
4989
|
+
Q.appendChild(p), p.appendChild(gA(3, 7, 4, "shadow"));
|
|
4990
4990
|
const f = H("g");
|
|
4991
4991
|
Q.appendChild(f), f.setAttribute("filter", "url(#shadow)"), f.innerHTML = A;
|
|
4992
4992
|
const F = H("g");
|
|
4993
4993
|
Q.appendChild(F), F.setAttribute("fill", "red"), F.setAttribute("stroke", "red"), F.setAttribute("stroke-width", "9"), F.innerHTML = A;
|
|
4994
|
-
const
|
|
4995
|
-
Q.appendChild(
|
|
4996
|
-
const
|
|
4997
|
-
return Q.appendChild(
|
|
4994
|
+
const M = H("g");
|
|
4995
|
+
Q.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
|
|
4996
|
+
const P = H("g");
|
|
4997
|
+
return Q.appendChild(P), P.setAttribute("fill", "yellow"), P.innerHTML = A, new Bt(Q).transform(([N, R]) => [N, R + (n / 2 - N) ** 2 / (n * 2.9)]), Q;
|
|
4998
4998
|
}, [o, r, g] = rA(t);
|
|
4999
4999
|
if (!o)
|
|
5000
5000
|
return "";
|
|
@@ -5002,18 +5002,18 @@ class $a extends gt {
|
|
|
5002
5002
|
o.appendChild(B), cA(o, B, t);
|
|
5003
5003
|
const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = H("g");
|
|
5004
5004
|
o.appendChild(h), h.setAttribute("transform", `translate(${w} ${E}) rotate(-21)`);
|
|
5005
|
-
const u =
|
|
5005
|
+
const u = gt(l, d);
|
|
5006
5006
|
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
5007
5007
|
const C = H("g");
|
|
5008
5008
|
h.appendChild(C);
|
|
5009
5009
|
const I = s();
|
|
5010
5010
|
C.appendChild(I);
|
|
5011
|
-
const
|
|
5012
|
-
return
|
|
5011
|
+
const m = it(i);
|
|
5012
|
+
return lt(C, m, l, d), lA(o.outerHTML);
|
|
5013
5013
|
}
|
|
5014
5014
|
}
|
|
5015
5015
|
const _a = "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==";
|
|
5016
|
-
class en extends
|
|
5016
|
+
class en extends ct {
|
|
5017
5017
|
constructor(e, t) {
|
|
5018
5018
|
super(), this.moduleName = "Maltesers", this.shortLength = 5, this.indicator = (A) => A ? 1 : 0, this.backgroundSvg = e, this.backgroundShortSvg = t;
|
|
5019
5019
|
}
|
|
@@ -5024,18 +5024,18 @@ class en extends gt {
|
|
|
5024
5024
|
return this.svg(e);
|
|
5025
5025
|
}
|
|
5026
5026
|
svg(e) {
|
|
5027
|
-
const t =
|
|
5027
|
+
const t = nt(_a), a = e !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(e) : "", n = t.getPath(a, 0, 72, 72), i = e.length < this.shortLength, s = i ? this.backgroundShortSvg : this.backgroundSvg;
|
|
5028
5028
|
return this.brandSvg(n, s, i);
|
|
5029
5029
|
}
|
|
5030
5030
|
brandSvg(e, t, A) {
|
|
5031
5031
|
const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
|
|
5032
5032
|
const f = H("g"), F = H("g");
|
|
5033
5033
|
f.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
|
|
5034
|
-
const
|
|
5035
|
-
f.appendChild(
|
|
5036
|
-
const
|
|
5037
|
-
f.appendChild(
|
|
5038
|
-
const S = new
|
|
5034
|
+
const M = H("g");
|
|
5035
|
+
f.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
|
|
5036
|
+
const P = H("g");
|
|
5037
|
+
f.appendChild(P), P.setAttribute("fill", "white"), P.innerHTML = a;
|
|
5038
|
+
const S = new Bt(f);
|
|
5039
5039
|
return S.transform(([N, R]) => [N, R + ((s - N) * R) ** 2 / (s * 5e4)]), S.transform(([N, R]) => [
|
|
5040
5040
|
N,
|
|
5041
5041
|
R + (s / 3 - N) ** 2 / s * this.indicator(N < s / 3)
|
|
@@ -5049,19 +5049,19 @@ class en extends gt {
|
|
|
5049
5049
|
A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22, u = B * 0.32) : (w = B * 0.22 * (1 + 0.1), E = l * 0.8, h = l * 0.067, u = B * 0.33);
|
|
5050
5050
|
const C = H("g");
|
|
5051
5051
|
g.appendChild(C), C.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
|
|
5052
|
-
const I =
|
|
5052
|
+
const I = gt(w, E);
|
|
5053
5053
|
I.setAttribute("opacity", "0"), C.appendChild(I);
|
|
5054
|
-
const
|
|
5055
|
-
C.appendChild(
|
|
5054
|
+
const m = H("g");
|
|
5055
|
+
C.appendChild(m);
|
|
5056
5056
|
const Q = r();
|
|
5057
|
-
|
|
5058
|
-
const
|
|
5059
|
-
return
|
|
5057
|
+
m.appendChild(Q);
|
|
5058
|
+
const p = it(o);
|
|
5059
|
+
return lt(m, p, w, E), g.outerHTML;
|
|
5060
5060
|
}
|
|
5061
5061
|
// 1 if true, 0 if false.
|
|
5062
5062
|
}
|
|
5063
5063
|
const tn = "data:application/octet-stream;base64,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DOYNZA3mDlQOyg88D54QEBCGEQARchHsEmIS1BOWFAwUghTwFWIV1BaiFxQXkhgEGMYZdBomGtQbfhwYHL4dYB3+HpgfPh/oIJYhPCHmIpQjRiPsJJolSCXuJpQnQifoKJIpRAAmAAn/8QAK//sADP/7AA3/+wAO//sAD//7ABD/+wAR//sAEv/7ABP/+wAU//sAFf/xABb/8QAZ//sAHf/2AB7/+wAf//sAIP/xACH/+wAi//sAI//7ACT/+wAl//EAJv/2ACf/8QAo//sAKf/2ACr/+wAr//sALP/sAC3/7AAu/+IAL//dADD/9gAx/+wAMv/7ADP/+wA0//YAKwAG//EACP/nAAn/4gAK/9MAC//iAAz/9gAN/+IADv/sAA//4gAQ/9gAEf/iABL/1QAT//EAFP/nABX/8QAW/9gAMf/TADL/pgAz//MANP/nADX/8QA2//EAN//7ADj/7gA5//YAOv/7ADv/2AA8//EAPf/2AD7/9gA///EAQP/sAEH/+wBC/+wAQ//xAET/7ABF/+wARv/2AEf/3QBI/90ASf/EAEr/zgBL//YAKwAG//YAB//2AAn/3QAL/+wADP/sAA3/8QAO//YAD//sABD/8QAR/+wAEv/iABP/5wAU/+wAFf/dABb/7AAX/78AMf/YADL/sAAz/+IANP/iADX/8QA2/+cAN//xADj/3QA5/+wAOv/2ADv/4gA8//EAPf/xAD7/8QA///YAQP/YAEH/9gBC/+cAQ//sAET/7ABF/+wARv/xAEf/zgBI/9MASf/OAEr/zgBL/+wAKgAG//YAB//iAAj/4gAK/+IADP/dAA3/ugAO/+IAD//iABD/5wAR/+IAEv/dABP/yQAU/90AFf+mABb/0wAx/5gAMv/YADP/4gA0/9MANf/xADb/7AA3/+wAOP/iADn/7AA6//EAO//dADz/5wA9/+wAPv/sAD//5wBA/9gAQf/sAEL/zgBD/+wARP/YAEX/tQBG/90AR/+hAEj/oQBJ/8QASv+DAEv/7AAqAAb/8QAH/90ACP/YAAn/oQAL/8kADP/iAA3/sAAO/+cAD//YABD/4gAR/90AEv/bABP/4gAU/+IAFf/TABb/5wAg/+QAMf/nADL/3AAz//QANP/rADX/9AA2//IAN//4ADj/8AA5//QAOv/1ADv/7AA8/+oAPf/7AD7/9wA///IAQP/tAEH/+wBC/+IAQ//2AET/4wBF/7YARv/vAEf/pgBK/6MAS//yACYAB//TAAj/8QAK/84ADP/dAA3/9gAO//EAD//dABD/pgAR/8kAEv+6ABP/7AAU/90AFf/OADH/xAAy/5IAM//sADT/3QA1/+cANv/xADf/9gA4/90AO/9WADz/5wA9//EAPv/sAD//5wBA/84AQf/dAEL/0wBD/+cARP/nAEX/5wBG/+cAR//dAEj/2ABJ/7oASv/JAEv/4gAsAAb/+wAH//sACP/xAAn/zgAK/+cAC//dAAz/9gAN/9gADv/tAA//7AAQ/+kAEf/rABL/3QAT/90AFP/hABX/3QAW/90AMf/nADL/vwAz/+cANP/nADX/8QA2//EAN//sADj/5wA5//YAOv/2ADv/4gA8//EAPf/2AD7/+wA///sAQP/2AEH/+wBC/+wAQ//7AET/7ABF/9MARv/7AEf/yQBI/84ASf+wAEr/xABL/+cADgAG//sACf/xAAv/7AAN//sADv/7AA8AAAAR//EAEv/0ABP/9gAU//EAFf/xABb/7AAx//YAQP/2ACkABv/7AAf/9gAI//sACf/iAAr/5wAL/+wADP/vAA3/3QAO//sAD//qABD/8QAR/+wAEv/nABP/8QAU/+cAFf/iABb/7AAx/+cAMv/vADP//AA0/+cANf/7ADb//gA4//EAOf/8ADr//AA7/+kAPP/6AD3//QA+//4AP//7AEL/6gBD//0ARP/2AEX/7ABG//EAR//YAEj/4gBJ/+wASv/LAEv//AAsAAb/+wAH//EACP/2AAn/0wAK/+IAC//JAAz/5wAN/90ADv/iAA//7AAQ/+cAEf/sABL/3QAT/9MAFP/iABX/zgAW/+cAMf/YADL/xAAz/+wANP/dADX/6AA2//EAN//xADj/4wA5//EAOv/2ADv/7AA8/+wAPf/sAD7/9gA//+wAQP/iAEH/8QBC/90AQ//nAET/5wBF/8QARv/mAEf/xABI/8kASf+1AEr/rQBL/+IALAAG//sAB//7AAj/9gAJ/9MACv/2AAv/ugAM/+kADf/dAA7/9gAP/+wAEP/2ABH/8AAS//EAE//2ABT/5wAV/9gAFv/sADH/vwAy/9UAM//eADT/3wA1//EANv/xADf/9gA4/+IAOf/xADr/9gA7/+wAPP/xAD3/9gA+//EAP//2AED/2ABB//EAQv/nAEP/9gBE/+cARf/TAEb/8QBH/9gASP/YAEn/xgBK/78AS//xACsABv/7AAf/9gAI/+wACf/TAAr/5wAL/90ADP/lAA3/zgAO/90AD//dABD/7AAR/+IAEv/iABP/2AAU/+IAFf/JABb/5wAx/90AMv/EADP/6wA0/+EANf/wADb/8AA4/9wAOf/dADr/7AA7/9gAPP/sAD3/5wA+/+wAP//iAED/0wBB/+IAQv/YAEP/4gBE/84ARf/JAEb/4gBH/8kASP/OAEn/vwBK/8kAS//TACwABv/7AAf/3wAI/+cACf+wAAr/4wAL/8kADP/dAA3/xwAO/+cAD//dABD/7AAR/+cAEv/iABP/yQAU/9cAFf+/ABb/4gAa/+kAMf/YADL/uwAz/+EANP/dADb/6wA3//MAOP/lADn/8QA6//IAO//eADz/5wA9/+4APv/zAD//8ABA/+IAQf/2AEL/6gBD//YARP/kAEX/zABG/+8AR/+0AEj/uwBJ/64ASv+vAEv/5QAsAAb/+wAH/90ACP/nAAn/4gAK/9MAC//nAAz/3QAN//YADv/eAA//3QAQ/7AAEf/OABL/sAAT//sAFP/dABX/0wAW/9MAMf/iADL/iAAz//YANP/OADX/9gA2//EAN//xADj/0wA5//YAOv/zADv/gAA8//EAPf/7AD7/+wA///YAQP/OAEH/7gBC/84AQ//2AET/2ABF//sARv/2AEf/5wBI/+cASf/TAEr/4gBL/+wALAAG//sAB//2AAj/8QAJ/9gACv/nAAv/3QAM/+IADf/dAA7/4gAP/+IAEP/nABH/5wAS/9gAE//YABT/3QAV/84AFv/sADH/5wAy/78AM//nADT/2AA1/+cANv/nADf/7AA4/90AOf/sADr/7AA7/+cAPP/sAD3/8QA+/+wAP//xAED/4gBB//EAQv/dAEP/5wBE/+IARf/YAEb/5wBH/78ASP/HAEn/sABK/7UAS//dACsABv/xAAf/8QAI/+IACf/dAAr/0wAL/+IADP/iAA3/3QAO/+cAD//dABD/zgAR/9MAEv/EABP/0wAU/84AFv/dADH/4gAy/6EAM//jADT/3QA1/+wANv/sADf/5wA4/90AOf/nADr/8QA7/78APP/xAD3/9gA+/+wAP//nAED/3QBB/+cAQv/nAEP/5wBE/+IARf/OAEb/3QBH/8QASP/JAEn/lwBK/7oAS//YACkABv/sAAf/0wAI/90ACf/OAAr/3QAM/90ADf/EAA7/5wAP/9gAEP/YABH/3QAS/9MAE//YABT/4gAV/90AMf/sADL/wAAz/+8ANP/kADX/6wA2//AAN//2ADj/5AA5//EAOv/uADv/1gA8//QAPf/2AD7/8QA///AAQP/dAEH/7ABD/+gARP/YAEX/1QBG/+wAR/+3AEj/wwBJ/7UASv+wAEv/5gAeAAf/zgAi/+4AI//5ACT/7wAy/9AAM//pADT/sQA1/+sANv/nADf/5gA4/7oAOf/vADr/9wA7/9AAPP/sAD3/6wA+/+YAP//sAED/uwBB/+kAQv+7AEP/5ABE/9QARf+6AEb/0ABH/34ASP+SAEn/zQBK/5sAS//nABwAF//RACT//wAy/9EAM//uADT/5wA1/+8ANv/3ADf/7gA4/+gAOf/3ADr/+wA7/9oAPP/vAD3/9wA+/+4AP//vAED/4QBB//cAQv/nAEP/7wBE/+4ARf/QAEb/9wBH/8EASP/MAEn/wwBK/7sAS//nABwAF//QABv/+QAy/8EAM//zADT/6wA1//sANv/zADf/+wA4/+8AOf/zADr//gA7/+EAPP/vAD3/9wA+//kAP//3AED/4gBB//kAQv/jAEP/8wBE/+YARf/VAEb/+QBH/84ASP/JAEn/twBK/8EAS//rAB8ABv/7ABL/3wAX/8kAJf/5ACv/7wAy/7oAM//zADT/6wA1/+8ANv/uADf/8wA4/+oAOf/vADr/7wA7/9QAPP/5AD3//gA+//EAP//vAED/4wBB//MAQv/mAEP/7gBE/+cARf/XAEb/6wBH/8kASP/JAEn/twBK/7cAS//nACAABv/7ACQAAgAl/+8AJ//5AC3//gAv//4AMv/oADP//QA0/+sANf/7ADb/+gA3//sAOP/jADn/9wA6//oAO//kADz//wA9//0APv/+AD8AAABA/+gAQf/7AEL/6ABD//sARP/sAEX/8QBG//sAR//qAEj/6wBJ/+cASv/qAEv/+QAbAAb/+wAl/+8AMv+5ADP/+wA0/+8ANf/7ADb/+wA3//0AOP/vADn/+wA6AAAAO/+7ADz//gA9//4APv/7AED/7ABB//4AQv/nAEP/+QBE//kARf/7AEb/+QBH//MASP/rAEn/4gBK/+8AS//7AB0ABv/2ABf/zgAl/+8AMv+3ADP/9wA0/+sANf/3ADb/8QA3//kAOP/uADn/8wA6//sAO//YADz/8wA9/+4APv/3AD//8wBA/+MAQf/3AEL/6QBD/+8ARP/nAEX/1ABG/+8AR//JAEj/zABJ/6YASv/JAEv/3AAcAAb/+wAX//MAJf/7ADL/6wAz//4ANP/uADX/+wA2//4AN//+ADj/8wA5//0AOv/+ADv/7gA8//4APf/+AD7/+wA///4AQP/uAEL/9wBD//4ARP/+AEX/+QBG//4AR//uAEj/9wBJ/+4ASv/zAEv//gAYAAb/+wAx//YAMv/rADP//wA0//MANf//ADYAAQA3//8AOP/zADv/6AA8//4APf/+AD4AAQBA/+4AQf//AEL/8wBD//4ARP/4AEX//QBH/+wASP/3AEn/7ABK//EASwABABwABv/2ABf/4QAy/8oAM//9ADT/+QA1//4ANv/7ADf//gA4//MAOf/+ADr//wA7/+EAPP/7AD3//gA+//4AP//+AED/7wBB//4AQv/zAEP//gBE//sARf/7AEb//gBH/+8ASP/5AEn/2gBK//oAS//+AB0ABv/nABf/5wAx/7AAMv/hADP/7gA0/7QANf/rADb/5wA3/+4AOP+sADn/6wA6//kAO/+3ADz/6gA9/+8APv/nAD//5wBA/6wAQf/uAEL/rgBD/+cARP+8AEX/3ABG/9oAR//cAEj/0QBJ/9oASv/RAEv/7wAeAAb/9gAX//cAI//9ADH/vwAy/+4AM//5ADT/2gA1//4ANv/3ADf/+wA4/9oAOf/3ADr/+wA7/+cAPP/7AD3/+QA+//cAP//5AED/1ABB//sAQv/cAEP/9wBE/+8ARf/JAEb/6wBH/8QASP++AEn/5wBK/8EAS//+ABwAF//7ADH/7AAy/+QAM//+ADT/7gA1//4ANgAAADf//QA4//cAOf/7ADr//gA7/+4APP/+AD3//gA+//0AP//7AED/7wBB//4AQv/uAEP//gBE//cARf/7AEb/+QBH/+gASP/vAEn/6wBK/+gAS//+AB4ABv/7ABf/8wAa//4AHf/3ACX/9wAq//4AMf/2ADL/5AAz//0ANP/zADX/+wA2//4AN//+ADj/+QA7/+4APf/+AD7/+wA///4AQP/2AEH/+gBC/+4AQ//7AET/+QBF//sARv/+AEf/8wBI/+8ASf/zAEr/6wBL//4AHQAG//EAJP/3ADH/7AAy/7sAM//sADT/4wA1/+8ANv/vADf/9wA4/+QAOf/qADr/9wA7/98APP/vAD3/9wA+/+sAP//uAED/4wBB/+4AQv/mAEP/7wBE/+IARf/VAEb/7gBH/8MASP/GAEn/uwBK/7oAS//fABwABv/sACT//gAy/54AM//rADT/6gA1//EANv/rADf/9wA4/+MAOf/oADr/9wA7/64APP/sAD3/8QA+/+wAP//sAED/4QBB//MAQv/oAEP/5ABE/9gARf/kAEb/7gBH/9EASP/QAEn/uwBK/8QAS//zADAAF//3ABj//wAZ/+kAGv//ABv//QAc//4AHf/pAB7/+wAf//8AIP/iACH//gAi//8AI//+ACT//wAl/+IAJ//uACj//gAp/+cAKv/hACv/+QAs/8MALf/QAC7/5AAv/8wAMP//ADL/4QAz//4ANP/jADX/9wA3//kAOP/fADn/9wA7/+IAPP/5AD3/+gA+//EAP//6AED/2gBB/+8AQv/aAET/7wBF/9cARv/qAEf/xgBI/7sASf/qAEr/tABL//sAHQAG/+cAF//oACT/+gAy/+IAM//xADT/zAA1/+8ANv/sADf/+gA4/8wAOf/3ADr/8wA7/8kAPP/uAD3/7wA+/+wAP//rAED/yQBB//cAQv/MAEP/+ABE/9QARf/KAEb/2gBH/8EASP/EAEn/4gBK/7cAS//vAB0ABv/xABv/+QAl/+4AMv+8ADP/7wA0/9wANf/zADb/6AA3//cAOP/hADn/5gA6//MAO//aADz/6QA9//MAPv/pAD//6wBA/+MAQf/3AEL/2gBD/+kARP/rAEX/1ABG/+kAR//JAEj/zABJ/7QASv+7AEv/5wAbAAb/9gAy/6YAM//9ADT/0wA1//oANv/+ADf//QA4/9UAOf/3ADr//wA7/7kAPP/6AD3//gA+//sAP//7AED/0ABB//oAQv/XAEP/+QBE/+IARf/zAEb/9wBH/+8ASP/vAEn/6gBK/+cAS//6ABwABv/7ACQAAgAy/9UAM//7ADT/7wA1//cANv/9ADf//wA4/+4AOf/7ADr//wA7/+sAPP/+AD3//gA+//0AP//6AED/7gBB//sAQv/sAEP/+wBE/+8ARf/7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ABX/3QAx//YAMv+5ADP/+AA0/+MANf/3ADb/+AA3//kAOP/iADn/+gA6//0AO//OADz//QA9//4APv/5AD///ABA/+YAQv/jAEP/9wBE/+YARf/vAEb//gBH/+cASP/vAEn/0QBK/+YAS//9ACgAB//2AAj/4gAJ/90ACv/sAAv/4gAM/+gADf/iAA7/9QAP/+gAEP/dABH/4AAS/+YAE//OABT/4gAV/90AJP/7ADH/9gAy/8EAM//vADT/3wA2//QAN//4ADj/4wA5/+kAOv/6ADv/0QA8/+YAPf/zAD7/6QA///EAQP/qAEL/3ABD/+gARP/fAEb/+ABH/7sASP+7AEn/rwBK/68AS//jACcACP/xAAn/7AAK//gADP/2AA7/9wAP//YAEP/xABH/5wAS/+cAE//xABT/7AAV/+UAMf/2ADL/6AAz//kANP/qADX/+wA2//oAN//7ADj/6wA5//cAOv//ADv/4wA8//sAPf/+AD7/+wA///oAQP/sAEH/+gBC/+MAQ//5AET/7wBF/+oARv/7AEf/4wBI/+wASf/jAEr/6gBL//4AJgAH//sACP/7AAn/5wAK//oADP/2AA7/9gAP//YAEP/xABH/8QAS//IAE//xABT/5wAV//EAMv/nADP/+wA0//EANf/9ADb//gA3//4AOP/uADn/+wA6//4AO//oAD0AAAA+//sAP//+AED/7wBB//4AQv/qAEP//wBE//EARf/3AEb/+wBH/+YASP/3AEn/2gBK/+QAS//7ACkAB//2AAj/9gAJ/90ACv/yAAz/8QAO//EAD//wABD/6gAR/+wAEv/mABP/9AAU/+wAFf/rABf/zgAx//YAMv/OADP/7wA0/+oANf/5ADb//gA3//0AOP/oADn/+QA6//0AO//YADz//gA9//8APv/6AD//+QBA/+4AQf/5AEL/4wBD//gARP/qAEX/+QBG//oAR//pAEj/6QBJ/9UASv/rAEv/+gAqAAf/sgAI/8kACf+wAAr/ugAL/7UADP+1AA3/3QAO/+QAD/+6ABD/sgAR/7UAEv+xABP/4gAU/6sAFf+mADH/lwAy/9oAM//jADT/qwA1/+IANv/iADf/4wA4/5oAOf/XADr/7gA7/7QAPP/kAD3/6wA+/+4AP//mAED/rQBB/+8AQv+qAEP/6gBE/74ARf/XAEb/2gBH/9AASP/SAEn/1QBK/80AS//qACsAB//nAAj/8QAJ/6YACv/sAAv/nAAM/90ADf+6AA7/9gAP/+IAEP/sABH/3QAS/9oAE//sABT/3QAV/8QAJP/+ADH/pgAy/+sAM//vADT/ygA1//0ANv/zADf/+wA4/9MAOf/vADr/+wA7/9gAPP/3AD3/9wA+//EAP//7AED/1QBB//cAQv/PAEP/8wBE/+YARf+7AEb/5wBH/7UASP/JAEn/2gBK/6UAS//zACkAB//2AAn/7AAK//kAC//sAAz/9gAO//oAD//2ABD/7AAR/+cAEv/vABP/9gAU//EAFf/sABcAAQAx/+YAMv/pADP/+QA0/+oANf/zADb/+wA3//oAOP/nADn/9wA6//4AO//uADz/+QA9//oAPv/7AD//+QBA/+8AQf/3AEL/6QBD//oARP/sAEX/8wBG//gAR//pAEj/6QBJ/+MASv/nAEv//QAqAAf/9gAI//sACf/sAAr/9wAL/+wADP/7AA7/+gAP//EAEP/2ABH/7AAS//EAE//2ABT/9gAV/+QAFwABADH/8QAy/+kAM//3ADT/6QA1//kANv/5ADf/+QA4/+8AOf/6ADr//gA7/+8APP/7AD3/+gA+//oAP//4AED/7wBB//sAQv/rAEP//QBE/+8ARf/3AEb/+gBH/+4ASP/rAEn/4QBK/+wAS//5ACsAB//xAAj/4gAJ/9gACv/sAAv/2AAM//YADf/iAA7/8QAP/90AEP/iABH/0wAS/+IAE//JABT/4gAV/94AJP/7ADH/3QAy/7QAM//pADT/4QA1/+wANv/vADf/6gA4/+IAOf/qADr/+gA7/9oAPP/pAD3/6wA+/+wAP//pAED/4QBB/+sAQv/cAEP/6wBE/+IARf/JAEb/7gBH/7wASP/BAEn/pgBK/7UAS//kACwAB//iAAj/5wAJ/+IACv/OAAv/2AAM/+cADf/nAA7/8AAP/90AEP+6ABH/xAAS/9cAE//XABT/2AAV/9gAG//3ACT/+wAx/+IAMv+gADP/6QA0/+MANf/mADb/7wA3/+sAOP/aADn/6AA6//YAO/+xADz/6wA9/+4APv/oAD//7wBA/9oAQf/oAEL/1wBD/+MARP/aAEX/2ABG/+cAR//PAEj/yQBJ/7kASv/BAEv/6AApAAf/8QAI/+wACf/OAAr/6gAL/84ADP/nAA3/2AAO//YAD//fABD/4gAR/9gAEv/lABP/5wAU/+IAFf/YADH/4gAy/+cAM//3ADT/2gA1//gANv/5ADf/+wA4/9wAOf/3ADr//gA7/+MAPP/3AD3//QA+//cAP//3AED/1QBC/9UAQ//9AET/6QBF/+EARv/pAEf/ugBI/8QASf/aAEr/wgBL//sAKwAH/8kACP/YAAn/xAAK/9MAC/+/AAz/yQAN/9gADv/nAA//xAAQ/7oAEf+1ABL/wQAT/9gAFP+6ABX/vwAk//sAMf+/ADL/2gAz/+gANP/KADX/6QA2/+kAN//oADj/xgA5/+QAOv/nADv/uQA8/+wAPf/uAD7/6QA//+cAQP/GAEH/7ABC/8kAQ//mAET/2ABF/84ARv/VAEf/wQBI/7wASf/GAEr/tABL/+8AKwAH//EACP/2AAn/yQAK/+oAC//TAAz/3QAN/+cADv/sAA//4gAQ/+IAEf/YABL/3wAT/90AFP/dABX/2AAk//sAMf/nADL/xgAz//MANP/iADX/7wA2/+4AN//3ADj/4wA5/+kAOv/vADv/1wA8/+4APf/zAD7/6gA//+0AQP/kAEH/9wBC/98AQ//qAET/5wBF/9AARv/vAEf/yQBI/9AASf/PAEr/xABL/+8AKQAH/+cACP/sAAn/5wAK/+kAC//dAAz/2AAO/+wAD//XABD/qwAR/8kAEv/AABP/9gAU/9MAFf/OADH/2AAy/7AAM//5ADT/2gA1//0ANv/6ADf//gA4/98AOf/3ADr//QA7/8YAPP/7AD3//gA+//gAP//4AED/1QBB//0AQv/VAEP/+ABE/+MARf/zAEb/+QBH/+4ASP/zAEn/4gBK/+cAS//zACkACP/2AAn/5wAK//QAC//sAAz/+wAN//4ADv/2AA//5QAQ/+wAEf/nABL/8wAT//EAFP/nABX/3QAx/+QAMv/KADP/+QA0/+wANf/6ADb/+gA3//sAOP/vADn/+gA6AAAAO//hADz//wA9//0APv/5AD///gBA/+wAQf/7AEL/7ABD//sARP/vAEX/9wBG//sAR//zAEj/6gBJ/+EASv/jAEv/+wArAAf/zgAI/84ACf/YAAr/ygAL/9gADP/JAA3/+wAO/9kAD//JABD/ogAR/7oAEv+5ABP/5wAU/8QAFf+9ACT/+wAx/7oAMv+FADP/+wA0/7sANf/qADb/6wA3/+wAOP++ADn/5gA6/+8AO/+iADz/6AA9/+oAPv/sAD//7wBA/8MAQf/mAEL/uwBD/+YARP/KAEX/6QBG/+8AR//jAEj/3wBJ/9MASv/hAEv/6wApAAf/zgAI/84ACf/TAAv/2AAM/84ADv/eAA//xAAQ/7AAEf/TABL/sQAT/+wAFP/FABX/yQAk//sAMf/JADL/lQAz//MANP/BADX/+QA2//MAN//3ADj/xgA5//sAOv/3ADv/pQA8/+8APf/+AD7/7gA//+oAQP/DAEH/7gBC/8QAQ//vAET/0ABF/+4ARv/uAEf/6QBI/+QASf/aAEr/5gBL//cAKgAH/8QACP/OAAn/pgAL/7oADP+rAA3/3QAO/+cAD/+5ABD/twAR/8QAEv+zABP/0wAU/7AAFf+cACT/+wAx/6EAMv/aADP/4wA0/7cANf/4ADb/4wA3//0AOP+3ADn/7gA6/+8AO/+7ADz/7gA9//EAPv/jAD//6ABA/7oAQf/zAEL/uQBD/+sARP/OAEX/3wBG/+EAR//aAEj/2ABJ/9gASv/MAEv/7gAsAAf/yQAI/84ACf/JAAr/wgAL/8kADP/JAA3//gAO/8kAD/+6ABD/jQAR/7oAEv+gABP/4gAU/7UAFf+6AB7/8QAk//sAMf+1ADL/lwAz/+8ANP+7ADX/5gA2/+4AN//uADj/uQA5/+gAOv/3ADv/hAA8/+8APf/sAD7/7AA//+oAQP+6AEH/7ABC/7kAQ//pAET/ygBF/+8ARv/vAEf/6ABI/+kASf/fAEr/5ABL//EAJgAH//YACf/iAAr/7AAL/+cADP/iAA3//wAO//UAD//nABD/7AAR/+IAEv/gABP/7AAU/90AFf/TADH/4gAy/+sAM//+ADT/6AA1//4ANgAEADf//wA4/9wAOf/6ADv/5gA8//8APf//AD///QBA/+MAQf//AEMAAABE/+8ARf/4AEb/+wBH//cASP/rAEn/6QBK/+kAS//9AAIAAQAGAEsAAAAAAAAAAQAAAADUGBYRAAAAANmXsTQAAAAA2ZexNA==";
|
|
5064
|
-
class An extends
|
|
5064
|
+
class An extends ct {
|
|
5065
5065
|
constructor() {
|
|
5066
5066
|
super(...arguments), this.moduleName = "Vegemite";
|
|
5067
5067
|
}
|
|
@@ -5072,35 +5072,35 @@ class An extends gt {
|
|
|
5072
5072
|
return this.svgElement(e, t);
|
|
5073
5073
|
}
|
|
5074
5074
|
svgElement(e, t) {
|
|
5075
|
-
const A =
|
|
5075
|
+
const A = nt(tn), 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 = () => {
|
|
5076
5076
|
const I = H("g");
|
|
5077
5077
|
I.classList.add("module-text-group");
|
|
5078
|
-
const
|
|
5079
|
-
I.appendChild(
|
|
5078
|
+
const m = H("defs");
|
|
5079
|
+
I.appendChild(m), m.appendChild(gA(0, 2, 2, "shadow"));
|
|
5080
5080
|
const Q = H("path");
|
|
5081
|
-
Q.setAttribute("d", g), Q.setAttribute("stroke", "black"), Q.setAttribute("stroke-width", "3"),
|
|
5082
|
-
const
|
|
5083
|
-
|
|
5081
|
+
Q.setAttribute("d", g), Q.setAttribute("stroke", "black"), Q.setAttribute("stroke-width", "3"), m.appendChild(Q);
|
|
5082
|
+
const p = H("g");
|
|
5083
|
+
p.classList.add("module-layer0"), I.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = Q.outerHTML;
|
|
5084
5084
|
const f = H("g");
|
|
5085
5085
|
f.classList.add("module-layer1"), I.appendChild(f), f.setAttribute("stroke-width", "3"), f.setAttribute("stroke", "rgb(45,41,38)"), f.setAttribute("fill", "rgb(45,41,38)"), f.setAttribute("transform", "translate(0.5,0)"), f.innerHTML = s;
|
|
5086
5086
|
const F = H("g");
|
|
5087
5087
|
F.classList.add("module-layer2"), I.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
|
|
5088
|
-
const
|
|
5089
|
-
return
|
|
5088
|
+
const M = H("g");
|
|
5089
|
+
return M.classList.add("module-layer3"), I.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = s, new Bt(I).transform(([S, N]) => [S, N + (r / 2 - S) ** 2 / (r * 6)]), I;
|
|
5090
5090
|
}, l = H("g");
|
|
5091
5091
|
l.classList.add("module-root");
|
|
5092
5092
|
const d = H("defs");
|
|
5093
5093
|
l.appendChild(d);
|
|
5094
5094
|
const w = H("g");
|
|
5095
5095
|
w.classList.add("module-bounds"), l.appendChild(w);
|
|
5096
|
-
const E =
|
|
5096
|
+
const E = gt(t.height, t.width);
|
|
5097
5097
|
E.setAttribute("opacity", "0"), w.appendChild(E);
|
|
5098
5098
|
const h = H("g");
|
|
5099
5099
|
h.classList.add("module-text-enclosure"), l.appendChild(h);
|
|
5100
5100
|
const u = B();
|
|
5101
5101
|
h.appendChild(u);
|
|
5102
|
-
const C =
|
|
5103
|
-
return
|
|
5102
|
+
const C = it(g);
|
|
5103
|
+
return lt(h, C, t.height, t.width, 0.35, 0.65), lA(l.outerHTML);
|
|
5104
5104
|
}
|
|
5105
5105
|
}
|
|
5106
5106
|
async function BA(c) {
|
|
@@ -5136,8 +5136,8 @@ class nn {
|
|
|
5136
5136
|
return;
|
|
5137
5137
|
const u = this.getCommandContext().getAllLayouts(), C = (I = this.getLayoutPreviewService()) == null ? void 0 : I.getAll();
|
|
5138
5138
|
if (C)
|
|
5139
|
-
for (const [,
|
|
5140
|
-
|
|
5139
|
+
for (const [, m] of C)
|
|
5140
|
+
m.render(this.getWorkflow(), u, this.getProduct().overlayImageUrl);
|
|
5141
5141
|
}, this.client = e, this.updateTransaction = i, this.commandContext = n, this.reloadedState = B, this.transaction = s, this.readOnly = l, this.singleVariantsRenderable = E, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = t, this.stepSpecificServices = {}, this.profanityFilter = A, this.pollers = [], this.allScenes = [], this.layouts = a, this.product = o, this.previewService = r, this.modelContainer = d, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = g, this.isReloadedTransaction = w, h && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(t), this.initializationPromise.then(() => {
|
|
5142
5142
|
this.initialized = !0;
|
|
5143
5143
|
}), this.initializationPromise.catch((u) => {
|
|
@@ -5161,7 +5161,7 @@ class nn {
|
|
|
5161
5161
|
this.storage[s.stepName] = s.storage || {};
|
|
5162
5162
|
}), this.allScenes = await Da(e);
|
|
5163
5163
|
const a = ie(this.allScenes, this.stepSelections).map((s) => s.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
|
|
5164
|
-
this.commandContext.apply(new
|
|
5164
|
+
this.commandContext.apply(new v(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
|
|
5165
5165
|
}
|
|
5166
5166
|
getClient() {
|
|
5167
5167
|
return this.client;
|
|
@@ -5335,7 +5335,7 @@ class nn {
|
|
|
5335
5335
|
},
|
|
5336
5336
|
{ refocusCamera: t }
|
|
5337
5337
|
);
|
|
5338
|
-
this.setModelContainer(A), ie(this.allScenes, this.stepSelections).filter((i) => i).map((i) => i.renderableSteps).flat().filter((i) => i.type ===
|
|
5338
|
+
this.setModelContainer(A), ie(this.allScenes, this.stepSelections).filter((i) => i).map((i) => i.renderableSteps).flat().filter((i) => i.type === y.Model || i.type === y.Material).forEach((i) => {
|
|
5339
5339
|
var r, g, B;
|
|
5340
5340
|
if (!((r = i.option) != null && r.id)) {
|
|
5341
5341
|
console.error(`Failed to read option id from step: ${i.stepName}`);
|
|
@@ -5345,7 +5345,7 @@ class nn {
|
|
|
5345
5345
|
if (s.length === 0)
|
|
5346
5346
|
return;
|
|
5347
5347
|
const o = s[0];
|
|
5348
|
-
if (i.type ===
|
|
5348
|
+
if (i.type === y.Model) {
|
|
5349
5349
|
if (!this.modelContainer)
|
|
5350
5350
|
throw new b(
|
|
5351
5351
|
"We should always have a model container when injecting a preview!"
|
|
@@ -5479,17 +5479,17 @@ class nn {
|
|
|
5479
5479
|
), e), []);
|
|
5480
5480
|
}
|
|
5481
5481
|
getInvalidModelVariants() {
|
|
5482
|
-
return this.workflow.steps.reduce((e, t) => (t.type ===
|
|
5482
|
+
return this.workflow.steps.reduce((e, t) => (t.type === y.Model && !se(t, this.stepSelections) && e.push(t.stepName), e), []);
|
|
5483
5483
|
}
|
|
5484
5484
|
async stepElementsForIntroducedSilentSteps(e, t) {
|
|
5485
5485
|
const A = this.product;
|
|
5486
5486
|
if (!A)
|
|
5487
5487
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
5488
5488
|
const a = async (r, g, B) => {
|
|
5489
|
-
if (r.type ===
|
|
5489
|
+
if (r.type === y.SilentIllustration) {
|
|
5490
5490
|
const l = await new St(r, g).trigger();
|
|
5491
5491
|
return { step: r, results: l };
|
|
5492
|
-
} else if (r.type ===
|
|
5492
|
+
} else if (r.type === y.ProductOverlay) {
|
|
5493
5493
|
const l = await new St(
|
|
5494
5494
|
r,
|
|
5495
5495
|
g,
|
|
@@ -5539,14 +5539,14 @@ class nn {
|
|
|
5539
5539
|
this.stepSelections = {
|
|
5540
5540
|
...this.stepSelections,
|
|
5541
5541
|
[e]: { selectedVariants: t }
|
|
5542
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
5543
|
-
se(
|
|
5542
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((p, f) => p + f.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, M) => F + M, 0), 0), this.workflow.steps.forEach((p) => {
|
|
5543
|
+
se(p, this.stepSelections) || (this.stepInitialised[p.stepName] = !1, delete this.stepMetadata[p.stepName], delete this.stepSelections[p.stepName], delete this.storage[p.stepName]);
|
|
5544
5544
|
});
|
|
5545
|
-
const i = this.allScenes, s = ie(i, n), o = ie(i, this.stepSelections), r = s.map((
|
|
5546
|
-
(
|
|
5545
|
+
const i = this.allScenes, s = ie(i, n), o = ie(i, this.stepSelections), r = s.map((p) => p.silentSteps).flat(), B = o.map((p) => p.silentSteps).flat().filter(
|
|
5546
|
+
(p) => !r.some((f) => f.stepName === p.stepName)
|
|
5547
5547
|
);
|
|
5548
|
-
r.forEach((
|
|
5549
|
-
se(
|
|
5548
|
+
r.forEach((p) => {
|
|
5549
|
+
se(p, this.stepSelections) || (this.stepInitialised[p.stepName] = !1);
|
|
5550
5550
|
});
|
|
5551
5551
|
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: w } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
5552
5552
|
this.stepElements = {
|
|
@@ -5554,17 +5554,17 @@ class nn {
|
|
|
5554
5554
|
...d,
|
|
5555
5555
|
[e]: A
|
|
5556
5556
|
}, this.removeElements(l);
|
|
5557
|
-
const E = this.workflow.steps.find((
|
|
5558
|
-
if ((E == null ? void 0 : E.type) ===
|
|
5559
|
-
const
|
|
5560
|
-
(Q =
|
|
5561
|
-
}
|
|
5562
|
-
const h = l.map((
|
|
5563
|
-
C.length > 0 && this.commandContext.apply(new
|
|
5564
|
-
const I = this.getInvalidModelVariants(),
|
|
5565
|
-
if (
|
|
5566
|
-
const
|
|
5567
|
-
(f) =>
|
|
5557
|
+
const E = this.workflow.steps.find((p) => p.stepName === e);
|
|
5558
|
+
if ((E == null ? void 0 : E.type) === y.Frame) {
|
|
5559
|
+
const p = this.getStepSpecificServices(e);
|
|
5560
|
+
(Q = p == null ? void 0 : p.frameService) == null || Q.setTargetElements(A.map((f) => f.id));
|
|
5561
|
+
}
|
|
5562
|
+
const h = l.map((p) => new ee(p.id)), u = new pt(this.constructSerializableWorkflow()), C = [...w, ...h, u];
|
|
5563
|
+
C.length > 0 && this.commandContext.apply(new v(C), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5564
|
+
const I = this.getInvalidModelVariants(), m = this.modelContainer;
|
|
5565
|
+
if (m) {
|
|
5566
|
+
const p = I.map(
|
|
5567
|
+
(f) => m.applyModelVariant(
|
|
5568
5568
|
f,
|
|
5569
5569
|
{
|
|
5570
5570
|
contextService: this.getLayoutPreviewService()
|
|
@@ -5572,7 +5572,7 @@ class nn {
|
|
|
5572
5572
|
!1
|
|
5573
5573
|
)
|
|
5574
5574
|
);
|
|
5575
|
-
await Promise.all(
|
|
5575
|
+
await Promise.all(p);
|
|
5576
5576
|
}
|
|
5577
5577
|
await this.onSelectionChange(), a && await a();
|
|
5578
5578
|
}
|
|
@@ -5581,7 +5581,7 @@ class nn {
|
|
|
5581
5581
|
for (const o of a)
|
|
5582
5582
|
if (!this.stepInitialised[o.stepName])
|
|
5583
5583
|
switch (this.stepInitialised[o.stepName] = !0, o.type) {
|
|
5584
|
-
case
|
|
5584
|
+
case y.DigitalContent:
|
|
5585
5585
|
A.push(
|
|
5586
5586
|
Na.init(
|
|
5587
5587
|
o,
|
|
@@ -5590,8 +5590,8 @@ class nn {
|
|
|
5590
5590
|
)
|
|
5591
5591
|
);
|
|
5592
5592
|
break;
|
|
5593
|
-
case
|
|
5594
|
-
case
|
|
5593
|
+
case y.Frame:
|
|
5594
|
+
case y.Photo:
|
|
5595
5595
|
{
|
|
5596
5596
|
const r = new Ya(o.data.forceImageCover);
|
|
5597
5597
|
r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
|
|
@@ -5601,40 +5601,40 @@ class nn {
|
|
|
5601
5601
|
);
|
|
5602
5602
|
}
|
|
5603
5603
|
break;
|
|
5604
|
-
case
|
|
5604
|
+
case y.Illustration:
|
|
5605
5605
|
A.push(
|
|
5606
5606
|
Ye.init(o, this, this.reloadedState)
|
|
5607
5607
|
);
|
|
5608
5608
|
break;
|
|
5609
|
-
case
|
|
5609
|
+
case y.Material:
|
|
5610
5610
|
A.push(
|
|
5611
5611
|
nA.init(o, this, this.reloadedState)
|
|
5612
5612
|
);
|
|
5613
5613
|
break;
|
|
5614
|
-
case
|
|
5614
|
+
case y.Model:
|
|
5615
5615
|
A.push(iA.init(o, this, this.reloadedState));
|
|
5616
5616
|
break;
|
|
5617
|
-
case
|
|
5617
|
+
case y.Module:
|
|
5618
5618
|
this.stepSpecificServices[o.stepName] = {
|
|
5619
5619
|
module: await BA(o.data.module)
|
|
5620
5620
|
}, A.push(
|
|
5621
5621
|
ka.init(o, this, this.reloadedState)
|
|
5622
5622
|
);
|
|
5623
5623
|
break;
|
|
5624
|
-
case
|
|
5624
|
+
case y.Picture:
|
|
5625
5625
|
A.push(
|
|
5626
5626
|
sA.init(o, this, this.reloadedState)
|
|
5627
5627
|
);
|
|
5628
5628
|
break;
|
|
5629
|
-
case
|
|
5629
|
+
case y.Question:
|
|
5630
5630
|
A.push(
|
|
5631
5631
|
oA.init(o, this, this.reloadedState)
|
|
5632
5632
|
);
|
|
5633
5633
|
break;
|
|
5634
|
-
case
|
|
5634
|
+
case y.Shape:
|
|
5635
5635
|
A.push(le.init(o, this, this.reloadedState));
|
|
5636
5636
|
break;
|
|
5637
|
-
case
|
|
5637
|
+
case y.Text:
|
|
5638
5638
|
A.push(j.init(o, this, this.reloadedState));
|
|
5639
5639
|
break;
|
|
5640
5640
|
}
|
|
@@ -5643,7 +5643,7 @@ class nn {
|
|
|
5643
5643
|
throw new Error(`Step initialization failed: ${o.reason}`);
|
|
5644
5644
|
return o.value;
|
|
5645
5645
|
}), i = n.filter((o) => !!o && !!o.command).map((o) => o.command), s = n.filter((o) => !!o && !!o.followup).map((o) => o.followup);
|
|
5646
|
-
i && i.length > 0 && this.commandContext.apply(new
|
|
5646
|
+
i && i.length > 0 && this.commandContext.apply(new v(i), !0);
|
|
5647
5647
|
for (const o of s)
|
|
5648
5648
|
await o();
|
|
5649
5649
|
s.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
|
|
@@ -5786,7 +5786,7 @@ class q {
|
|
|
5786
5786
|
return this.variantData.enabled;
|
|
5787
5787
|
}
|
|
5788
5788
|
}
|
|
5789
|
-
const dA = class
|
|
5789
|
+
const dA = class $e {
|
|
5790
5790
|
constructor(e, t) {
|
|
5791
5791
|
this.manager = e, this.step = t;
|
|
5792
5792
|
}
|
|
@@ -5796,13 +5796,13 @@ const dA = class _e {
|
|
|
5796
5796
|
* @param value The new value
|
|
5797
5797
|
*/
|
|
5798
5798
|
setUpdateState(e) {
|
|
5799
|
-
|
|
5799
|
+
$e.updateState.set(`${this.step.stepName}-${this.manager.getTransaction().id}`, e);
|
|
5800
5800
|
}
|
|
5801
5801
|
/**
|
|
5802
5802
|
* @returns Gets the current update state of this step. All step handles for this step will see this value.
|
|
5803
5803
|
*/
|
|
5804
5804
|
getUpdateState() {
|
|
5805
|
-
return
|
|
5805
|
+
return !!$e.updateState.get(`${this.step.stepName}-${this.manager.getTransaction().id}`);
|
|
5806
5806
|
}
|
|
5807
5807
|
/**
|
|
5808
5808
|
* Gets the currently selected variant, or undefined if no variant is selected.
|
|
@@ -6273,23 +6273,23 @@ class dn extends X {
|
|
|
6273
6273
|
class Ie {
|
|
6274
6274
|
static get(e, t) {
|
|
6275
6275
|
switch (t.type) {
|
|
6276
|
-
case
|
|
6276
|
+
case y.Information:
|
|
6277
6277
|
return new dn(e, t);
|
|
6278
|
-
case
|
|
6278
|
+
case y.Question:
|
|
6279
6279
|
return new gn(e, t);
|
|
6280
|
-
case
|
|
6280
|
+
case y.Text:
|
|
6281
6281
|
return new Bn(e, t);
|
|
6282
|
-
case
|
|
6282
|
+
case y.Illustration:
|
|
6283
6283
|
return new sn(e, t);
|
|
6284
|
-
case
|
|
6284
|
+
case y.Picture:
|
|
6285
6285
|
return new cn(e, t);
|
|
6286
|
-
case
|
|
6286
|
+
case y.Shape:
|
|
6287
6287
|
return new ln(e, t);
|
|
6288
|
-
case
|
|
6288
|
+
case y.Material:
|
|
6289
6289
|
return new on(e, t);
|
|
6290
|
-
case
|
|
6290
|
+
case y.Model:
|
|
6291
6291
|
return new rn(e, t);
|
|
6292
|
-
case
|
|
6292
|
+
case y.Frame:
|
|
6293
6293
|
return new Hi(e, t);
|
|
6294
6294
|
default:
|
|
6295
6295
|
throw new b(`Step type ${t.type} not yet supported in Core SDK`);
|
|
@@ -6363,14 +6363,14 @@ const wA = D`
|
|
|
6363
6363
|
}
|
|
6364
6364
|
}
|
|
6365
6365
|
`;
|
|
6366
|
-
function
|
|
6366
|
+
function dt(c) {
|
|
6367
6367
|
const e = JSON.parse(atob(c.split(".")[1])).exp;
|
|
6368
6368
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
6369
6369
|
}
|
|
6370
6370
|
const En = async (c) => {
|
|
6371
6371
|
var i, s;
|
|
6372
6372
|
const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
6373
|
-
return A && !
|
|
6373
|
+
return A && !dt(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
6374
6374
|
mutation: wn,
|
|
6375
6375
|
errorPolicy: "all",
|
|
6376
6376
|
fetchPolicy: "no-cache",
|
|
@@ -6391,7 +6391,7 @@ const En = async (c) => {
|
|
|
6391
6391
|
}, un = async (c) => {
|
|
6392
6392
|
var i, s;
|
|
6393
6393
|
const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
6394
|
-
return A && !
|
|
6394
|
+
return A && !dt(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
6395
6395
|
mutation: hn,
|
|
6396
6396
|
errorPolicy: "all",
|
|
6397
6397
|
fetchPolicy: "no-cache",
|
|
@@ -6411,7 +6411,7 @@ const En = async (c) => {
|
|
|
6411
6411
|
headers: a
|
|
6412
6412
|
}
|
|
6413
6413
|
})).data) == null ? void 0 : s.designCreateMany;
|
|
6414
|
-
},
|
|
6414
|
+
}, _e = (c, e, t) => {
|
|
6415
6415
|
const A = (n) => {
|
|
6416
6416
|
const i = {};
|
|
6417
6417
|
if (n.type === "Frame") {
|
|
@@ -6451,7 +6451,7 @@ const En = async (c) => {
|
|
|
6451
6451
|
const a = {};
|
|
6452
6452
|
let n;
|
|
6453
6453
|
if (t) {
|
|
6454
|
-
n =
|
|
6454
|
+
n = _e(t, e, !1);
|
|
6455
6455
|
for (const i of Object.keys(n))
|
|
6456
6456
|
a[i] = {
|
|
6457
6457
|
value: n[i],
|
|
@@ -6482,7 +6482,7 @@ const En = async (c) => {
|
|
|
6482
6482
|
return a;
|
|
6483
6483
|
}, hA = (c, e, t, A, a, n, i, s) => {
|
|
6484
6484
|
var w, E;
|
|
6485
|
-
const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = Cn(A, t, void 0, n), l = (
|
|
6485
|
+
const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = Cn(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
|
|
6486
6486
|
additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
|
|
6487
6487
|
additionalExternalVariantId: (E = c.integrationProduct) == null ? void 0 : E.additionalExternalVariantId,
|
|
6488
6488
|
baseCost: o,
|
|
@@ -6510,34 +6510,34 @@ const En = async (c) => {
|
|
|
6510
6510
|
if (r !== void 0)
|
|
6511
6511
|
return r;
|
|
6512
6512
|
await c.outstandingRequestsPromise();
|
|
6513
|
-
const
|
|
6513
|
+
const P = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), N = await x.getShadowGraphqlClient().query({
|
|
6514
6514
|
query: _t,
|
|
6515
6515
|
variables: { ids: [a.id] },
|
|
6516
6516
|
fetchPolicy: "no-cache",
|
|
6517
6517
|
errorPolicy: "all",
|
|
6518
6518
|
context: {
|
|
6519
|
-
transactionOwnerId:
|
|
6519
|
+
transactionOwnerId: P
|
|
6520
6520
|
}
|
|
6521
6521
|
}), R = (O = N.data) == null ? void 0 : O.transactions[0].workflowState;
|
|
6522
|
-
return N.errors ? (N.errors.forEach((
|
|
6523
|
-
N.errors && console.log("Server Error:",
|
|
6522
|
+
return N.errors ? (N.errors.forEach((T) => {
|
|
6523
|
+
N.errors && console.log("Server Error:", T.message);
|
|
6524
6524
|
}), null) : R ?? null;
|
|
6525
6525
|
})() || (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"));
|
|
6526
|
-
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o &&
|
|
6527
|
-
const
|
|
6526
|
+
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && _e(o, e, !0), h = o && _e(o, e, !1), u = async (M) => {
|
|
6527
|
+
const P = {};
|
|
6528
6528
|
let S = 0;
|
|
6529
6529
|
if (Object.keys(n).length > 0)
|
|
6530
6530
|
for (const N of Object.keys(n)) {
|
|
6531
|
-
const R = n[N], O = e.steps.find((
|
|
6532
|
-
for (let
|
|
6533
|
-
const W = R.selections[
|
|
6534
|
-
if (O && (!
|
|
6535
|
-
const
|
|
6536
|
-
|
|
6531
|
+
const R = n[N], O = e.steps.find((T) => T.stepName === N);
|
|
6532
|
+
for (let T = 0; T < R.selections.length; ++T) {
|
|
6533
|
+
const W = R.selections[T];
|
|
6534
|
+
if (O && (!M || O.option && (O.option.variants || []).length > 1 && !O.data.hideSelectionInCart && !O.data.hideSelectionsInCart)) {
|
|
6535
|
+
const Le = O.stepTitle;
|
|
6536
|
+
P[Le] ? P[Le].push({
|
|
6537
6537
|
id: W.id || "",
|
|
6538
6538
|
name: W.name,
|
|
6539
6539
|
priceModifier: W.priceModifier
|
|
6540
|
-
}) :
|
|
6540
|
+
}) : P[Le] = [
|
|
6541
6541
|
{
|
|
6542
6542
|
id: W.id || "",
|
|
6543
6543
|
name: W.name,
|
|
@@ -6548,51 +6548,41 @@ const En = async (c) => {
|
|
|
6548
6548
|
S += W.priceModifier;
|
|
6549
6549
|
}
|
|
6550
6550
|
}
|
|
6551
|
-
return [
|
|
6551
|
+
return [P, S];
|
|
6552
6552
|
}, [C] = await u(!0), I = Object.fromEntries(
|
|
6553
|
-
Object.keys(C).map((
|
|
6554
|
-
), [
|
|
6555
|
-
Object.keys(
|
|
6556
|
-
|
|
6557
|
-
|
|
6553
|
+
Object.keys(C).map((M) => [M, C[M].map((P) => P.id)])
|
|
6554
|
+
), [m] = await u(!1), Q = Object.fromEntries(
|
|
6555
|
+
Object.keys(m).map((M) => [
|
|
6556
|
+
M,
|
|
6557
|
+
m[M].map((P) => P.id)
|
|
6558
6558
|
])
|
|
6559
|
-
);
|
|
6560
|
-
let m = await s(w, a.id);
|
|
6561
|
-
if (m) {
|
|
6562
|
-
const y = await (await fetch(m)).blob();
|
|
6563
|
-
m = (await v.uploadAsset(
|
|
6564
|
-
{ name: `${a.id}-preview-image.png`, blob: y },
|
|
6565
|
-
We.Image,
|
|
6566
|
-
!0,
|
|
6567
|
-
!1
|
|
6568
|
-
)).fileLink;
|
|
6569
|
-
}
|
|
6559
|
+
), p = await s(w, a.id);
|
|
6570
6560
|
return {
|
|
6571
6561
|
designDetails: (() => {
|
|
6572
|
-
const
|
|
6562
|
+
const M = {
|
|
6573
6563
|
name: i,
|
|
6574
|
-
layouts: t.map((
|
|
6575
|
-
index:
|
|
6576
|
-
panelId:
|
|
6564
|
+
layouts: t.map((P) => ({
|
|
6565
|
+
index: P.index,
|
|
6566
|
+
panelId: P.panelId
|
|
6577
6567
|
})),
|
|
6578
6568
|
workflowId: e.id,
|
|
6579
6569
|
transactionId: a.id,
|
|
6580
6570
|
useThreeDimPreview: !!w,
|
|
6581
|
-
previewImage:
|
|
6571
|
+
previewImage: p
|
|
6582
6572
|
};
|
|
6583
6573
|
if (h) {
|
|
6584
|
-
const
|
|
6574
|
+
const P = [];
|
|
6585
6575
|
for (const [S, N] of Object.entries(h))
|
|
6586
|
-
|
|
6587
|
-
|
|
6576
|
+
P.push({ key: S, value: N });
|
|
6577
|
+
M.metadata = P;
|
|
6588
6578
|
}
|
|
6589
6579
|
if (I) {
|
|
6590
|
-
const
|
|
6580
|
+
const P = [];
|
|
6591
6581
|
for (const [S, N] of Object.entries(Q))
|
|
6592
|
-
|
|
6593
|
-
|
|
6582
|
+
P.push({ key: S, ids: N });
|
|
6583
|
+
M.selectedVariants = P;
|
|
6594
6584
|
}
|
|
6595
|
-
return
|
|
6585
|
+
return M;
|
|
6596
6586
|
})(),
|
|
6597
6587
|
cartSelectionsWithPrices: C,
|
|
6598
6588
|
cartMetadata: E
|
|
@@ -6699,7 +6689,7 @@ class pn {
|
|
|
6699
6689
|
*/
|
|
6700
6690
|
async getSavedDesigns() {
|
|
6701
6691
|
if (this.storageMethod === "Local") {
|
|
6702
|
-
const e =
|
|
6692
|
+
const e = Y.get(this.localPersistenceKey);
|
|
6703
6693
|
return e ? JSON.parse(e) : [];
|
|
6704
6694
|
}
|
|
6705
6695
|
throw new b("Unexpected storage method requested");
|
|
@@ -6739,7 +6729,7 @@ class pn {
|
|
|
6739
6729
|
}
|
|
6740
6730
|
async setDesigns(e) {
|
|
6741
6731
|
if (this.storageMethod === "Local") {
|
|
6742
|
-
|
|
6732
|
+
Y.set(this.localPersistenceKey, JSON.stringify(e));
|
|
6743
6733
|
return;
|
|
6744
6734
|
}
|
|
6745
6735
|
throw new b("Unexpected storage method requested");
|
|
@@ -6848,9 +6838,9 @@ class fe {
|
|
|
6848
6838
|
}
|
|
6849
6839
|
let n = 2048;
|
|
6850
6840
|
t && t <= 2048 && (n = t);
|
|
6851
|
-
const i = Ne(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((
|
|
6841
|
+
const i = Ne(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((m) => {
|
|
6852
6842
|
var Q;
|
|
6853
|
-
return ((Q =
|
|
6843
|
+
return ((Q = m.layoutState) == null ? void 0 : Q.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6854
6844
|
}) || s[0], B = g.layoutState.layout.previewRegion ? {
|
|
6855
6845
|
x: g.layoutState.layout.previewRegion.left,
|
|
6856
6846
|
y: g.layoutState.layout.previewRegion.top,
|
|
@@ -6863,7 +6853,7 @@ class fe {
|
|
|
6863
6853
|
height: g.layoutState.layout.height
|
|
6864
6854
|
}, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
|
|
6865
6855
|
if (!d)
|
|
6866
|
-
throw new
|
|
6856
|
+
throw new Te("Failed to obtain 2D context for preview image creation");
|
|
6867
6857
|
const w = vt(l.layoutState.layout, l.layoutState.elements, {
|
|
6868
6858
|
renderingConfiguration: {
|
|
6869
6859
|
purpose: Gt.Print,
|
|
@@ -6876,7 +6866,7 @@ class fe {
|
|
|
6876
6866
|
createCanvas: Ne,
|
|
6877
6867
|
createImage: bt,
|
|
6878
6868
|
DOMParser: Jt(),
|
|
6879
|
-
fetch:
|
|
6869
|
+
fetch: et
|
|
6880
6870
|
})).render();
|
|
6881
6871
|
const u = await this.getCanvasObjectURLAsync(i);
|
|
6882
6872
|
return i.toDataURL(u);
|
|
@@ -7004,7 +6994,7 @@ class fe {
|
|
|
7004
6994
|
}
|
|
7005
6995
|
async assignCustomerDetails(e) {
|
|
7006
6996
|
var i, s, o;
|
|
7007
|
-
const A = (
|
|
6997
|
+
const A = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.getWorkflowManager().getTransaction().id), n = (o = (s = (i = (await x.getShadowGraphqlClient().mutate({
|
|
7008
6998
|
mutation: In,
|
|
7009
6999
|
variables: {
|
|
7010
7000
|
id: this.getWorkflowManager().getTransaction().id,
|
|
@@ -7022,8 +7012,8 @@ class fe {
|
|
|
7022
7012
|
);
|
|
7023
7013
|
if (n != null && n.customer) {
|
|
7024
7014
|
this.getWorkflowManager().setTransactionCustomer(n.customer);
|
|
7025
|
-
const r =
|
|
7026
|
-
r.set(this.getWorkflowManager().getTransaction().id, n.customer.id),
|
|
7015
|
+
const r = Y.getMap("transactionCustomerIds") || /* @__PURE__ */ new Map();
|
|
7016
|
+
r.set(this.getWorkflowManager().getTransaction().id, n.customer.id), Y.setMap("transactionCustomerIds", r);
|
|
7027
7017
|
}
|
|
7028
7018
|
}
|
|
7029
7019
|
attachRenderableSceneListener(e) {
|
|
@@ -7085,7 +7075,7 @@ class fe {
|
|
|
7085
7075
|
* @returns Returns true when a valid handle is implemented for a given step type. Certain steps don't support handles, such as silent illustrations.
|
|
7086
7076
|
*/
|
|
7087
7077
|
stepHasHandle(e) {
|
|
7088
|
-
return e.type !==
|
|
7078
|
+
return e.type !== y.SilentIllustration && e.type !== y.ProductOverlay;
|
|
7089
7079
|
}
|
|
7090
7080
|
getExportedData() {
|
|
7091
7081
|
var a;
|
|
@@ -7116,7 +7106,7 @@ class fe {
|
|
|
7116
7106
|
"QuantityChanged"
|
|
7117
7107
|
/* QuantityChanged */
|
|
7118
7108
|
), this.checkForPriceBreakChanges();
|
|
7119
|
-
const t =
|
|
7109
|
+
const t = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), A = this.getWorkflowManager().getTransaction(), a = t.get(A.id) || void 0;
|
|
7120
7110
|
await x.getShadowGraphqlClient().mutate({
|
|
7121
7111
|
mutation: pa,
|
|
7122
7112
|
variables: {
|
|
@@ -7163,7 +7153,7 @@ const Dn = [
|
|
|
7163
7153
|
if (!w)
|
|
7164
7154
|
throw new z(d);
|
|
7165
7155
|
const E = J();
|
|
7166
|
-
return new
|
|
7156
|
+
return new L(
|
|
7167
7157
|
{
|
|
7168
7158
|
id: E,
|
|
7169
7159
|
src: g,
|
|
@@ -7183,7 +7173,7 @@ const Dn = [
|
|
|
7183
7173
|
return console.error(d), [];
|
|
7184
7174
|
}
|
|
7185
7175
|
}, yn = async (c, e, t, A) => {
|
|
7186
|
-
const a = t.data, n = a.assetUrl, i = await
|
|
7176
|
+
const a = t.data, n = a.assetUrl, i = await Xe(n);
|
|
7187
7177
|
try {
|
|
7188
7178
|
const s = bA(a, A.option);
|
|
7189
7179
|
s && (e[A.stepName] = { selectedVariants: [s] });
|
|
@@ -7195,16 +7185,16 @@ const Dn = [
|
|
|
7195
7185
|
height: 1
|
|
7196
7186
|
},
|
|
7197
7187
|
(E = s == null ? void 0 : s.asset) == null ? void 0 : E.fileLink
|
|
7198
|
-
), B = await
|
|
7188
|
+
), B = await tt(g), l = J(), d = c.find((h) => h.panelId === r.panelId);
|
|
7199
7189
|
if (!d)
|
|
7200
7190
|
throw new z(r);
|
|
7201
|
-
const w =
|
|
7191
|
+
const w = At(i, B, {
|
|
7202
7192
|
scale: a.scale,
|
|
7203
7193
|
left: a.x,
|
|
7204
7194
|
top: a.y
|
|
7205
7195
|
});
|
|
7206
7196
|
return [
|
|
7207
|
-
new
|
|
7197
|
+
new L(
|
|
7208
7198
|
{
|
|
7209
7199
|
id: l,
|
|
7210
7200
|
path: B.path,
|
|
@@ -7236,7 +7226,7 @@ const Dn = [
|
|
|
7236
7226
|
return console.error(s), [];
|
|
7237
7227
|
}
|
|
7238
7228
|
}, Mn = async (c, e, t, A) => {
|
|
7239
|
-
var Q,
|
|
7229
|
+
var Q, p;
|
|
7240
7230
|
const a = t.data, n = A.option;
|
|
7241
7231
|
if (!n)
|
|
7242
7232
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
@@ -7246,45 +7236,45 @@ const Dn = [
|
|
|
7246
7236
|
if (!i.asset)
|
|
7247
7237
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7248
7238
|
e[A.stepName] = { selectedVariants: [i] };
|
|
7249
|
-
const s = (
|
|
7239
|
+
const s = (p = i.asset) == null ? void 0 : p.fileLink;
|
|
7250
7240
|
if (!s)
|
|
7251
7241
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7252
|
-
const o = await _(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w =
|
|
7242
|
+
const o = await _(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = Tt().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
7253
7243
|
if (!w)
|
|
7254
7244
|
return console.error("Failed to read SVG."), [];
|
|
7255
|
-
|
|
7245
|
+
Lt(w);
|
|
7256
7246
|
const E = {};
|
|
7257
|
-
|
|
7247
|
+
TA(w, (f) => {
|
|
7258
7248
|
Dn.includes(f.tagName) && !f.attributes.getNamedItem("fill") && f.setAttribute("fill", "#000000");
|
|
7259
7249
|
const F = f.attributes.getNamedItem("fill");
|
|
7260
7250
|
if (F && F.value !== "none") {
|
|
7261
|
-
const
|
|
7262
|
-
f.classList.add(N), E[N] = { browserValue:
|
|
7251
|
+
const P = F.value, N = `spiff-fill-${P.replace(/\W/g, "")}`;
|
|
7252
|
+
f.classList.add(N), E[N] = { browserValue: P };
|
|
7263
7253
|
}
|
|
7264
|
-
const
|
|
7265
|
-
if (
|
|
7266
|
-
const
|
|
7267
|
-
f.classList.add(N), E[N] = { browserValue:
|
|
7254
|
+
const M = f.attributes.getNamedItem("stroke");
|
|
7255
|
+
if (M && M.value !== "none") {
|
|
7256
|
+
const P = M.value, N = `spiff-stroke-${P.replace(/\W/g, "")}`;
|
|
7257
|
+
f.classList.add(N), E[N] = { browserValue: P };
|
|
7268
7258
|
}
|
|
7269
7259
|
});
|
|
7270
7260
|
const u = Ot().serializeToString(w), C = a.colors;
|
|
7271
7261
|
if (C) {
|
|
7272
7262
|
for (const [f, F] of Object.entries(E))
|
|
7273
|
-
for (const
|
|
7274
|
-
if (F.browserValue ===
|
|
7275
|
-
E[f] = { browserValue: C[
|
|
7263
|
+
for (const M of Object.keys(C))
|
|
7264
|
+
if (F.browserValue === M) {
|
|
7265
|
+
E[f] = { browserValue: C[M] };
|
|
7276
7266
|
break;
|
|
7277
7267
|
}
|
|
7278
7268
|
}
|
|
7279
7269
|
const I = (f) => {
|
|
7280
|
-
const F = c.find((
|
|
7270
|
+
const F = c.find((P) => P.panelId === f.panelId);
|
|
7281
7271
|
if (!F)
|
|
7282
7272
|
throw new z(f);
|
|
7283
|
-
const
|
|
7284
|
-
return new
|
|
7273
|
+
const M = J();
|
|
7274
|
+
return new L(
|
|
7285
7275
|
{
|
|
7286
7276
|
colors: E,
|
|
7287
|
-
id:
|
|
7277
|
+
id: M,
|
|
7288
7278
|
svg: u,
|
|
7289
7279
|
type: k.Illustration,
|
|
7290
7280
|
y: f.top,
|
|
@@ -7298,9 +7288,9 @@ const Dn = [
|
|
|
7298
7288
|
},
|
|
7299
7289
|
F
|
|
7300
7290
|
);
|
|
7301
|
-
},
|
|
7291
|
+
}, m = A.data.regions;
|
|
7302
7292
|
try {
|
|
7303
|
-
return
|
|
7293
|
+
return m.map(I);
|
|
7304
7294
|
} catch (f) {
|
|
7305
7295
|
return console.error(f), [];
|
|
7306
7296
|
}
|
|
@@ -7310,7 +7300,7 @@ const Dn = [
|
|
|
7310
7300
|
if (!r)
|
|
7311
7301
|
throw new z(o);
|
|
7312
7302
|
const g = J();
|
|
7313
|
-
return new
|
|
7303
|
+
return new L(
|
|
7314
7304
|
{
|
|
7315
7305
|
colors: {},
|
|
7316
7306
|
id: g,
|
|
@@ -7353,7 +7343,7 @@ const Dn = [
|
|
|
7353
7343
|
if (!d)
|
|
7354
7344
|
throw new z(l);
|
|
7355
7345
|
const w = J();
|
|
7356
|
-
return new
|
|
7346
|
+
return new L(
|
|
7357
7347
|
{
|
|
7358
7348
|
id: w,
|
|
7359
7349
|
src: s,
|
|
@@ -7410,7 +7400,7 @@ const Dn = [
|
|
|
7410
7400
|
/>
|
|
7411
7401
|
</svg>
|
|
7412
7402
|
`, w = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, E = J();
|
|
7413
|
-
return new
|
|
7403
|
+
return new L(
|
|
7414
7404
|
{
|
|
7415
7405
|
colors: w,
|
|
7416
7406
|
id: E,
|
|
@@ -7436,7 +7426,7 @@ const Dn = [
|
|
|
7436
7426
|
}, xn = async (c, e, t) => {
|
|
7437
7427
|
const A = [], n = (() => {
|
|
7438
7428
|
var r, g;
|
|
7439
|
-
return e.type ===
|
|
7429
|
+
return e.type === y.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((g = e.data.asset) == null ? void 0 : g.fileLink) || "";
|
|
7440
7430
|
})(), s = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? k.Image : n.endsWith(".svg") ? k.Illustration : k.Illustration)(), o = e.data.regions;
|
|
7441
7431
|
if (s === "image")
|
|
7442
7432
|
try {
|
|
@@ -7454,24 +7444,24 @@ const Dn = [
|
|
|
7454
7444
|
height: r.height,
|
|
7455
7445
|
layer: r.layer,
|
|
7456
7446
|
layerIndex: r.layerIndex,
|
|
7457
|
-
productOverlay: e.type ===
|
|
7447
|
+
productOverlay: e.type === y.ProductOverlay ? !0 : void 0,
|
|
7458
7448
|
scaleX: 1,
|
|
7459
7449
|
scaleY: 1,
|
|
7460
7450
|
rotation: r.rotation,
|
|
7461
7451
|
excludeFromExport: e.data.excludeFromPrint,
|
|
7462
7452
|
preserveAspectRatio: "none"
|
|
7463
7453
|
};
|
|
7464
|
-
A.push(new
|
|
7454
|
+
A.push(new L(B, g));
|
|
7465
7455
|
});
|
|
7466
7456
|
} catch (r) {
|
|
7467
7457
|
console.error(r);
|
|
7468
7458
|
}
|
|
7469
7459
|
else {
|
|
7470
7460
|
const r = await _(n, !0), g = (B) => {
|
|
7471
|
-
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u =
|
|
7461
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Tt().parseFromString(w, "image/svg+xml").firstElementChild;
|
|
7472
7462
|
if (!u)
|
|
7473
7463
|
throw new ge("Failed to read SVG.");
|
|
7474
|
-
return
|
|
7464
|
+
return Lt(u), Ot().serializeToString(u);
|
|
7475
7465
|
};
|
|
7476
7466
|
o.forEach((B) => {
|
|
7477
7467
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
@@ -7493,10 +7483,10 @@ const Dn = [
|
|
|
7493
7483
|
scaleX: 1,
|
|
7494
7484
|
scaleY: 1,
|
|
7495
7485
|
rotation: B.rotation,
|
|
7496
|
-
productOverlay: e.type ===
|
|
7486
|
+
productOverlay: e.type === y.ProductOverlay ? !0 : void 0,
|
|
7497
7487
|
excludeFromExport: e.data.excludeFromPrint
|
|
7498
7488
|
};
|
|
7499
|
-
A.push(new
|
|
7489
|
+
A.push(new L(d, l));
|
|
7500
7490
|
});
|
|
7501
7491
|
}
|
|
7502
7492
|
return A;
|
|
@@ -7506,7 +7496,7 @@ const Dn = [
|
|
|
7506
7496
|
const h = A.option;
|
|
7507
7497
|
if (!h)
|
|
7508
7498
|
return;
|
|
7509
|
-
const u = ((I = h.variants) == null ? void 0 : I.find((
|
|
7499
|
+
const u = ((I = h.variants) == null ? void 0 : I.find((m) => m.id === n.fontVariantId)) || be(h);
|
|
7510
7500
|
if (!u || !u.asset)
|
|
7511
7501
|
return;
|
|
7512
7502
|
e[A.stepName] = { selectedVariants: [u] };
|
|
@@ -7517,12 +7507,12 @@ const Dn = [
|
|
|
7517
7507
|
const h = o();
|
|
7518
7508
|
if (!h)
|
|
7519
7509
|
return;
|
|
7520
|
-
const u = await
|
|
7510
|
+
const u = await at(h);
|
|
7521
7511
|
return {
|
|
7522
7512
|
assetUrl: h,
|
|
7523
7513
|
name: u.names.fullName.en
|
|
7524
7514
|
};
|
|
7525
|
-
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l =
|
|
7515
|
+
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = qe(B, {
|
|
7526
7516
|
vertical: A.data.vertical,
|
|
7527
7517
|
uppercase: A.data.uppercase
|
|
7528
7518
|
}), d = async (h) => {
|
|
@@ -7558,12 +7548,12 @@ const Dn = [
|
|
|
7558
7548
|
y: h.top
|
|
7559
7549
|
};
|
|
7560
7550
|
if (g) {
|
|
7561
|
-
const [I,
|
|
7551
|
+
const [I, m] = Me(
|
|
7562
7552
|
A.data.size || i,
|
|
7563
7553
|
g,
|
|
7564
7554
|
h,
|
|
7565
7555
|
[
|
|
7566
|
-
|
|
7556
|
+
qe(l, {
|
|
7567
7557
|
vertical: A.data.vertical,
|
|
7568
7558
|
uppercase: A.data.uppercase
|
|
7569
7559
|
})
|
|
@@ -7575,18 +7565,18 @@ const Dn = [
|
|
|
7575
7565
|
}
|
|
7576
7566
|
);
|
|
7577
7567
|
a.push(
|
|
7578
|
-
new
|
|
7568
|
+
new L(
|
|
7579
7569
|
{
|
|
7580
7570
|
...C,
|
|
7581
7571
|
fontSize: I,
|
|
7582
|
-
text: C.curved ? C.text : (
|
|
7572
|
+
text: C.curved ? C.text : (m || []).join(`
|
|
7583
7573
|
`)
|
|
7584
7574
|
},
|
|
7585
7575
|
u
|
|
7586
7576
|
)
|
|
7587
7577
|
);
|
|
7588
7578
|
} else
|
|
7589
|
-
a.push(new
|
|
7579
|
+
a.push(new L(C, u));
|
|
7590
7580
|
}
|
|
7591
7581
|
return a;
|
|
7592
7582
|
}, Rn = (c, e) => c.conditions ? c.conditions.every((t) => {
|
|
@@ -7604,18 +7594,18 @@ const Dn = [
|
|
|
7604
7594
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
7605
7595
|
if (s)
|
|
7606
7596
|
switch (s.type) {
|
|
7607
|
-
case
|
|
7597
|
+
case y.DigitalContent:
|
|
7608
7598
|
a.push(
|
|
7609
7599
|
...await Fn(t, i, s)
|
|
7610
7600
|
);
|
|
7611
7601
|
break;
|
|
7612
|
-
case
|
|
7613
|
-
case
|
|
7602
|
+
case y.Frame:
|
|
7603
|
+
case y.Photo:
|
|
7614
7604
|
a.push(
|
|
7615
7605
|
...await yn(t, n, i, s)
|
|
7616
7606
|
);
|
|
7617
7607
|
break;
|
|
7618
|
-
case
|
|
7608
|
+
case y.Illustration:
|
|
7619
7609
|
a.push(
|
|
7620
7610
|
...await Mn(
|
|
7621
7611
|
t,
|
|
@@ -7625,20 +7615,20 @@ const Dn = [
|
|
|
7625
7615
|
)
|
|
7626
7616
|
);
|
|
7627
7617
|
break;
|
|
7628
|
-
case
|
|
7618
|
+
case y.Module:
|
|
7629
7619
|
a.push(...await Sn(t, i, s));
|
|
7630
7620
|
break;
|
|
7631
|
-
case
|
|
7621
|
+
case y.Picture:
|
|
7632
7622
|
a.push(
|
|
7633
7623
|
...await Yn(t, n, i, s)
|
|
7634
7624
|
);
|
|
7635
7625
|
break;
|
|
7636
|
-
case
|
|
7626
|
+
case y.Shape:
|
|
7637
7627
|
a.push(
|
|
7638
7628
|
...await Pn(t, n, i, s)
|
|
7639
7629
|
);
|
|
7640
7630
|
break;
|
|
7641
|
-
case
|
|
7631
|
+
case y.Text:
|
|
7642
7632
|
a.push(
|
|
7643
7633
|
...await Nn(t, n, i, s)
|
|
7644
7634
|
);
|
|
@@ -7646,7 +7636,7 @@ const Dn = [
|
|
|
7646
7636
|
}
|
|
7647
7637
|
}
|
|
7648
7638
|
for (const i of e.steps)
|
|
7649
|
-
i.type !==
|
|
7639
|
+
i.type !== y.SilentIllustration && i.type !== y.ProductOverlay || Rn(i, n) && a.push(
|
|
7650
7640
|
...await xn(t, i, A)
|
|
7651
7641
|
);
|
|
7652
7642
|
return a;
|
|
@@ -7655,7 +7645,12 @@ class De {
|
|
|
7655
7645
|
constructor(e) {
|
|
7656
7646
|
this.handleCompleteRender = null;
|
|
7657
7647
|
const t = /* @__PURE__ */ new Map();
|
|
7658
|
-
e.forEach(
|
|
7648
|
+
e.forEach(
|
|
7649
|
+
(A) => t.set(
|
|
7650
|
+
A.id,
|
|
7651
|
+
new Gn(A.id, A.name, this, { width: A.width, height: A.height })
|
|
7652
|
+
)
|
|
7653
|
+
), this.layouts = t;
|
|
7659
7654
|
}
|
|
7660
7655
|
setCompleteRenderCallback(e) {
|
|
7661
7656
|
this.handleCompleteRender = e, e(Array.from(this.layouts.values()));
|
|
@@ -7672,8 +7667,8 @@ const Un = () => new Promise((c, e) => {
|
|
|
7672
7667
|
c(!!A);
|
|
7673
7668
|
}), vn = Un();
|
|
7674
7669
|
class Gn {
|
|
7675
|
-
constructor(e, t, A) {
|
|
7676
|
-
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new AA(2), this.id = e, this.name = t, this.service = A;
|
|
7670
|
+
constructor(e, t, A, a) {
|
|
7671
|
+
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new AA(2), this.id = e, this.name = t, this.service = A, this.panelSize = a;
|
|
7677
7672
|
}
|
|
7678
7673
|
getID() {
|
|
7679
7674
|
return this.id;
|
|
@@ -7681,6 +7676,9 @@ class Gn {
|
|
|
7681
7676
|
getName() {
|
|
7682
7677
|
return this.name;
|
|
7683
7678
|
}
|
|
7679
|
+
getPanelSize() {
|
|
7680
|
+
return this.panelSize;
|
|
7681
|
+
}
|
|
7684
7682
|
getStaticContext() {
|
|
7685
7683
|
return this.textureCtx;
|
|
7686
7684
|
}
|
|
@@ -7809,7 +7807,7 @@ class kn extends tA {
|
|
|
7809
7807
|
createCanvas: Ne,
|
|
7810
7808
|
createImage: bt,
|
|
7811
7809
|
DOMParser: Jt(),
|
|
7812
|
-
fetch:
|
|
7810
|
+
fetch: et
|
|
7813
7811
|
});
|
|
7814
7812
|
B.resize(s, o), await B.render(), this.onRender();
|
|
7815
7813
|
}
|
|
@@ -7818,7 +7816,7 @@ const Vi = (c, e) => {
|
|
|
7818
7816
|
const t = [];
|
|
7819
7817
|
return c.forEach((A) => {
|
|
7820
7818
|
const a = e.steps.find((n) => n.stepName === A.stepName);
|
|
7821
|
-
(a == null ? void 0 : a.type) ===
|
|
7819
|
+
(a == null ? void 0 : a.type) === y.Text && A.stepAspectType === "Text" && t.push({
|
|
7822
7820
|
name: a.stepName,
|
|
7823
7821
|
data: {
|
|
7824
7822
|
text: A.value
|
|
@@ -7830,9 +7828,9 @@ const Vi = (c, e) => {
|
|
|
7830
7828
|
serializableWorkflow: { steps: [] },
|
|
7831
7829
|
layouts: {}
|
|
7832
7830
|
};
|
|
7833
|
-
a = new
|
|
7831
|
+
a = new v(t.map((o) => new LA(o))).apply(a);
|
|
7834
7832
|
const i = await Hn(c, e, t, A);
|
|
7835
|
-
return new
|
|
7833
|
+
return new v(i).apply(a);
|
|
7836
7834
|
}, bn = D`
|
|
7837
7835
|
${oe}
|
|
7838
7836
|
fragment ProductFields on Product {
|
|
@@ -7953,7 +7951,7 @@ const Vi = (c, e) => {
|
|
|
7953
7951
|
}
|
|
7954
7952
|
}
|
|
7955
7953
|
}
|
|
7956
|
-
`,
|
|
7954
|
+
`, Tn = D`
|
|
7957
7955
|
query GetBundleStakeholders($id: String!) {
|
|
7958
7956
|
bundles(ids: [$id]) {
|
|
7959
7957
|
id
|
|
@@ -7973,7 +7971,7 @@ const Vi = (c, e) => {
|
|
|
7973
7971
|
}
|
|
7974
7972
|
}
|
|
7975
7973
|
}
|
|
7976
|
-
`,
|
|
7974
|
+
`, Ln = D`
|
|
7977
7975
|
query GetBundlesForCustomer($id: String!) {
|
|
7978
7976
|
customers(ids: [$id]) {
|
|
7979
7977
|
bundleStakeholders {
|
|
@@ -8178,7 +8176,7 @@ class ei {
|
|
|
8178
8176
|
}
|
|
8179
8177
|
}
|
|
8180
8178
|
}
|
|
8181
|
-
class
|
|
8179
|
+
class wt {
|
|
8182
8180
|
constructor(e, t) {
|
|
8183
8181
|
this.bundle = e, this.property = t;
|
|
8184
8182
|
}
|
|
@@ -8233,7 +8231,7 @@ class ht {
|
|
|
8233
8231
|
return this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
8234
8232
|
}
|
|
8235
8233
|
}
|
|
8236
|
-
class ti extends
|
|
8234
|
+
class ti extends wt {
|
|
8237
8235
|
constructor(e, t) {
|
|
8238
8236
|
super(e, t);
|
|
8239
8237
|
}
|
|
@@ -8255,7 +8253,7 @@ class ti extends ht {
|
|
|
8255
8253
|
]);
|
|
8256
8254
|
}
|
|
8257
8255
|
async canUseBackgroundRemover() {
|
|
8258
|
-
return this.bundle.getClient().canUseAddon(
|
|
8256
|
+
return this.bundle.getClient().canUseAddon(rt.BackgroundRemover);
|
|
8259
8257
|
}
|
|
8260
8258
|
/**
|
|
8261
8259
|
* Removes the background from an image, stores it in the state, and returns the new asset.
|
|
@@ -8270,7 +8268,7 @@ class ti extends ht {
|
|
|
8270
8268
|
const t = await this.getOriginalImage();
|
|
8271
8269
|
if (!t)
|
|
8272
8270
|
throw new Error("You must supply an image selection before attempting to remove the background.");
|
|
8273
|
-
const A = this.bundle.getGlobalPropertyStateManager(), a = await
|
|
8271
|
+
const A = this.bundle.getGlobalPropertyStateManager(), a = await G.removeBackgroundFromAsset(t), i = {
|
|
8274
8272
|
...A.getAspectStorage(this.property.name),
|
|
8275
8273
|
backgroundRemovedAssetKey: a.key,
|
|
8276
8274
|
useOriginalAsset: !e
|
|
@@ -8290,7 +8288,7 @@ class ti extends ht {
|
|
|
8290
8288
|
async getImage() {
|
|
8291
8289
|
const e = this.getStateValue();
|
|
8292
8290
|
if (e)
|
|
8293
|
-
return
|
|
8291
|
+
return G.getLocalOrFromServer(e);
|
|
8294
8292
|
}
|
|
8295
8293
|
/**
|
|
8296
8294
|
* Retrieves the original, unmodified image selection, if one exists.
|
|
@@ -8299,7 +8297,7 @@ class ti extends ht {
|
|
|
8299
8297
|
async getOriginalImage() {
|
|
8300
8298
|
const e = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
8301
8299
|
if (e != null && e.originalAssetKey)
|
|
8302
|
-
return
|
|
8300
|
+
return G.getLocalOrFromServer(e.originalAssetKey);
|
|
8303
8301
|
}
|
|
8304
8302
|
/**
|
|
8305
8303
|
* Retrieves the version of the image selection that has the background removed, if one exists.
|
|
@@ -8308,7 +8306,7 @@ class ti extends ht {
|
|
|
8308
8306
|
async getBackgroundRemovedImage() {
|
|
8309
8307
|
const e = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
8310
8308
|
if (e != null && e.backgroundRemovedAssetKey)
|
|
8311
|
-
return
|
|
8309
|
+
return G.getLocalOrFromServer(e.backgroundRemovedAssetKey);
|
|
8312
8310
|
}
|
|
8313
8311
|
getUseOriginalImage() {
|
|
8314
8312
|
var e;
|
|
@@ -8344,7 +8342,7 @@ class ti extends ht {
|
|
|
8344
8342
|
const t = this.getStateValue();
|
|
8345
8343
|
if (!t)
|
|
8346
8344
|
return;
|
|
8347
|
-
const A = await
|
|
8345
|
+
const A = await G.getLocalOrFromServer(t);
|
|
8348
8346
|
if (!A)
|
|
8349
8347
|
return;
|
|
8350
8348
|
const a = this.bundle.getGlobalPropertyStateManager().getAspectStorage(this.property.name);
|
|
@@ -8370,7 +8368,7 @@ class ti extends ht {
|
|
|
8370
8368
|
);
|
|
8371
8369
|
}
|
|
8372
8370
|
}
|
|
8373
|
-
class Ai extends
|
|
8371
|
+
class Ai extends wt {
|
|
8374
8372
|
constructor(e, t) {
|
|
8375
8373
|
super(e, t);
|
|
8376
8374
|
}
|
|
@@ -8403,7 +8401,7 @@ class Ai extends ht {
|
|
|
8403
8401
|
await Promise.all(a);
|
|
8404
8402
|
}
|
|
8405
8403
|
}
|
|
8406
|
-
class QA extends
|
|
8404
|
+
class QA extends wt {
|
|
8407
8405
|
constructor(e, t, A) {
|
|
8408
8406
|
super(e, t), this.optionResource = A;
|
|
8409
8407
|
}
|
|
@@ -8482,7 +8480,7 @@ class ai extends QA {
|
|
|
8482
8480
|
return this.getSharedSteps()[0].getCustomColor();
|
|
8483
8481
|
}
|
|
8484
8482
|
}
|
|
8485
|
-
const
|
|
8483
|
+
const ht = D`
|
|
8486
8484
|
fragment GlobalPropertyStateAspectFields on GlobalPropertyStateAspect {
|
|
8487
8485
|
name
|
|
8488
8486
|
value
|
|
@@ -8496,7 +8494,7 @@ const Et = D`
|
|
|
8496
8494
|
}
|
|
8497
8495
|
}
|
|
8498
8496
|
`, ni = D`
|
|
8499
|
-
${
|
|
8497
|
+
${ht}
|
|
8500
8498
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
8501
8499
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
8502
8500
|
id
|
|
@@ -8506,7 +8504,7 @@ const Et = D`
|
|
|
8506
8504
|
}
|
|
8507
8505
|
}
|
|
8508
8506
|
`, ii = D`
|
|
8509
|
-
${
|
|
8507
|
+
${ht}
|
|
8510
8508
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
8511
8509
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
8512
8510
|
id
|
|
@@ -8516,7 +8514,7 @@ const Et = D`
|
|
|
8516
8514
|
}
|
|
8517
8515
|
}
|
|
8518
8516
|
`, si = D`
|
|
8519
|
-
${
|
|
8517
|
+
${ht}
|
|
8520
8518
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
8521
8519
|
globalPropertyState(bundleId: $bundleId) {
|
|
8522
8520
|
id
|
|
@@ -9074,7 +9072,7 @@ class xt {
|
|
|
9074
9072
|
throw new Error(
|
|
9075
9073
|
"Unable to add transaction to bundle - Already Exists: " + A.filter((i) => !!i).map((i) => i == null ? void 0 : i.getWorkflowManager().getTransaction().id).join(", ")
|
|
9076
9074
|
);
|
|
9077
|
-
const a =
|
|
9075
|
+
const a = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = t.map((i) => a.get(i));
|
|
9078
9076
|
await x.getShadowGraphqlClient().mutate({
|
|
9079
9077
|
mutation: Vn,
|
|
9080
9078
|
variables: {
|
|
@@ -9103,7 +9101,7 @@ class xt {
|
|
|
9103
9101
|
(s) => s.getWorkflowManager().getTransaction().id === A
|
|
9104
9102
|
))
|
|
9105
9103
|
throw new Error("Unable to add transaction to bundle - Already Exists!");
|
|
9106
|
-
const i = (
|
|
9104
|
+
const i = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(A);
|
|
9107
9105
|
await x.getShadowGraphqlClient().mutate({
|
|
9108
9106
|
mutation: jn,
|
|
9109
9107
|
variables: {
|
|
@@ -9279,7 +9277,7 @@ class xt {
|
|
|
9279
9277
|
}
|
|
9280
9278
|
async getAllStakeholders() {
|
|
9281
9279
|
const e = await x.getShadowGraphqlClient().query({
|
|
9282
|
-
query:
|
|
9280
|
+
query: Tn,
|
|
9283
9281
|
errorPolicy: "all",
|
|
9284
9282
|
fetchPolicy: "no-cache",
|
|
9285
9283
|
variables: {
|
|
@@ -9579,7 +9577,7 @@ class Fe {
|
|
|
9579
9577
|
return this.getArtifacts().get(e);
|
|
9580
9578
|
}
|
|
9581
9579
|
}
|
|
9582
|
-
class
|
|
9580
|
+
class Et {
|
|
9583
9581
|
constructor(e) {
|
|
9584
9582
|
this.value = e;
|
|
9585
9583
|
}
|
|
@@ -9592,12 +9590,12 @@ class ut {
|
|
|
9592
9590
|
}
|
|
9593
9591
|
}
|
|
9594
9592
|
var hi = /* @__PURE__ */ ((c) => (c.Transaction = "Transaction", c.Bundle = "Bundle", c.Product = "Product", c.Variant = "Variant", c.Option = "Option", c.LineItem = "LineItem", c.Asset = "Asset", c))(hi || {});
|
|
9595
|
-
class Xi extends
|
|
9593
|
+
class Xi extends Et {
|
|
9596
9594
|
constructor(e) {
|
|
9597
9595
|
super(`"${e}"`);
|
|
9598
9596
|
}
|
|
9599
9597
|
}
|
|
9600
|
-
class mA extends
|
|
9598
|
+
class mA extends Et {
|
|
9601
9599
|
constructor(e, t) {
|
|
9602
9600
|
if (t !== "Asset" && !mA.validUUID(e))
|
|
9603
9601
|
throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
|
|
@@ -9607,7 +9605,7 @@ class mA extends ut {
|
|
|
9607
9605
|
return e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
9608
9606
|
}
|
|
9609
9607
|
}
|
|
9610
|
-
class qi extends
|
|
9608
|
+
class qi extends Et {
|
|
9611
9609
|
constructor(e) {
|
|
9612
9610
|
super(`[${e.map((t) => t.getRaw()).join(",")}]`);
|
|
9613
9611
|
}
|
|
@@ -9776,7 +9774,7 @@ const Ei = D`
|
|
|
9776
9774
|
}
|
|
9777
9775
|
`, mi = (c) => D`
|
|
9778
9776
|
${Ce(c)}
|
|
9779
|
-
${
|
|
9777
|
+
${ot}
|
|
9780
9778
|
${$t}
|
|
9781
9779
|
${Ei}
|
|
9782
9780
|
${ui}
|
|
@@ -10310,7 +10308,7 @@ const Ei = D`
|
|
|
10310
10308
|
const a = c.layouts[t].elements.filter((n) => n.type === k.Textbox);
|
|
10311
10309
|
for (let n = 0; n < a.length; ++n) {
|
|
10312
10310
|
const i = a[n];
|
|
10313
|
-
(e = i.fontData) != null && e.assetUrl && await
|
|
10311
|
+
(e = i.fontData) != null && e.assetUrl && await at(i.fontData.assetUrl);
|
|
10314
10312
|
}
|
|
10315
10313
|
}
|
|
10316
10314
|
}, Yi = async (c, e) => {
|
|
@@ -10328,8 +10326,8 @@ const Ei = D`
|
|
|
10328
10326
|
return A.forEach((n) => {
|
|
10329
10327
|
n.steps.forEach((i) => {
|
|
10330
10328
|
var s, o, r;
|
|
10331
|
-
delete i.data.__typename, (s = i.option) != null && s.id && ((o = i.option.defaultVariant) != null && o.asset &&
|
|
10332
|
-
g.asset &&
|
|
10329
|
+
delete i.data.__typename, (s = i.option) != null && s.id && ((o = i.option.defaultVariant) != null && o.asset && G.cacheAsset(i.option.defaultVariant.asset), i.option.colorProfile && G.cacheAsset(i.option.colorProfile), (r = i.option.variants) == null || r.forEach((g) => {
|
|
10330
|
+
g.asset && G.cacheAsset(g.asset), g.displayImage && G.cacheAsset(g.displayImage), g.thumbnail && G.cacheAsset(g.thumbnail), g.material && G.cacheMaterial(g.material);
|
|
10333
10331
|
}), Ee.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
10334
10332
|
});
|
|
10335
10333
|
}), A;
|
|
@@ -10381,7 +10379,7 @@ class Ni {
|
|
|
10381
10379
|
* and the Spiff Commerce platform.
|
|
10382
10380
|
*/
|
|
10383
10381
|
getAssetManager() {
|
|
10384
|
-
return
|
|
10382
|
+
return G;
|
|
10385
10383
|
}
|
|
10386
10384
|
getCurrencyCode() {
|
|
10387
10385
|
if (this.currencyCode === void 0)
|
|
@@ -10421,12 +10419,12 @@ class Ni {
|
|
|
10421
10419
|
*/
|
|
10422
10420
|
async authenticateBundleFromLocalStorage(e) {
|
|
10423
10421
|
var a, n;
|
|
10424
|
-
const t =
|
|
10422
|
+
const t = Y.getMap("bundleOwnerIds");
|
|
10425
10423
|
if (t != null && t.has(e))
|
|
10426
10424
|
return Promise.resolve({ success: !0, stakeholderType: Ue.Owner });
|
|
10427
|
-
const A =
|
|
10425
|
+
const A = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10428
10426
|
if (A.has(e)) {
|
|
10429
|
-
const i = A.get(e), o = (
|
|
10427
|
+
const i = A.get(e), o = (Y.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
10430
10428
|
if (o && await this.authenticateCustomerId(o)) {
|
|
10431
10429
|
const g = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
10432
10430
|
(B) => {
|
|
@@ -10470,22 +10468,22 @@ class Ni {
|
|
|
10470
10468
|
throw new Error(`Unable to read transaction: ${e}`);
|
|
10471
10469
|
if (a.isOrdered)
|
|
10472
10470
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
10473
|
-
const i =
|
|
10471
|
+
const i = Y.getMap("transactionOwnerIds");
|
|
10474
10472
|
if (i != null && i.has(e))
|
|
10475
10473
|
return Promise.resolve({ success: !0, stakeholderType: Ue.Owner });
|
|
10476
|
-
const s =
|
|
10474
|
+
const s = Y.getMap("transactionCustomerIds");
|
|
10477
10475
|
if (s != null && s.has(e)) {
|
|
10478
10476
|
const h = s.get(e);
|
|
10479
10477
|
if (h && await this.authenticateCustomerId(h)) {
|
|
10480
10478
|
const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
10481
10479
|
(I) => {
|
|
10482
|
-
var
|
|
10483
|
-
return (Q = (
|
|
10480
|
+
var m, Q;
|
|
10481
|
+
return (Q = (m = I.bundle) == null ? void 0 : m.transactions) == null ? void 0 : Q.some((p) => p.id === e);
|
|
10484
10482
|
}
|
|
10485
10483
|
)) || ((E = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : E.find(
|
|
10486
10484
|
(I) => {
|
|
10487
|
-
var
|
|
10488
|
-
return ((
|
|
10485
|
+
var m;
|
|
10486
|
+
return ((m = I.transaction) == null ? void 0 : m.id) === e;
|
|
10489
10487
|
}
|
|
10490
10488
|
));
|
|
10491
10489
|
if (C)
|
|
@@ -10514,8 +10512,8 @@ class Ni {
|
|
|
10514
10512
|
this.customer = void 0;
|
|
10515
10513
|
}
|
|
10516
10514
|
clearCustomerForTransaction(e) {
|
|
10517
|
-
const t =
|
|
10518
|
-
t != null && t.has(e) && (t.delete(e),
|
|
10515
|
+
const t = Y.getMap("transactionCustomerIds");
|
|
10516
|
+
t != null && t.has(e) && (t.delete(e), Y.setMap("transactionCustomerIds", t));
|
|
10519
10517
|
}
|
|
10520
10518
|
getStakeholderTypeForTransaction(e) {
|
|
10521
10519
|
var A, a;
|
|
@@ -10566,7 +10564,7 @@ class Ni {
|
|
|
10566
10564
|
}
|
|
10567
10565
|
async authenticateCustomerId(e) {
|
|
10568
10566
|
var s;
|
|
10569
|
-
const t = x.getShadowGraphqlClient(), A =
|
|
10567
|
+
const t = x.getShadowGraphqlClient(), A = Y.getMap("customerTokens");
|
|
10570
10568
|
if (!(A != null && A.has(e)))
|
|
10571
10569
|
return !1;
|
|
10572
10570
|
const a = A.get(e);
|
|
@@ -10614,8 +10612,8 @@ class Ni {
|
|
|
10614
10612
|
if (a != null && a.loginToken) {
|
|
10615
10613
|
if (!((i = a.partner) != null && i.id))
|
|
10616
10614
|
throw new Error(`Unable to find customer: ${e}`);
|
|
10617
|
-
const s =
|
|
10618
|
-
return s.set(a.id, a.loginToken),
|
|
10615
|
+
const s = Y.getMap("customerTokens") || /* @__PURE__ */ new Map();
|
|
10616
|
+
return s.set(a.id, a.loginToken), Y.setMap("customerTokens", s), this.storeCustomer(a), Ft(a.loginToken), this.customer = {
|
|
10619
10617
|
...a,
|
|
10620
10618
|
loginToken: void 0
|
|
10621
10619
|
}, !0;
|
|
@@ -10638,10 +10636,10 @@ class Ni {
|
|
|
10638
10636
|
})).data) == null ? void 0 : g.bundleCreate;
|
|
10639
10637
|
if (!(n != null && n.id))
|
|
10640
10638
|
throw new Error("Unable to create bundle");
|
|
10641
|
-
const i =
|
|
10642
|
-
i.set(n.id, n.partner.id),
|
|
10643
|
-
const s =
|
|
10644
|
-
return s.set(n.id, n.bundleOwnerId),
|
|
10639
|
+
const i = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10640
|
+
i.set(n.id, n.partner.id), Y.setMap("bundlePartnerIds", i);
|
|
10641
|
+
const s = Y.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
10642
|
+
return s.set(n.id, n.bundleOwnerId), Y.setMap("bundleOwnerIds", s), new xt(this, n, void 0, void 0, n.bundleOwnerId);
|
|
10645
10643
|
}
|
|
10646
10644
|
/**
|
|
10647
10645
|
* Retrieves an existing bundle from the API, by id.
|
|
@@ -10651,9 +10649,9 @@ class Ni {
|
|
|
10651
10649
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
10652
10650
|
*/
|
|
10653
10651
|
async getExistingBundle(e, t, A, a) {
|
|
10654
|
-
var h, u, C, I,
|
|
10655
|
-
const n =
|
|
10656
|
-
r && !
|
|
10652
|
+
var h, u, C, I, m, Q, p, f, F;
|
|
10653
|
+
const n = Y.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((h = Object.entries(localStorage).find(([M, P]) => M.startsWith("CognitoIdentityServiceProvider") && M.endsWith("idToken"))) == null ? void 0 : h[0]) || "", r = localStorage.getItem(o), g = {};
|
|
10654
|
+
r && !dt(r) && (g.Authorization = `Bearer ${r}`);
|
|
10657
10655
|
const B = {
|
|
10658
10656
|
bundleOwnerId: i,
|
|
10659
10657
|
...g,
|
|
@@ -10668,10 +10666,10 @@ class Ni {
|
|
|
10668
10666
|
headers: B
|
|
10669
10667
|
}
|
|
10670
10668
|
});
|
|
10671
|
-
if (!((
|
|
10669
|
+
if (!((m = l.data) != null && m.bundles) || ((Q = l.data) == null ? void 0 : Q.bundles.length) === 0 || !((p = l.data) != null && p.bundles[0]))
|
|
10672
10670
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
10673
|
-
const d = (f = l.data) == null ? void 0 : f.bundles[0], w =
|
|
10674
|
-
w.set(d.id, d.partner.id),
|
|
10671
|
+
const d = (f = l.data) == null ? void 0 : f.bundles[0], w = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10672
|
+
w.set(d.id, d.partner.id), Y.setMap("bundlePartnerIds", w);
|
|
10675
10673
|
const E = new xt(this, d, t, A, i, {
|
|
10676
10674
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders
|
|
10677
10675
|
});
|
|
@@ -10686,7 +10684,7 @@ class Ni {
|
|
|
10686
10684
|
if (!this.customer)
|
|
10687
10685
|
throw new Error("Customer not authenticated.");
|
|
10688
10686
|
const e = await x.getShadowGraphqlClient().query({
|
|
10689
|
-
query:
|
|
10687
|
+
query: Ln,
|
|
10690
10688
|
variables: {
|
|
10691
10689
|
id: this.customer.id
|
|
10692
10690
|
},
|
|
@@ -10694,11 +10692,11 @@ class Ni {
|
|
|
10694
10692
|
});
|
|
10695
10693
|
if (!((n = e.data) != null && n.customers) || e.data.customers.length === 0)
|
|
10696
10694
|
throw new Error("Unable to find customer.");
|
|
10697
|
-
const A = e.data.customers[0].bundleStakeholders || [], a =
|
|
10695
|
+
const A = e.data.customers[0].bundleStakeholders || [], a = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10698
10696
|
return A.forEach((i) => {
|
|
10699
10697
|
var s, o;
|
|
10700
10698
|
(s = i.bundle) != null && s.id && ((o = i.bundle.partner) != null && o.id) && a.set(i.bundle.id, i.bundle.partner.id);
|
|
10701
|
-
}),
|
|
10699
|
+
}), Y.setMap("bundlePartnerIds", a), A;
|
|
10702
10700
|
}
|
|
10703
10701
|
/**
|
|
10704
10702
|
* Creates a new instance of WorkflowExperience. A high level wrapper for workflows.
|
|
@@ -10716,7 +10714,7 @@ class Ni {
|
|
|
10716
10714
|
var u, C;
|
|
10717
10715
|
const h = x.getShadowGraphqlClient();
|
|
10718
10716
|
if (a.type === "transaction") {
|
|
10719
|
-
const { transactionId: I, readOnly:
|
|
10717
|
+
const { transactionId: I, readOnly: m } = a, Q = await h.query({
|
|
10720
10718
|
query: me,
|
|
10721
10719
|
variables: {
|
|
10722
10720
|
ids: [I]
|
|
@@ -10726,13 +10724,13 @@ class Ni {
|
|
|
10726
10724
|
});
|
|
10727
10725
|
if (!((u = Q.data) != null && u.transactions) || Q.data.transactions.length === 0)
|
|
10728
10726
|
throw new U("Existing transaction not found.");
|
|
10729
|
-
const
|
|
10730
|
-
if (!
|
|
10727
|
+
const p = (C = Q.data) == null ? void 0 : C.transactions[0];
|
|
10728
|
+
if (!p.workflowId)
|
|
10731
10729
|
throw new U("Existing transaction has no workflow ID.");
|
|
10732
|
-
const f = await ye(
|
|
10733
|
-
if (!
|
|
10730
|
+
const f = await ye(p.workflowId);
|
|
10731
|
+
if (!p.product)
|
|
10734
10732
|
throw new U("Failed to load transaction, product not available.");
|
|
10735
|
-
return { transaction:
|
|
10733
|
+
return { transaction: p, workflow: f, readOnly: m };
|
|
10736
10734
|
}
|
|
10737
10735
|
if (a.type === "integration" || a.type === "external") {
|
|
10738
10736
|
const I = async () => {
|
|
@@ -10753,12 +10751,12 @@ class Ni {
|
|
|
10753
10751
|
});
|
|
10754
10752
|
if (!F.data || !F.data.transactionCreate)
|
|
10755
10753
|
throw new U("Failed to create transaction!");
|
|
10756
|
-
const
|
|
10757
|
-
if (!
|
|
10754
|
+
const M = F.data.transactionCreate;
|
|
10755
|
+
if (!M.product)
|
|
10758
10756
|
throw new U("Failed to create transaction, product not available.");
|
|
10759
|
-
return
|
|
10760
|
-
},
|
|
10761
|
-
return { transaction: Q, workflow:
|
|
10757
|
+
return M;
|
|
10758
|
+
}, m = ye(a.workflowId, a == null ? void 0 : a.graphql), [Q, p] = await Promise.all([I(), m]);
|
|
10759
|
+
return { transaction: Q, workflow: p };
|
|
10762
10760
|
}
|
|
10763
10761
|
throw new U("No workflow ID provided.");
|
|
10764
10762
|
}, { transaction: i, workflow: s, readOnly: o } = await n();
|
|
@@ -10771,7 +10769,7 @@ class Ni {
|
|
|
10771
10769
|
stateMutationFunc: o ? async () => {
|
|
10772
10770
|
throw new b("State mutation is forbidden in read only mode!");
|
|
10773
10771
|
} : async (h) => {
|
|
10774
|
-
const C = (
|
|
10772
|
+
const C = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
|
|
10775
10773
|
return this.updateTransactionState({ ...h, context: { transactionOwnerId: C } });
|
|
10776
10774
|
},
|
|
10777
10775
|
readOnly: o,
|
|
@@ -10797,8 +10795,8 @@ class Ni {
|
|
|
10797
10795
|
model: r.product.modelUrl,
|
|
10798
10796
|
contextService: r.renderableContextService
|
|
10799
10797
|
}))), a.type !== "transaction") {
|
|
10800
|
-
const h =
|
|
10801
|
-
h.set(i.id, i.transactionOwnerId),
|
|
10798
|
+
const h = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10799
|
+
h.set(i.id, i.transactionOwnerId), Y.setMap("transactionOwnerIds", h);
|
|
10802
10800
|
} else
|
|
10803
10801
|
r.isReloadedTransaction = !0;
|
|
10804
10802
|
this.initialized = !0, this.experienceOptions = r;
|
|
@@ -10816,19 +10814,19 @@ class Ni {
|
|
|
10816
10814
|
if (e.length === 0)
|
|
10817
10815
|
throw new U("No options provided!");
|
|
10818
10816
|
const A = x.getShadowGraphqlClient(), a = async (Q) => {
|
|
10819
|
-
var
|
|
10817
|
+
var M, P;
|
|
10820
10818
|
if (Q.length === 0)
|
|
10821
10819
|
return [];
|
|
10822
|
-
const
|
|
10820
|
+
const p = Q.map((S) => S.option.transactionId), f = await A.query({
|
|
10823
10821
|
query: me,
|
|
10824
10822
|
variables: {
|
|
10825
|
-
ids:
|
|
10823
|
+
ids: p
|
|
10826
10824
|
},
|
|
10827
10825
|
errorPolicy: "all",
|
|
10828
10826
|
fetchPolicy: "no-cache"
|
|
10829
10827
|
}), F = f.data.transactions;
|
|
10830
10828
|
if (F.length !== Q.length) {
|
|
10831
|
-
const S = ((
|
|
10829
|
+
const S = ((P = (M = f.errors) == null ? void 0 : M[0]) == null ? void 0 : P.message) || "Unknown error";
|
|
10832
10830
|
throw new U(`Not all transactions were found: ${S}`);
|
|
10833
10831
|
}
|
|
10834
10832
|
return F.map((S, N) => {
|
|
@@ -10841,10 +10839,10 @@ class Ni {
|
|
|
10841
10839
|
};
|
|
10842
10840
|
});
|
|
10843
10841
|
}, n = async (Q) => {
|
|
10844
|
-
var F,
|
|
10842
|
+
var F, M, P;
|
|
10845
10843
|
if (Q.length === 0)
|
|
10846
10844
|
return [];
|
|
10847
|
-
const
|
|
10845
|
+
const p = await A.mutate({
|
|
10848
10846
|
mutation: ua,
|
|
10849
10847
|
variables: {
|
|
10850
10848
|
inputs: Q.map((S) => ({
|
|
@@ -10857,9 +10855,9 @@ class Ni {
|
|
|
10857
10855
|
},
|
|
10858
10856
|
errorPolicy: "all",
|
|
10859
10857
|
fetchPolicy: "no-cache"
|
|
10860
|
-
}), f = (F =
|
|
10858
|
+
}), f = (F = p.data) == null ? void 0 : F.transactionCreateMany;
|
|
10861
10859
|
if (!f || f.length === 0) {
|
|
10862
|
-
const S = ((
|
|
10860
|
+
const S = ((P = (M = p.errors) == null ? void 0 : M[0]) == null ? void 0 : P.message) || "Unknown error";
|
|
10863
10861
|
throw new U(`Failed to create transactions: ${S}`);
|
|
10864
10862
|
}
|
|
10865
10863
|
return f.map((S, N) => ({
|
|
@@ -10868,33 +10866,33 @@ class Ni {
|
|
|
10868
10866
|
readOnly: !1,
|
|
10869
10867
|
index: Q[N].index
|
|
10870
10868
|
}));
|
|
10871
|
-
}, i = e.map((Q,
|
|
10869
|
+
}, i = e.map((Q, p) => ({ option: Q, index: p })), s = i.filter((Q) => Q.option.type === "transaction"), o = i.filter(
|
|
10872
10870
|
(Q) => Q.option.type === "integration" || Q.option.type === "external"
|
|
10873
10871
|
), r = ft(s, 10), g = ft(o, 10), B = (await Promise.all([
|
|
10874
10872
|
...r.map(a),
|
|
10875
10873
|
...g.map(n)
|
|
10876
|
-
])).flat(), l = [...new Set(B.map((Q) => Q.workflowId))], d = await pA(l, t), w = new Map(d.map((Q) => [Q.id, Q])), E =
|
|
10874
|
+
])).flat(), l = [...new Set(B.map((Q) => Q.workflowId))], d = await pA(l, t), w = new Map(d.map((Q) => [Q.id, Q])), E = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (Q) => {
|
|
10877
10875
|
var O;
|
|
10878
|
-
const { transaction:
|
|
10879
|
-
!E.get(
|
|
10880
|
-
const N = E.get(
|
|
10881
|
-
product:
|
|
10882
|
-
transaction:
|
|
10876
|
+
const { transaction: p, workflowId: f, readOnly: F, index: M } = Q, P = w.get(f), S = e[M];
|
|
10877
|
+
!E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
|
|
10878
|
+
const N = E.get(p.id) || void 0, R = {
|
|
10879
|
+
product: p.product,
|
|
10880
|
+
transaction: p,
|
|
10883
10881
|
layouts: [],
|
|
10884
10882
|
singleVariantsRenderable: (O = S == null ? void 0 : S.workflowConfiguration) == null ? void 0 : O.singleVariantsRenderable,
|
|
10885
10883
|
stateMutationFunc: F ? async () => {
|
|
10886
10884
|
throw new b("State mutation is forbidden in read only mode!");
|
|
10887
|
-
} : async (
|
|
10885
|
+
} : async (T) => this.updateTransactionState({ ...T, context: { transactionOwnerId: N } }),
|
|
10888
10886
|
readOnly: F,
|
|
10889
|
-
workflow:
|
|
10887
|
+
workflow: P,
|
|
10890
10888
|
isReloadedTransaction: S.type === "transaction"
|
|
10891
10889
|
};
|
|
10892
|
-
if (S.type === "transaction" &&
|
|
10893
|
-
const
|
|
10894
|
-
R.layouts = Object.values(
|
|
10890
|
+
if (S.type === "transaction" && p.workflowState) {
|
|
10891
|
+
const T = JSON.parse(p.workflowState);
|
|
10892
|
+
R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await Ae(T), await ne(T), R.reloadedState = T;
|
|
10895
10893
|
} else if (!F && S.workflowState) {
|
|
10896
|
-
const
|
|
10897
|
-
R.layouts = Object.values(
|
|
10894
|
+
const T = JSON.parse(S.workflowState);
|
|
10895
|
+
R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await Ae(T), await ne(T), R.reloadedState = T;
|
|
10898
10896
|
} else
|
|
10899
10897
|
R.layouts = Ve(
|
|
10900
10898
|
R.transaction,
|
|
@@ -10902,14 +10900,14 @@ class Ni {
|
|
|
10902
10900
|
);
|
|
10903
10901
|
return R.renderableContextService = new De(
|
|
10904
10902
|
R.layouts
|
|
10905
|
-
), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index:
|
|
10903
|
+
), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: M, options: S };
|
|
10906
10904
|
});
|
|
10907
|
-
|
|
10908
|
-
const I = (await Promise.all(h)).sort((Q,
|
|
10909
|
-
const { experienceOptions:
|
|
10905
|
+
Y.setMap("transactionOwnerIds", E);
|
|
10906
|
+
const I = (await Promise.all(h)).sort((Q, p) => Q.index - p.index).map(async (Q) => {
|
|
10907
|
+
const { experienceOptions: p, options: f } = Q, F = new fe(this, p);
|
|
10910
10908
|
return await F.getWorkflowManager().getInitializationPromise(), f.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
10911
|
-
}),
|
|
10912
|
-
return
|
|
10909
|
+
}), m = await Promise.all(I);
|
|
10910
|
+
return m.forEach((Q) => Q.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), m;
|
|
10913
10911
|
}
|
|
10914
10912
|
/**
|
|
10915
10913
|
* Initialize the client from an integration product.
|
|
@@ -10937,8 +10935,8 @@ class Ni {
|
|
|
10937
10935
|
if (!a.product)
|
|
10938
10936
|
throw new U("Failed to create transaction, product not available.");
|
|
10939
10937
|
this.currencyCode = (i = a.product.partner) == null ? void 0 : i.currencyCode;
|
|
10940
|
-
const n =
|
|
10941
|
-
n.set(a.id, a.transactionOwnerId),
|
|
10938
|
+
const n = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10939
|
+
n.set(a.id, a.transactionOwnerId), Y.setMap("transactionOwnerIds", n), this.experienceOptions = {
|
|
10942
10940
|
product: a.product,
|
|
10943
10941
|
transaction: a,
|
|
10944
10942
|
layouts: [],
|
|
@@ -10982,7 +10980,7 @@ class Ni {
|
|
|
10982
10980
|
};
|
|
10983
10981
|
if (t)
|
|
10984
10982
|
return await a();
|
|
10985
|
-
const n =
|
|
10983
|
+
const n = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
10986
10984
|
if (i) {
|
|
10987
10985
|
const l = (s = (await A.query({
|
|
10988
10986
|
query: me,
|
|
@@ -11014,7 +11012,7 @@ class Ni {
|
|
|
11014
11012
|
throw new U("Failed to read transaction.");
|
|
11015
11013
|
if (!l.product)
|
|
11016
11014
|
throw new U("Failed to load transaction, product not available.");
|
|
11017
|
-
this.currencyCode = (g = l.product.partner) == null ? void 0 : g.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId),
|
|
11015
|
+
this.currencyCode = (g = l.product.partner) == null ? void 0 : g.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), Y.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
11018
11016
|
product: l.product,
|
|
11019
11017
|
transaction: l,
|
|
11020
11018
|
layouts: [],
|
|
@@ -11049,7 +11047,7 @@ class Ni {
|
|
|
11049
11047
|
return await r.getWorkflowManager().getInitializationPromise(), r;
|
|
11050
11048
|
}
|
|
11051
11049
|
if (e) {
|
|
11052
|
-
const r = (
|
|
11050
|
+
const r = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.experienceOptions.transaction.id), g = x.getShadowGraphqlClient().mutate({
|
|
11053
11051
|
mutation: ma,
|
|
11054
11052
|
variables: {
|
|
11055
11053
|
workflowId: e,
|
|
@@ -11106,8 +11104,8 @@ class Ni {
|
|
|
11106
11104
|
$.setHubUrl(e), $.setServerUrl(t), $.setServicesApiUrl(A), this.getIntegration();
|
|
11107
11105
|
}
|
|
11108
11106
|
storeCustomer(e) {
|
|
11109
|
-
const t =
|
|
11110
|
-
t.set(e.partner.id, e.id),
|
|
11107
|
+
const t = Y.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map();
|
|
11108
|
+
t.set(e.partner.id, e.id), Y.setMap("partnerCustomerIds", t);
|
|
11111
11109
|
}
|
|
11112
11110
|
async getIntegrationProductById(e) {
|
|
11113
11111
|
var n, i;
|
|
@@ -11315,7 +11313,7 @@ class Hi extends X {
|
|
|
11315
11313
|
}
|
|
11316
11314
|
}
|
|
11317
11315
|
async canUseBackgroundRemover() {
|
|
11318
|
-
return this.manager.getClient().canUseAddon(
|
|
11316
|
+
return this.manager.getClient().canUseAddon(rt.BackgroundRemover);
|
|
11319
11317
|
}
|
|
11320
11318
|
/**
|
|
11321
11319
|
* Removes the background from an image, stores it in the state, and returns the new asset.
|
|
@@ -11331,7 +11329,7 @@ class Hi extends X {
|
|
|
11331
11329
|
const t = await this.getOriginalImageSelection();
|
|
11332
11330
|
if (!t)
|
|
11333
11331
|
throw new Error("You must supply an image selection before attempting to remove the background.");
|
|
11334
|
-
const A = await
|
|
11332
|
+
const A = await G.removeBackgroundFromAsset(t);
|
|
11335
11333
|
e && await Se.selectImage(this.step, A, this.manager, !1);
|
|
11336
11334
|
const a = ((n = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : n.framePatternData) || {};
|
|
11337
11335
|
return this.manager.updateStorage(this.step.stepName, {
|
|
@@ -11362,13 +11360,13 @@ class Hi extends X {
|
|
|
11362
11360
|
var t, A;
|
|
11363
11361
|
const e = (A = (t = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : t.framePatternData) == null ? void 0 : A.originalAssetKey;
|
|
11364
11362
|
if (e)
|
|
11365
|
-
return
|
|
11363
|
+
return G.getLocalOrFromServer(e);
|
|
11366
11364
|
}
|
|
11367
11365
|
async getBackgroundRemovedImageSelection() {
|
|
11368
11366
|
var t, A;
|
|
11369
11367
|
const e = (A = (t = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : t.framePatternData) == null ? void 0 : A.backgroundRemovedAssetKey;
|
|
11370
11368
|
if (e)
|
|
11371
|
-
return
|
|
11369
|
+
return G.getLocalOrFromServer(e);
|
|
11372
11370
|
}
|
|
11373
11371
|
hasBackgroundRemovedImageSelection() {
|
|
11374
11372
|
var e, t;
|
|
@@ -11405,7 +11403,7 @@ class Hi extends X {
|
|
|
11405
11403
|
}
|
|
11406
11404
|
}
|
|
11407
11405
|
export {
|
|
11408
|
-
|
|
11406
|
+
rt as AddonHandle,
|
|
11409
11407
|
qi as ArrayInput,
|
|
11410
11408
|
es as AspectType,
|
|
11411
11409
|
te as AssetNotFoundError,
|
|
@@ -11433,7 +11431,7 @@ export {
|
|
|
11433
11431
|
Ya as FrameService,
|
|
11434
11432
|
Ri as FrameStep,
|
|
11435
11433
|
Hi as FrameStepHandle,
|
|
11436
|
-
|
|
11434
|
+
wt as GlobalPropertyHandle,
|
|
11437
11435
|
ws as GroupCommand,
|
|
11438
11436
|
sn as IllustrationStepHandle,
|
|
11439
11437
|
ke as InformationMessageType,
|
|
@@ -11483,7 +11481,7 @@ export {
|
|
|
11483
11481
|
q as Variant,
|
|
11484
11482
|
fn as WorkflowExperienceEventType,
|
|
11485
11483
|
fe as WorkflowExperienceImpl,
|
|
11486
|
-
|
|
11484
|
+
G as assetService,
|
|
11487
11485
|
Qn as createDesign,
|
|
11488
11486
|
ys as dataUrlFromExternalUrl,
|
|
11489
11487
|
Ke as designService,
|
|
@@ -11511,13 +11509,13 @@ export {
|
|
|
11511
11509
|
ka as moduleStepService,
|
|
11512
11510
|
V as optionService,
|
|
11513
11511
|
Gs as patternImageDataCache,
|
|
11514
|
-
|
|
11512
|
+
Y as persistenceService,
|
|
11515
11513
|
sA as pictureStepService,
|
|
11516
11514
|
oA as questionStepService,
|
|
11517
11515
|
ks as registerFetchImplementation,
|
|
11518
11516
|
bs as registerWindowImplementation,
|
|
11519
11517
|
Js as rehydrateSerializedLayout,
|
|
11520
|
-
|
|
11518
|
+
Ts as setCanvasModule,
|
|
11521
11519
|
le as shapeStepService,
|
|
11522
11520
|
Pa as shortenUrl,
|
|
11523
11521
|
$ as spiffCoreConfiguration,
|