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