@spiffcommerce/core 16.0.0-beta.16 → 16.0.0-beta.17
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 +891 -893
- package/dist/index.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHttpLink as ht, InMemoryCache as Ct, ApolloClient as Qt, from as ut, gql as y } from "@apollo/client/core";
|
|
2
2
|
import { getAttributesFromArrayBuffer as pe, AssetType as re, StepType as D, StepAspectType as O, getFrameData as _A, frameDataCache as mt, UpdateFramePattern as Ie, calculateOffsets as Ae, LayoutElementType as P, generate as v, CreateElementCommand as b, generateSVGWithUnknownColors as De, svgObjectURL as aA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as ce, GetSVGDimensions as pt, patternImageDataCache as ge, fetchAsArrayBuffer as fe, findElement as FA, modifySVGWithElementProperties as It, IllustrationColorCommand as jA, IllustrationCacheCommand as Dt, getFontMetrics as ft, getPatternImageData as VA, FontColorCommand as Ft, FontImageFillCommand as bA, applyTextTransformations as WA, determineCorrectFontSizeAndLines as pA, FontSourceCommand as le, loadFontFromExternalUrl as IA, TextChangeCommand as Mt, FontSizeCommand as yt, createElementNS as Yt, createElement as wA, loadFontFromDataUrl as PA, UpdateWorkflowStateCommand as Be, CommandContext as St, createCanvas as MA, getSvgElement as Fe, LayoutRenderingPurpose as Me, renderPapyrusComponentAsString as ye, loadImage as Ye, getDomParser as Se, fetch as xe, toBase64 as de, getVariant as xt, generateFrameSVG as Nt, getDefaultVariant as UA, domParser as Ne, sanitizeSvgTree as Re, traverse as Rt, xmlSerializer as He, arrayBufferToDataUrl as Ht, loadFontFaceSet as Pt, CreateLayoutCommand as Ut, sortElementsByLayersWithIndex as Gt, AspectType as DA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
|
|
3
|
-
import { AssetType as
|
|
3
|
+
import { AssetType as vs, BringForwardCommand as ks, BringToBackCommand as Js, BringToFrontCommand as bs, CanvasCommand as Ts, CommandContext as Ls, CreateElementCommand as Os, CreateLayoutCommand as zs, DeleteElementCommand as Ks, FontAlignmentCommand as js, FontColorCommand as Vs, FontSizeCommand as Ws, FontSourceCommand as Xs, GroupCommand as qs, LayoutElementFactory as Zs, LayoutElementType as $s, MoveCommand as _s, ResizeCommand as Ai, RotateCommand as ei, SendBackwardsCommand as ti, StepAspectType as ai, StepType as ni, TextChangeCommand as si, UnitOfMeasurement as ii, dataUrlFromExternalUrl as oi, determineCorrectFontSizeAndLines as ri, findElement as ci, frameDataCache as gi, generate as li, generateSVGWithUnknownColors as Bi, getAttributesFromArrayBuffer as di, getAxisAlignedBoundingBox as wi, getFrameData as Ei, getSvgElement as hi, loadFontFromDataUrl as Ci, loadFontFromExternalUrl as Qi, patternImageDataCache as ui, registerFetchImplementation as mi, registerWindowImplementation as pi, rehydrateSerializedLayout as Ii } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as vt } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as kt } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as Pe } from "pith";
|
|
@@ -189,26 +189,26 @@ class Kt {
|
|
|
189
189
|
const A = ht({
|
|
190
190
|
uri: `${SA.getServerUrl()}/graphql`,
|
|
191
191
|
fetch
|
|
192
|
-
}), e = vt(async (
|
|
192
|
+
}), e = vt(async (s, i) => {
|
|
193
193
|
const { headers: o } = i, c = o || {}, r = await zt(), B = i.bearer ?? r.bearer, l = i.partnerId ?? r.partnerId, d = i.activeIntegration ?? r.activeIntegration, E = i.transactionOwnerId ?? r.transactionOwnerId, C = i.customerToken ?? r.customerToken, w = i.applicationKey ?? r.applicationKey, h = i.bundleOwnerId ?? r.bundleOwnerId;
|
|
194
194
|
return B && (c.Authorization = `Bearer ${B}`), l && (c.partnerId = l), d && (c.activeIntegration = d), E && (c.transactionOwnerId = E), C && (c.customerToken = C), w && (c["X-Application-Key"] = w), h && (c.bundleOwnerId = h), {
|
|
195
195
|
headers: c
|
|
196
196
|
};
|
|
197
|
-
}), t = kt(({ operation:
|
|
197
|
+
}), t = kt(({ operation: s, graphQLErrors: i, networkError: o }) => {
|
|
198
198
|
const c = i || [];
|
|
199
|
-
o && console.log("GraphQL Network error"), c.forEach(() => console.log("GraphQL Error: " +
|
|
199
|
+
o && console.log("GraphQL Network error"), c.forEach(() => console.log("GraphQL Error: " + s.operationName));
|
|
200
200
|
});
|
|
201
201
|
function a() {
|
|
202
202
|
return {
|
|
203
|
-
read(
|
|
204
|
-
return
|
|
203
|
+
read(s = null) {
|
|
204
|
+
return s;
|
|
205
205
|
},
|
|
206
|
-
merge(
|
|
207
|
-
return i ||
|
|
206
|
+
merge(s, i) {
|
|
207
|
+
return i || s || null;
|
|
208
208
|
}
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
|
-
const
|
|
211
|
+
const n = new Ct({
|
|
212
212
|
addTypename: !1,
|
|
213
213
|
typePolicies: {
|
|
214
214
|
Transaction: {
|
|
@@ -246,7 +246,7 @@ class Kt {
|
|
|
246
246
|
});
|
|
247
247
|
return new Qt({
|
|
248
248
|
link: ut([t, e, A]),
|
|
249
|
-
cache:
|
|
249
|
+
cache: n,
|
|
250
250
|
name: "Core"
|
|
251
251
|
});
|
|
252
252
|
}
|
|
@@ -357,8 +357,8 @@ const N = new Kt(), jt = y`
|
|
|
357
357
|
ids: g
|
|
358
358
|
}
|
|
359
359
|
})).data.materials, Zt = async (g, A, e, t, a) => {
|
|
360
|
-
var
|
|
361
|
-
return (
|
|
360
|
+
var s;
|
|
361
|
+
return (s = (await N.getShadowGraphqlClient().mutate({
|
|
362
362
|
mutation: Xt,
|
|
363
363
|
errorPolicy: "all",
|
|
364
364
|
fetchPolicy: "no-cache",
|
|
@@ -369,16 +369,16 @@ const N = new Kt(), jt = y`
|
|
|
369
369
|
anonymous: t,
|
|
370
370
|
temporary: a
|
|
371
371
|
}
|
|
372
|
-
})).data) == null ? void 0 :
|
|
372
|
+
})).data) == null ? void 0 : s.assetCreate;
|
|
373
373
|
};
|
|
374
374
|
class $t {
|
|
375
375
|
constructor() {
|
|
376
376
|
this.cache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (A) => {
|
|
377
|
-
const e = await A.arrayBuffer(), t = await pe(e), a = (
|
|
378
|
-
const i = atob(
|
|
377
|
+
const e = await A.arrayBuffer(), t = await pe(e), a = (n, s) => {
|
|
378
|
+
const i = atob(n.split(",")[1]), o = [];
|
|
379
379
|
for (let c = 0; c < i.length; c++)
|
|
380
380
|
o.push(i.charCodeAt(c));
|
|
381
|
-
return new Blob([new Uint8Array(o)], { type:
|
|
381
|
+
return new Blob([new Uint8Array(o)], { type: s });
|
|
382
382
|
};
|
|
383
383
|
return {
|
|
384
384
|
name: A.name.substring(A.name.lastIndexOf("/") + 1),
|
|
@@ -429,31 +429,31 @@ class $t {
|
|
|
429
429
|
* Upload a user asset to the server. Using callbacks to notify important events.
|
|
430
430
|
* The asset will be stored via the persistence service for future access, if available.
|
|
431
431
|
*/
|
|
432
|
-
async uploadAssetWithProgress(A, e, t, a,
|
|
433
|
-
const
|
|
434
|
-
if (!
|
|
432
|
+
async uploadAssetWithProgress(A, e, t, a, n) {
|
|
433
|
+
const s = await this.dispatchCreateAssetRequest(A, e, a, n);
|
|
434
|
+
if (!s)
|
|
435
435
|
throw new Error("Failed to create asset.");
|
|
436
436
|
return await new Promise((i, o) => {
|
|
437
437
|
const c = new XMLHttpRequest();
|
|
438
|
-
c.open("PUT",
|
|
438
|
+
c.open("PUT", s.assetResponse.uploadUrl, !0), c.setRequestHeader("Content-Type", s.mimeType), c.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), c.upload.onprogress = (r) => {
|
|
439
439
|
r.lengthComputable && t(r.loaded * 100 / r.total);
|
|
440
440
|
}, c.onload = () => {
|
|
441
|
-
const r =
|
|
442
|
-
LA.add(
|
|
441
|
+
const r = s.assetResponse.asset;
|
|
442
|
+
LA.add(s.assetResponse.asset), i(r);
|
|
443
443
|
}, c.onerror = o, c.send(A.blob);
|
|
444
|
-
}),
|
|
444
|
+
}), s.assetResponse.asset;
|
|
445
445
|
}
|
|
446
446
|
async uploadFile(A, e) {
|
|
447
447
|
const t = !(A.type === "image/svg+xml" || A.type === "application/pdf"), a = t ? re.Image : re.Illustration;
|
|
448
448
|
if (t) {
|
|
449
|
-
const
|
|
450
|
-
return await this.uploadAssetWithProgress(
|
|
449
|
+
const n = await this.loadImageAsFileInfo(A);
|
|
450
|
+
return await this.uploadAssetWithProgress(n, a, e, !0);
|
|
451
451
|
} else {
|
|
452
|
-
const
|
|
452
|
+
const n = {
|
|
453
453
|
name: A.name,
|
|
454
454
|
blob: new Blob([A], { type: A.type })
|
|
455
455
|
};
|
|
456
|
-
return await T.uploadAssetWithProgress(
|
|
456
|
+
return await T.uploadAssetWithProgress(n, a, e, !0);
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
removePersistedAsset(A) {
|
|
@@ -468,11 +468,11 @@ class $t {
|
|
|
468
468
|
* @param assetType The type of asset we're expecting to upload
|
|
469
469
|
*/
|
|
470
470
|
async dispatchCreateAssetRequest(A, e, t, a) {
|
|
471
|
-
const
|
|
472
|
-
if (
|
|
471
|
+
const n = A.blob.type ? A.blob.type : this.guessMIME(A.name), s = await Zt(A.name, e, n, t, a);
|
|
472
|
+
if (s)
|
|
473
473
|
return {
|
|
474
|
-
assetResponse:
|
|
475
|
-
mimeType:
|
|
474
|
+
assetResponse: s,
|
|
475
|
+
mimeType: n
|
|
476
476
|
};
|
|
477
477
|
}
|
|
478
478
|
guessMIME(A) {
|
|
@@ -489,7 +489,7 @@ class $t {
|
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
491
|
}
|
|
492
|
-
const
|
|
492
|
+
const nA = "persistentAssets";
|
|
493
493
|
class LA {
|
|
494
494
|
/**
|
|
495
495
|
* Add a new asset to persistence
|
|
@@ -502,27 +502,27 @@ class LA {
|
|
|
502
502
|
}
|
|
503
503
|
const e = /* @__PURE__ */ new Map();
|
|
504
504
|
e.set(A.key || "", A.fileLink);
|
|
505
|
-
const t = x.getMap(
|
|
506
|
-
t && t.forEach((a,
|
|
507
|
-
e.set(
|
|
508
|
-
}), x.setMap(
|
|
505
|
+
const t = x.getMap(nA);
|
|
506
|
+
t && t.forEach((a, n) => {
|
|
507
|
+
e.set(n, a);
|
|
508
|
+
}), x.setMap(nA, e);
|
|
509
509
|
}
|
|
510
510
|
/**
|
|
511
511
|
* Remove an existing asset from persistence. Noop if the asset doesn't exist.
|
|
512
512
|
* @param assetKey The key to remove.
|
|
513
513
|
*/
|
|
514
514
|
static remove(A) {
|
|
515
|
-
const e = x.getMap(
|
|
515
|
+
const e = x.getMap(nA);
|
|
516
516
|
if (!e)
|
|
517
517
|
return;
|
|
518
518
|
const t = Array.from(e.entries()).find((a) => a[0] === A);
|
|
519
|
-
t && (e.delete(t[0]), x.setMap(
|
|
519
|
+
t && (e.delete(t[0]), x.setMap(nA, e));
|
|
520
520
|
}
|
|
521
521
|
/**
|
|
522
522
|
* Get a list of all persisted assets.
|
|
523
523
|
*/
|
|
524
524
|
static list() {
|
|
525
|
-
const A = x.getMap(
|
|
525
|
+
const A = x.getMap(nA);
|
|
526
526
|
return A ? Array.from(A.entries()).map((e) => ({ assetKey: e[0], src: e[1] })) : [];
|
|
527
527
|
}
|
|
528
528
|
}
|
|
@@ -606,20 +606,20 @@ const BA = new _t(), ze = y`
|
|
|
606
606
|
});
|
|
607
607
|
return A.data.options.forEach((e) => {
|
|
608
608
|
var t, a;
|
|
609
|
-
(t = e.defaultVariant) != null && t.asset && T.cacheAsset(e.defaultVariant.asset), e.colorProfile && T.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((
|
|
610
|
-
|
|
609
|
+
(t = e.defaultVariant) != null && t.asset && T.cacheAsset(e.defaultVariant.asset), e.colorProfile && T.cacheAsset(e.colorProfile), (a = e.variants) == null || a.forEach((n) => {
|
|
610
|
+
n.asset && T.cacheAsset(n.asset), n.displayImage && T.cacheAsset(n.displayImage), n.thumbnail && T.cacheAsset(n.thumbnail), n.material && T.cacheMaterial(n.material);
|
|
611
611
|
});
|
|
612
612
|
}), A.data.options;
|
|
613
613
|
}, ta = async (g, A) => (await A).find((t) => t.id === g), aa = async (g) => {
|
|
614
|
-
const A = g.map((
|
|
614
|
+
const A = g.map((s) => BA.get({ id: s })), e = g.filter((s, i) => A[i] === void 0);
|
|
615
615
|
if (e.length === 0)
|
|
616
616
|
return Promise.all(A);
|
|
617
617
|
const t = ea(e), a = e.map(
|
|
618
|
-
(
|
|
619
|
-
),
|
|
620
|
-
return await Promise.all(
|
|
618
|
+
(s) => BA.set({ id: s }, ta(s, t))
|
|
619
|
+
), n = A.filter((s) => s !== void 0);
|
|
620
|
+
return await Promise.all(n.concat(a));
|
|
621
621
|
};
|
|
622
|
-
class
|
|
622
|
+
class na {
|
|
623
623
|
constructor() {
|
|
624
624
|
this.getDisplayImageSource = (A) => {
|
|
625
625
|
var e;
|
|
@@ -646,16 +646,16 @@ class sa {
|
|
|
646
646
|
})();
|
|
647
647
|
}
|
|
648
648
|
async getAssetTileImageForVariant(A) {
|
|
649
|
-
var a,
|
|
649
|
+
var a, n;
|
|
650
650
|
const e = A.thumbnail;
|
|
651
651
|
if (e) {
|
|
652
|
-
const
|
|
653
|
-
return (
|
|
652
|
+
const s = (a = e.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail"), i = e.fileLink;
|
|
653
|
+
return (s == null ? void 0 : s.link) || i;
|
|
654
654
|
}
|
|
655
655
|
const t = A.asset;
|
|
656
656
|
if (t) {
|
|
657
|
-
const
|
|
658
|
-
return (
|
|
657
|
+
const s = (n = t.versions) == null ? void 0 : n.find((o) => o.name === "thumbnail"), i = t.fileLink;
|
|
658
|
+
return (s == null ? void 0 : s.link) || i;
|
|
659
659
|
}
|
|
660
660
|
return A.material ? A.material.id : "";
|
|
661
661
|
}
|
|
@@ -672,8 +672,8 @@ class sa {
|
|
|
672
672
|
}
|
|
673
673
|
}
|
|
674
674
|
}
|
|
675
|
-
const z = new
|
|
676
|
-
var
|
|
675
|
+
const z = new na();
|
|
676
|
+
var sa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(sa || {}), ia = /* @__PURE__ */ ((g) => (g.PerVariation = "PerVariation", g.BaseProduct = "BaseProduct", g))(ia || {}), oa = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(oa || {}), ra = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(ra || {}), xA = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(xA || {});
|
|
677
677
|
const he = y`
|
|
678
678
|
mutation CreateTransaction(
|
|
679
679
|
$integrationProductId: String
|
|
@@ -1118,12 +1118,12 @@ const Ke = y`
|
|
|
1118
1118
|
});
|
|
1119
1119
|
break;
|
|
1120
1120
|
case D.Illustration:
|
|
1121
|
-
const
|
|
1122
|
-
|
|
1121
|
+
const n = e.data;
|
|
1122
|
+
n.varySelection && e.option && A.push({
|
|
1123
1123
|
stepName: e.stepName,
|
|
1124
1124
|
stepType: e.type,
|
|
1125
1125
|
aspectType: O.Selection
|
|
1126
|
-
}),
|
|
1126
|
+
}), n.varyColors && n.colorPickerEnabled && A.push({
|
|
1127
1127
|
stepName: e.stepName,
|
|
1128
1128
|
stepType: e.type,
|
|
1129
1129
|
aspectType: O.Colors
|
|
@@ -1182,7 +1182,7 @@ const Ke = y`
|
|
|
1182
1182
|
break;
|
|
1183
1183
|
}
|
|
1184
1184
|
return A;
|
|
1185
|
-
},
|
|
1185
|
+
}, sA = [D.SilentIllustration, D.ProductOverlay], wa = async (g, A, e) => {
|
|
1186
1186
|
var a;
|
|
1187
1187
|
const t = [];
|
|
1188
1188
|
g.introduction && t.push({
|
|
@@ -1200,79 +1200,79 @@ const Ke = y`
|
|
|
1200
1200
|
],
|
|
1201
1201
|
silentSteps: []
|
|
1202
1202
|
});
|
|
1203
|
-
for (const
|
|
1203
|
+
for (const n of g.steps) {
|
|
1204
1204
|
if (A.bulkScene) {
|
|
1205
1205
|
let i = !1;
|
|
1206
|
-
switch (
|
|
1206
|
+
switch (n.type) {
|
|
1207
1207
|
case D.DigitalContent:
|
|
1208
|
-
|
|
1208
|
+
n.data.varyUpload && (i = !0);
|
|
1209
1209
|
break;
|
|
1210
1210
|
case D.Frame:
|
|
1211
1211
|
{
|
|
1212
|
-
const o =
|
|
1213
|
-
o.varyUpload && (o.varySelection || !
|
|
1212
|
+
const o = n.data;
|
|
1213
|
+
o.varyUpload && (o.varySelection || !n.option) && (i = !0);
|
|
1214
1214
|
}
|
|
1215
1215
|
break;
|
|
1216
1216
|
case D.Illustration:
|
|
1217
1217
|
{
|
|
1218
|
-
const o =
|
|
1219
|
-
(o.varySelection || !
|
|
1218
|
+
const o = n.data;
|
|
1219
|
+
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
|
|
1220
1220
|
}
|
|
1221
1221
|
break;
|
|
1222
1222
|
case D.Material:
|
|
1223
|
-
|
|
1223
|
+
n.data.varySelection && (i = !0);
|
|
1224
1224
|
break;
|
|
1225
1225
|
case D.Model:
|
|
1226
|
-
|
|
1226
|
+
n.data.varySelection && (i = !0);
|
|
1227
1227
|
break;
|
|
1228
1228
|
case D.Picture:
|
|
1229
|
-
|
|
1229
|
+
n.data.varySelection && (i = !0);
|
|
1230
1230
|
break;
|
|
1231
1231
|
case D.Question:
|
|
1232
|
-
|
|
1232
|
+
n.data.varySelections && (i = !0);
|
|
1233
1233
|
break;
|
|
1234
1234
|
case D.Shape:
|
|
1235
|
-
|
|
1235
|
+
n.data.varySelection && (i = !0);
|
|
1236
1236
|
break;
|
|
1237
1237
|
case D.Text:
|
|
1238
1238
|
{
|
|
1239
|
-
const o =
|
|
1240
|
-
(o.varySelection || !
|
|
1239
|
+
const o = n.data;
|
|
1240
|
+
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (i = !0);
|
|
1241
1241
|
}
|
|
1242
1242
|
break;
|
|
1243
1243
|
}
|
|
1244
1244
|
if (i)
|
|
1245
1245
|
continue;
|
|
1246
1246
|
}
|
|
1247
|
-
const
|
|
1248
|
-
if (!
|
|
1247
|
+
const s = Ea(n.stepName, g.stepGroups);
|
|
1248
|
+
if (!s)
|
|
1249
1249
|
t.push({
|
|
1250
|
-
name:
|
|
1251
|
-
title:
|
|
1252
|
-
renderableSteps:
|
|
1253
|
-
silentSteps:
|
|
1250
|
+
name: n.stepName,
|
|
1251
|
+
title: n.stepTitle,
|
|
1252
|
+
renderableSteps: sA.includes(n.type) ? [] : [n],
|
|
1253
|
+
silentSteps: sA.includes(n.type) ? [n] : []
|
|
1254
1254
|
});
|
|
1255
1255
|
else {
|
|
1256
|
-
const i = t.find((o) => o.name ===
|
|
1257
|
-
i ?
|
|
1258
|
-
name:
|
|
1259
|
-
title:
|
|
1260
|
-
renderableSteps:
|
|
1261
|
-
silentSteps:
|
|
1256
|
+
const i = t.find((o) => o.name === s.name);
|
|
1257
|
+
i ? sA.includes(n.type) ? i.silentSteps.push(n) : i.renderableSteps.push(n) : t.push({
|
|
1258
|
+
name: s.name,
|
|
1259
|
+
title: s.name,
|
|
1260
|
+
renderableSteps: sA.includes(n.type) ? [] : [n],
|
|
1261
|
+
silentSteps: sA.includes(n.type) ? [n] : []
|
|
1262
1262
|
});
|
|
1263
1263
|
}
|
|
1264
1264
|
}
|
|
1265
1265
|
if (A.bulkScene) {
|
|
1266
|
-
const
|
|
1266
|
+
const n = (a = e == null ? void 0 : e.product) == null ? void 0 : a.bulkConfiguration;
|
|
1267
1267
|
t.push({
|
|
1268
1268
|
name: "Bulk",
|
|
1269
|
-
title: (
|
|
1269
|
+
title: (n == null ? void 0 : n.sceneTitle) ?? A.bulkSceneTitle,
|
|
1270
1270
|
renderableSteps: [
|
|
1271
1271
|
{
|
|
1272
1272
|
type: D.Bulk,
|
|
1273
1273
|
stepName: "Bulk",
|
|
1274
|
-
stepTitle: (
|
|
1275
|
-
helpText:
|
|
1274
|
+
stepTitle: (n == null ? void 0 : n.stepTitle) ?? A.bulkSceneTitle,
|
|
1275
|
+
helpText: n == null ? void 0 : n.helpText,
|
|
1276
1276
|
data: {
|
|
1277
1277
|
aspects: je(g)
|
|
1278
1278
|
},
|
|
@@ -1305,7 +1305,7 @@ const Ke = y`
|
|
|
1305
1305
|
if (t && t.selectedVariants) {
|
|
1306
1306
|
const a = t.selectedVariants;
|
|
1307
1307
|
return e.requiredVariantSelections.some(
|
|
1308
|
-
(
|
|
1308
|
+
(n) => a.find((s) => s.id === n) !== void 0
|
|
1309
1309
|
);
|
|
1310
1310
|
}
|
|
1311
1311
|
return !1;
|
|
@@ -1318,20 +1318,20 @@ const Ke = y`
|
|
|
1318
1318
|
};
|
|
1319
1319
|
return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
|
|
1320
1320
|
}, rA = (g, A) => g.map((e) => ha(e, A)).filter((e) => e !== null), Ca = async (g, A) => {
|
|
1321
|
-
var
|
|
1321
|
+
var n;
|
|
1322
1322
|
const e = rA(g, A), t = [];
|
|
1323
|
-
for (const
|
|
1324
|
-
for (const i of
|
|
1323
|
+
for (const s of e)
|
|
1324
|
+
for (const i of s.renderableSteps)
|
|
1325
1325
|
if (i.type === D.Model || i.type === D.Material || i.type === D.Picture || i.type === D.Shape) {
|
|
1326
|
-
const o = (((
|
|
1326
|
+
const o = (((n = i.option) == null ? void 0 : n.variants) || []).length;
|
|
1327
1327
|
o && o > 1 && t.push(i.stepName);
|
|
1328
1328
|
} else
|
|
1329
1329
|
t.push(i.stepName);
|
|
1330
|
-
const a = e.filter((
|
|
1330
|
+
const a = e.filter((s) => s.renderableSteps.filter(
|
|
1331
1331
|
(o) => t.includes(o.stepName)
|
|
1332
1332
|
).length > 0);
|
|
1333
|
-
for (const
|
|
1334
|
-
|
|
1333
|
+
for (const s of a)
|
|
1334
|
+
s.renderableSteps = s.renderableSteps.filter(
|
|
1335
1335
|
(i) => t.includes(i.stepName)
|
|
1336
1336
|
);
|
|
1337
1337
|
return a;
|
|
@@ -1401,15 +1401,15 @@ class We {
|
|
|
1401
1401
|
}
|
|
1402
1402
|
}
|
|
1403
1403
|
function Qa(g, A, e, t) {
|
|
1404
|
-
const a = e.width * g.zoom,
|
|
1404
|
+
const a = e.width * g.zoom, n = e.height * g.zoom;
|
|
1405
1405
|
if (t) {
|
|
1406
1406
|
const i = g, o = Math.max(A.width / e.width, A.height / e.height);
|
|
1407
1407
|
i.zoom = Math.max(o, g.zoom);
|
|
1408
1408
|
const c = e.width * i.zoom, r = e.height * i.zoom;
|
|
1409
1409
|
return i.x = hA(g.x, A.width - c, 0), i.y = hA(g.y, A.height - r, 0), i;
|
|
1410
1410
|
}
|
|
1411
|
-
const
|
|
1412
|
-
return
|
|
1411
|
+
const s = g;
|
|
1412
|
+
return s.x = hA(s.x, -a, A.width), s.y = hA(s.y, -n, A.height), s;
|
|
1413
1413
|
}
|
|
1414
1414
|
function hA(g, A, e) {
|
|
1415
1415
|
return Math.min(Math.max(g, A), e);
|
|
@@ -1429,13 +1429,13 @@ class ua {
|
|
|
1429
1429
|
if (t) {
|
|
1430
1430
|
const a = t;
|
|
1431
1431
|
if (a.currentFrameSources) {
|
|
1432
|
-
let
|
|
1433
|
-
for (let
|
|
1434
|
-
const i = a.currentFrameSources[
|
|
1435
|
-
Ge(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[
|
|
1432
|
+
let n = !1;
|
|
1433
|
+
for (let s = 0; s < a.currentFrameSources.length; s++) {
|
|
1434
|
+
const i = a.currentFrameSources[s], o = await _A(i);
|
|
1435
|
+
Ge(o, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[s] = o, n = !0);
|
|
1436
1436
|
}
|
|
1437
|
-
|
|
1438
|
-
(
|
|
1437
|
+
n && (this.onFrameDataChangeListeners.forEach(
|
|
1438
|
+
(s) => s(this.frameData)
|
|
1439
1439
|
), this.frameData && this.imageData && (this.recalculateOffsets(this.imageData), this.updateOffsets(this.offsets), this.recalculateZoomLimits(this.imageData, this.frameData)));
|
|
1440
1440
|
}
|
|
1441
1441
|
}
|
|
@@ -1500,7 +1500,7 @@ class ua {
|
|
|
1500
1500
|
setZoom(A, e, t, a) {
|
|
1501
1501
|
if (this.imageData && this.offsets && this.frameData) {
|
|
1502
1502
|
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
|
|
1503
|
-
const
|
|
1503
|
+
const n = this.frameData.map((s, i) => {
|
|
1504
1504
|
const o = (e[i] - this.offsets[i].x) / this.offsets[i].zoom, c = (t[i] - this.offsets[i].y) / this.offsets[i].zoom, r = e[i] - o * A[i], B = t[i] - c * A[i];
|
|
1505
1505
|
return {
|
|
1506
1506
|
x: r,
|
|
@@ -1508,7 +1508,7 @@ class ua {
|
|
|
1508
1508
|
zoom: this.imageData.width * A[i] / this.imageData.width
|
|
1509
1509
|
};
|
|
1510
1510
|
});
|
|
1511
|
-
this.updateOffsets(
|
|
1511
|
+
this.updateOffsets(n, a), this.onZoomChangeListeners.forEach((s) => s(A));
|
|
1512
1512
|
}
|
|
1513
1513
|
}
|
|
1514
1514
|
/**
|
|
@@ -1532,12 +1532,12 @@ class ua {
|
|
|
1532
1532
|
throw new J(
|
|
1533
1533
|
"Frame data and offsets are not the same length. This is a bug. Please report it."
|
|
1534
1534
|
);
|
|
1535
|
-
if (!this.offsets.some((
|
|
1535
|
+
if (!this.offsets.some((s, i) => !(A[i].x === s.x && A[i].y === s.y && A[i].zoom === s.zoom)) && !t) {
|
|
1536
1536
|
e && e();
|
|
1537
1537
|
return;
|
|
1538
1538
|
}
|
|
1539
|
-
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((
|
|
1540
|
-
this.offsets[i] = Qa(A[i],
|
|
1539
|
+
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((s, i) => {
|
|
1540
|
+
this.offsets[i] = Qa(A[i], s, this.imageData, this.forceImageCover);
|
|
1541
1541
|
}), this._debouncedUpdateFrameOffsets(this.offsets, a, this.frameData, this.targetElements, e);
|
|
1542
1542
|
}
|
|
1543
1543
|
// Allows users of the frame service to listen to frame data changes.
|
|
@@ -1559,17 +1559,17 @@ class ua {
|
|
|
1559
1559
|
* @param targetElements A list of elements that need updating, by ID
|
|
1560
1560
|
* @param onComplete A callback when the operation is completed.
|
|
1561
1561
|
*/
|
|
1562
|
-
updateFrameOffsets(A, e, t, a,
|
|
1562
|
+
updateFrameOffsets(A, e, t, a, n) {
|
|
1563
1563
|
if (!t || t.length === 0 || t.some((i) => !i))
|
|
1564
1564
|
throw new J("Frame data not set. This is a bug");
|
|
1565
1565
|
if (!this.workflowManager)
|
|
1566
1566
|
throw new J("No workflow manager set, cannot update offsets.");
|
|
1567
|
-
const
|
|
1567
|
+
const s = this.workflowManager.getCommandDispatcher();
|
|
1568
1568
|
a.forEach((i, o) => {
|
|
1569
|
-
|
|
1569
|
+
s(new Ie(i, e, A[o]));
|
|
1570
1570
|
}), this.stepName && this.workflowManager.updateStorage(this.stepName, {
|
|
1571
1571
|
frameOffsetsList: A
|
|
1572
|
-
}),
|
|
1572
|
+
}), n && n();
|
|
1573
1573
|
}
|
|
1574
1574
|
/**
|
|
1575
1575
|
* Determines limitations of zoom based on relative size of image and frame.
|
|
@@ -1578,8 +1578,8 @@ class ua {
|
|
|
1578
1578
|
*/
|
|
1579
1579
|
recalculateZoomLimits(A, e) {
|
|
1580
1580
|
(this.minZoomScale.length !== e.length || this.maxZoomScale.length !== e.length) && (this.minZoomScale = new Array(e.length), this.maxZoomScale = new Array(e.length)), e.forEach((t, a) => {
|
|
1581
|
-
const
|
|
1582
|
-
this.forceImageCover ? (this.minZoomScale[a] =
|
|
1581
|
+
const n = Math.max(t.width / A.width, t.height / A.height);
|
|
1582
|
+
this.forceImageCover ? (this.minZoomScale[a] = n, this.maxZoomScale[a] = n * 2.5) : (this.minZoomScale[a] = n / 10, this.maxZoomScale[a] = n * 2.5);
|
|
1583
1583
|
});
|
|
1584
1584
|
}
|
|
1585
1585
|
recalculateOffsets(A) {
|
|
@@ -1592,13 +1592,13 @@ class Ce {
|
|
|
1592
1592
|
constructor(A, e, t) {
|
|
1593
1593
|
this.processRegion = async (a) => {
|
|
1594
1594
|
var o, c, r, B;
|
|
1595
|
-
const
|
|
1596
|
-
if (!
|
|
1595
|
+
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1596
|
+
if (!n)
|
|
1597
1597
|
throw new L(a);
|
|
1598
|
-
let
|
|
1598
|
+
let s = "";
|
|
1599
1599
|
if (this.configuration.type === D.ProductOverlay) {
|
|
1600
1600
|
let l = "";
|
|
1601
|
-
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl),
|
|
1601
|
+
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
|
|
1602
1602
|
throw new YA(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1603
1603
|
}
|
|
1604
1604
|
const i = this.evaluateAssetType();
|
|
@@ -1628,10 +1628,10 @@ class Ce {
|
|
|
1628
1628
|
id: d.id,
|
|
1629
1629
|
region: a
|
|
1630
1630
|
},
|
|
1631
|
-
command: new b(d,
|
|
1631
|
+
command: new b(d, n)
|
|
1632
1632
|
};
|
|
1633
1633
|
} else {
|
|
1634
|
-
const l = this.configuration.type === D.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink :
|
|
1634
|
+
const l = this.configuration.type === D.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : s, E = await De(await (async () => new Promise((w, h) => {
|
|
1635
1635
|
if (!l) {
|
|
1636
1636
|
h("Undefined vector silent step source");
|
|
1637
1637
|
return;
|
|
@@ -1663,7 +1663,7 @@ class Ce {
|
|
|
1663
1663
|
id: C.id,
|
|
1664
1664
|
region: a
|
|
1665
1665
|
},
|
|
1666
|
-
command: new b(C,
|
|
1666
|
+
command: new b(C, n)
|
|
1667
1667
|
};
|
|
1668
1668
|
}
|
|
1669
1669
|
}, this.configuration = A, this.layouts = e, this.product = t || void 0;
|
|
@@ -1722,8 +1722,8 @@ class Xe {
|
|
|
1722
1722
|
* @param interval The number of milliseconds to wait between each poll.
|
|
1723
1723
|
* @param maxAttempts The maximum amount of times to check the condition.
|
|
1724
1724
|
*/
|
|
1725
|
-
constructor(A, e, t, a = 3e3,
|
|
1726
|
-
this.onSuccess = e, this.onFailure = t, this.predicate = A, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts =
|
|
1725
|
+
constructor(A, e, t, a = 3e3, n = 10) {
|
|
1726
|
+
this.onSuccess = e, this.onFailure = t, this.predicate = A, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts = n, this.poll();
|
|
1727
1727
|
}
|
|
1728
1728
|
}
|
|
1729
1729
|
class pa {
|
|
@@ -1744,7 +1744,7 @@ class pa {
|
|
|
1744
1744
|
});
|
|
1745
1745
|
});
|
|
1746
1746
|
}
|
|
1747
|
-
async regenerateQRCode(A, e, t, a,
|
|
1747
|
+
async regenerateQRCode(A, e, t, a, n, s, i, o, c) {
|
|
1748
1748
|
if (!e && t !== "" && a === "") {
|
|
1749
1749
|
const r = async () => {
|
|
1750
1750
|
var u, p;
|
|
@@ -1770,17 +1770,17 @@ class pa {
|
|
|
1770
1770
|
);
|
|
1771
1771
|
});
|
|
1772
1772
|
A.forEach((Q) => o(new $(Q.id)));
|
|
1773
|
-
const l =
|
|
1773
|
+
const l = s.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + s.data.baseUrl);
|
|
1774
1774
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1775
1775
|
const E = d.toString();
|
|
1776
1776
|
if (E.length >= 2e3)
|
|
1777
1777
|
throw new vA("Cannot create QR code, URL too long.");
|
|
1778
1778
|
const C = await ma(E);
|
|
1779
|
-
if (i(C), !
|
|
1780
|
-
throw new YA(
|
|
1781
|
-
const w = await this.regionElements(
|
|
1782
|
-
h && (h.command &&
|
|
1783
|
-
|
|
1779
|
+
if (i(C), !s.data || !s.data.regions)
|
|
1780
|
+
throw new YA(s, "Missing regions.");
|
|
1781
|
+
const w = await this.regionElements(s), h = await this.command(C, w, n, s.stepName);
|
|
1782
|
+
h && (h.command && n.getCommandDispatcher()(h.command), h.followup && await h.followup()), await n.setSelectionsAndElements(s.stepName, [], w, async () => {
|
|
1783
|
+
n.updateStorage(s.stepName, {
|
|
1784
1784
|
videoShortUrl: C,
|
|
1785
1785
|
videoUrl: a
|
|
1786
1786
|
}), c(!1);
|
|
@@ -1793,8 +1793,8 @@ class pa {
|
|
|
1793
1793
|
return A.data.regions.map(e);
|
|
1794
1794
|
}
|
|
1795
1795
|
async command(A, e, t, a) {
|
|
1796
|
-
const
|
|
1797
|
-
const r = c.region, B =
|
|
1796
|
+
const n = t.getLayouts(), i = `data:image/svg+xml;base64,${btoa(await ve(A, { type: "svg" }))}`, o = e.map((c) => {
|
|
1797
|
+
const r = c.region, B = n.find((l) => l.panelId === (r == null ? void 0 : r.panelId));
|
|
1798
1798
|
if (!B && r)
|
|
1799
1799
|
throw new L(r);
|
|
1800
1800
|
if (B && !r)
|
|
@@ -1840,10 +1840,10 @@ class Da {
|
|
|
1840
1840
|
if (t)
|
|
1841
1841
|
return await this.reload(A, e, t), null;
|
|
1842
1842
|
if (e.setMandatoryFulfilled(A.stepName, !1), e.markStepsAsInitialised([A.stepName]), A.option && A.option.variants && A.option.variants.length > 0) {
|
|
1843
|
-
const a = A.option,
|
|
1844
|
-
return
|
|
1843
|
+
const a = A.option, n = z.getDefaultVariant(a);
|
|
1844
|
+
return n ? this.selectVariantCommand(
|
|
1845
1845
|
A,
|
|
1846
|
-
|
|
1846
|
+
n,
|
|
1847
1847
|
[],
|
|
1848
1848
|
e,
|
|
1849
1849
|
void 0,
|
|
@@ -1919,12 +1919,12 @@ class Da {
|
|
|
1919
1919
|
new Xe(
|
|
1920
1920
|
async () => {
|
|
1921
1921
|
var o;
|
|
1922
|
-
const
|
|
1923
|
-
return
|
|
1922
|
+
const s = (o = (await T.getLocalOrFromServer(e.key || "")).versions) == null ? void 0 : o.find((c) => c.name === "svg");
|
|
1923
|
+
return s ? (await fetch(s.link)).status === 200 : !1;
|
|
1924
1924
|
},
|
|
1925
1925
|
() => {
|
|
1926
|
-
T.getLocalOrFromServer(e.key || "").then((
|
|
1927
|
-
this.loadPatternFromAsset(
|
|
1926
|
+
T.getLocalOrFromServer(e.key || "").then((n) => {
|
|
1927
|
+
this.loadPatternFromAsset(n, A, t);
|
|
1928
1928
|
});
|
|
1929
1929
|
},
|
|
1930
1930
|
() => {
|
|
@@ -1933,15 +1933,15 @@ class Da {
|
|
|
1933
1933
|
)
|
|
1934
1934
|
) : this.loadPatternFromAsset(e, A, t);
|
|
1935
1935
|
}
|
|
1936
|
-
async selectVariant(A, e, t, a,
|
|
1937
|
-
const
|
|
1936
|
+
async selectVariant(A, e, t, a, n) {
|
|
1937
|
+
const s = await this.selectVariantCommand(
|
|
1938
1938
|
A,
|
|
1939
1939
|
e,
|
|
1940
1940
|
t,
|
|
1941
1941
|
a,
|
|
1942
|
-
|
|
1942
|
+
n
|
|
1943
1943
|
);
|
|
1944
|
-
|
|
1944
|
+
s && (s.command && a.getCommandDispatcher()(s.command), s.followup && await s.followup());
|
|
1945
1945
|
}
|
|
1946
1946
|
getCreateElementCommand(A, e, t, a) {
|
|
1947
1947
|
return new b(
|
|
@@ -1974,24 +1974,24 @@ class Da {
|
|
|
1974
1974
|
}
|
|
1975
1975
|
async loadPatternFromString(A, e) {
|
|
1976
1976
|
if (A.endsWith("svg")) {
|
|
1977
|
-
const t = await pt(A), a = t.width,
|
|
1977
|
+
const t = await pt(A), a = t.width, n = t.height, s = {
|
|
1978
1978
|
src: A,
|
|
1979
1979
|
width: a,
|
|
1980
|
-
height:
|
|
1981
|
-
aspect: a /
|
|
1980
|
+
height: n,
|
|
1981
|
+
aspect: a / n
|
|
1982
1982
|
};
|
|
1983
|
-
ge.set(A,
|
|
1983
|
+
ge.set(A, s), e.setPatternData(s);
|
|
1984
1984
|
} else {
|
|
1985
|
-
const t = await fe(A), a = await pe(t),
|
|
1985
|
+
const t = await fe(A), a = await pe(t), n = {
|
|
1986
1986
|
src: A,
|
|
1987
1987
|
width: a.width,
|
|
1988
1988
|
height: a.height,
|
|
1989
1989
|
aspect: a.width / a.height
|
|
1990
1990
|
};
|
|
1991
|
-
ge.set(A,
|
|
1991
|
+
ge.set(A, n), e.setPatternData(n);
|
|
1992
1992
|
}
|
|
1993
1993
|
}
|
|
1994
|
-
async selectVariantCommand(A, e, t, a,
|
|
1994
|
+
async selectVariantCommand(A, e, t, a, n, s) {
|
|
1995
1995
|
var l;
|
|
1996
1996
|
const i = (l = a.getStepSpecificServices(A.stepName)) == null ? void 0 : l.frameService;
|
|
1997
1997
|
if (!i)
|
|
@@ -1999,7 +1999,7 @@ class Da {
|
|
|
1999
1999
|
const o = await Promise.all(
|
|
2000
2000
|
A.data.regions.map((d) => this.frameSourceSvg(e, d))
|
|
2001
2001
|
);
|
|
2002
|
-
|
|
2002
|
+
n && n(!0);
|
|
2003
2003
|
const c = await Promise.all(
|
|
2004
2004
|
A.data.regions.map(async (d, E) => {
|
|
2005
2005
|
const C = await _A(o[E]), w = i.getImageData(), h = t.map((I) => new $(I.id)), Q = w ? Ae(w, C) : void 0, m = w ? {
|
|
@@ -2036,19 +2036,19 @@ class Da {
|
|
|
2036
2036
|
return {
|
|
2037
2037
|
command: new G([...r, ...B]),
|
|
2038
2038
|
followup: async () => {
|
|
2039
|
-
|
|
2039
|
+
n && n(!1), await a.setSelectionsAndElements(
|
|
2040
2040
|
A.stepName,
|
|
2041
2041
|
e ? [e] : [],
|
|
2042
2042
|
[...c.map((d) => d.regionEl)],
|
|
2043
2043
|
async () => {
|
|
2044
2044
|
var d;
|
|
2045
|
-
if (a.updateStorage(A.stepName, { currentFrameSources: o }),
|
|
2045
|
+
if (a.updateStorage(A.stepName, { currentFrameSources: o }), s) {
|
|
2046
2046
|
const E = (d = a.getStepSpecificServices(
|
|
2047
2047
|
A.stepName
|
|
2048
2048
|
)) == null ? void 0 : d.frameService;
|
|
2049
2049
|
if (!E)
|
|
2050
2050
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
2051
|
-
await this.loadPatternFromString(
|
|
2051
|
+
await this.loadPatternFromString(s, E);
|
|
2052
2052
|
}
|
|
2053
2053
|
}
|
|
2054
2054
|
);
|
|
@@ -2060,7 +2060,7 @@ class Da {
|
|
|
2060
2060
|
*/
|
|
2061
2061
|
patternSource(A) {
|
|
2062
2062
|
var a;
|
|
2063
|
-
const e = (a = A.versions) == null ? void 0 : a.find((
|
|
2063
|
+
const e = (a = A.versions) == null ? void 0 : a.find((n) => n.name === "svg");
|
|
2064
2064
|
if (e)
|
|
2065
2065
|
return e.link;
|
|
2066
2066
|
const t = A.fileLink;
|
|
@@ -2070,12 +2070,12 @@ class Da {
|
|
|
2070
2070
|
}
|
|
2071
2071
|
async loadPatternFromAsset(A, e, t) {
|
|
2072
2072
|
var i;
|
|
2073
|
-
const a = this.patternSource(A),
|
|
2074
|
-
if (!
|
|
2073
|
+
const a = this.patternSource(A), n = t.markUpdatePending(), s = (i = t.getStepSpecificServices(e.stepName)) == null ? void 0 : i.frameService;
|
|
2074
|
+
if (!s)
|
|
2075
2075
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
2076
|
-
await this.loadPatternFromString(a,
|
|
2076
|
+
await this.loadPatternFromString(a, s), t.updateMetadata(e.stepName, { image: a }), t.updateStorage(e.stepName, {
|
|
2077
2077
|
framePatternSrc: a
|
|
2078
|
-
}), t.markUpdateCompleted(
|
|
2078
|
+
}), t.markUpdateCompleted(n);
|
|
2079
2079
|
}
|
|
2080
2080
|
}
|
|
2081
2081
|
const qA = new Da();
|
|
@@ -2130,9 +2130,9 @@ class fa {
|
|
|
2130
2130
|
if (t)
|
|
2131
2131
|
return this.reload(A, e, t);
|
|
2132
2132
|
{
|
|
2133
|
-
const
|
|
2134
|
-
if (
|
|
2135
|
-
return await this.selectVariantCommand(A,
|
|
2133
|
+
const n = z.getDefaultVariant(a);
|
|
2134
|
+
if (n)
|
|
2135
|
+
return await this.selectVariantCommand(A, n, [], () => {
|
|
2136
2136
|
}, e);
|
|
2137
2137
|
}
|
|
2138
2138
|
return null;
|
|
@@ -2169,38 +2169,38 @@ class fa {
|
|
|
2169
2169
|
async availableColors(A, e) {
|
|
2170
2170
|
var a;
|
|
2171
2171
|
const t = A.data.colorOption;
|
|
2172
|
-
return t ? t ? (a = t.variants) == null ? void 0 : a.map((
|
|
2173
|
-
fill:
|
|
2174
|
-
stroke:
|
|
2175
|
-
variant:
|
|
2172
|
+
return t ? t ? (a = t.variants) == null ? void 0 : a.map((n) => ({
|
|
2173
|
+
fill: n.color,
|
|
2174
|
+
stroke: n.color,
|
|
2175
|
+
variant: n
|
|
2176
2176
|
})) : [] : [];
|
|
2177
2177
|
}
|
|
2178
|
-
async changeColorsCommand(A, e, t, a,
|
|
2178
|
+
async changeColorsCommand(A, e, t, a, n) {
|
|
2179
2179
|
var r;
|
|
2180
|
-
const
|
|
2181
|
-
for (const [B, l] of
|
|
2182
|
-
|
|
2183
|
-
const i = It(A, e, t,
|
|
2180
|
+
const s = {};
|
|
2181
|
+
for (const [B, l] of n.entries())
|
|
2182
|
+
s[B] = { browserValue: l, spotColor: (r = s[B]) == null ? void 0 : r.spotColor };
|
|
2183
|
+
const i = It(A, e, t, s), o = await aA(i), c = [];
|
|
2184
2184
|
for (const B of a) {
|
|
2185
|
-
for (const [l, d] of
|
|
2185
|
+
for (const [l, d] of n.entries())
|
|
2186
2186
|
c.push(new jA(B, l, d));
|
|
2187
2187
|
c.push(new Dt(B, i, o));
|
|
2188
2188
|
}
|
|
2189
2189
|
return new G(c);
|
|
2190
2190
|
}
|
|
2191
|
-
async changeColors(A, e, t, a,
|
|
2191
|
+
async changeColors(A, e, t, a, n) {
|
|
2192
2192
|
var d, E;
|
|
2193
2193
|
if (e.length === 0)
|
|
2194
2194
|
return;
|
|
2195
|
-
const
|
|
2195
|
+
const s = FA(
|
|
2196
2196
|
e[0].id,
|
|
2197
2197
|
a().map((C) => C.layoutState)
|
|
2198
|
-
), i = { ...
|
|
2198
|
+
), i = { ...s.colors }, o = {};
|
|
2199
2199
|
Object.entries(i).forEach(([C, w]) => {
|
|
2200
2200
|
const h = { browserValue: w.browserValue }, Q = w.spotColor;
|
|
2201
2201
|
Q && (h.spotColor = { profileName: Q.profileName, namedColor: Q.namedColor }), o[C] = h;
|
|
2202
2202
|
});
|
|
2203
|
-
for (const [C, w] of
|
|
2203
|
+
for (const [C, w] of n.entries())
|
|
2204
2204
|
i[C] = { browserValue: w, spotColor: (d = i[C]) == null ? void 0 : d.spotColor }, o[C] = { browserValue: w };
|
|
2205
2205
|
let c = Array.from(Object.values(i)).map((C) => C.browserValue);
|
|
2206
2206
|
const r = A.data.colorOption;
|
|
@@ -2213,12 +2213,12 @@ class fa {
|
|
|
2213
2213
|
const B = /* @__PURE__ */ new Map();
|
|
2214
2214
|
if (Object.entries(i).forEach(([C, w]) => {
|
|
2215
2215
|
B.set(C, w.browserValue);
|
|
2216
|
-
}), !
|
|
2216
|
+
}), !s.svg)
|
|
2217
2217
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
2218
2218
|
const l = await this.changeColorsCommand(
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2219
|
+
s.svg,
|
|
2220
|
+
s.width,
|
|
2221
|
+
s.height,
|
|
2222
2222
|
e.map((C) => C.id),
|
|
2223
2223
|
B
|
|
2224
2224
|
);
|
|
@@ -2226,17 +2226,17 @@ class fa {
|
|
|
2226
2226
|
colors: o
|
|
2227
2227
|
}), t.getCommandDispatcher()(l);
|
|
2228
2228
|
}
|
|
2229
|
-
async selectVariant(A, e, t, a,
|
|
2230
|
-
const
|
|
2231
|
-
|
|
2229
|
+
async selectVariant(A, e, t, a, n) {
|
|
2230
|
+
const s = await this.selectVariantCommand(A, e, t, a, n);
|
|
2231
|
+
s && (s.command && n.getCommandDispatcher()(s.command), s.followup && await s.followup());
|
|
2232
2232
|
}
|
|
2233
|
-
async selectVariantCommand(A, e, t, a,
|
|
2233
|
+
async selectVariantCommand(A, e, t, a, n) {
|
|
2234
2234
|
var h;
|
|
2235
2235
|
if (!A.data || !A.data.regions)
|
|
2236
2236
|
throw new YA(A, "Missing regions.");
|
|
2237
2237
|
a(!0);
|
|
2238
|
-
const
|
|
2239
|
-
|
|
2238
|
+
const s = t.map((Q) => new $(Q.id));
|
|
2239
|
+
n.setMandatoryFulfilled(A.stepName, !1);
|
|
2240
2240
|
const i = e.asset;
|
|
2241
2241
|
if (!i)
|
|
2242
2242
|
throw new _(e);
|
|
@@ -2244,7 +2244,7 @@ class fa {
|
|
|
2244
2244
|
if (!o)
|
|
2245
2245
|
throw new lA(i);
|
|
2246
2246
|
const c = await De(await this.getIllustrationBody(o)), r = await aA(c.svg), B = (Q) => {
|
|
2247
|
-
const m =
|
|
2247
|
+
const m = n.getLayouts().find((p) => p.panelId === Q.panelId);
|
|
2248
2248
|
if (!m)
|
|
2249
2249
|
throw new L(Q);
|
|
2250
2250
|
const u = v();
|
|
@@ -2257,7 +2257,7 @@ class fa {
|
|
|
2257
2257
|
svg: c
|
|
2258
2258
|
})
|
|
2259
2259
|
};
|
|
2260
|
-
}, l = A.data.regions.map(B), E = [...l.map((Q) => Q.command), ...
|
|
2260
|
+
}, l = A.data.regions.map(B), E = [...l.map((Q) => Q.command), ...s];
|
|
2261
2261
|
let C = Array.from(Object.values(c.colors)).map((Q) => Q.browserValue);
|
|
2262
2262
|
const w = A.data.colorOption;
|
|
2263
2263
|
return w && ((h = w.variants) == null || h.forEach((Q) => {
|
|
@@ -2265,15 +2265,15 @@ class fa {
|
|
|
2265
2265
|
var u;
|
|
2266
2266
|
return m.toLowerCase() === ((u = Q.color) == null ? void 0 : u.toLowerCase()) ? Q.name : m;
|
|
2267
2267
|
});
|
|
2268
|
-
})),
|
|
2268
|
+
})), n.updateMetadata(A.stepName, { colors: C }), {
|
|
2269
2269
|
command: new G(E),
|
|
2270
2270
|
followup: async () => {
|
|
2271
|
-
await
|
|
2271
|
+
await n.setSelectionsAndElements(
|
|
2272
2272
|
A.stepName,
|
|
2273
2273
|
[e],
|
|
2274
2274
|
l.map((Q) => Q.regionElement),
|
|
2275
2275
|
async () => {
|
|
2276
|
-
|
|
2276
|
+
n.setMandatoryFulfilled(A.stepName, !0), a(!1);
|
|
2277
2277
|
}
|
|
2278
2278
|
);
|
|
2279
2279
|
}
|
|
@@ -2289,9 +2289,9 @@ class Fa {
|
|
|
2289
2289
|
if (t)
|
|
2290
2290
|
await this.reload(A, e, t);
|
|
2291
2291
|
else {
|
|
2292
|
-
const
|
|
2293
|
-
if (
|
|
2294
|
-
return await this.selectVariantLambda(A,
|
|
2292
|
+
const n = z.getDefaultVariant(a);
|
|
2293
|
+
if (n)
|
|
2294
|
+
return await this.selectVariantLambda(A, n, e, () => {
|
|
2295
2295
|
});
|
|
2296
2296
|
}
|
|
2297
2297
|
return null;
|
|
@@ -2329,22 +2329,22 @@ class Fa {
|
|
|
2329
2329
|
}
|
|
2330
2330
|
}
|
|
2331
2331
|
async selectVariant(A, e, t, a) {
|
|
2332
|
-
const
|
|
2333
|
-
|
|
2332
|
+
const n = await this.selectVariantLambda(A, e, t, a);
|
|
2333
|
+
n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2334
2334
|
}
|
|
2335
2335
|
async selectVariantLambda(A, e, t, a) {
|
|
2336
|
-
const
|
|
2336
|
+
const n = t.getModelContainer();
|
|
2337
2337
|
a(!0);
|
|
2338
|
-
const
|
|
2339
|
-
if (!
|
|
2338
|
+
const s = e.material;
|
|
2339
|
+
if (!s)
|
|
2340
2340
|
throw a(!1), new _(e);
|
|
2341
2341
|
return {
|
|
2342
2342
|
command: void 0,
|
|
2343
2343
|
followup: async () => {
|
|
2344
2344
|
await t.setSelectionsAndElements(A.stepName, [e], [], async () => {
|
|
2345
2345
|
try {
|
|
2346
|
-
|
|
2347
|
-
A.option &&
|
|
2346
|
+
n && A.data.targetMaterials.forEach((i) => {
|
|
2347
|
+
A.option && n.applyMaterialVariant(i, A.option.id || "", s);
|
|
2348
2348
|
}), t.setMandatoryFulfilled(A.stepName, !0);
|
|
2349
2349
|
} finally {
|
|
2350
2350
|
a(!1);
|
|
@@ -2363,9 +2363,9 @@ class Ma {
|
|
|
2363
2363
|
if (t)
|
|
2364
2364
|
await this.reload(A, e, t);
|
|
2365
2365
|
else {
|
|
2366
|
-
const
|
|
2367
|
-
if (
|
|
2368
|
-
return await this.selectVariantLambda(A,
|
|
2366
|
+
const n = z.getDefaultVariant(a);
|
|
2367
|
+
if (n)
|
|
2368
|
+
return await this.selectVariantLambda(A, n, e, () => {
|
|
2369
2369
|
});
|
|
2370
2370
|
}
|
|
2371
2371
|
return null;
|
|
@@ -2409,14 +2409,14 @@ class Ma {
|
|
|
2409
2409
|
}
|
|
2410
2410
|
}
|
|
2411
2411
|
async selectVariant(A, e, t, a) {
|
|
2412
|
-
const
|
|
2413
|
-
|
|
2412
|
+
const n = await this.selectVariantLambda(A, e, t, a);
|
|
2413
|
+
n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2414
2414
|
}
|
|
2415
2415
|
async selectVariantLambda(A, e, t, a) {
|
|
2416
|
-
var
|
|
2416
|
+
var s;
|
|
2417
2417
|
a(!0);
|
|
2418
|
-
const
|
|
2419
|
-
if (!
|
|
2418
|
+
const n = (s = e.asset) == null ? void 0 : s.fileLink;
|
|
2419
|
+
if (!n)
|
|
2420
2420
|
throw new _(e);
|
|
2421
2421
|
return {
|
|
2422
2422
|
command: void 0,
|
|
@@ -2427,7 +2427,7 @@ class Ma {
|
|
|
2427
2427
|
i && A.option && i.applyModelVariant(
|
|
2428
2428
|
A.option.id || "",
|
|
2429
2429
|
{
|
|
2430
|
-
model:
|
|
2430
|
+
model: n,
|
|
2431
2431
|
contextService: t.getLayoutPreviewService()
|
|
2432
2432
|
},
|
|
2433
2433
|
A.data.replaceProductModel || !1
|
|
@@ -2460,17 +2460,17 @@ class ya {
|
|
|
2460
2460
|
e.updateStorage(A.stepName, { text: (c = a == null ? void 0 : a.storage) == null ? void 0 : c.text }), e.setMandatoryFulfilled(A.stepName, ((r = a == null ? void 0 : a.storage) == null ? void 0 : r.text) !== "");
|
|
2461
2461
|
});
|
|
2462
2462
|
}
|
|
2463
|
-
async changeText(A, e, t, a,
|
|
2464
|
-
const
|
|
2465
|
-
|
|
2463
|
+
async changeText(A, e, t, a, n) {
|
|
2464
|
+
const s = await this.changeTextCommand(A, e, t, a, n);
|
|
2465
|
+
s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
|
|
2466
2466
|
}
|
|
2467
|
-
async changeTextCommand(A, e, t, a,
|
|
2467
|
+
async changeTextCommand(A, e, t, a, n) {
|
|
2468
2468
|
var r;
|
|
2469
|
-
const
|
|
2469
|
+
const s = t.getRegionElements(A.stepName), i = (r = t.getStepSpecificServices(A.stepName)) == null ? void 0 : r.module;
|
|
2470
2470
|
if (!i)
|
|
2471
2471
|
return console.error("Missing module."), null;
|
|
2472
2472
|
const o = t.getProfanities();
|
|
2473
|
-
if (!this.validateInput(A, e, o,
|
|
2473
|
+
if (!this.validateInput(A, e, o, n))
|
|
2474
2474
|
return t.setMandatoryFulfilled(A.stepName, !1), console.error(a), null;
|
|
2475
2475
|
if (t.setMandatoryFulfilled(A.stepName, e !== ""), !A.data || !A.data.regions || A.data.regions.length <= 0)
|
|
2476
2476
|
return console.error("Missing configuration."), null;
|
|
@@ -2506,8 +2506,8 @@ class ya {
|
|
|
2506
2506
|
command: new G(h)
|
|
2507
2507
|
};
|
|
2508
2508
|
};
|
|
2509
|
-
if (
|
|
2510
|
-
const l =
|
|
2509
|
+
if (s.length > 0) {
|
|
2510
|
+
const l = s.map((d) => {
|
|
2511
2511
|
if (!d.region)
|
|
2512
2512
|
return null;
|
|
2513
2513
|
const E = i.svgPrint(e, d.region);
|
|
@@ -2537,17 +2537,17 @@ class ya {
|
|
|
2537
2537
|
}
|
|
2538
2538
|
validateInput(A, e, t, a) {
|
|
2539
2539
|
if (A.data && A.data.maxLength) {
|
|
2540
|
-
const
|
|
2541
|
-
if (e.length >
|
|
2540
|
+
const s = A.data.maxLength;
|
|
2541
|
+
if (e.length > s)
|
|
2542
2542
|
return a("Too many characters."), !1;
|
|
2543
2543
|
}
|
|
2544
2544
|
if (!/^$|^[a-zA-Z0-9 ]+$/.test(e))
|
|
2545
2545
|
return a("Unsupported characters."), !1;
|
|
2546
|
-
const
|
|
2547
|
-
for (const
|
|
2546
|
+
const n = XA(e.toLowerCase());
|
|
2547
|
+
for (const s of n)
|
|
2548
2548
|
for (const i in t) {
|
|
2549
2549
|
const o = t[i].toLowerCase().replace(/\s/g, "");
|
|
2550
|
-
if (
|
|
2550
|
+
if (s === o)
|
|
2551
2551
|
return a("Blocked profanity."), !1;
|
|
2552
2552
|
}
|
|
2553
2553
|
return a(""), !0;
|
|
@@ -2591,15 +2591,15 @@ class Sa {
|
|
|
2591
2591
|
}
|
|
2592
2592
|
}
|
|
2593
2593
|
async selectVariant(A, e, t, a) {
|
|
2594
|
-
const
|
|
2595
|
-
|
|
2594
|
+
const n = await this.selectVariantCommand(A, e, t, a);
|
|
2595
|
+
n && (n.command && t.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2596
2596
|
}
|
|
2597
2597
|
async selectVariantCommand(A, e, t, a) {
|
|
2598
|
-
const
|
|
2599
|
-
if (!s)
|
|
2600
|
-
throw new _(e);
|
|
2601
|
-
const n = s == null ? void 0 : s.fileLink;
|
|
2598
|
+
const n = e.asset;
|
|
2602
2599
|
if (!n)
|
|
2600
|
+
throw new _(e);
|
|
2601
|
+
const s = n == null ? void 0 : n.fileLink;
|
|
2602
|
+
if (!s)
|
|
2603
2603
|
return console.error("No URL for picture!"), null;
|
|
2604
2604
|
a(!0), t.setMandatoryFulfilled(A.stepName, !1);
|
|
2605
2605
|
const o = t.getRegionElements(A.stepName).map((B) => new $(B.id)), c = (B) => {
|
|
@@ -2614,7 +2614,7 @@ class Sa {
|
|
|
2614
2614
|
stepName: A.stepName,
|
|
2615
2615
|
stepRegion: B,
|
|
2616
2616
|
id: E,
|
|
2617
|
-
src:
|
|
2617
|
+
src: s,
|
|
2618
2618
|
type: P.Image,
|
|
2619
2619
|
y: B.top,
|
|
2620
2620
|
x: B.left,
|
|
@@ -2654,9 +2654,9 @@ class xa {
|
|
|
2654
2654
|
if (t)
|
|
2655
2655
|
await this.reload(A, e, t);
|
|
2656
2656
|
else {
|
|
2657
|
-
const
|
|
2657
|
+
const n = a.variants;
|
|
2658
2658
|
if (z.getDefaultVariant(a)) {
|
|
2659
|
-
const i =
|
|
2659
|
+
const i = n == null ? void 0 : n.find((o) => {
|
|
2660
2660
|
var c;
|
|
2661
2661
|
return o.id === ((c = a.defaultVariant) == null ? void 0 : c.id);
|
|
2662
2662
|
});
|
|
@@ -2666,15 +2666,15 @@ class xa {
|
|
|
2666
2666
|
return null;
|
|
2667
2667
|
}
|
|
2668
2668
|
async reload(A, e, t) {
|
|
2669
|
-
var
|
|
2669
|
+
var s;
|
|
2670
2670
|
const a = e.getSerializedStep(
|
|
2671
2671
|
A.stepName,
|
|
2672
2672
|
t.serializableWorkflow.steps
|
|
2673
|
-
),
|
|
2673
|
+
), n = A.option;
|
|
2674
2674
|
if (a != null && a.selectedVariants) {
|
|
2675
2675
|
const i = a.selectedVariants[0].id;
|
|
2676
|
-
if (
|
|
2677
|
-
const o = (
|
|
2676
|
+
if (n && i) {
|
|
2677
|
+
const o = (s = n.variants) == null ? void 0 : s.find((c) => c.id === i);
|
|
2678
2678
|
o && await e.setSelectionsAndElements(A.stepName, [o], []);
|
|
2679
2679
|
}
|
|
2680
2680
|
}
|
|
@@ -2688,16 +2688,16 @@ class xa {
|
|
|
2688
2688
|
const a = A.option;
|
|
2689
2689
|
if (!a)
|
|
2690
2690
|
return null;
|
|
2691
|
-
const
|
|
2692
|
-
if (!s)
|
|
2693
|
-
return null;
|
|
2694
|
-
const n = s.length > 1 ? s.find((i) => i.id === e) : s[0];
|
|
2691
|
+
const n = a.variants;
|
|
2695
2692
|
if (!n)
|
|
2693
|
+
return null;
|
|
2694
|
+
const s = n.length > 1 ? n.find((i) => i.id === e) : n[0];
|
|
2695
|
+
if (!s)
|
|
2696
2696
|
throw new Error("Failed to find selected variant in step variants, this should never happen!");
|
|
2697
2697
|
return {
|
|
2698
2698
|
command: void 0,
|
|
2699
2699
|
followup: async () => {
|
|
2700
|
-
await t.setSelectionsAndElements(A.stepName, [
|
|
2700
|
+
await t.setSelectionsAndElements(A.stepName, [s], [], async () => {
|
|
2701
2701
|
t.setMandatoryFulfilled(A.stepName, !0);
|
|
2702
2702
|
});
|
|
2703
2703
|
}
|
|
@@ -2720,13 +2720,13 @@ class Na {
|
|
|
2720
2720
|
}))) || [] : [];
|
|
2721
2721
|
}
|
|
2722
2722
|
setCustomColor(A, e, t) {
|
|
2723
|
-
const a = t.getLayouts(),
|
|
2723
|
+
const a = t.getLayouts(), s = (t.getRegionElements(e.stepName) || []).map((i) => {
|
|
2724
2724
|
const o = i.region;
|
|
2725
2725
|
if (!a.find((r) => r.panelId === (o == null ? void 0 : o.panelId)))
|
|
2726
2726
|
throw new L(o);
|
|
2727
2727
|
return new jA(i.id, this.shapeFillId, A);
|
|
2728
2728
|
}).filter((i) => !!i);
|
|
2729
|
-
t.getCommandDispatcher()(new G(
|
|
2729
|
+
t.getCommandDispatcher()(new G(s)), t.updateStorage(e.stepName, { colour: A });
|
|
2730
2730
|
}
|
|
2731
2731
|
async init(A, e, t) {
|
|
2732
2732
|
const a = A.option;
|
|
@@ -2735,13 +2735,13 @@ class Na {
|
|
|
2735
2735
|
if (t)
|
|
2736
2736
|
await this.reload(A, e, t);
|
|
2737
2737
|
else {
|
|
2738
|
-
const
|
|
2739
|
-
return
|
|
2738
|
+
const n = z.getDefaultVariant(a);
|
|
2739
|
+
return n ? this.selectVariantCommand(
|
|
2740
2740
|
A,
|
|
2741
2741
|
{
|
|
2742
|
-
fill:
|
|
2743
|
-
stroke:
|
|
2744
|
-
variant:
|
|
2742
|
+
fill: n.color,
|
|
2743
|
+
stroke: n.color,
|
|
2744
|
+
variant: n
|
|
2745
2745
|
},
|
|
2746
2746
|
[],
|
|
2747
2747
|
e
|
|
@@ -2750,8 +2750,8 @@ class Na {
|
|
|
2750
2750
|
return null;
|
|
2751
2751
|
}
|
|
2752
2752
|
async selectVariant(A, e, t, a) {
|
|
2753
|
-
const
|
|
2754
|
-
|
|
2753
|
+
const n = await this.selectVariantCommand(A, e, t, a);
|
|
2754
|
+
n && (n.command && a.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2755
2755
|
}
|
|
2756
2756
|
async reload(A, e, t) {
|
|
2757
2757
|
var c;
|
|
@@ -2782,10 +2782,10 @@ class Na {
|
|
|
2782
2782
|
}
|
|
2783
2783
|
async selectVariantCommand(A, e, t, a) {
|
|
2784
2784
|
var o;
|
|
2785
|
-
const
|
|
2785
|
+
const n = a.getLayouts(), s = (o = a.getStepStorage(A.stepName)) == null ? void 0 : o.colour, i = () => {
|
|
2786
2786
|
var c, r;
|
|
2787
2787
|
if (((c = e.variant) == null ? void 0 : c.color) === "#custom")
|
|
2788
|
-
return
|
|
2788
|
+
return s || "#FFFFFF";
|
|
2789
2789
|
if ((r = e.variant) != null && r.color)
|
|
2790
2790
|
return e.variant.color;
|
|
2791
2791
|
throw new Error("Failed to resolve color for shape step.");
|
|
@@ -2793,7 +2793,7 @@ class Na {
|
|
|
2793
2793
|
if (t.length > 0) {
|
|
2794
2794
|
const c = (B) => {
|
|
2795
2795
|
const l = B.region;
|
|
2796
|
-
if (!
|
|
2796
|
+
if (!n.find((C) => C.panelId === (l == null ? void 0 : l.panelId)))
|
|
2797
2797
|
throw new L(l);
|
|
2798
2798
|
const E = i();
|
|
2799
2799
|
return new jA(B.id, this.shapeFillId, E);
|
|
@@ -2810,7 +2810,7 @@ class Na {
|
|
|
2810
2810
|
};
|
|
2811
2811
|
} else {
|
|
2812
2812
|
const c = (d) => {
|
|
2813
|
-
const E =
|
|
2813
|
+
const E = n.find((m) => m.panelId === d.panelId);
|
|
2814
2814
|
if (!E)
|
|
2815
2815
|
throw new L(d);
|
|
2816
2816
|
const C = i(), w = `
|
|
@@ -2920,22 +2920,22 @@ class Ua {
|
|
|
2920
2920
|
/(\r\n|\r|(\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,
|
|
2921
2921
|
""
|
|
2922
2922
|
);
|
|
2923
|
-
const a = [],
|
|
2924
|
-
if (
|
|
2925
|
-
const
|
|
2923
|
+
const a = [], n = e ? ft(e.assetUrl) : void 0;
|
|
2924
|
+
if (n) {
|
|
2925
|
+
const s = t.split("").filter((o) => !Pa.includes(o)).join(""), i = s.split("").map((o) => n.getFont().charToGlyph(o));
|
|
2926
2926
|
for (let o = 0; o < i.length; o++)
|
|
2927
|
-
i[o].name === ".notdef" && a.push(String.fromCharCode(
|
|
2927
|
+
i[o].name === ".notdef" && a.push(String.fromCharCode(s.charCodeAt(o)));
|
|
2928
2928
|
}
|
|
2929
|
-
for (let
|
|
2930
|
-
t = t.replaceAll(a[
|
|
2929
|
+
for (let s = 0; s < a.length; s++)
|
|
2930
|
+
t = t.replaceAll(a[s], "");
|
|
2931
2931
|
return t;
|
|
2932
2932
|
}, this.textAlign = (A) => A.vertical ? "center" : A.textAlign || "center", this.getErrorsForText = (A, e, t) => {
|
|
2933
2933
|
const a = [];
|
|
2934
2934
|
e.data && e.data.maxLength && A.length > e.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
2935
|
-
const
|
|
2936
|
-
for (const o of
|
|
2937
|
-
for (const c in
|
|
2938
|
-
const r =
|
|
2935
|
+
const n = t.getProfanities(), s = XA(A.toLowerCase());
|
|
2936
|
+
for (const o of s)
|
|
2937
|
+
for (const c in n) {
|
|
2938
|
+
const r = n[c].toLowerCase().replace(/\s/g, "");
|
|
2939
2939
|
if (o === r) {
|
|
2940
2940
|
a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
|
|
2941
2941
|
break;
|
|
@@ -2946,14 +2946,14 @@ class Ua {
|
|
|
2946
2946
|
};
|
|
2947
2947
|
}
|
|
2948
2948
|
async init(A, e, t) {
|
|
2949
|
-
var
|
|
2949
|
+
var n, s, i;
|
|
2950
2950
|
const a = A.option;
|
|
2951
2951
|
if (!a)
|
|
2952
2952
|
return null;
|
|
2953
2953
|
if (t)
|
|
2954
2954
|
await this.reload(A, e, t);
|
|
2955
2955
|
else {
|
|
2956
|
-
const o = this.getDefaultImageFillVariant(A.data), c = (
|
|
2956
|
+
const o = this.getDefaultImageFillVariant(A.data), c = (n = o == null ? void 0 : o.asset) == null ? void 0 : n.fileLink, r = c ? await VA(c) : void 0, B = r ? {
|
|
2957
2957
|
src: r.src,
|
|
2958
2958
|
height: r.height,
|
|
2959
2959
|
width: r.width,
|
|
@@ -2961,7 +2961,7 @@ class Ua {
|
|
|
2961
2961
|
} : void 0;
|
|
2962
2962
|
e.updateStorage(A.stepName, {
|
|
2963
2963
|
inputText: A.data.defaultText || "",
|
|
2964
|
-
color: ((
|
|
2964
|
+
color: ((s = await this.getDefaultColorVariant(A.data)) == null ? void 0 : s.color) || await this.getDefaultColor(A.data),
|
|
2965
2965
|
fillImage: B
|
|
2966
2966
|
}), e.updateMetadata(A.stepName, {
|
|
2967
2967
|
text: A.data.defaultText || "",
|
|
@@ -2986,7 +2986,7 @@ class Ua {
|
|
|
2986
2986
|
return null;
|
|
2987
2987
|
}
|
|
2988
2988
|
findLayoutElements(A, e) {
|
|
2989
|
-
return A.getRegionElements(e.stepName).map((
|
|
2989
|
+
return A.getRegionElements(e.stepName).map((n) => FA(n.id, A.getAllLayoutData()));
|
|
2990
2990
|
}
|
|
2991
2991
|
/**
|
|
2992
2992
|
* Get the colors that can be used for a given text step.
|
|
@@ -3000,12 +3000,12 @@ class Ua {
|
|
|
3000
3000
|
return e;
|
|
3001
3001
|
const t = A.data.colorOption;
|
|
3002
3002
|
if (t) {
|
|
3003
|
-
const
|
|
3004
|
-
fill:
|
|
3005
|
-
stroke:
|
|
3006
|
-
variant:
|
|
3003
|
+
const n = ((a = t.variants) == null ? void 0 : a.map((s) => ({
|
|
3004
|
+
fill: s.color,
|
|
3005
|
+
stroke: s.color,
|
|
3006
|
+
variant: s
|
|
3007
3007
|
}))) || [];
|
|
3008
|
-
return this.cachedColors.set(A.stepName,
|
|
3008
|
+
return this.cachedColors.set(A.stepName, n), n;
|
|
3009
3009
|
}
|
|
3010
3010
|
return [];
|
|
3011
3011
|
}
|
|
@@ -3013,12 +3013,12 @@ class Ua {
|
|
|
3013
3013
|
var o;
|
|
3014
3014
|
if (!A.data || !A.data.regions)
|
|
3015
3015
|
return;
|
|
3016
|
-
const
|
|
3016
|
+
const n = a.getCommandDispatcher();
|
|
3017
3017
|
e.variant ? a.updateMetadata(A.stepName, { color: e.variant.name }) : a.updateMetadata(A.stepName, { color: e.fill });
|
|
3018
|
-
const
|
|
3019
|
-
|
|
3018
|
+
const s = A.data.colorOption, i = s ? this.createTextFillSpotColor(s, e.variant) : void 0;
|
|
3019
|
+
s ? a.updateStorage(A.stepName, {
|
|
3020
3020
|
color: e.fill,
|
|
3021
|
-
colorProfileAssetKey: (o =
|
|
3021
|
+
colorProfileAssetKey: (o = s.colorProfile) == null ? void 0 : o.key
|
|
3022
3022
|
}) : a.updateStorage(A.stepName, {
|
|
3023
3023
|
color: e.fill
|
|
3024
3024
|
});
|
|
@@ -3026,22 +3026,22 @@ class Ua {
|
|
|
3026
3026
|
if (!e.fill)
|
|
3027
3027
|
throw new Error("Fill not set on new color selection!");
|
|
3028
3028
|
const r = new Ft(c.id, e.fill, i);
|
|
3029
|
-
|
|
3029
|
+
n(r);
|
|
3030
3030
|
}
|
|
3031
3031
|
}
|
|
3032
3032
|
async availableFillImages(A) {
|
|
3033
3033
|
var t, a;
|
|
3034
3034
|
const e = A.data.imageFillOption;
|
|
3035
3035
|
if (e) {
|
|
3036
|
-
const
|
|
3036
|
+
const n = ((a = (t = e.variants) == null ? void 0 : t.map((s) => {
|
|
3037
3037
|
var i;
|
|
3038
|
-
return (i =
|
|
3039
|
-
})) == null ? void 0 : a.filter((
|
|
3038
|
+
return (i = s.asset) == null ? void 0 : i.fileLink;
|
|
3039
|
+
})) == null ? void 0 : a.filter((s) => !!s)) || [];
|
|
3040
3040
|
return Promise.all(
|
|
3041
|
-
|
|
3042
|
-
const i = await VA(
|
|
3041
|
+
n.map(async (s) => {
|
|
3042
|
+
const i = await VA(s);
|
|
3043
3043
|
return {
|
|
3044
|
-
src:
|
|
3044
|
+
src: s,
|
|
3045
3045
|
width: i.width,
|
|
3046
3046
|
height: i.height,
|
|
3047
3047
|
scale: A.data.imageFillScale || 1
|
|
@@ -3055,16 +3055,16 @@ class Ua {
|
|
|
3055
3055
|
var i, o;
|
|
3056
3056
|
if (!A.data || !A.data.regions)
|
|
3057
3057
|
return;
|
|
3058
|
-
const
|
|
3058
|
+
const n = a.getCommandDispatcher(), s = (o = (i = A.option) == null ? void 0 : i.variants) == null ? void 0 : o.find((c) => {
|
|
3059
3059
|
var r;
|
|
3060
3060
|
return ((r = c.asset) == null ? void 0 : r.fileLink) === e.src;
|
|
3061
3061
|
});
|
|
3062
|
-
a.updateMetadata(A.stepName, { fillImage:
|
|
3062
|
+
a.updateMetadata(A.stepName, { fillImage: s == null ? void 0 : s.name }), a.updateStorage(A.stepName, {
|
|
3063
3063
|
fillImage: e
|
|
3064
3064
|
});
|
|
3065
3065
|
for (const c of t) {
|
|
3066
3066
|
const r = new bA(c.id, e);
|
|
3067
|
-
|
|
3067
|
+
n(r);
|
|
3068
3068
|
}
|
|
3069
3069
|
}
|
|
3070
3070
|
getProcessedInput(A, e, t) {
|
|
@@ -3075,14 +3075,14 @@ class Ua {
|
|
|
3075
3075
|
});
|
|
3076
3076
|
}
|
|
3077
3077
|
updateInputText(A, e, t, a) {
|
|
3078
|
-
const
|
|
3078
|
+
const n = a.getStepStorage(t.stepName), s = this.getProcessedInput(A, t.data, !!n.customiseAllText), i = {
|
|
3079
3079
|
command: void 0,
|
|
3080
3080
|
helperText: "",
|
|
3081
3081
|
errors: this.getErrorsForText(A, t, a)
|
|
3082
3082
|
};
|
|
3083
3083
|
if (i.errors.length > 0)
|
|
3084
3084
|
return i.helperText = i.errors[0].localizationKey, i;
|
|
3085
|
-
const o = (t.data.maxLength -
|
|
3085
|
+
const o = (t.data.maxLength - s.length).toString();
|
|
3086
3086
|
i.helperText = `${o} characters remaining`;
|
|
3087
3087
|
const c = a.getTransaction().bulk && t.data.varyText || !1, r = [], B = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map();
|
|
3088
3088
|
for (const d of e) {
|
|
@@ -3092,34 +3092,34 @@ class Ua {
|
|
|
3092
3092
|
d.fontSize,
|
|
3093
3093
|
d.fontData,
|
|
3094
3094
|
{ left: d.x, top: d.y, width: d.width, height: d.height, rotation: d.rotation, panelId: "" },
|
|
3095
|
-
[
|
|
3095
|
+
[s],
|
|
3096
3096
|
{ size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
|
|
3097
3097
|
);
|
|
3098
3098
|
B.set(d.id, E), l.set(d.id, C);
|
|
3099
|
-
const w = t.data.curved ?
|
|
3099
|
+
const w = t.data.curved ? s : (C || []).join(`
|
|
3100
3100
|
`);
|
|
3101
3101
|
r.push(this.generateTextChangeCommandsForRegion(E, t.data, d.id, w, c));
|
|
3102
3102
|
}
|
|
3103
3103
|
return !t.data.curved && e.length > 0 && !Array.from(l.values()).every((E) => E) ? (i.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), i) : (a.updateStorage(t.stepName, { text: A }), a.updateMetadata(t.stepName, {
|
|
3104
|
-
text:
|
|
3105
|
-
}),
|
|
3104
|
+
text: s
|
|
3105
|
+
}), n.defaultCleared && a.setMandatoryFulfilled(t.stepName, !0), i.command = new G(r), i.command.varying = c, i);
|
|
3106
3106
|
}
|
|
3107
|
-
async selectVariant(A, e, t, a,
|
|
3108
|
-
const
|
|
3107
|
+
async selectVariant(A, e, t, a, n) {
|
|
3108
|
+
const s = await this.selectVariantCommand(
|
|
3109
3109
|
A,
|
|
3110
3110
|
e,
|
|
3111
3111
|
t.getStepStorage(A.stepName) || {},
|
|
3112
3112
|
t.getRegionElements(A.stepName),
|
|
3113
3113
|
t,
|
|
3114
3114
|
a,
|
|
3115
|
-
|
|
3115
|
+
n
|
|
3116
3116
|
);
|
|
3117
|
-
|
|
3117
|
+
s && (s.command && t.getCommandDispatcher()(s.command), s.followup && await s.followup());
|
|
3118
3118
|
}
|
|
3119
3119
|
createTextFillSpotColor(A, e) {
|
|
3120
3120
|
const t = A.colorProfile;
|
|
3121
3121
|
if (t) {
|
|
3122
|
-
const a = (t.name || "").replace(/\s/g, "-"),
|
|
3122
|
+
const a = (t.name || "").replace(/\s/g, "-"), n = a.lastIndexOf("/"), i = a.slice(n + 1).slice(0, -4);
|
|
3123
3123
|
if (!e.namedColor)
|
|
3124
3124
|
throw new Error("variant named color not set!");
|
|
3125
3125
|
return {
|
|
@@ -3191,9 +3191,9 @@ class Ua {
|
|
|
3191
3191
|
name: a.names.fullName.en
|
|
3192
3192
|
};
|
|
3193
3193
|
}
|
|
3194
|
-
async selectVariantCommand(A, e, t, a,
|
|
3194
|
+
async selectVariantCommand(A, e, t, a, n, s, i, o) {
|
|
3195
3195
|
var B;
|
|
3196
|
-
const c =
|
|
3196
|
+
const c = n.markUpdatePending(), r = await this.fontDataFromVariant(e);
|
|
3197
3197
|
if (a.length > 0) {
|
|
3198
3198
|
const l = a.map((C) => new le(C.id, r));
|
|
3199
3199
|
if (o) {
|
|
@@ -3206,15 +3206,15 @@ class Ua {
|
|
|
3206
3206
|
r,
|
|
3207
3207
|
t.text || "",
|
|
3208
3208
|
t,
|
|
3209
|
-
s,
|
|
3210
|
-
!!t.customiseAllText,
|
|
3211
3209
|
n,
|
|
3210
|
+
!!t.customiseAllText,
|
|
3211
|
+
s,
|
|
3212
3212
|
i
|
|
3213
3213
|
);
|
|
3214
3214
|
return d && l.push(d), {
|
|
3215
3215
|
command: new G(l),
|
|
3216
3216
|
followup: async () => {
|
|
3217
|
-
|
|
3217
|
+
n.markUpdateCompleted(c), await n.setSelectionsAndElements(A.stepName, [e], a);
|
|
3218
3218
|
}
|
|
3219
3219
|
};
|
|
3220
3220
|
} else {
|
|
@@ -3224,16 +3224,16 @@ class Ua {
|
|
|
3224
3224
|
A.data,
|
|
3225
3225
|
r,
|
|
3226
3226
|
t,
|
|
3227
|
-
|
|
3227
|
+
n
|
|
3228
3228
|
), d = await this.changeInputTextWithRegion(
|
|
3229
3229
|
A,
|
|
3230
3230
|
A.data.size || OA,
|
|
3231
3231
|
r,
|
|
3232
3232
|
((B = l[0]) == null ? void 0 : B.newElement.input) || t.text || A.data.defaultText || "",
|
|
3233
3233
|
t,
|
|
3234
|
-
s,
|
|
3235
|
-
!!t.customiseAllText,
|
|
3236
3234
|
n,
|
|
3235
|
+
!!t.customiseAllText,
|
|
3236
|
+
s,
|
|
3237
3237
|
i
|
|
3238
3238
|
), E = l.flatMap((w) => w.commands);
|
|
3239
3239
|
if (o) {
|
|
@@ -3245,7 +3245,7 @@ class Ua {
|
|
|
3245
3245
|
return d && E.push(d), {
|
|
3246
3246
|
command: new G(E),
|
|
3247
3247
|
followup: async () => {
|
|
3248
|
-
|
|
3248
|
+
n.markUpdateCompleted(c);
|
|
3249
3249
|
}
|
|
3250
3250
|
};
|
|
3251
3251
|
}
|
|
@@ -3258,12 +3258,12 @@ class Ua {
|
|
|
3258
3258
|
injectReplaceableText(A, e) {
|
|
3259
3259
|
return e.replaceableText ? e.replaceableText.replace("{{}}", A) : A;
|
|
3260
3260
|
}
|
|
3261
|
-
async createTextboxRegions(A, e, t, a,
|
|
3261
|
+
async createTextboxRegions(A, e, t, a, n, s) {
|
|
3262
3262
|
if (!t || !t.regions)
|
|
3263
3263
|
throw new Error("Step data not supplied");
|
|
3264
|
-
const i =
|
|
3264
|
+
const i = s.getTransaction().bulk && t.varyText || !1, o = i ? "" : n.text || t.defaultText || "", c = this.getProcessedInput(o, t, !1), r = async (l) => {
|
|
3265
3265
|
var w;
|
|
3266
|
-
const E =
|
|
3266
|
+
const E = s.getLayouts().find((h) => h.panelId === l.panelId), C = v();
|
|
3267
3267
|
try {
|
|
3268
3268
|
if (!E)
|
|
3269
3269
|
throw new RA("Failed to find layout for region: " + l.panelId);
|
|
@@ -3274,7 +3274,7 @@ class Ua {
|
|
|
3274
3274
|
var W;
|
|
3275
3275
|
return V.id === ((W = h.defaultVariant) == null ? void 0 : W.id);
|
|
3276
3276
|
}) || h.variants[0];
|
|
3277
|
-
Q = this.createTextFillSpotColor(h, k),
|
|
3277
|
+
Q = this.createTextFillSpotColor(h, k), s.updateStorage(A, {
|
|
3278
3278
|
colorProfileAssetKey: (w = h.colorProfile) == null ? void 0 : w.key
|
|
3279
3279
|
});
|
|
3280
3280
|
}
|
|
@@ -3282,7 +3282,7 @@ class Ua {
|
|
|
3282
3282
|
stepRegion: l,
|
|
3283
3283
|
stepName: A,
|
|
3284
3284
|
align: this.textAlign(t),
|
|
3285
|
-
fill:
|
|
3285
|
+
fill: n.color ? n.color : u,
|
|
3286
3286
|
fontSize: t.size || OA,
|
|
3287
3287
|
fontData: a,
|
|
3288
3288
|
id: C,
|
|
@@ -3338,33 +3338,33 @@ class Ua {
|
|
|
3338
3338
|
}, B = await Promise.all(t.regions.map(r)).catch((l) => {
|
|
3339
3339
|
throw l instanceof NA ? (Ha.setLatestToast("Failed to load font.", HA.Error), l) : l instanceof RA ? l : new Error(l);
|
|
3340
3340
|
});
|
|
3341
|
-
return await
|
|
3341
|
+
return await s.setSelectionsAndElements(
|
|
3342
3342
|
A,
|
|
3343
3343
|
[e],
|
|
3344
3344
|
B.map((l) => l.regionElement),
|
|
3345
3345
|
async () => {
|
|
3346
|
-
|
|
3346
|
+
s.updateMetadata(A, {
|
|
3347
3347
|
text: o
|
|
3348
|
-
}),
|
|
3348
|
+
}), s.updateStorage(A, {
|
|
3349
3349
|
text: o
|
|
3350
3350
|
});
|
|
3351
3351
|
}
|
|
3352
3352
|
), B;
|
|
3353
3353
|
}
|
|
3354
|
-
generateTextChangeCommandsForRegion(A, e, t, a,
|
|
3355
|
-
const
|
|
3356
|
-
if (i.varying =
|
|
3354
|
+
generateTextChangeCommandsForRegion(A, e, t, a, n) {
|
|
3355
|
+
const s = [], i = new Mt(t, a);
|
|
3356
|
+
if (i.varying = n, s.push(i), !e.size) {
|
|
3357
3357
|
const c = new yt(t, A);
|
|
3358
|
-
c.varying =
|
|
3358
|
+
c.varying = n, s.push(c);
|
|
3359
3359
|
}
|
|
3360
|
-
const o = new G(
|
|
3361
|
-
return o.varying =
|
|
3360
|
+
const o = new G(s);
|
|
3361
|
+
return o.varying = n, o;
|
|
3362
3362
|
}
|
|
3363
3363
|
/**
|
|
3364
3364
|
* @deprecated
|
|
3365
3365
|
*/
|
|
3366
|
-
async changeInputTextWithRegion(A, e, t, a,
|
|
3367
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d =
|
|
3366
|
+
async changeInputTextWithRegion(A, e, t, a, n, s, i, o, c, r) {
|
|
3367
|
+
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), E = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
|
|
3368
3368
|
for (const p of d)
|
|
3369
3369
|
if (p.region) {
|
|
3370
3370
|
const [F, I] = pA(
|
|
@@ -3379,7 +3379,7 @@ class Ua {
|
|
|
3379
3379
|
const h = (() => {
|
|
3380
3380
|
if (A.data && A.data.maxLength && l.length > A.data.maxLength)
|
|
3381
3381
|
return r && r(!0), { info: "0" };
|
|
3382
|
-
const p =
|
|
3382
|
+
const p = s.getProfanities(), F = XA(l.toLowerCase());
|
|
3383
3383
|
for (const I of F)
|
|
3384
3384
|
for (const f in p) {
|
|
3385
3385
|
const M = p[f].toLowerCase().replace(/\s/g, "");
|
|
@@ -3395,11 +3395,11 @@ class Ua {
|
|
|
3395
3395
|
}
|
|
3396
3396
|
if (c(`${h.info} characters remaining` || ""), r)
|
|
3397
3397
|
return;
|
|
3398
|
-
|
|
3398
|
+
s.updateStorage(A.stepName, { text: B }), s.updateMetadata(A.stepName, {
|
|
3399
3399
|
text: this.injectReplaceableText(B, A.data)
|
|
3400
3400
|
});
|
|
3401
|
-
const Q =
|
|
3402
|
-
|
|
3401
|
+
const Q = s.getTransaction().bulk && A.data.varyText || !1;
|
|
3402
|
+
n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
|
|
3403
3403
|
const m = [];
|
|
3404
3404
|
for (const p of d) {
|
|
3405
3405
|
const F = A.data.curved ? l : (C.get(p.id) || []).join(`
|
|
@@ -4682,7 +4682,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
4682
4682
|
</g>
|
|
4683
4683
|
</svg>
|
|
4684
4684
|
|
|
4685
|
-
`, H = (g) => Yt("http://www.w3.org/2000/svg", g),
|
|
4685
|
+
`, H = (g) => Yt("http://www.w3.org/2000/svg", g), ne = (g, A) => {
|
|
4686
4686
|
const e = H("rect");
|
|
4687
4687
|
return e.setAttribute("height", `${g}`), e.setAttribute("width", `${A}`), e;
|
|
4688
4688
|
}, ka = () => {
|
|
@@ -4707,18 +4707,18 @@ function et(g, A, e) {
|
|
|
4707
4707
|
const tt = (g, A, e, t) => {
|
|
4708
4708
|
const a = wA("filter");
|
|
4709
4709
|
a.setAttribute("id", t), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
4710
|
-
const
|
|
4711
|
-
a.appendChild(
|
|
4712
|
-
const
|
|
4713
|
-
a.appendChild(
|
|
4710
|
+
const n = wA("feOffset");
|
|
4711
|
+
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${g}`), n.setAttribute("dy", `${A}`);
|
|
4712
|
+
const s = wA("feGaussianBlur");
|
|
4713
|
+
a.appendChild(s), s.setAttribute("result", "blurOut"), s.setAttribute("in", "offOut"), s.setAttribute("stdDeviation", `${e}`);
|
|
4714
4714
|
const i = wA("feBlend");
|
|
4715
4715
|
return a.appendChild(i), i.setAttribute("in", "SourceGraphic"), i.setAttribute("in2", "blurOut"), i.setAttribute("mode", "normal"), a;
|
|
4716
4716
|
}, at = (g) => {
|
|
4717
4717
|
let A = g;
|
|
4718
4718
|
return A = A.replace(/feoffset/gi, "feOffset"), A = A.replace(/fegaussianblur/gi, "feGaussianBlur"), A = A.replace(/feblend/gi, "feBlend"), A = A.replace(/lineargradient/gi, "linearGradient"), A = A.replace(/stddeviation/gi, "stdDeviation"), A;
|
|
4719
4719
|
};
|
|
4720
|
-
function
|
|
4721
|
-
const
|
|
4720
|
+
function se(g, A, e, t, a, n) {
|
|
4721
|
+
const s = a || 1, i = n || 1, o = {
|
|
4722
4722
|
x: A[0],
|
|
4723
4723
|
y: A[1],
|
|
4724
4724
|
width: A[2] - A[0],
|
|
@@ -4726,12 +4726,12 @@ function ne(g, A, e, t, a, s) {
|
|
|
4726
4726
|
};
|
|
4727
4727
|
if (o.width <= 0)
|
|
4728
4728
|
return;
|
|
4729
|
-
const c = Ta(o.height, o.width, e *
|
|
4729
|
+
const c = Ta(o.height, o.width, e * s, t * i), r = (t - c * o.width) / 2 - c * o.x, B = (e - c * o.height) / 2 - c * o.y;
|
|
4730
4730
|
g.setAttribute("transform", `translate(${r} ${B}) scale(${c} ${c})`);
|
|
4731
4731
|
}
|
|
4732
4732
|
function Ta(g, A, e, t) {
|
|
4733
|
-
const a = e / g,
|
|
4734
|
-
return a > 1 &&
|
|
4733
|
+
const a = e / g, n = t / A;
|
|
4734
|
+
return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
|
|
4735
4735
|
}
|
|
4736
4736
|
const Qe = {
|
|
4737
4737
|
m: ["x", "y"],
|
|
@@ -4749,8 +4749,8 @@ class ie {
|
|
|
4749
4749
|
constructor(A) {
|
|
4750
4750
|
const e = Array.from(A.querySelectorAll("path"));
|
|
4751
4751
|
this.paths = e.map((t) => {
|
|
4752
|
-
const a = t.getAttribute("d") || "",
|
|
4753
|
-
return { pathElement: t, pathData:
|
|
4752
|
+
const a = t.getAttribute("d") || "", n = this.parsePath(a);
|
|
4753
|
+
return { pathElement: t, pathData: n };
|
|
4754
4754
|
});
|
|
4755
4755
|
}
|
|
4756
4756
|
transform(A) {
|
|
@@ -4760,13 +4760,13 @@ class ie {
|
|
|
4760
4760
|
}
|
|
4761
4761
|
encodePath(A) {
|
|
4762
4762
|
let e = "";
|
|
4763
|
-
const a = (
|
|
4764
|
-
const
|
|
4763
|
+
const a = (n) => {
|
|
4764
|
+
const s = [], i = n.relative ? n.type : n.type.toUpperCase();
|
|
4765
4765
|
let o = e !== i;
|
|
4766
|
-
const c = Qe[
|
|
4767
|
-
o && (
|
|
4766
|
+
const c = Qe[n.type];
|
|
4767
|
+
o && (s.push(i), e = i);
|
|
4768
4768
|
for (const r of c) {
|
|
4769
|
-
const B =
|
|
4769
|
+
const B = n[r];
|
|
4770
4770
|
let l;
|
|
4771
4771
|
switch (typeof B) {
|
|
4772
4772
|
case "boolean":
|
|
@@ -4778,34 +4778,34 @@ class ie {
|
|
|
4778
4778
|
default:
|
|
4779
4779
|
throw new oA("Failed to encode path.");
|
|
4780
4780
|
}
|
|
4781
|
-
o ||
|
|
4781
|
+
o || s.push(" "), s.push(l), o = !1;
|
|
4782
4782
|
}
|
|
4783
|
-
return
|
|
4783
|
+
return s.join("");
|
|
4784
4784
|
};
|
|
4785
4785
|
return A.map(a).join("");
|
|
4786
4786
|
}
|
|
4787
4787
|
parsePath(A) {
|
|
4788
4788
|
const e = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, t = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
|
|
4789
|
-
let
|
|
4790
|
-
for (e.lastIndex = 0;
|
|
4791
|
-
const
|
|
4789
|
+
let n;
|
|
4790
|
+
for (e.lastIndex = 0; n = e.exec(A); ) {
|
|
4791
|
+
const s = n[1].toLowerCase(), i = (n[2].match(t) || []).map(parseFloat), o = s === n[1], c = Qe[s];
|
|
4792
4792
|
if (i.length < c.length)
|
|
4793
4793
|
throw new oA(
|
|
4794
|
-
`Path type "${
|
|
4794
|
+
`Path type "${s}" given ${i.length} arguments, expected ${c.length}.`
|
|
4795
4795
|
);
|
|
4796
4796
|
if (c.length > 0) {
|
|
4797
4797
|
if (i.length % c.length !== 0)
|
|
4798
4798
|
throw new oA(
|
|
4799
|
-
`Path type "${
|
|
4799
|
+
`Path type "${s}" given ${i.length} arguments, not divisible by ${c.length}`
|
|
4800
4800
|
);
|
|
4801
4801
|
for (let r = 0; r < i.length / c.length; r++) {
|
|
4802
|
-
const B = { type:
|
|
4802
|
+
const B = { type: s, relative: o };
|
|
4803
4803
|
for (let l = 0; l < c.length; l++)
|
|
4804
4804
|
B[c[l]] = i[r * c.length + l];
|
|
4805
4805
|
a.push(B);
|
|
4806
4806
|
}
|
|
4807
4807
|
} else
|
|
4808
|
-
a.push({ type:
|
|
4808
|
+
a.push({ type: s, relative: o });
|
|
4809
4809
|
}
|
|
4810
4810
|
return a;
|
|
4811
4811
|
}
|
|
@@ -4814,25 +4814,25 @@ class ie {
|
|
|
4814
4814
|
["x1", "y1"],
|
|
4815
4815
|
["x2", "y2"],
|
|
4816
4816
|
["x", "y"]
|
|
4817
|
-
], a = (
|
|
4818
|
-
for (let
|
|
4819
|
-
const [i, o] = t[
|
|
4820
|
-
if (i in
|
|
4821
|
-
const c = [
|
|
4817
|
+
], a = (n) => {
|
|
4818
|
+
for (let s = 0; s < t.length; s++) {
|
|
4819
|
+
const [i, o] = t[s];
|
|
4820
|
+
if (i in n && o in n) {
|
|
4821
|
+
const c = [n[i], n[o]], r = e(c);
|
|
4822
4822
|
if (r.length < 2)
|
|
4823
4823
|
throw new oA("Transformer must return at least 2 points.");
|
|
4824
|
-
|
|
4824
|
+
n[i] = r[0], n[o] = r[1];
|
|
4825
4825
|
}
|
|
4826
4826
|
}
|
|
4827
|
-
return
|
|
4827
|
+
return n;
|
|
4828
4828
|
};
|
|
4829
4829
|
return this.transformPath(A, a);
|
|
4830
4830
|
}
|
|
4831
4831
|
transformPath(A, e) {
|
|
4832
4832
|
const t = [];
|
|
4833
4833
|
for (let a = 0; a < A.length; a++) {
|
|
4834
|
-
const
|
|
4835
|
-
Array.isArray(
|
|
4834
|
+
const n = JSON.parse(JSON.stringify(A[a])), s = e(n);
|
|
4835
|
+
Array.isArray(s) ? t.push(...s) : s && t.push(s);
|
|
4836
4836
|
}
|
|
4837
4837
|
return t;
|
|
4838
4838
|
}
|
|
@@ -4854,11 +4854,11 @@ class La extends ae {
|
|
|
4854
4854
|
return this.svg(A);
|
|
4855
4855
|
}
|
|
4856
4856
|
svg(A) {
|
|
4857
|
-
const e = PA(Ga), a = A !== "" ? ((
|
|
4858
|
-
return this.brandSvg(
|
|
4857
|
+
const e = PA(Ga), a = A !== "" ? ((s) => s.charAt(0).toUpperCase() + s.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72);
|
|
4858
|
+
return this.brandSvg(n, va);
|
|
4859
4859
|
}
|
|
4860
4860
|
brandSvg(A, e) {
|
|
4861
|
-
const t = A.toSVG(2), a = A.getBoundingBox(),
|
|
4861
|
+
const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
|
|
4862
4862
|
const p = H("g"), F = H("defs");
|
|
4863
4863
|
p.appendChild(F), F.appendChild(tt(3, 7, 4, "shadow"));
|
|
4864
4864
|
const I = H("g");
|
|
@@ -4868,7 +4868,7 @@ class La extends ae {
|
|
|
4868
4868
|
const M = H("g");
|
|
4869
4869
|
p.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = t;
|
|
4870
4870
|
const Y = H("g");
|
|
4871
|
-
return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = t, new ie(p).transform(([S, k]) => [S, k + (
|
|
4871
|
+
return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = t, new ie(p).transform(([S, k]) => [S, k + (n / 2 - S) ** 2 / (n * 2.9)]), p;
|
|
4872
4872
|
}, [o, c, r] = At(e);
|
|
4873
4873
|
if (!o)
|
|
4874
4874
|
return "";
|
|
@@ -4876,14 +4876,14 @@ class La extends ae {
|
|
|
4876
4876
|
o.appendChild(B), et(o, B, e);
|
|
4877
4877
|
const l = c * 0.23, d = r * 0.94, E = r * 0.04, C = c * 0.53, w = H("g");
|
|
4878
4878
|
o.appendChild(w), w.setAttribute("transform", `translate(${E} ${C}) rotate(-21)`);
|
|
4879
|
-
const h =
|
|
4879
|
+
const h = ne(l, d);
|
|
4880
4880
|
h.setAttribute("opacity", "0"), w.appendChild(h);
|
|
4881
4881
|
const Q = H("g");
|
|
4882
4882
|
w.appendChild(Q);
|
|
4883
4883
|
const m = i();
|
|
4884
4884
|
Q.appendChild(m);
|
|
4885
|
-
const u = ee(
|
|
4886
|
-
return
|
|
4885
|
+
const u = ee(s);
|
|
4886
|
+
return se(Q, u, l, d), at(o.outerHTML);
|
|
4887
4887
|
}
|
|
4888
4888
|
}
|
|
4889
4889
|
const Oa = "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==";
|
|
@@ -4898,11 +4898,11 @@ class za extends ae {
|
|
|
4898
4898
|
return this.svg(A);
|
|
4899
4899
|
}
|
|
4900
4900
|
svg(A) {
|
|
4901
|
-
const e = PA(Oa), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "",
|
|
4902
|
-
return this.brandSvg(
|
|
4901
|
+
const e = PA(Oa), a = A !== "" ? ((o) => o.charAt(0).toUpperCase() + o.substr(1).toLowerCase())(A) : "", n = e.getPath(a, 0, 72, 72), s = A.length < this.shortLength, i = s ? this.backgroundShortSvg : this.backgroundSvg;
|
|
4902
|
+
return this.brandSvg(n, i, s);
|
|
4903
4903
|
}
|
|
4904
4904
|
brandSvg(A, e, t) {
|
|
4905
|
-
const a = A.toSVG(2),
|
|
4905
|
+
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), c = () => {
|
|
4906
4906
|
const I = H("g"), f = H("g");
|
|
4907
4907
|
I.appendChild(f), f.setAttribute("stroke", "#5C1A0D"), f.setAttribute("stroke-width", "4"), f.setAttribute("transform", "translate(1,1)"), f.innerHTML = a;
|
|
4908
4908
|
const M = H("g");
|
|
@@ -4913,7 +4913,7 @@ class za extends ae {
|
|
|
4913
4913
|
return R.transform(([S, k]) => [S, k + ((i - S) * k) ** 2 / (i * 5e4)]), R.transform(([S, k]) => [
|
|
4914
4914
|
S,
|
|
4915
4915
|
k + (i / 3 - S) ** 2 / i * this.indicator(S < i / 3)
|
|
4916
|
-
]), R.transform(([S, k]) => [S - (
|
|
4916
|
+
]), R.transform(([S, k]) => [S - (s - k) * (i - S) / 800, k]), I;
|
|
4917
4917
|
}, [r, B, l] = At(e);
|
|
4918
4918
|
if (!r)
|
|
4919
4919
|
return "";
|
|
@@ -4923,14 +4923,14 @@ class za extends ae {
|
|
|
4923
4923
|
t ? (E = B * 0.25 * (1 + 0.1), C = l / 2 * (1 + 0.1), w = l * 0.22, h = B * 0.32) : (E = B * 0.22 * (1 + 0.1), C = l * 0.8, w = l * 0.067, h = B * 0.33);
|
|
4924
4924
|
const Q = H("g");
|
|
4925
4925
|
r.appendChild(Q), Q.setAttribute("transform", `translate(${w} ${h}) rotate(-10)`);
|
|
4926
|
-
const m =
|
|
4926
|
+
const m = ne(E, C);
|
|
4927
4927
|
m.setAttribute("opacity", "0"), Q.appendChild(m);
|
|
4928
4928
|
const u = H("g");
|
|
4929
4929
|
Q.appendChild(u);
|
|
4930
4930
|
const p = c();
|
|
4931
4931
|
u.appendChild(p);
|
|
4932
4932
|
const F = ee(o);
|
|
4933
|
-
return
|
|
4933
|
+
return se(u, F, E, C), r.outerHTML;
|
|
4934
4934
|
}
|
|
4935
4935
|
// 1 if true, 0 if false.
|
|
4936
4936
|
}
|
|
@@ -4946,7 +4946,7 @@ class ja extends ae {
|
|
|
4946
4946
|
return this.svgElement(A, e);
|
|
4947
4947
|
}
|
|
4948
4948
|
svgElement(A, e) {
|
|
4949
|
-
const t = PA(Ka),
|
|
4949
|
+
const t = PA(Ka), n = A !== "" ? ((m) => m.charAt(0).toUpperCase() + m.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), c = o.x2 - o.x1, r = s.toPathData(3), B = () => {
|
|
4950
4950
|
const m = H("g");
|
|
4951
4951
|
m.classList.add("module-text-group");
|
|
4952
4952
|
const u = H("defs");
|
|
@@ -4967,17 +4967,17 @@ class ja extends ae {
|
|
|
4967
4967
|
l.appendChild(d);
|
|
4968
4968
|
const E = H("g");
|
|
4969
4969
|
E.classList.add("module-bounds"), l.appendChild(E);
|
|
4970
|
-
const C =
|
|
4970
|
+
const C = ne(e.height, e.width);
|
|
4971
4971
|
C.setAttribute("opacity", "0"), E.appendChild(C);
|
|
4972
4972
|
const w = H("g");
|
|
4973
4973
|
w.classList.add("module-text-enclosure"), l.appendChild(w);
|
|
4974
4974
|
const h = B();
|
|
4975
4975
|
w.appendChild(h);
|
|
4976
4976
|
const Q = ee(r);
|
|
4977
|
-
return
|
|
4977
|
+
return se(w, Q, e.height, e.width, 0.35, 0.65), at(l.outerHTML);
|
|
4978
4978
|
}
|
|
4979
4979
|
}
|
|
4980
|
-
async function
|
|
4980
|
+
async function nt(g) {
|
|
4981
4981
|
if (g === "Favourites")
|
|
4982
4982
|
return new La();
|
|
4983
4983
|
if (g === "Maltesers") {
|
|
@@ -5004,7 +5004,7 @@ class ue extends Ve {
|
|
|
5004
5004
|
}
|
|
5005
5005
|
class Wa {
|
|
5006
5006
|
// True when the transaction is being reloaded, rather than newly created.
|
|
5007
|
-
constructor(A, e, t, a,
|
|
5007
|
+
constructor(A, e, t, a, n, s, i, o, c, r, B = !1, l, d = !1) {
|
|
5008
5008
|
this.workflowStatePromiseQueue = new We(1), this.variationRecords = [], this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.render3DScene = () => {
|
|
5009
5009
|
var w;
|
|
5010
5010
|
if (!this.previewService)
|
|
@@ -5018,7 +5018,7 @@ class Wa {
|
|
|
5018
5018
|
this.getCurrentVariationRecord(),
|
|
5019
5019
|
this.getProduct().overlayImageUrl
|
|
5020
5020
|
);
|
|
5021
|
-
}, this.updateTransaction =
|
|
5021
|
+
}, this.updateTransaction = n, this.commandContext = a, this.reloadedState = r, this.transaction = s, this.readOnly = B, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = o, this.modelContainer = l, 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.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.invalidModelVariants = [], this.currentAdjustingStepId = "", this.renderableContextService = c, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
|
|
5022
5022
|
this.initialized = !0;
|
|
5023
5023
|
}), this.initializationPromise.catch((E) => {
|
|
5024
5024
|
throw console.error(E), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -5050,8 +5050,8 @@ class Wa {
|
|
|
5050
5050
|
},
|
|
5051
5051
|
e
|
|
5052
5052
|
);
|
|
5053
|
-
const
|
|
5054
|
-
this.commandContext.apply(new G(i), !0), this.stepElements = { ...this.stepElements, ...
|
|
5053
|
+
const n = rA(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: s, commands: i } = await this.stepElementsForIntroducedSilentSteps(n, !!this.reloadedState);
|
|
5054
|
+
this.commandContext.apply(new G(i), !0), this.stepElements = { ...this.stepElements, ...s }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.render3DScene(), this.reloadedState && t();
|
|
5055
5055
|
}
|
|
5056
5056
|
getProduct() {
|
|
5057
5057
|
return this.product;
|
|
@@ -5063,7 +5063,7 @@ class Wa {
|
|
|
5063
5063
|
return this.initialized;
|
|
5064
5064
|
}
|
|
5065
5065
|
addVariationRecord(A) {
|
|
5066
|
-
const e = this.variationRecords.reduce((a,
|
|
5066
|
+
const e = this.variationRecords.reduce((a, n) => n.recordNumber > a ? n.recordNumber : a, 0), t = { ...A, recordNumber: e + 1 };
|
|
5067
5067
|
return this.variationRecords.push(t), this.onVariationRecordsChange(), t;
|
|
5068
5068
|
}
|
|
5069
5069
|
removeVariationRecord(A) {
|
|
@@ -5268,9 +5268,9 @@ class Wa {
|
|
|
5268
5268
|
const A = [];
|
|
5269
5269
|
return this.allScenes.forEach((e) => {
|
|
5270
5270
|
e.renderableSteps.forEach((t) => {
|
|
5271
|
-
var
|
|
5271
|
+
var n, s;
|
|
5272
5272
|
const a = { stepName: t.stepName };
|
|
5273
|
-
a.storage = this.storage[t.stepName], a.selectedVariants = (
|
|
5273
|
+
a.storage = this.storage[t.stepName], a.selectedVariants = (s = (n = this.stepSelections[t.stepName]) == null ? void 0 : n.selectedVariants) == null ? void 0 : s.map(
|
|
5274
5274
|
(i) => ({ id: i.id, priceModifier: i.priceModifier })
|
|
5275
5275
|
), A.push(a);
|
|
5276
5276
|
});
|
|
@@ -5315,8 +5315,8 @@ class Wa {
|
|
|
5315
5315
|
layouts: {},
|
|
5316
5316
|
serializableWorkflow: { steps: [] },
|
|
5317
5317
|
...gA(t) || {}
|
|
5318
|
-
},
|
|
5319
|
-
return { transaction: e, variation:
|
|
5318
|
+
}, n = JSON.stringify(this.dehydrateState(a));
|
|
5319
|
+
return { transaction: e, variation: n };
|
|
5320
5320
|
}
|
|
5321
5321
|
dehydrateState(A) {
|
|
5322
5322
|
for (const e of Object.values(A.layouts).map((t) => t.elements).flat())
|
|
@@ -5333,12 +5333,12 @@ class Wa {
|
|
|
5333
5333
|
}, this.onMetadataChange();
|
|
5334
5334
|
}
|
|
5335
5335
|
removeElements(A) {
|
|
5336
|
-
const e = (t, a) => Object.keys(t).reduce((
|
|
5337
|
-
const i = [...t[
|
|
5336
|
+
const e = (t, a) => Object.keys(t).reduce((n, s) => {
|
|
5337
|
+
const i = [...t[s] || []];
|
|
5338
5338
|
return a.forEach((o) => {
|
|
5339
5339
|
const c = i.findIndex((r) => r.id === o.id);
|
|
5340
5340
|
c > -1 && i.splice(c, 1);
|
|
5341
|
-
}), s
|
|
5341
|
+
}), n[s] = i, n;
|
|
5342
5342
|
}, {});
|
|
5343
5343
|
this.stepElements = e(this.stepElements, A);
|
|
5344
5344
|
}
|
|
@@ -5370,18 +5370,18 @@ class Wa {
|
|
|
5370
5370
|
return { step: c, results: l };
|
|
5371
5371
|
}
|
|
5372
5372
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
5373
|
-
},
|
|
5373
|
+
}, n = A.filter(
|
|
5374
5374
|
(c) => !this.stepInitialised[c.stepName]
|
|
5375
|
-
),
|
|
5375
|
+
), s = {
|
|
5376
5376
|
stepElements: {},
|
|
5377
5377
|
commands: []
|
|
5378
5378
|
}, i = [];
|
|
5379
|
-
for (const c of
|
|
5379
|
+
for (const c of n)
|
|
5380
5380
|
this.markStepsAsInitialised([c.stepName]), e || i.push(a(c, this.layouts, t));
|
|
5381
5381
|
const o = await Promise.all(i);
|
|
5382
5382
|
for (const c of o)
|
|
5383
|
-
|
|
5384
|
-
return
|
|
5383
|
+
s.stepElements[c.step.stepName] = c.results.map((r) => r.regionElement), s.commands = [...s.commands, ...c.results.map((r) => r.command)];
|
|
5384
|
+
return s;
|
|
5385
5385
|
}
|
|
5386
5386
|
getStepStorage(A) {
|
|
5387
5387
|
return this.storage[A];
|
|
@@ -5413,14 +5413,14 @@ class Wa {
|
|
|
5413
5413
|
}
|
|
5414
5414
|
async setSelectionsAndElements(A, e, t, a) {
|
|
5415
5415
|
var m;
|
|
5416
|
-
const
|
|
5416
|
+
const n = this.stepSelections;
|
|
5417
5417
|
this.stepSelections = {
|
|
5418
5418
|
...this.stepSelections,
|
|
5419
5419
|
[A]: { selectedVariants: e }
|
|
5420
5420
|
}, this.selectionCost = Object.values(this.stepSelections).reduce((u, p) => u + p.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, I) => F + I, 0), 0), this.workflow.steps.forEach((u) => {
|
|
5421
5421
|
tA(u, this.stepSelections) || (this.stepInitialised[u.stepName] = !1, delete this.stepMetadata[u.stepName], delete this.stepSelections[u.stepName], delete this.storage[u.stepName]);
|
|
5422
5422
|
});
|
|
5423
|
-
const
|
|
5423
|
+
const s = this.allScenes, i = rA(s, n), o = rA(s, this.stepSelections), c = i.map((u) => u.silentSteps).flat(), B = o.map((u) => u.silentSteps).flat().filter(
|
|
5424
5424
|
(u) => !c.some((p) => p.stepName === u.stepName)
|
|
5425
5425
|
);
|
|
5426
5426
|
c.forEach((u) => {
|
|
@@ -5487,7 +5487,7 @@ class Wa {
|
|
|
5487
5487
|
break;
|
|
5488
5488
|
case D.Module:
|
|
5489
5489
|
this.stepSpecificServices[r.stepName] = {
|
|
5490
|
-
module: await
|
|
5490
|
+
module: await nt(r.data.module)
|
|
5491
5491
|
}, t.push(
|
|
5492
5492
|
Ya.init(r, this, this.reloadedState)
|
|
5493
5493
|
);
|
|
@@ -5509,12 +5509,12 @@ class Wa {
|
|
|
5509
5509
|
t.push(K.init(r, this, this.reloadedState));
|
|
5510
5510
|
break;
|
|
5511
5511
|
}
|
|
5512
|
-
const
|
|
5512
|
+
const n = (await Promise.allSettled(t)).map((r) => {
|
|
5513
5513
|
if (r.status === "rejected")
|
|
5514
5514
|
throw new Error(`Step initialization failed: ${r.reason}`);
|
|
5515
5515
|
return r.value;
|
|
5516
|
-
}),
|
|
5517
|
-
|
|
5516
|
+
}), s = n.filter((r) => !!r && !!r.command).map((r) => r.command), i = n.filter((r) => !!r && !!r.followup).map((r) => r.followup);
|
|
5517
|
+
s && s.length > 0 && this.commandContext.apply(new G(s), !0);
|
|
5518
5518
|
for (const r of i)
|
|
5519
5519
|
await r();
|
|
5520
5520
|
i.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
|
|
@@ -5631,8 +5631,8 @@ class X {
|
|
|
5631
5631
|
* @returns The URL for a thumbnail resource configured on this variant.
|
|
5632
5632
|
*/
|
|
5633
5633
|
getThumbnail() {
|
|
5634
|
-
var t, a,
|
|
5635
|
-
const A = (
|
|
5634
|
+
var t, a, n, s;
|
|
5635
|
+
const A = (n = (a = (t = this.variantData.thumbnail) == null ? void 0 : t.versions) == null ? void 0 : a.find((i) => i.name === "thumbnail")) == null ? void 0 : n.link, e = (s = this.variantData.thumbnail) == null ? void 0 : s.fileLink;
|
|
5636
5636
|
return A || e;
|
|
5637
5637
|
}
|
|
5638
5638
|
/**
|
|
@@ -5668,7 +5668,7 @@ class X {
|
|
|
5668
5668
|
return this.variantData.enabled;
|
|
5669
5669
|
}
|
|
5670
5670
|
}
|
|
5671
|
-
const
|
|
5671
|
+
const st = class ZA {
|
|
5672
5672
|
constructor(A, e) {
|
|
5673
5673
|
this.manager = A, this.step = e;
|
|
5674
5674
|
}
|
|
@@ -5755,8 +5755,8 @@ const nt = class ZA {
|
|
|
5755
5755
|
A && a && A.executeCameraAnimation(a), e && t && e.executeAnimation(t);
|
|
5756
5756
|
}
|
|
5757
5757
|
};
|
|
5758
|
-
|
|
5759
|
-
let j =
|
|
5758
|
+
st.updateState = /* @__PURE__ */ new Map();
|
|
5759
|
+
let j = st;
|
|
5760
5760
|
const it = y`
|
|
5761
5761
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
5762
5762
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
@@ -5919,7 +5919,7 @@ class _a extends j {
|
|
|
5919
5919
|
);
|
|
5920
5920
|
}
|
|
5921
5921
|
}
|
|
5922
|
-
class
|
|
5922
|
+
class An extends j {
|
|
5923
5923
|
constructor(A, e) {
|
|
5924
5924
|
super(A, e);
|
|
5925
5925
|
}
|
|
@@ -5937,7 +5937,7 @@ class As extends j {
|
|
|
5937
5937
|
);
|
|
5938
5938
|
}
|
|
5939
5939
|
}
|
|
5940
|
-
class
|
|
5940
|
+
class en extends j {
|
|
5941
5941
|
constructor(A, e) {
|
|
5942
5942
|
super(A, e);
|
|
5943
5943
|
}
|
|
@@ -5954,7 +5954,7 @@ class es extends j {
|
|
|
5954
5954
|
return (A = this.step.option) == null ? void 0 : A.displayType;
|
|
5955
5955
|
}
|
|
5956
5956
|
}
|
|
5957
|
-
class
|
|
5957
|
+
class tn extends j {
|
|
5958
5958
|
constructor(A, e) {
|
|
5959
5959
|
super(A, e);
|
|
5960
5960
|
}
|
|
@@ -6016,7 +6016,7 @@ class ts extends j {
|
|
|
6016
6016
|
return A;
|
|
6017
6017
|
}
|
|
6018
6018
|
}
|
|
6019
|
-
class
|
|
6019
|
+
class an extends j {
|
|
6020
6020
|
constructor(A, e) {
|
|
6021
6021
|
super(A, e);
|
|
6022
6022
|
}
|
|
@@ -6086,8 +6086,8 @@ class as extends j {
|
|
|
6086
6086
|
* @param shouldCustomizeAll When true the user can configure the entire text string.
|
|
6087
6087
|
*/
|
|
6088
6088
|
setFullTextCustomization(A) {
|
|
6089
|
-
var
|
|
6090
|
-
const e = ((
|
|
6089
|
+
var s;
|
|
6090
|
+
const e = ((s = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : s.inputText) || "", t = this.step.data.replaceableText !== void 0 ? this.step.data.replaceableText.replace("{{}}", e) : e, a = A ? t : this.step.data.defaultText;
|
|
6091
6091
|
return this.manager.updateStorage(this.step.stepName, {
|
|
6092
6092
|
customiseAllText: A,
|
|
6093
6093
|
text: a,
|
|
@@ -6104,10 +6104,10 @@ class as extends j {
|
|
|
6104
6104
|
input: A
|
|
6105
6105
|
}, t = K.findLayoutElements(this.manager, this.step), a = K.filterUnsupportedCharacters(A, (d = t[0]) == null ? void 0 : d.fontData);
|
|
6106
6106
|
!!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (e.input = a);
|
|
6107
|
-
const
|
|
6107
|
+
const s = t.length <= 0, i = s ? { inputText: a, text: a } : { inputText: a };
|
|
6108
6108
|
if (this.manager.updateStorage(this.step.stepName, i), this.manager.updateMetadata(this.step.stepName, {
|
|
6109
6109
|
text: a
|
|
6110
|
-
}),
|
|
6110
|
+
}), s)
|
|
6111
6111
|
return e;
|
|
6112
6112
|
const { command: o, errors: c, helperText: r } = K.updateInputText(
|
|
6113
6113
|
a,
|
|
@@ -6189,7 +6189,7 @@ class as extends j {
|
|
|
6189
6189
|
return A - e.length;
|
|
6190
6190
|
}
|
|
6191
6191
|
}
|
|
6192
|
-
class
|
|
6192
|
+
class nn extends j {
|
|
6193
6193
|
constructor(A, e) {
|
|
6194
6194
|
super(A, e);
|
|
6195
6195
|
}
|
|
@@ -6206,23 +6206,23 @@ class iA {
|
|
|
6206
6206
|
static get(A, e) {
|
|
6207
6207
|
switch (e.type) {
|
|
6208
6208
|
case D.Information:
|
|
6209
|
-
return new
|
|
6209
|
+
return new nn(A, e);
|
|
6210
6210
|
case D.Question:
|
|
6211
|
-
return new
|
|
6211
|
+
return new en(A, e);
|
|
6212
6212
|
case D.Text:
|
|
6213
|
-
return new
|
|
6213
|
+
return new an(A, e);
|
|
6214
6214
|
case D.Illustration:
|
|
6215
6215
|
return new Za(A, e);
|
|
6216
6216
|
case D.Picture:
|
|
6217
|
-
return new
|
|
6217
|
+
return new An(A, e);
|
|
6218
6218
|
case D.Shape:
|
|
6219
|
-
return new
|
|
6219
|
+
return new tn(A, e);
|
|
6220
6220
|
case D.Material:
|
|
6221
6221
|
return new $a(A, e);
|
|
6222
6222
|
case D.Model:
|
|
6223
6223
|
return new _a(A, e);
|
|
6224
6224
|
case D.Frame:
|
|
6225
|
-
return new
|
|
6225
|
+
return new ps(A, e);
|
|
6226
6226
|
case D.Bulk:
|
|
6227
6227
|
return new qa(A, e);
|
|
6228
6228
|
default:
|
|
@@ -6247,7 +6247,7 @@ const ot = y`
|
|
|
6247
6247
|
workflowViewerLink
|
|
6248
6248
|
workflowViewerReadOnlyLink
|
|
6249
6249
|
}
|
|
6250
|
-
`,
|
|
6250
|
+
`, sn = y`
|
|
6251
6251
|
${ot}
|
|
6252
6252
|
mutation CreateDesign(
|
|
6253
6253
|
$name: String!
|
|
@@ -6279,7 +6279,7 @@ const ot = y`
|
|
|
6279
6279
|
}
|
|
6280
6280
|
}
|
|
6281
6281
|
}
|
|
6282
|
-
`,
|
|
6282
|
+
`, on = y`
|
|
6283
6283
|
${ot}
|
|
6284
6284
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6285
6285
|
designCreateMany(inputs: $inputs) {
|
|
@@ -6293,10 +6293,10 @@ const ot = y`
|
|
|
6293
6293
|
}
|
|
6294
6294
|
}
|
|
6295
6295
|
}
|
|
6296
|
-
`,
|
|
6296
|
+
`, rn = async (g) => {
|
|
6297
6297
|
var e;
|
|
6298
6298
|
return (e = (await N.getShadowGraphqlClient().mutate({
|
|
6299
|
-
mutation:
|
|
6299
|
+
mutation: sn,
|
|
6300
6300
|
errorPolicy: "all",
|
|
6301
6301
|
fetchPolicy: "no-cache",
|
|
6302
6302
|
variables: {
|
|
@@ -6310,10 +6310,10 @@ const ot = y`
|
|
|
6310
6310
|
selectedVariants: g.selectedVariants
|
|
6311
6311
|
}
|
|
6312
6312
|
})).data) == null ? void 0 : e.designCreate;
|
|
6313
|
-
},
|
|
6313
|
+
}, cn = async (g) => {
|
|
6314
6314
|
var e;
|
|
6315
6315
|
return (e = (await N.getShadowGraphqlClient().mutate({
|
|
6316
|
-
mutation:
|
|
6316
|
+
mutation: on,
|
|
6317
6317
|
errorPolicy: "all",
|
|
6318
6318
|
fetchPolicy: "no-cache",
|
|
6319
6319
|
variables: {
|
|
@@ -6330,61 +6330,61 @@ const ot = y`
|
|
|
6330
6330
|
}
|
|
6331
6331
|
})).data) == null ? void 0 : e.designCreateMany;
|
|
6332
6332
|
}, $A = (g, A, e) => {
|
|
6333
|
-
const t = (
|
|
6334
|
-
const
|
|
6335
|
-
if (
|
|
6336
|
-
const i = g[
|
|
6333
|
+
const t = (n) => {
|
|
6334
|
+
const s = {};
|
|
6335
|
+
if (n.type === "Frame") {
|
|
6336
|
+
const i = g[n.stepName], o = n.data;
|
|
6337
6337
|
if (!i || o.hideImageInCart && e)
|
|
6338
|
-
return
|
|
6339
|
-
|
|
6338
|
+
return s;
|
|
6339
|
+
s[`${n.stepTitle} image`] = i.image;
|
|
6340
6340
|
}
|
|
6341
|
-
if (
|
|
6342
|
-
const i = g[
|
|
6341
|
+
if (n.type === "Illustration") {
|
|
6342
|
+
const i = g[n.stepName], o = n.data;
|
|
6343
6343
|
if (!i || o.hideColorsInCart && e || !i.colors)
|
|
6344
|
-
return
|
|
6344
|
+
return s;
|
|
6345
6345
|
if (i.colors.length > 0) {
|
|
6346
6346
|
const c = i.colors.join(", ").toUpperCase();
|
|
6347
|
-
|
|
6347
|
+
s[`${n.stepTitle} colors`] = c;
|
|
6348
6348
|
}
|
|
6349
6349
|
}
|
|
6350
|
-
if (
|
|
6351
|
-
const i = g[
|
|
6350
|
+
if (n.type === "Module") {
|
|
6351
|
+
const i = g[n.stepName], o = n.data;
|
|
6352
6352
|
if (!i || o.hideTextInCart && e)
|
|
6353
|
-
return
|
|
6354
|
-
|
|
6353
|
+
return s;
|
|
6354
|
+
s[`${n.stepTitle} text`] = i.text;
|
|
6355
6355
|
}
|
|
6356
|
-
if (
|
|
6357
|
-
const i = g[
|
|
6356
|
+
if (n.type === "Text") {
|
|
6357
|
+
const i = g[n.stepName];
|
|
6358
6358
|
if (!i)
|
|
6359
|
-
return
|
|
6360
|
-
const o =
|
|
6361
|
-
(!o.hideTextInCart || !e) && (
|
|
6359
|
+
return s;
|
|
6360
|
+
const o = n.data;
|
|
6361
|
+
(!o.hideTextInCart || !e) && (s[`${n.stepTitle} text`] = i.text), i.color && (!o.hideColorInCart || !e) && (s[`${n.stepTitle} color`] = i.color);
|
|
6362
6362
|
}
|
|
6363
|
-
return
|
|
6363
|
+
return s;
|
|
6364
6364
|
}, a = {};
|
|
6365
|
-
return A.steps.forEach((
|
|
6366
|
-
Object.assign(a, t(
|
|
6365
|
+
return A.steps.forEach((n) => {
|
|
6366
|
+
Object.assign(a, t(n));
|
|
6367
6367
|
}), a;
|
|
6368
|
-
},
|
|
6368
|
+
}, gn = (g, A, e, t) => {
|
|
6369
6369
|
const a = {};
|
|
6370
|
-
let
|
|
6370
|
+
let n;
|
|
6371
6371
|
if (e) {
|
|
6372
|
-
|
|
6373
|
-
for (const
|
|
6374
|
-
a[
|
|
6375
|
-
value: s
|
|
6372
|
+
n = $A(e, A, !1);
|
|
6373
|
+
for (const s of Object.keys(n))
|
|
6374
|
+
a[s] = {
|
|
6375
|
+
value: n[s],
|
|
6376
6376
|
priceModifier: 0
|
|
6377
6377
|
};
|
|
6378
6378
|
} else if (t) {
|
|
6379
|
-
|
|
6380
|
-
for (const
|
|
6381
|
-
a[
|
|
6382
|
-
value: s
|
|
6379
|
+
n = t;
|
|
6380
|
+
for (const s of Object.keys(n))
|
|
6381
|
+
a[s] = {
|
|
6382
|
+
value: n[s],
|
|
6383
6383
|
priceModifier: 0
|
|
6384
6384
|
};
|
|
6385
6385
|
}
|
|
6386
|
-
for (const
|
|
6387
|
-
const i = g[
|
|
6386
|
+
for (const s of Object.keys(g)) {
|
|
6387
|
+
const i = g[s], o = A.steps.find((c) => c.stepTitle === s);
|
|
6388
6388
|
if (i.length === 1)
|
|
6389
6389
|
a[`${o == null ? void 0 : o.stepTitle} selection`] = {
|
|
6390
6390
|
value: i[0].name,
|
|
@@ -6398,16 +6398,16 @@ const ot = y`
|
|
|
6398
6398
|
};
|
|
6399
6399
|
}
|
|
6400
6400
|
return a;
|
|
6401
|
-
}, rt = (g, A, e, t, a,
|
|
6401
|
+
}, rt = (g, A, e, t, a, n, s, i, o, c) => {
|
|
6402
6402
|
const B = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), l = {
|
|
6403
6403
|
baseCost: e,
|
|
6404
6404
|
designProductId: g.externalDesignProductId,
|
|
6405
6405
|
designProductVariantId: g.externalDesignProductVariantId,
|
|
6406
6406
|
event: "onComplete",
|
|
6407
|
-
exportedData:
|
|
6407
|
+
exportedData: n,
|
|
6408
6408
|
externalCartProductId: g.externalCartProductId,
|
|
6409
6409
|
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
6410
|
-
lineItemImageUrl:
|
|
6410
|
+
lineItemImageUrl: s || "",
|
|
6411
6411
|
optionsCost: t,
|
|
6412
6412
|
processExecutionId: c,
|
|
6413
6413
|
transactionId: g.id,
|
|
@@ -6417,8 +6417,8 @@ const ot = y`
|
|
|
6417
6417
|
workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
|
|
6418
6418
|
};
|
|
6419
6419
|
return a && (l.metadata = a), i && (l.selectedVariants = i), o && (l.sku = o), l;
|
|
6420
|
-
},
|
|
6421
|
-
const a = (A.basePrice || 0) * (g.variationsCount || 0),
|
|
6420
|
+
}, ln = (g, A, e, t) => {
|
|
6421
|
+
const a = (A.basePrice || 0) * (g.variationsCount || 0), n = g.priceModifierTotal || 0, s = {
|
|
6422
6422
|
items: {
|
|
6423
6423
|
value: g.variationsCount ? `${g.variationsCount}` : "0",
|
|
6424
6424
|
priceModifier: 0
|
|
@@ -6428,29 +6428,29 @@ const ot = y`
|
|
|
6428
6428
|
g,
|
|
6429
6429
|
A,
|
|
6430
6430
|
a,
|
|
6431
|
-
s,
|
|
6432
|
-
void 0,
|
|
6433
6431
|
n,
|
|
6432
|
+
void 0,
|
|
6433
|
+
s,
|
|
6434
6434
|
e,
|
|
6435
6435
|
void 0,
|
|
6436
6436
|
void 0,
|
|
6437
6437
|
t
|
|
6438
6438
|
);
|
|
6439
|
-
}, ct = async (g, A, e, t, a,
|
|
6440
|
-
const o = A.basePrice || 0, c = g.priceModifierTotal || 0, r =
|
|
6439
|
+
}, ct = async (g, A, e, t, a, n, s, i) => {
|
|
6440
|
+
const o = A.basePrice || 0, c = g.priceModifierTotal || 0, r = gn(t, e, void 0, n);
|
|
6441
6441
|
return rt(
|
|
6442
6442
|
g,
|
|
6443
6443
|
A,
|
|
6444
6444
|
o,
|
|
6445
6445
|
c,
|
|
6446
|
-
s,
|
|
6447
|
-
r,
|
|
6448
6446
|
n,
|
|
6447
|
+
r,
|
|
6448
|
+
s,
|
|
6449
6449
|
t,
|
|
6450
6450
|
a,
|
|
6451
6451
|
i
|
|
6452
6452
|
);
|
|
6453
|
-
}, gt = async (g, A, e, t, a,
|
|
6453
|
+
}, gt = async (g, A, e, t, a, n, s, i, o, c) => {
|
|
6454
6454
|
var f;
|
|
6455
6455
|
await (async () => {
|
|
6456
6456
|
var S;
|
|
@@ -6470,9 +6470,9 @@ const ot = y`
|
|
|
6470
6470
|
const l = g.getPreviewService(), d = (f = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : f.lookAtAnimation, E = l && l.getSceneInitializationProgress() === 100 && A.showModelOnFinishStep && !!d, C = o && $A(o, A, !0), w = o && $A(o, A, !1), h = async (M) => {
|
|
6471
6471
|
const Y = {};
|
|
6472
6472
|
let R = 0;
|
|
6473
|
-
if (Object.keys(
|
|
6474
|
-
for (const S of Object.keys(
|
|
6475
|
-
const k =
|
|
6473
|
+
if (Object.keys(n).length > 0)
|
|
6474
|
+
for (const S of Object.keys(n)) {
|
|
6475
|
+
const k = n[S], V = A.steps.find((W) => W.stepName === S);
|
|
6476
6476
|
for (let W = 0; W < k.selections.length; ++W) {
|
|
6477
6477
|
const q = k.selections[W];
|
|
6478
6478
|
if (V && (!M || V.option && (V.option.variants || []).length > 1 && !V.data.hideSelectionInCart && !V.data.hideSelectionsInCart)) {
|
|
@@ -6504,7 +6504,7 @@ const ot = y`
|
|
|
6504
6504
|
return {
|
|
6505
6505
|
designDetails: (() => {
|
|
6506
6506
|
const M = {
|
|
6507
|
-
name:
|
|
6507
|
+
name: s,
|
|
6508
6508
|
layouts: e.map((Y) => ({
|
|
6509
6509
|
index: Y.index,
|
|
6510
6510
|
panelId: Y.panelId
|
|
@@ -6531,7 +6531,7 @@ const ot = y`
|
|
|
6531
6531
|
cartSelectionsWithPrices: Q,
|
|
6532
6532
|
cartMetadata: C
|
|
6533
6533
|
};
|
|
6534
|
-
},
|
|
6534
|
+
}, Bn = async (g, A, e, t, a, n, s, i, o, c, r, B, l) => {
|
|
6535
6535
|
var m, u, p;
|
|
6536
6536
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6537
6537
|
const { designDetails: d, cartSelectionsWithPrices: E, cartMetadata: C } = await gt(
|
|
@@ -6539,19 +6539,19 @@ const ot = y`
|
|
|
6539
6539
|
A,
|
|
6540
6540
|
e,
|
|
6541
6541
|
t,
|
|
6542
|
-
s,
|
|
6543
6542
|
n,
|
|
6543
|
+
s,
|
|
6544
6544
|
i,
|
|
6545
6545
|
B,
|
|
6546
6546
|
l
|
|
6547
6547
|
);
|
|
6548
|
-
o("workflow.steps.finish.finalize.creatingDesign"),
|
|
6549
|
-
const w = await
|
|
6548
|
+
o("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await c(r);
|
|
6549
|
+
const w = await rn(d), h = (m = w == null ? void 0 : w.transaction) == null ? void 0 : m.previewImageLink;
|
|
6550
6550
|
if (!(w != null && w.transaction))
|
|
6551
6551
|
throw new Error("Failed to create design");
|
|
6552
6552
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
6553
6553
|
const Q = w.transaction;
|
|
6554
|
-
return
|
|
6554
|
+
return n.bulk ? ln(
|
|
6555
6555
|
Q,
|
|
6556
6556
|
a,
|
|
6557
6557
|
h,
|
|
@@ -6566,10 +6566,10 @@ const ot = y`
|
|
|
6566
6566
|
h,
|
|
6567
6567
|
(p = w == null ? void 0 : w.processExecution) == null ? void 0 : p.id
|
|
6568
6568
|
);
|
|
6569
|
-
},
|
|
6569
|
+
}, dn = async (g, A) => {
|
|
6570
6570
|
A("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
6571
|
-
g.map(async (
|
|
6572
|
-
await
|
|
6571
|
+
g.map(async (s) => {
|
|
6572
|
+
await s.workflowManager.outstandingRequestsPromise();
|
|
6573
6573
|
})
|
|
6574
6574
|
);
|
|
6575
6575
|
const t = await (async () => {
|
|
@@ -6584,43 +6584,43 @@ const ot = y`
|
|
|
6584
6584
|
i.errors && console.log("Server Error:", c.message);
|
|
6585
6585
|
}), null) : (o = i.data) != null && o.transactions ? i.data.transactions.map((c) => c.workflowState ?? null) : null;
|
|
6586
6586
|
})(), a = await Promise.all(
|
|
6587
|
-
g.map(async (
|
|
6588
|
-
|
|
6589
|
-
|
|
6590
|
-
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
|
|
6594
|
-
|
|
6587
|
+
g.map(async (s, i) => await gt(
|
|
6588
|
+
s.workflowManager,
|
|
6589
|
+
s.workflow,
|
|
6590
|
+
s.layouts,
|
|
6591
|
+
s.getReducerState,
|
|
6592
|
+
s.transaction,
|
|
6593
|
+
s.workflowSelections,
|
|
6594
|
+
s.designName,
|
|
6595
6595
|
// createPreviewImage,
|
|
6596
6596
|
() => Promise.resolve(void 0),
|
|
6597
|
-
|
|
6597
|
+
s.workflowMetadata,
|
|
6598
6598
|
t ? t[i] : void 0
|
|
6599
6599
|
))
|
|
6600
6600
|
);
|
|
6601
6601
|
A("workflow.steps.finish.finalize.creatingDesign");
|
|
6602
|
-
const
|
|
6603
|
-
if (!
|
|
6602
|
+
const n = await cn(a.map((s) => s.designDetails));
|
|
6603
|
+
if (!n)
|
|
6604
6604
|
throw new Error("Failed to create designs");
|
|
6605
6605
|
return A("workflow.steps.finish.finalize.updatingTransaction"), Promise.all(
|
|
6606
|
-
|
|
6606
|
+
n.map(async (s, i) => {
|
|
6607
6607
|
var B;
|
|
6608
|
-
const o = g[i], c = a[i], r =
|
|
6608
|
+
const o = g[i], c = a[i], r = s.transaction;
|
|
6609
6609
|
return await ct(
|
|
6610
6610
|
r,
|
|
6611
6611
|
o.product,
|
|
6612
6612
|
o.workflow,
|
|
6613
6613
|
c.cartSelectionsWithPrices,
|
|
6614
|
-
|
|
6614
|
+
s.sku,
|
|
6615
6615
|
c.cartMetadata,
|
|
6616
6616
|
//lineItemImageLink,
|
|
6617
6617
|
void 0,
|
|
6618
|
-
(B =
|
|
6618
|
+
(B = s.processExecution) == null ? void 0 : B.id
|
|
6619
6619
|
);
|
|
6620
6620
|
})
|
|
6621
6621
|
);
|
|
6622
6622
|
};
|
|
6623
|
-
class
|
|
6623
|
+
class wn {
|
|
6624
6624
|
constructor() {
|
|
6625
6625
|
this.localPersistenceKey = "designTransactions", this.storageMethod = "Local", this.designSavedListeners = [];
|
|
6626
6626
|
}
|
|
@@ -6666,7 +6666,7 @@ class ds {
|
|
|
6666
6666
|
* Change the user's name of the given saved design.
|
|
6667
6667
|
*/
|
|
6668
6668
|
async renameDesign(A, e) {
|
|
6669
|
-
const t = await this.getSavedDesigns(), a = t.find((
|
|
6669
|
+
const t = await this.getSavedDesigns(), a = t.find((n) => n.transactionId === A);
|
|
6670
6670
|
if (!a)
|
|
6671
6671
|
throw new Error(`No saved design for transaction ${A}.`);
|
|
6672
6672
|
a.title = e, await this.setDesigns(t);
|
|
@@ -6687,7 +6687,7 @@ class ds {
|
|
|
6687
6687
|
throw new J("Unexpected storage method requested");
|
|
6688
6688
|
}
|
|
6689
6689
|
}
|
|
6690
|
-
const zA = new
|
|
6690
|
+
const zA = new wn();
|
|
6691
6691
|
class CA {
|
|
6692
6692
|
constructor(A, e) {
|
|
6693
6693
|
var a;
|
|
@@ -6695,12 +6695,12 @@ class CA {
|
|
|
6695
6695
|
await zA.getSavedDesignByTransaction(
|
|
6696
6696
|
this.getWorkflowManager().getTransaction().id
|
|
6697
6697
|
) && this.save();
|
|
6698
|
-
}, 2500), this.getCanvasObjectURLAsync = async (
|
|
6698
|
+
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((s, i) => {
|
|
6699
6699
|
try {
|
|
6700
|
-
|
|
6700
|
+
n.toBlob((o) => {
|
|
6701
6701
|
if (o) {
|
|
6702
6702
|
const c = URL.createObjectURL(o);
|
|
6703
|
-
|
|
6703
|
+
s(c);
|
|
6704
6704
|
}
|
|
6705
6705
|
});
|
|
6706
6706
|
} catch (o) {
|
|
@@ -6712,16 +6712,16 @@ class CA {
|
|
|
6712
6712
|
const t = e.layouts;
|
|
6713
6713
|
this.commandContext = new St(), this.commandContext.initialize(t, e.reloadedState), this.isReadOnly = e.transaction.isOrdered || !!e.readOnly, this.workflowManager = new Wa(
|
|
6714
6714
|
e.workflow,
|
|
6715
|
-
((a = e.product.profanities) == null ? void 0 : a.map((
|
|
6715
|
+
((a = e.product.profanities) == null ? void 0 : a.map((n) => n.word)) || [],
|
|
6716
6716
|
t,
|
|
6717
6717
|
this.commandContext,
|
|
6718
|
-
(
|
|
6718
|
+
(n) => {
|
|
6719
6719
|
try {
|
|
6720
6720
|
this.debouncedSavedDesignUpdate();
|
|
6721
6721
|
} catch {
|
|
6722
6722
|
console.error("Failed to update saved design details.");
|
|
6723
6723
|
}
|
|
6724
|
-
return e.stateMutationFunc(
|
|
6724
|
+
return e.stateMutationFunc(n);
|
|
6725
6725
|
},
|
|
6726
6726
|
e.transaction,
|
|
6727
6727
|
e.product,
|
|
@@ -6731,8 +6731,8 @@ class CA {
|
|
|
6731
6731
|
e.readOnly,
|
|
6732
6732
|
e.modelContainer,
|
|
6733
6733
|
e.isReloadedTransaction
|
|
6734
|
-
), this.workflowManager.addSelectionCallback((
|
|
6735
|
-
const
|
|
6734
|
+
), this.workflowManager.addSelectionCallback((n) => {
|
|
6735
|
+
const s = n.traversableScenes.map((i) => {
|
|
6736
6736
|
const o = i.renderableSteps.map((c) => c.stepName);
|
|
6737
6737
|
return {
|
|
6738
6738
|
id: i.name,
|
|
@@ -6740,7 +6740,7 @@ class CA {
|
|
|
6740
6740
|
renderableSteps: o
|
|
6741
6741
|
};
|
|
6742
6742
|
});
|
|
6743
|
-
this.renderableScenes =
|
|
6743
|
+
this.renderableScenes = s, this.renderableSceneCallbacks.forEach((i) => i(s));
|
|
6744
6744
|
});
|
|
6745
6745
|
}
|
|
6746
6746
|
getClient() {
|
|
@@ -6779,9 +6779,9 @@ class CA {
|
|
|
6779
6779
|
throw new Error("Failed to generate cart preview image!");
|
|
6780
6780
|
return await ((m = this.workflowManager.getPreviewService()) == null ? void 0 : m.renderSceneScreenshot(512, a)) || "";
|
|
6781
6781
|
}
|
|
6782
|
-
let
|
|
6783
|
-
e && e <= 2048 && (
|
|
6784
|
-
const
|
|
6782
|
+
let n = 2048;
|
|
6783
|
+
e && e <= 2048 && (n = e);
|
|
6784
|
+
const s = MA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, c = t.panels[o], r = i.find((u) => {
|
|
6785
6785
|
var p;
|
|
6786
6786
|
return ((p = u.layoutState) == null ? void 0 : p.layout.panelId) === (c == null ? void 0 : c.name);
|
|
6787
6787
|
}) || i[0], B = r.layoutState.layout.previewRegion ? {
|
|
@@ -6794,7 +6794,7 @@ class CA {
|
|
|
6794
6794
|
y: 0,
|
|
6795
6795
|
width: r.layoutState.layout.width,
|
|
6796
6796
|
height: r.layoutState.layout.height
|
|
6797
|
-
}, l = this.commandContext.getLayoutById(r.layoutState.layout.id), d =
|
|
6797
|
+
}, l = this.commandContext.getLayoutById(r.layoutState.layout.id), d = s.getContext("2d");
|
|
6798
6798
|
if (!d)
|
|
6799
6799
|
throw new vA("Failed to obtain 2D context for preview image creation");
|
|
6800
6800
|
const E = Fe(l.layoutState.layout, l.layoutState.elements, {
|
|
@@ -6811,8 +6811,8 @@ class CA {
|
|
|
6811
6811
|
DOMParser: Se(),
|
|
6812
6812
|
fetch: xe
|
|
6813
6813
|
})).render();
|
|
6814
|
-
const h = await this.getCanvasObjectURLAsync(
|
|
6815
|
-
return
|
|
6814
|
+
const h = await this.getCanvasObjectURLAsync(s);
|
|
6815
|
+
return s.toDataURL(h);
|
|
6816
6816
|
}
|
|
6817
6817
|
getStepById(A) {
|
|
6818
6818
|
const e = this.getWorkflowManager().getWorkflow().steps.find((t) => t.stepName === A);
|
|
@@ -6833,7 +6833,7 @@ class CA {
|
|
|
6833
6833
|
const A = this.getWorkflowManager().getWorkflowSelections();
|
|
6834
6834
|
let e = 0;
|
|
6835
6835
|
return Object.values(A).forEach((t) => {
|
|
6836
|
-
e += t.selections.map((a) => a.priceModifier).reduce((a,
|
|
6836
|
+
e += t.selections.map((a) => a.priceModifier).reduce((a, n) => a + n);
|
|
6837
6837
|
}), e;
|
|
6838
6838
|
}
|
|
6839
6839
|
getBasePriceSubunits() {
|
|
@@ -6878,15 +6878,15 @@ class CA {
|
|
|
6878
6878
|
return this.assignCustomerDetails({ emailAddress: A.email });
|
|
6879
6879
|
}
|
|
6880
6880
|
async assignCustomerDetails(A) {
|
|
6881
|
-
var a,
|
|
6882
|
-
const t = (
|
|
6881
|
+
var a, n, s;
|
|
6882
|
+
const t = (s = (n = (a = (await N.getShadowGraphqlClient().mutate({
|
|
6883
6883
|
mutation: it,
|
|
6884
6884
|
variables: {
|
|
6885
6885
|
id: this.getWorkflowManager().getTransaction().id,
|
|
6886
6886
|
details: A,
|
|
6887
6887
|
type: "Owner"
|
|
6888
6888
|
}
|
|
6889
|
-
})).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 :
|
|
6889
|
+
})).data) == null ? void 0 : a.transactionAddStakeholder) == null ? void 0 : n.stakeholders) == null ? void 0 : s.find(
|
|
6890
6890
|
(i) => {
|
|
6891
6891
|
var o;
|
|
6892
6892
|
return ((o = i.customer) == null ? void 0 : o.emailAddress) === A.emailAddress;
|
|
@@ -6912,7 +6912,7 @@ class CA {
|
|
|
6912
6912
|
var o;
|
|
6913
6913
|
if (A)
|
|
6914
6914
|
return A;
|
|
6915
|
-
const
|
|
6915
|
+
const n = this.getWorkflowManager().getTransaction().id, i = (o = (await zA.getSavedDesigns()).find((c) => c.transactionId === n)) == null ? void 0 : o.title;
|
|
6916
6916
|
return i || "My design";
|
|
6917
6917
|
})(),
|
|
6918
6918
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
@@ -6930,13 +6930,13 @@ class CA {
|
|
|
6930
6930
|
const A = gA(this.getCommandContext().getState());
|
|
6931
6931
|
if (!A)
|
|
6932
6932
|
throw new J("Internal state is undefined! Cannot copy experience!");
|
|
6933
|
-
const e = JSON.stringify(A.transaction), t = this.getWorkflowManager().getWorkflow(), a = new
|
|
6934
|
-
if (!
|
|
6933
|
+
const e = JSON.stringify(A.transaction), t = this.getWorkflowManager().getWorkflow(), a = new us({}), n = (i = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : i.id;
|
|
6934
|
+
if (!n)
|
|
6935
6935
|
throw new J("Integration product id is undefined!");
|
|
6936
|
-
return await a.initFromIntegrationProduct(
|
|
6936
|
+
return await a.initFromIntegrationProduct(n), await a.getWorkflowExperience(t.id, e, void 0);
|
|
6937
6937
|
}
|
|
6938
6938
|
async onDesignFinished(A, e = !0) {
|
|
6939
|
-
return
|
|
6939
|
+
return Bn(
|
|
6940
6940
|
this.workflowManager,
|
|
6941
6941
|
this.workflowManager.getWorkflow(),
|
|
6942
6942
|
this.workflowManager.getLayouts(),
|
|
@@ -6964,22 +6964,22 @@ class CA {
|
|
|
6964
6964
|
getExportedData() {
|
|
6965
6965
|
var a;
|
|
6966
6966
|
const A = /* @__PURE__ */ new Map(), e = this.getWorkflowManager().getWorkflowMetadata(), t = this.getWorkflowManager().getWorkflowSelections();
|
|
6967
|
-
return Object.keys(e).forEach((
|
|
6968
|
-
const
|
|
6969
|
-
if (!
|
|
6967
|
+
return Object.keys(e).forEach((n) => {
|
|
6968
|
+
const s = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
|
|
6969
|
+
if (!s)
|
|
6970
6970
|
return;
|
|
6971
|
-
A.has(
|
|
6972
|
-
const i = e[
|
|
6971
|
+
A.has(s.stepTitle) || A.set(s.stepTitle, {});
|
|
6972
|
+
const i = e[n];
|
|
6973
6973
|
Object.keys(i).forEach((o) => {
|
|
6974
|
-
A.get(
|
|
6974
|
+
A.get(s.stepTitle)[o] = i[o];
|
|
6975
6975
|
});
|
|
6976
|
-
}), (a = Object.keys(t)) == null || a.forEach((
|
|
6977
|
-
const
|
|
6978
|
-
|
|
6976
|
+
}), (a = Object.keys(t)) == null || a.forEach((n) => {
|
|
6977
|
+
const s = this.workflowManager.getWorkflow().steps.find((i) => i.stepName === n);
|
|
6978
|
+
s && (A.has(s.stepTitle) || A.set(s.stepTitle, {}), A.get(s.stepTitle).selection = t[n].selections[0].name);
|
|
6979
6979
|
}), A;
|
|
6980
6980
|
}
|
|
6981
6981
|
}
|
|
6982
|
-
const
|
|
6982
|
+
const En = [
|
|
6983
6983
|
"altGlyph",
|
|
6984
6984
|
"circle",
|
|
6985
6985
|
"ellipse",
|
|
@@ -6991,9 +6991,9 @@ const ws = [
|
|
|
6991
6991
|
"textPath",
|
|
6992
6992
|
"tref",
|
|
6993
6993
|
"tspan"
|
|
6994
|
-
],
|
|
6995
|
-
const t = A.data, a = e.data.baseUrl,
|
|
6996
|
-
i.searchParams.append("video", de(JSON.stringify([{ href:
|
|
6994
|
+
], hn = async (g, A, e) => {
|
|
6995
|
+
const t = A.data, a = e.data.baseUrl, n = t.assetUrl.replace("localhost", "localstack"), s = a.slice(0, 4) === "http" ? "" : "https://", i = new URL(s + a);
|
|
6996
|
+
i.searchParams.append("video", de(JSON.stringify([{ href: n }]))), i.pathname = i.pathname + (i.pathname.slice(-1) === "/" ? "" : "/");
|
|
6997
6997
|
const o = i.toString(), r = `data:image/svg+xml;base64,${de(await ve(o, { type: "svg" }))}`, B = (d) => {
|
|
6998
6998
|
const E = g.find((w) => w.panelId === d.panelId);
|
|
6999
6999
|
if (!E)
|
|
@@ -7018,8 +7018,8 @@ const ws = [
|
|
|
7018
7018
|
} catch (d) {
|
|
7019
7019
|
return console.error(d), [];
|
|
7020
7020
|
}
|
|
7021
|
-
},
|
|
7022
|
-
const a = e.data,
|
|
7021
|
+
}, Cn = async (g, A, e, t) => {
|
|
7022
|
+
const a = e.data, n = a.assetUrl, s = await VA(n);
|
|
7023
7023
|
try {
|
|
7024
7024
|
const i = xt(a, t.option);
|
|
7025
7025
|
i && (A[t.stepName] = { selectedVariants: [i] });
|
|
@@ -7034,7 +7034,7 @@ const ws = [
|
|
|
7034
7034
|
), B = await _A(r), l = v(), d = g.find((w) => w.panelId === c.panelId);
|
|
7035
7035
|
if (!d)
|
|
7036
7036
|
throw new L(c);
|
|
7037
|
-
const E = Ae(
|
|
7037
|
+
const E = Ae(s, B, {
|
|
7038
7038
|
scale: a.scale,
|
|
7039
7039
|
left: a.x,
|
|
7040
7040
|
top: a.y
|
|
@@ -7064,25 +7064,25 @@ const ws = [
|
|
|
7064
7064
|
},
|
|
7065
7065
|
d
|
|
7066
7066
|
),
|
|
7067
|
-
new Ie(l,
|
|
7067
|
+
new Ie(l, s, E)
|
|
7068
7068
|
];
|
|
7069
7069
|
};
|
|
7070
7070
|
return (await Promise.all(t.data.regions.map((c) => o(c)))).flat();
|
|
7071
7071
|
} catch (i) {
|
|
7072
7072
|
return console.error(i), [];
|
|
7073
7073
|
}
|
|
7074
|
-
},
|
|
7074
|
+
}, Qn = async (g, A, e, t) => {
|
|
7075
7075
|
var p, F;
|
|
7076
|
-
const a = e.data,
|
|
7077
|
-
if (!s)
|
|
7078
|
-
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7079
|
-
const n = ((p = s.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || UA(s);
|
|
7076
|
+
const a = e.data, n = t.option;
|
|
7080
7077
|
if (!n)
|
|
7078
|
+
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7079
|
+
const s = ((p = n.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || UA(n);
|
|
7080
|
+
if (!s)
|
|
7081
7081
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
7082
|
-
if (!
|
|
7082
|
+
if (!s.asset)
|
|
7083
7083
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7084
|
-
A[t.stepName] = { selectedVariants: [
|
|
7085
|
-
const i = (F =
|
|
7084
|
+
A[t.stepName] = { selectedVariants: [s] };
|
|
7085
|
+
const i = (F = s.asset) == null ? void 0 : F.fileLink;
|
|
7086
7086
|
if (!i)
|
|
7087
7087
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7088
7088
|
const o = await Z(i), c = /<svg.*?<\/svg>/s, r = o.match(c) || [], B = (r == null ? void 0 : r.length) > 0 ? r[0] : "", E = Ne().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
@@ -7091,7 +7091,7 @@ const ws = [
|
|
|
7091
7091
|
Re(E);
|
|
7092
7092
|
const C = {};
|
|
7093
7093
|
Rt(E, (I) => {
|
|
7094
|
-
|
|
7094
|
+
En.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
7095
7095
|
const f = I.attributes.getNamedItem("fill");
|
|
7096
7096
|
if (f && f.value !== "none") {
|
|
7097
7097
|
const Y = f.value, S = `spiff-fill-${Y.replace(/\W/g, "")}`;
|
|
@@ -7140,8 +7140,8 @@ const ws = [
|
|
|
7140
7140
|
} catch (I) {
|
|
7141
7141
|
return console.error(I), [];
|
|
7142
7142
|
}
|
|
7143
|
-
},
|
|
7144
|
-
const t = await
|
|
7143
|
+
}, un = async (g, A, e) => {
|
|
7144
|
+
const t = await nt(e.data.module), a = A.data, n = (i, o) => {
|
|
7145
7145
|
const c = g.find((B) => B.panelId === o.panelId);
|
|
7146
7146
|
if (!c)
|
|
7147
7147
|
throw new L(o);
|
|
@@ -7162,26 +7162,26 @@ const ws = [
|
|
|
7162
7162
|
},
|
|
7163
7163
|
c
|
|
7164
7164
|
);
|
|
7165
|
-
},
|
|
7165
|
+
}, s = e.data.regions;
|
|
7166
7166
|
try {
|
|
7167
|
-
return
|
|
7168
|
-
(i) =>
|
|
7167
|
+
return s.map(
|
|
7168
|
+
(i) => n(t.svgPrint(a.text, i), i)
|
|
7169
7169
|
);
|
|
7170
7170
|
} catch (i) {
|
|
7171
7171
|
return console.error(i), [];
|
|
7172
7172
|
}
|
|
7173
|
-
},
|
|
7173
|
+
}, mn = async (g, A, e, t) => {
|
|
7174
7174
|
var r, B;
|
|
7175
|
-
const a = e.data,
|
|
7176
|
-
if (!s)
|
|
7177
|
-
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7178
|
-
const n = ((r = s.variants) == null ? void 0 : r.find((l) => l.id === a.pictureVariantId)) || UA(s);
|
|
7175
|
+
const a = e.data, n = t.option;
|
|
7179
7176
|
if (!n)
|
|
7177
|
+
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7178
|
+
const s = ((r = n.variants) == null ? void 0 : r.find((l) => l.id === a.pictureVariantId)) || UA(n);
|
|
7179
|
+
if (!s)
|
|
7180
7180
|
return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
|
|
7181
|
-
if (!
|
|
7181
|
+
if (!s.asset)
|
|
7182
7182
|
return console.error(`No asset for variant with ID: ${a.pictureVariantId}`), [];
|
|
7183
|
-
A[t.stepName] = { selectedVariants: [
|
|
7184
|
-
const i = (B =
|
|
7183
|
+
A[t.stepName] = { selectedVariants: [s] };
|
|
7184
|
+
const i = (B = s.asset) == null ? void 0 : B.fileLink;
|
|
7185
7185
|
if (!i)
|
|
7186
7186
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
7187
7187
|
const o = (l) => {
|
|
@@ -7212,15 +7212,15 @@ const ws = [
|
|
|
7212
7212
|
} catch (l) {
|
|
7213
7213
|
return console.error(l), [];
|
|
7214
7214
|
}
|
|
7215
|
-
},
|
|
7215
|
+
}, pn = async (g, A, e, t) => {
|
|
7216
7216
|
var c;
|
|
7217
|
-
const a = e.data,
|
|
7218
|
-
if (!s)
|
|
7219
|
-
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7220
|
-
const n = ((c = s.variants) == null ? void 0 : c.find((r) => r.id === a.colorVariantId)) || UA(s);
|
|
7217
|
+
const a = e.data, n = t.option;
|
|
7221
7218
|
if (!n)
|
|
7219
|
+
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7220
|
+
const s = ((c = n.variants) == null ? void 0 : c.find((r) => r.id === a.colorVariantId)) || UA(n);
|
|
7221
|
+
if (!s)
|
|
7222
7222
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
7223
|
-
A[t.stepName] = { selectedVariants: [
|
|
7223
|
+
A[t.stepName] = { selectedVariants: [s] };
|
|
7224
7224
|
const i = (r) => {
|
|
7225
7225
|
const B = g.find((w) => w.panelId === r.panelId);
|
|
7226
7226
|
if (!B)
|
|
@@ -7242,10 +7242,10 @@ const ws = [
|
|
|
7242
7242
|
width="1"
|
|
7243
7243
|
height="1"
|
|
7244
7244
|
class="spiff-fill-shape"
|
|
7245
|
-
fill="${
|
|
7245
|
+
fill="${s == null ? void 0 : s.color}"
|
|
7246
7246
|
/>
|
|
7247
7247
|
</svg>
|
|
7248
|
-
`, E = { "spiff-fill-shape": { browserValue:
|
|
7248
|
+
`, E = { "spiff-fill-shape": { browserValue: s.color || "#000000" } }, C = v();
|
|
7249
7249
|
return new b(
|
|
7250
7250
|
{
|
|
7251
7251
|
colors: E,
|
|
@@ -7269,11 +7269,11 @@ const ws = [
|
|
|
7269
7269
|
} catch (r) {
|
|
7270
7270
|
return console.error(r), [];
|
|
7271
7271
|
}
|
|
7272
|
-
},
|
|
7273
|
-
const t = [],
|
|
7272
|
+
}, In = async (g, A, e) => {
|
|
7273
|
+
const t = [], n = (() => {
|
|
7274
7274
|
var c, r;
|
|
7275
7275
|
return A.type === D.ProductOverlay ? e || ((c = A.data.asset) == null ? void 0 : c.fileLink) || "" : ((r = A.data.asset) == null ? void 0 : r.fileLink) || "";
|
|
7276
|
-
})(), i = (() =>
|
|
7276
|
+
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? P.Image : n.endsWith(".svg") ? P.Illustration : P.Illustration)(), o = A.data.regions;
|
|
7277
7277
|
if (i === "image")
|
|
7278
7278
|
try {
|
|
7279
7279
|
o.forEach((c) => {
|
|
@@ -7282,7 +7282,7 @@ const ws = [
|
|
|
7282
7282
|
throw new L(c);
|
|
7283
7283
|
const B = {
|
|
7284
7284
|
id: v(),
|
|
7285
|
-
src:
|
|
7285
|
+
src: n,
|
|
7286
7286
|
type: i,
|
|
7287
7287
|
y: c.top,
|
|
7288
7288
|
x: c.left,
|
|
@@ -7303,8 +7303,8 @@ const ws = [
|
|
|
7303
7303
|
console.error(c);
|
|
7304
7304
|
}
|
|
7305
7305
|
else {
|
|
7306
|
-
console.log(`fetching ${
|
|
7307
|
-
const c = await Z(
|
|
7306
|
+
console.log(`fetching ${n}`);
|
|
7307
|
+
const c = await Z(n), r = (B) => {
|
|
7308
7308
|
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], E = (d == null ? void 0 : d.length) > 0 ? d[0] : "", h = Ne().parseFromString(E, "image/svg+xml").firstElementChild;
|
|
7309
7309
|
if (!h)
|
|
7310
7310
|
throw new oA("Failed to read SVG.");
|
|
@@ -7316,8 +7316,8 @@ const ws = [
|
|
|
7316
7316
|
throw new L(B);
|
|
7317
7317
|
const d = {
|
|
7318
7318
|
id: v(),
|
|
7319
|
-
src:
|
|
7320
|
-
asset_key:
|
|
7319
|
+
src: n,
|
|
7320
|
+
asset_key: n,
|
|
7321
7321
|
svg: r(c),
|
|
7322
7322
|
colors: {},
|
|
7323
7323
|
type: i,
|
|
@@ -7337,13 +7337,13 @@ const ws = [
|
|
|
7337
7337
|
});
|
|
7338
7338
|
}
|
|
7339
7339
|
return t;
|
|
7340
|
-
},
|
|
7341
|
-
const a = [],
|
|
7340
|
+
}, Dn = async (g, A, e, t) => {
|
|
7341
|
+
const a = [], n = e.data, s = 30, i = (w) => w.vertical ? "center" : w.textAlign || "center", o = () => {
|
|
7342
7342
|
var m;
|
|
7343
7343
|
const w = t.option;
|
|
7344
7344
|
if (!w)
|
|
7345
7345
|
return;
|
|
7346
|
-
const h = ((m = w.variants) == null ? void 0 : m.find((u) => u.id ===
|
|
7346
|
+
const h = ((m = w.variants) == null ? void 0 : m.find((u) => u.id === n.fontVariantId)) || UA(w);
|
|
7347
7347
|
if (!h || !h.asset)
|
|
7348
7348
|
return;
|
|
7349
7349
|
A[t.stepName] = { selectedVariants: [h] };
|
|
@@ -7360,7 +7360,7 @@ const ws = [
|
|
|
7360
7360
|
assetUrl: w,
|
|
7361
7361
|
name: m.names.fullName.en
|
|
7362
7362
|
};
|
|
7363
|
-
})(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}",
|
|
7363
|
+
})(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", n.text) : n.text, l = WA(B, {
|
|
7364
7364
|
vertical: t.data.vertical,
|
|
7365
7365
|
uppercase: t.data.uppercase
|
|
7366
7366
|
}), d = async (w) => {
|
|
@@ -7369,7 +7369,7 @@ const ws = [
|
|
|
7369
7369
|
return;
|
|
7370
7370
|
const Q = z.getDefaultVariant(h);
|
|
7371
7371
|
return Q == null ? void 0 : Q.color;
|
|
7372
|
-
}, E =
|
|
7372
|
+
}, E = n.color || await d(t.data), C = t.data.regions;
|
|
7373
7373
|
for (const w of C) {
|
|
7374
7374
|
const h = g.find((m) => m.panelId === w.panelId);
|
|
7375
7375
|
if (!h)
|
|
@@ -7379,9 +7379,9 @@ const ws = [
|
|
|
7379
7379
|
id: v(),
|
|
7380
7380
|
align: i(t.data),
|
|
7381
7381
|
curved: t.data.curved,
|
|
7382
|
-
fill:
|
|
7382
|
+
fill: n.color || E || "#000000",
|
|
7383
7383
|
fontData: r,
|
|
7384
|
-
fontSize: t.data.size ||
|
|
7384
|
+
fontSize: t.data.size || s,
|
|
7385
7385
|
height: w.height,
|
|
7386
7386
|
layer: w.layer,
|
|
7387
7387
|
layerIndex: w.layerIndex,
|
|
@@ -7397,7 +7397,7 @@ const ws = [
|
|
|
7397
7397
|
};
|
|
7398
7398
|
if (r) {
|
|
7399
7399
|
const [m, u] = pA(
|
|
7400
|
-
t.data.size ||
|
|
7400
|
+
t.data.size || s,
|
|
7401
7401
|
r,
|
|
7402
7402
|
w,
|
|
7403
7403
|
[
|
|
@@ -7427,65 +7427,65 @@ const ws = [
|
|
|
7427
7427
|
a.push(new b(Q, h));
|
|
7428
7428
|
}
|
|
7429
7429
|
return a;
|
|
7430
|
-
},
|
|
7430
|
+
}, fn = (g, A) => g.conditions ? g.conditions.every((e) => {
|
|
7431
7431
|
const t = A[e.targetStepName];
|
|
7432
7432
|
if (t && t.selectedVariants) {
|
|
7433
7433
|
const a = t.selectedVariants;
|
|
7434
7434
|
return e.requiredVariantSelections.some(
|
|
7435
|
-
(
|
|
7435
|
+
(n) => a.find((s) => s.id === n) !== void 0
|
|
7436
7436
|
);
|
|
7437
7437
|
}
|
|
7438
7438
|
return !1;
|
|
7439
|
-
}) : !0,
|
|
7440
|
-
const a = [],
|
|
7441
|
-
for (const
|
|
7442
|
-
const i = A.steps.find((o) => o.stepName ===
|
|
7439
|
+
}) : !0, Fn = async (g, A, e, t) => {
|
|
7440
|
+
const a = [], n = {};
|
|
7441
|
+
for (const s of g) {
|
|
7442
|
+
const i = A.steps.find((o) => o.stepName === s.name);
|
|
7443
7443
|
if (i)
|
|
7444
7444
|
switch (i.type) {
|
|
7445
7445
|
case D.DigitalContent:
|
|
7446
7446
|
a.push(
|
|
7447
|
-
...await
|
|
7447
|
+
...await hn(e, s, i)
|
|
7448
7448
|
);
|
|
7449
7449
|
break;
|
|
7450
7450
|
case D.Frame:
|
|
7451
7451
|
case D.Photo:
|
|
7452
7452
|
a.push(
|
|
7453
|
-
...await
|
|
7453
|
+
...await Cn(e, n, s, i)
|
|
7454
7454
|
);
|
|
7455
7455
|
break;
|
|
7456
7456
|
case D.Illustration:
|
|
7457
7457
|
a.push(
|
|
7458
|
-
...await
|
|
7458
|
+
...await Qn(
|
|
7459
7459
|
e,
|
|
7460
|
-
s,
|
|
7461
7460
|
n,
|
|
7461
|
+
s,
|
|
7462
7462
|
i
|
|
7463
7463
|
)
|
|
7464
7464
|
);
|
|
7465
7465
|
break;
|
|
7466
7466
|
case D.Module:
|
|
7467
|
-
a.push(...await
|
|
7467
|
+
a.push(...await un(e, s, i));
|
|
7468
7468
|
break;
|
|
7469
7469
|
case D.Picture:
|
|
7470
7470
|
a.push(
|
|
7471
|
-
...await
|
|
7471
|
+
...await mn(e, n, s, i)
|
|
7472
7472
|
);
|
|
7473
7473
|
break;
|
|
7474
7474
|
case D.Shape:
|
|
7475
7475
|
a.push(
|
|
7476
|
-
...await
|
|
7476
|
+
...await pn(e, n, s, i)
|
|
7477
7477
|
);
|
|
7478
7478
|
break;
|
|
7479
7479
|
case D.Text:
|
|
7480
7480
|
a.push(
|
|
7481
|
-
...await
|
|
7481
|
+
...await Dn(e, n, s, i)
|
|
7482
7482
|
);
|
|
7483
7483
|
break;
|
|
7484
7484
|
}
|
|
7485
7485
|
}
|
|
7486
|
-
for (const
|
|
7487
|
-
|
|
7488
|
-
...await
|
|
7486
|
+
for (const s of A.steps)
|
|
7487
|
+
s.type !== D.SilentIllustration && s.type !== D.ProductOverlay || fn(s, n) && a.push(
|
|
7488
|
+
...await In(e, s, t)
|
|
7489
7489
|
);
|
|
7490
7490
|
return a;
|
|
7491
7491
|
};
|
|
@@ -7493,7 +7493,7 @@ class QA {
|
|
|
7493
7493
|
constructor(A) {
|
|
7494
7494
|
this.handleCompleteRender = null;
|
|
7495
7495
|
const e = /* @__PURE__ */ new Map();
|
|
7496
|
-
A.forEach((t) => e.set(t.id, new
|
|
7496
|
+
A.forEach((t) => e.set(t.id, new yn(t.id, t.name, this))), this.layouts = e;
|
|
7497
7497
|
}
|
|
7498
7498
|
setCompleteRenderCallback(A) {
|
|
7499
7499
|
this.handleCompleteRender = A, A(Array.from(this.layouts.values()));
|
|
@@ -7506,8 +7506,8 @@ class QA {
|
|
|
7506
7506
|
}
|
|
7507
7507
|
}
|
|
7508
7508
|
let uA;
|
|
7509
|
-
const
|
|
7510
|
-
class
|
|
7509
|
+
const Mn = () => (uA !== void 0 || (uA = !!MA().getContext("webgl2")), uA);
|
|
7510
|
+
class yn {
|
|
7511
7511
|
constructor(A, e, t) {
|
|
7512
7512
|
this.hasSetStaticContext = !1, this.interactiveDirty = !1, this.staticCtxDirty = !1, this.lastRequestedRenderArguments = void 0, this.lastCompletedStaticRender = void 0, this.lastModificationID = void 0, this.renderQueue = new We(2), this.id = A, this.name = e, this.service = t;
|
|
7513
7513
|
}
|
|
@@ -7525,8 +7525,8 @@ class Ms {
|
|
|
7525
7525
|
*/
|
|
7526
7526
|
setStaticContext(A) {
|
|
7527
7527
|
if (this.textureCtx = A, this.lastRequestedRenderArguments) {
|
|
7528
|
-
const { workflow: e, layouts: t, variationRecord: a, productOverlayImageUrl:
|
|
7529
|
-
this.render(e, t, a,
|
|
7528
|
+
const { workflow: e, layouts: t, variationRecord: a, productOverlayImageUrl: n } = this.lastRequestedRenderArguments;
|
|
7529
|
+
this.render(e, t, a, n);
|
|
7530
7530
|
}
|
|
7531
7531
|
}
|
|
7532
7532
|
getStaticContextDirty() {
|
|
@@ -7558,37 +7558,37 @@ class Ms {
|
|
|
7558
7558
|
* Actions to perform when a static render event is fired for this canvas.
|
|
7559
7559
|
*/
|
|
7560
7560
|
async render(A, e, t, a) {
|
|
7561
|
-
const
|
|
7561
|
+
const n = gA(e);
|
|
7562
7562
|
this.lastRequestedRenderArguments = {
|
|
7563
7563
|
workflow: A,
|
|
7564
|
-
layouts:
|
|
7564
|
+
layouts: n,
|
|
7565
7565
|
variationRecord: t,
|
|
7566
7566
|
productOverlayImageUrl: a
|
|
7567
7567
|
};
|
|
7568
|
-
const
|
|
7569
|
-
if (!
|
|
7568
|
+
const s = this.getStaticContext();
|
|
7569
|
+
if (!s) {
|
|
7570
7570
|
this.markLastCompletedStaticRender(), this.setStaticContextDirty(!1);
|
|
7571
7571
|
return;
|
|
7572
7572
|
}
|
|
7573
7573
|
this.renderQueue.enqueue(
|
|
7574
|
-
new
|
|
7574
|
+
new Yn(
|
|
7575
7575
|
this.getID(),
|
|
7576
|
-
|
|
7577
|
-
|
|
7576
|
+
s,
|
|
7577
|
+
Mn(),
|
|
7578
7578
|
() => {
|
|
7579
7579
|
this.markLastCompletedStaticRender(), this.setStaticContextDirty(!0);
|
|
7580
7580
|
},
|
|
7581
7581
|
A,
|
|
7582
|
-
|
|
7582
|
+
n,
|
|
7583
7583
|
t,
|
|
7584
7584
|
a
|
|
7585
7585
|
)
|
|
7586
7586
|
);
|
|
7587
7587
|
}
|
|
7588
7588
|
}
|
|
7589
|
-
class
|
|
7590
|
-
constructor(A, e, t, a,
|
|
7591
|
-
super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow =
|
|
7589
|
+
class Yn extends Ve {
|
|
7590
|
+
constructor(A, e, t, a, n, s, i, o) {
|
|
7591
|
+
super(), this.layoutId = A, this.ctx = e, this.nonPOTSupport = t, this.onRender = a, this.workflow = n, this.layouts = s, this.variationRecord = i, this.productOverlayImageUrl = o;
|
|
7592
7592
|
}
|
|
7593
7593
|
/**
|
|
7594
7594
|
* Returns the resolution expected for generated textures.
|
|
@@ -7612,8 +7612,8 @@ class ys extends Ve {
|
|
|
7612
7612
|
return navigator.userAgent.includes("SamsungBrowser") ? !1 : !!window.Worker && !!window.OffscreenCanvas;
|
|
7613
7613
|
}
|
|
7614
7614
|
resizeFit(A, e = 4096) {
|
|
7615
|
-
const t = e / A.width, a = e / A.height,
|
|
7616
|
-
return
|
|
7615
|
+
const t = e / A.width, a = e / A.height, n = Math.min(t, a);
|
|
7616
|
+
return n > 1 ? A : { width: A.width * n, height: A.height * n };
|
|
7617
7617
|
}
|
|
7618
7618
|
/**
|
|
7619
7619
|
* Render the internally stored layout to the canvas.
|
|
@@ -7632,8 +7632,8 @@ class ys extends Ve {
|
|
|
7632
7632
|
stepName: C.stepName,
|
|
7633
7633
|
stepAspectType: C.aspect,
|
|
7634
7634
|
value: C.value
|
|
7635
|
-
})), d = await
|
|
7636
|
-
|
|
7635
|
+
})), d = await xn(
|
|
7636
|
+
Sn(l, this.workflow),
|
|
7637
7637
|
this.workflow,
|
|
7638
7638
|
this.layouts.map((C) => C.layoutState.layout),
|
|
7639
7639
|
this.productOverlayImageUrl
|
|
@@ -7643,20 +7643,18 @@ class ys extends Ve {
|
|
|
7643
7643
|
w && w.type === P.Textbox ? (w.text = C.text, w.fontSize = C.fontSize) : e.push(C);
|
|
7644
7644
|
}), Gt(e);
|
|
7645
7645
|
}
|
|
7646
|
-
const t = A.layoutState.layout.width, a = A.layoutState.layout.height,
|
|
7646
|
+
const t = A.layoutState.layout.width, a = A.layoutState.layout.height, n = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
|
|
7647
7647
|
let i, o;
|
|
7648
7648
|
if (this.nonPOTSupport) {
|
|
7649
|
-
const l =
|
|
7650
|
-
t / a < l ? (i =
|
|
7649
|
+
const l = n / s;
|
|
7650
|
+
t / a < l ? (i = n, o = a * (n / t)) : (i = t * (s / a), o = s);
|
|
7651
7651
|
const E = this.resizeFit({ width: i, height: o });
|
|
7652
7652
|
i = E.width, o = E.height;
|
|
7653
7653
|
} else
|
|
7654
7654
|
i = this.getDynamicTextureResolution().width, o = this.getDynamicTextureResolution().height;
|
|
7655
7655
|
const c = Fe(A.layoutState.layout, e, {
|
|
7656
7656
|
renderingConfiguration: { purpose: Me.ThreeD }
|
|
7657
|
-
}), r = ye(c)
|
|
7658
|
-
console.log("SVG", r);
|
|
7659
|
-
const B = await Pe.from(this.ctx, r, {
|
|
7657
|
+
}), r = ye(c), B = await Pe.from(this.ctx, r, {
|
|
7660
7658
|
anonymousCrossOrigin: !0,
|
|
7661
7659
|
ignoreDimensions: !this.nonPOTSupport,
|
|
7662
7660
|
ignoreAnimation: !0,
|
|
@@ -7668,13 +7666,13 @@ class ys extends Ve {
|
|
|
7668
7666
|
DOMParser: Se(),
|
|
7669
7667
|
fetch: xe
|
|
7670
7668
|
});
|
|
7671
|
-
B.resize(i, o), await B.render(),
|
|
7669
|
+
B.resize(i, o), await B.render(), this.onRender();
|
|
7672
7670
|
}
|
|
7673
7671
|
}
|
|
7674
|
-
const
|
|
7672
|
+
const Sn = (g, A) => {
|
|
7675
7673
|
const e = [];
|
|
7676
7674
|
return g.forEach((t) => {
|
|
7677
|
-
const a = A.steps.find((
|
|
7675
|
+
const a = A.steps.find((n) => n.stepName === t.stepName);
|
|
7678
7676
|
(a == null ? void 0 : a.type) === D.Text && t.stepAspectType === "Text" && e.push({
|
|
7679
7677
|
name: a.stepName,
|
|
7680
7678
|
data: {
|
|
@@ -7682,15 +7680,15 @@ const Ys = (g, A) => {
|
|
|
7682
7680
|
}
|
|
7683
7681
|
});
|
|
7684
7682
|
}), e;
|
|
7685
|
-
},
|
|
7683
|
+
}, xn = async (g, A, e, t) => {
|
|
7686
7684
|
let a = {
|
|
7687
7685
|
serializableWorkflow: { steps: [] },
|
|
7688
7686
|
layouts: {}
|
|
7689
7687
|
};
|
|
7690
7688
|
a = new G(e.map((o) => new Ut(o))).apply(a);
|
|
7691
|
-
const
|
|
7692
|
-
return new G(
|
|
7693
|
-
},
|
|
7689
|
+
const s = await Fn(g, A, e, t);
|
|
7690
|
+
return new G(s).apply(a);
|
|
7691
|
+
}, Nn = y`
|
|
7694
7692
|
fragment ProductCollectionProductFields on Product {
|
|
7695
7693
|
id
|
|
7696
7694
|
basePrice
|
|
@@ -7726,7 +7724,7 @@ const Ys = (g, A) => {
|
|
|
7726
7724
|
}
|
|
7727
7725
|
}
|
|
7728
7726
|
`, lt = y`
|
|
7729
|
-
${
|
|
7727
|
+
${Nn}
|
|
7730
7728
|
fragment ProductCollectionFields on ProductCollection {
|
|
7731
7729
|
id
|
|
7732
7730
|
name
|
|
@@ -7772,7 +7770,7 @@ const Ys = (g, A) => {
|
|
|
7772
7770
|
}
|
|
7773
7771
|
}
|
|
7774
7772
|
}
|
|
7775
|
-
`,
|
|
7773
|
+
`, Rn = y`
|
|
7776
7774
|
${lt}
|
|
7777
7775
|
query GetBundle($id: String!) {
|
|
7778
7776
|
bundles(ids: [$id]) {
|
|
@@ -7794,7 +7792,7 @@ const Ys = (g, A) => {
|
|
|
7794
7792
|
}
|
|
7795
7793
|
}
|
|
7796
7794
|
}
|
|
7797
|
-
`,
|
|
7795
|
+
`, Hn = y`
|
|
7798
7796
|
query GetBundleStakeholders($id: String!) {
|
|
7799
7797
|
bundles(ids: [$id]) {
|
|
7800
7798
|
id
|
|
@@ -7814,7 +7812,7 @@ const Ys = (g, A) => {
|
|
|
7814
7812
|
}
|
|
7815
7813
|
}
|
|
7816
7814
|
}
|
|
7817
|
-
`,
|
|
7815
|
+
`, Pn = y`
|
|
7818
7816
|
query GetBundlesForCustomer($id: String!) {
|
|
7819
7817
|
customers(ids: [$id]) {
|
|
7820
7818
|
bundleStakeholders {
|
|
@@ -7835,7 +7833,7 @@ const Ys = (g, A) => {
|
|
|
7835
7833
|
}
|
|
7836
7834
|
}
|
|
7837
7835
|
}
|
|
7838
|
-
`,
|
|
7836
|
+
`, Un = y`
|
|
7839
7837
|
${lt}
|
|
7840
7838
|
mutation CreateBundle($collectionId: String) {
|
|
7841
7839
|
bundleCreate(collectionId: $collectionId) {
|
|
@@ -7854,25 +7852,25 @@ const Ys = (g, A) => {
|
|
|
7854
7852
|
}
|
|
7855
7853
|
}
|
|
7856
7854
|
}
|
|
7857
|
-
`,
|
|
7855
|
+
`, Gn = y`
|
|
7858
7856
|
mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
|
|
7859
7857
|
bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
|
|
7860
7858
|
id
|
|
7861
7859
|
}
|
|
7862
7860
|
}
|
|
7863
|
-
`,
|
|
7861
|
+
`, vn = y`
|
|
7864
7862
|
mutation BundleAddTransaction($id: String!, $transactionId: String!) {
|
|
7865
7863
|
bundleAddTransaction(id: $id, transactionId: $transactionId) {
|
|
7866
7864
|
id
|
|
7867
7865
|
}
|
|
7868
7866
|
}
|
|
7869
|
-
`,
|
|
7867
|
+
`, kn = y`
|
|
7870
7868
|
mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
|
|
7871
7869
|
bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
|
|
7872
7870
|
id
|
|
7873
7871
|
}
|
|
7874
7872
|
}
|
|
7875
|
-
`,
|
|
7873
|
+
`, Jn = y`
|
|
7876
7874
|
mutation BundleRemoveTransaction(
|
|
7877
7875
|
$id: String!
|
|
7878
7876
|
$transactionId: String!
|
|
@@ -7887,7 +7885,7 @@ const Ys = (g, A) => {
|
|
|
7887
7885
|
id
|
|
7888
7886
|
}
|
|
7889
7887
|
}
|
|
7890
|
-
`,
|
|
7888
|
+
`, bn = y`
|
|
7891
7889
|
mutation BundleRemoveTransactions(
|
|
7892
7890
|
$id: String!
|
|
7893
7891
|
$transactionIds: [String!]!
|
|
@@ -7902,7 +7900,7 @@ const Ys = (g, A) => {
|
|
|
7902
7900
|
id
|
|
7903
7901
|
}
|
|
7904
7902
|
}
|
|
7905
|
-
`,
|
|
7903
|
+
`, Tn = y`
|
|
7906
7904
|
mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
|
|
7907
7905
|
bundleAddStakeholder(id: $id, details: $details, type: $type) {
|
|
7908
7906
|
id
|
|
@@ -7922,7 +7920,7 @@ const Ys = (g, A) => {
|
|
|
7922
7920
|
}
|
|
7923
7921
|
}
|
|
7924
7922
|
}
|
|
7925
|
-
`,
|
|
7923
|
+
`, Ln = y`
|
|
7926
7924
|
mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
|
|
7927
7925
|
bundleUpdateStakeholders(id: $id, input: $input) {
|
|
7928
7926
|
id
|
|
@@ -7942,14 +7940,14 @@ const Ys = (g, A) => {
|
|
|
7942
7940
|
}
|
|
7943
7941
|
}
|
|
7944
7942
|
}
|
|
7945
|
-
`,
|
|
7943
|
+
`, On = y`
|
|
7946
7944
|
mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
|
|
7947
7945
|
bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
|
|
7948
7946
|
id
|
|
7949
7947
|
}
|
|
7950
7948
|
}
|
|
7951
7949
|
`;
|
|
7952
|
-
class
|
|
7950
|
+
class zn {
|
|
7953
7951
|
constructor(A) {
|
|
7954
7952
|
this.handleCache = {}, this.bundle = A;
|
|
7955
7953
|
}
|
|
@@ -7986,20 +7984,20 @@ class Os {
|
|
|
7986
7984
|
}
|
|
7987
7985
|
aspectConditionsSatisfied(A, e) {
|
|
7988
7986
|
return !A.conditions || A.conditions.length === 0 ? !0 : A.conditions.some((t) => {
|
|
7989
|
-
const a = e.aspects.find((
|
|
7990
|
-
return a ? t.requiredVariantSelections.some((
|
|
7987
|
+
const a = e.aspects.find((n) => n.name === t.targetAspectName);
|
|
7988
|
+
return a ? t.requiredVariantSelections.some((n) => n === a.value) : !1;
|
|
7991
7989
|
});
|
|
7992
7990
|
}
|
|
7993
7991
|
async createHandle(A) {
|
|
7994
7992
|
switch (A.type) {
|
|
7995
7993
|
case DA.FileUpload:
|
|
7996
|
-
return new
|
|
7994
|
+
return new Kn(this.bundle, A);
|
|
7997
7995
|
case DA.Option: {
|
|
7998
7996
|
const e = A.entityId ? await z.getOption(A.entityId) : void 0;
|
|
7999
|
-
return (e == null ? void 0 : e.type) === "Color" ? new
|
|
7997
|
+
return (e == null ? void 0 : e.type) === "Color" ? new Vn(this.bundle, A, e) : new Bt(this.bundle, A, e);
|
|
8000
7998
|
}
|
|
8001
7999
|
case DA.Text:
|
|
8002
|
-
return new
|
|
8000
|
+
return new jn(this.bundle, A);
|
|
8003
8001
|
}
|
|
8004
8002
|
}
|
|
8005
8003
|
}
|
|
@@ -8043,9 +8041,9 @@ class oe {
|
|
|
8043
8041
|
*/
|
|
8044
8042
|
getSharedSteps(A) {
|
|
8045
8043
|
return (A ?? this.bundle.getWorkflowExperiences()).flatMap(
|
|
8046
|
-
(a) => a.getSteps().filter((
|
|
8047
|
-
var
|
|
8048
|
-
return (
|
|
8044
|
+
(a) => a.getSteps().filter((n) => {
|
|
8045
|
+
var s;
|
|
8046
|
+
return (s = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : s.some(
|
|
8049
8047
|
(i) => {
|
|
8050
8048
|
var o, c;
|
|
8051
8049
|
return i.globalPropertyConfigurationId === ((c = (o = this.bundle.getProductCollection()) == null ? void 0 : o.getResource().globalPropertyConfiguration) == null ? void 0 : c.id) && i.aspectName === this.property.name;
|
|
@@ -8055,7 +8053,7 @@ class oe {
|
|
|
8055
8053
|
);
|
|
8056
8054
|
}
|
|
8057
8055
|
}
|
|
8058
|
-
class
|
|
8056
|
+
class Kn extends oe {
|
|
8059
8057
|
constructor(A, e) {
|
|
8060
8058
|
super(A, e);
|
|
8061
8059
|
}
|
|
@@ -8078,11 +8076,11 @@ class zs extends oe {
|
|
|
8078
8076
|
return t ? this.applyImageSelection(t, A) : Promise.resolve();
|
|
8079
8077
|
}
|
|
8080
8078
|
async applyImageSelection(A, e) {
|
|
8081
|
-
const a = this.getSharedSteps(e).map((
|
|
8079
|
+
const a = this.getSharedSteps(e).map((n) => n.selectImage(A));
|
|
8082
8080
|
await Promise.all(a);
|
|
8083
8081
|
}
|
|
8084
8082
|
}
|
|
8085
|
-
class
|
|
8083
|
+
class jn extends oe {
|
|
8086
8084
|
constructor(A, e) {
|
|
8087
8085
|
super(A, e);
|
|
8088
8086
|
}
|
|
@@ -8109,8 +8107,8 @@ class Ks extends oe {
|
|
|
8109
8107
|
await this.applyTextSelection(e, A);
|
|
8110
8108
|
}
|
|
8111
8109
|
async applyTextSelection(A, e) {
|
|
8112
|
-
const a = this.getSharedSteps(e).map((
|
|
8113
|
-
|
|
8110
|
+
const a = this.getSharedSteps(e).map((n) => {
|
|
8111
|
+
n.setText(A);
|
|
8114
8112
|
});
|
|
8115
8113
|
await Promise.all(a);
|
|
8116
8114
|
}
|
|
@@ -8128,13 +8126,13 @@ class Bt extends oe {
|
|
|
8128
8126
|
return;
|
|
8129
8127
|
const A = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
8130
8128
|
if (A) {
|
|
8131
|
-
const a = (t = this.optionResource.variants) == null ? void 0 : t.find((
|
|
8129
|
+
const a = (t = this.optionResource.variants) == null ? void 0 : t.find((n) => n.id === A);
|
|
8132
8130
|
return a ? new X(a) : void 0;
|
|
8133
8131
|
} else {
|
|
8134
8132
|
const a = (e = this.optionResource.variants) == null ? void 0 : e.find(
|
|
8135
|
-
(
|
|
8136
|
-
var
|
|
8137
|
-
return
|
|
8133
|
+
(n) => {
|
|
8134
|
+
var s, i;
|
|
8135
|
+
return n.id === ((i = (s = this.optionResource) == null ? void 0 : s.defaultVariant) == null ? void 0 : i.id);
|
|
8138
8136
|
}
|
|
8139
8137
|
);
|
|
8140
8138
|
return a ? new X(a) : void 0;
|
|
@@ -8165,19 +8163,19 @@ class Bt extends oe {
|
|
|
8165
8163
|
]);
|
|
8166
8164
|
}
|
|
8167
8165
|
async applyGlobalState(A) {
|
|
8168
|
-
var a,
|
|
8166
|
+
var a, n;
|
|
8169
8167
|
const e = this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
8170
8168
|
if (!e)
|
|
8171
8169
|
return Promise.resolve();
|
|
8172
|
-
const t = (
|
|
8170
|
+
const t = (n = (a = this.optionResource) == null ? void 0 : a.variants) == null ? void 0 : n.find((s) => s.id === e);
|
|
8173
8171
|
return t ? this.applyVariantSelection(new X(t), A) : Promise.resolve();
|
|
8174
8172
|
}
|
|
8175
8173
|
async applyVariantSelection(A, e) {
|
|
8176
|
-
const a = this.getSharedSteps(e).map((
|
|
8174
|
+
const a = this.getSharedSteps(e).map((n) => n.selectVariant(A));
|
|
8177
8175
|
await Promise.all(a);
|
|
8178
8176
|
}
|
|
8179
8177
|
}
|
|
8180
|
-
class
|
|
8178
|
+
class Vn extends Bt {
|
|
8181
8179
|
constructor(A, e, t) {
|
|
8182
8180
|
super(A, e, t);
|
|
8183
8181
|
}
|
|
@@ -8194,7 +8192,7 @@ class js extends Bt {
|
|
|
8194
8192
|
return this.getSharedSteps()[0].getCustomColor();
|
|
8195
8193
|
}
|
|
8196
8194
|
}
|
|
8197
|
-
const
|
|
8195
|
+
const Wn = y`
|
|
8198
8196
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
8199
8197
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
8200
8198
|
id
|
|
@@ -8204,7 +8202,7 @@ const Vs = y`
|
|
|
8204
8202
|
}
|
|
8205
8203
|
}
|
|
8206
8204
|
}
|
|
8207
|
-
`,
|
|
8205
|
+
`, Xn = y`
|
|
8208
8206
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
8209
8207
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
8210
8208
|
id
|
|
@@ -8214,7 +8212,7 @@ const Vs = y`
|
|
|
8214
8212
|
}
|
|
8215
8213
|
}
|
|
8216
8214
|
}
|
|
8217
|
-
`,
|
|
8215
|
+
`, qn = y`
|
|
8218
8216
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
8219
8217
|
globalPropertyState(bundleId: $bundleId) {
|
|
8220
8218
|
id
|
|
@@ -8225,7 +8223,7 @@ const Vs = y`
|
|
|
8225
8223
|
}
|
|
8226
8224
|
}
|
|
8227
8225
|
`;
|
|
8228
|
-
class
|
|
8226
|
+
class Zn {
|
|
8229
8227
|
constructor(A, e) {
|
|
8230
8228
|
this.bundleId = A, this.initPromise = this.getOrCreateGlobalPropertyState().then((t) => {
|
|
8231
8229
|
this.globalPropertyState = t;
|
|
@@ -8247,7 +8245,7 @@ class qs {
|
|
|
8247
8245
|
async setAspect(A, e) {
|
|
8248
8246
|
if (!this.globalPropertyState)
|
|
8249
8247
|
throw new Error("Global property state not initialized");
|
|
8250
|
-
const t = gA(this.globalPropertyState), a = this.globalPropertyState.aspects.find((
|
|
8248
|
+
const t = gA(this.globalPropertyState), a = this.globalPropertyState.aspects.find((n) => n.name === A);
|
|
8251
8249
|
a ? a.value = e : this.globalPropertyState.aspects.push({ name: A, value: e }), await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
|
|
8252
8250
|
}
|
|
8253
8251
|
async updateGlobalPropertyState() {
|
|
@@ -8255,7 +8253,7 @@ class qs {
|
|
|
8255
8253
|
if (!this.globalPropertyState)
|
|
8256
8254
|
throw new Error("Global property state not initialized");
|
|
8257
8255
|
const A = await N.getShadowGraphqlClient().mutate({
|
|
8258
|
-
mutation:
|
|
8256
|
+
mutation: Xn,
|
|
8259
8257
|
variables: {
|
|
8260
8258
|
id: this.globalPropertyState.id,
|
|
8261
8259
|
aspects: this.globalPropertyState.aspects
|
|
@@ -8269,7 +8267,7 @@ class qs {
|
|
|
8269
8267
|
async getOrCreateGlobalPropertyState() {
|
|
8270
8268
|
var t;
|
|
8271
8269
|
const A = await N.getShadowGraphqlClient().query({
|
|
8272
|
-
query:
|
|
8270
|
+
query: qn,
|
|
8273
8271
|
errorPolicy: "all",
|
|
8274
8272
|
fetchPolicy: "no-cache",
|
|
8275
8273
|
variables: {
|
|
@@ -8279,7 +8277,7 @@ class qs {
|
|
|
8279
8277
|
if (A.data.globalPropertyState && A.data.globalPropertyState.id)
|
|
8280
8278
|
return A.data.globalPropertyState;
|
|
8281
8279
|
const e = await N.getShadowGraphqlClient().mutate({
|
|
8282
|
-
mutation:
|
|
8280
|
+
mutation: Wn,
|
|
8283
8281
|
variables: {
|
|
8284
8282
|
bundleId: this.bundleId
|
|
8285
8283
|
}
|
|
@@ -8289,7 +8287,7 @@ class qs {
|
|
|
8289
8287
|
throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`);
|
|
8290
8288
|
}
|
|
8291
8289
|
}
|
|
8292
|
-
class
|
|
8290
|
+
class $n {
|
|
8293
8291
|
constructor(A) {
|
|
8294
8292
|
this.setState(A);
|
|
8295
8293
|
}
|
|
@@ -8297,12 +8295,12 @@ class Zs {
|
|
|
8297
8295
|
A && (this.state = JSON.parse(A));
|
|
8298
8296
|
}
|
|
8299
8297
|
applyStateToWorkflowExperience(A) {
|
|
8300
|
-
var a,
|
|
8298
|
+
var a, n;
|
|
8301
8299
|
if (!this.state || !((a = A == null ? void 0 : A.getWorkflowManager()) != null && a.getModelContainer()))
|
|
8302
8300
|
return;
|
|
8303
|
-
const e = (
|
|
8304
|
-
(
|
|
8305
|
-
)) == null ? void 0 :
|
|
8301
|
+
const e = (n = this.state.transactions.find(
|
|
8302
|
+
(s) => s.transactionId === A.getWorkflowManager().getTransaction().id && s.transform
|
|
8303
|
+
)) == null ? void 0 : n.transform;
|
|
8306
8304
|
if (!e)
|
|
8307
8305
|
return;
|
|
8308
8306
|
const t = A.getWorkflowManager().getModelContainer();
|
|
@@ -8313,8 +8311,8 @@ class Zs {
|
|
|
8313
8311
|
}, t.scale = e.scale;
|
|
8314
8312
|
}
|
|
8315
8313
|
setWorkflowExperienceTransform(A, e) {
|
|
8316
|
-
var
|
|
8317
|
-
if (!((
|
|
8314
|
+
var s;
|
|
8315
|
+
if (!((s = A == null ? void 0 : A.getWorkflowManager()) != null && s.getModelContainer()))
|
|
8318
8316
|
return;
|
|
8319
8317
|
const t = A.getWorkflowManager().getModelContainer();
|
|
8320
8318
|
t.position = e.position, t.rotation = {
|
|
@@ -8326,8 +8324,8 @@ class Zs {
|
|
|
8326
8324
|
this.state ? this.state.transactions || (this.state.transactions = []) : this.state = {
|
|
8327
8325
|
transactions: []
|
|
8328
8326
|
};
|
|
8329
|
-
const
|
|
8330
|
-
|
|
8327
|
+
const n = this.state.transactions.find((i) => i.transactionId === a);
|
|
8328
|
+
n ? n.transform = e : this.state.transactions.push({
|
|
8331
8329
|
transactionId: a,
|
|
8332
8330
|
transform: e
|
|
8333
8331
|
});
|
|
@@ -8343,7 +8341,7 @@ class Zs {
|
|
|
8343
8341
|
return JSON.stringify(this.state);
|
|
8344
8342
|
}
|
|
8345
8343
|
}
|
|
8346
|
-
class
|
|
8344
|
+
class _n {
|
|
8347
8345
|
constructor(A) {
|
|
8348
8346
|
this.collection = A;
|
|
8349
8347
|
}
|
|
@@ -8363,7 +8361,7 @@ class $s {
|
|
|
8363
8361
|
* A list of products in this collections with useful helpers for interacting with them.
|
|
8364
8362
|
*/
|
|
8365
8363
|
getProducts() {
|
|
8366
|
-
return this.collection.products.map((A) => new
|
|
8364
|
+
return this.collection.products.map((A) => new As(A));
|
|
8367
8365
|
}
|
|
8368
8366
|
/**
|
|
8369
8367
|
* The raw collection resource. This is generally not needed and should be avoided.
|
|
@@ -8372,7 +8370,7 @@ class $s {
|
|
|
8372
8370
|
return this.collection;
|
|
8373
8371
|
}
|
|
8374
8372
|
}
|
|
8375
|
-
class
|
|
8373
|
+
class As {
|
|
8376
8374
|
constructor(A) {
|
|
8377
8375
|
this.product = A;
|
|
8378
8376
|
}
|
|
@@ -8396,8 +8394,8 @@ class _s {
|
|
|
8396
8394
|
*/
|
|
8397
8395
|
getIntegrationByType(A) {
|
|
8398
8396
|
const t = (this.product.integrationProducts || []).find((a) => {
|
|
8399
|
-
var
|
|
8400
|
-
return !!((
|
|
8397
|
+
var n, s;
|
|
8398
|
+
return !!((n = a.integration) != null && n.type) && ((s = a.integration) == null ? void 0 : s.type) === A;
|
|
8401
8399
|
});
|
|
8402
8400
|
if (!t)
|
|
8403
8401
|
throw new Error(
|
|
@@ -8421,11 +8419,11 @@ class _s {
|
|
|
8421
8419
|
class me {
|
|
8422
8420
|
/* ThreeDPreviewService */
|
|
8423
8421
|
constructor(A, e, t, a) {
|
|
8424
|
-
var
|
|
8425
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((
|
|
8422
|
+
var n, s, i;
|
|
8423
|
+
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = A, this.id = e.id, this.name = e.name || "", this.metadata = new Map(((n = e.metadata) == null ? void 0 : n.map((o) => [o.key, o.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new $n(e.bundleStateData), this.globalConfiguration = (s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration, this.globalPropertyStateManager = new Zn(
|
|
8426
8424
|
this.id,
|
|
8427
8425
|
this.checkConditionalHandlesChanged.bind(this)
|
|
8428
|
-
), this.globalPropertyHandleService = new
|
|
8426
|
+
), this.globalPropertyHandleService = new zn(this), this.setPreviewService(t), this.initializationPromise = this.loadExistingBundles(
|
|
8429
8427
|
((i = e.transactions) == null ? void 0 : i.map((o) => o.id)) || [],
|
|
8430
8428
|
a
|
|
8431
8429
|
);
|
|
@@ -8483,7 +8481,7 @@ class me {
|
|
|
8483
8481
|
return this.workflowExperiences.map((A) => A.getTotalPriceSubunits()).reduce((A, e) => A + e, 0);
|
|
8484
8482
|
}
|
|
8485
8483
|
getProductCollection() {
|
|
8486
|
-
return this.productCollection ? new
|
|
8484
|
+
return this.productCollection ? new _n(this.productCollection) : void 0;
|
|
8487
8485
|
}
|
|
8488
8486
|
async addWorkflowExperience(A) {
|
|
8489
8487
|
await this.appendWorkflowExperience(A), await this.injectExperienceIntoPreviewService(A);
|
|
@@ -8491,30 +8489,30 @@ class me {
|
|
|
8491
8489
|
await Promise.all(e.map((t) => t.applyGlobalState([A])));
|
|
8492
8490
|
}
|
|
8493
8491
|
async addWorkflowExperiences(A) {
|
|
8494
|
-
const e = A.map((
|
|
8495
|
-
(
|
|
8492
|
+
const e = A.map((s) => s.getWorkflowManager().getTransaction().id), t = e.map(
|
|
8493
|
+
(s) => this.workflowExperiences.find((i) => i.getWorkflowManager().getTransaction().id === s)
|
|
8496
8494
|
);
|
|
8497
|
-
if (t.some((
|
|
8495
|
+
if (t.some((s) => !!s))
|
|
8498
8496
|
throw new Error(
|
|
8499
|
-
"Unable to add transaction to bundle - Already Exists: " + t.filter((
|
|
8497
|
+
"Unable to add transaction to bundle - Already Exists: " + t.filter((s) => !!s).map((s) => s == null ? void 0 : s.getWorkflowManager().getTransaction().id).join(", ")
|
|
8500
8498
|
);
|
|
8501
|
-
const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(),
|
|
8499
|
+
const a = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), n = e.map((s) => a.get(s));
|
|
8502
8500
|
await N.getShadowGraphqlClient().mutate({
|
|
8503
|
-
mutation:
|
|
8501
|
+
mutation: kn,
|
|
8504
8502
|
variables: {
|
|
8505
8503
|
id: this.id,
|
|
8506
8504
|
transactionIds: e,
|
|
8507
|
-
transactionOwnerIds:
|
|
8505
|
+
transactionOwnerIds: n
|
|
8508
8506
|
}
|
|
8509
|
-
}).catch((
|
|
8510
|
-
console.error(
|
|
8507
|
+
}).catch((s) => {
|
|
8508
|
+
console.error(s);
|
|
8511
8509
|
}), this.workflowExperiences.push(...A), await Promise.all([
|
|
8512
8510
|
this.updateTransactionOrder(),
|
|
8513
8511
|
(async () => {
|
|
8514
8512
|
for (const i of A)
|
|
8515
8513
|
await this.injectExperienceIntoPreviewService(i);
|
|
8516
|
-
const
|
|
8517
|
-
await Promise.all(
|
|
8514
|
+
const s = await this.getGlobalProperties();
|
|
8515
|
+
await Promise.all(s.map((i) => i.applyGlobalState(A)));
|
|
8518
8516
|
})()
|
|
8519
8517
|
]);
|
|
8520
8518
|
}
|
|
@@ -8524,15 +8522,15 @@ class me {
|
|
|
8524
8522
|
(i) => i.getWorkflowManager().getTransaction().id === t
|
|
8525
8523
|
))
|
|
8526
8524
|
throw new Error("Unable to add transaction to bundle - Already Exists!");
|
|
8527
|
-
const
|
|
8525
|
+
const s = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t);
|
|
8528
8526
|
await N.getShadowGraphqlClient().mutate({
|
|
8529
|
-
mutation:
|
|
8527
|
+
mutation: vn,
|
|
8530
8528
|
variables: {
|
|
8531
8529
|
id: this.id,
|
|
8532
8530
|
transactionId: t
|
|
8533
8531
|
},
|
|
8534
8532
|
context: {
|
|
8535
|
-
transactionOwnerId:
|
|
8533
|
+
transactionOwnerId: s
|
|
8536
8534
|
}
|
|
8537
8535
|
}), e && this.workflowExperiences.push(A);
|
|
8538
8536
|
}
|
|
@@ -8555,15 +8553,15 @@ class me {
|
|
|
8555
8553
|
async removeTransaction(A, e, t = !0) {
|
|
8556
8554
|
if (A > -1) {
|
|
8557
8555
|
const a = this.workflowExperiences.find(
|
|
8558
|
-
(
|
|
8556
|
+
(n) => n.getWorkflowManager().getTransaction().id === e.id
|
|
8559
8557
|
);
|
|
8560
8558
|
this.previewService && a.getWorkflowManager().ejectFromPreviewService(), this.bundleStateManager.removeStateForTransaction(e.id), await N.getShadowGraphqlClient().mutate({
|
|
8561
|
-
mutation:
|
|
8559
|
+
mutation: Jn,
|
|
8562
8560
|
variables: {
|
|
8563
8561
|
id: this.id,
|
|
8564
8562
|
transactionId: e.id,
|
|
8565
8563
|
name: this.name,
|
|
8566
|
-
metadata: Array.from(this.metadata.entries()).map(([
|
|
8564
|
+
metadata: Array.from(this.metadata.entries()).map(([n, s]) => ({ key: n, value: s })),
|
|
8567
8565
|
bundleStateData: this.bundleStateManager.getSerializedState()
|
|
8568
8566
|
}
|
|
8569
8567
|
}), t && (this.workflowExperiences.splice(A, 1), await this.updateTransactionOrder());
|
|
@@ -8572,25 +8570,25 @@ class me {
|
|
|
8572
8570
|
}
|
|
8573
8571
|
async removeTransactions(A) {
|
|
8574
8572
|
const e = A.map(
|
|
8575
|
-
(a) => this.workflowExperiences.findIndex((
|
|
8573
|
+
(a) => this.workflowExperiences.findIndex((n) => n.getWorkflowManager().getTransaction().id === a.id)
|
|
8576
8574
|
);
|
|
8577
8575
|
if (e.some((a) => a === -1))
|
|
8578
8576
|
throw new Error(
|
|
8579
|
-
"Unable to remove workflow experience from bundle - The following aren't included in the bundle: " + A.filter((a,
|
|
8577
|
+
"Unable to remove workflow experience from bundle - The following aren't included in the bundle: " + A.filter((a, n) => e[n] === -1).map((a) => a.id).join(", ")
|
|
8580
8578
|
);
|
|
8581
8579
|
const t = A.map(
|
|
8582
8580
|
(a) => this.workflowExperiences.splice(
|
|
8583
|
-
this.workflowExperiences.findIndex((
|
|
8581
|
+
this.workflowExperiences.findIndex((n) => n.getWorkflowManager().getTransaction().id === a.id),
|
|
8584
8582
|
1
|
|
8585
8583
|
)[0]
|
|
8586
8584
|
);
|
|
8587
8585
|
this.previewService && t.forEach((a) => a.getWorkflowManager().ejectFromPreviewService()), A.forEach((a) => this.bundleStateManager.removeStateForTransaction(a.id)), await N.getShadowGraphqlClient().mutate({
|
|
8588
|
-
mutation:
|
|
8586
|
+
mutation: bn,
|
|
8589
8587
|
variables: {
|
|
8590
8588
|
id: this.id,
|
|
8591
8589
|
transactionIds: A.map((a) => a.id),
|
|
8592
8590
|
name: this.name,
|
|
8593
|
-
metadata: Array.from(this.metadata.entries()).map(([a,
|
|
8591
|
+
metadata: Array.from(this.metadata.entries()).map(([a, n]) => ({ key: a, value: n })),
|
|
8594
8592
|
bundleStateData: this.bundleStateManager.getSerializedState()
|
|
8595
8593
|
}
|
|
8596
8594
|
}), await this.updateTransactionOrder();
|
|
@@ -8619,7 +8617,7 @@ class me {
|
|
|
8619
8617
|
(async () => {
|
|
8620
8618
|
await this.injectExperienceIntoPreviewService(e);
|
|
8621
8619
|
const a = await this.getGlobalProperties();
|
|
8622
|
-
await Promise.all(a.map((
|
|
8620
|
+
await Promise.all(a.map((n) => n.applyGlobalState([e])));
|
|
8623
8621
|
})()
|
|
8624
8622
|
]);
|
|
8625
8623
|
}
|
|
@@ -8641,16 +8639,16 @@ class me {
|
|
|
8641
8639
|
return this.workflowExperiences.length;
|
|
8642
8640
|
}
|
|
8643
8641
|
async addStakeholder(A, e) {
|
|
8644
|
-
var
|
|
8642
|
+
var n;
|
|
8645
8643
|
const t = await N.getShadowGraphqlClient().mutate({
|
|
8646
|
-
mutation:
|
|
8644
|
+
mutation: Tn,
|
|
8647
8645
|
variables: {
|
|
8648
8646
|
id: this.id,
|
|
8649
8647
|
details: A,
|
|
8650
8648
|
type: e || xA.Owner
|
|
8651
8649
|
}
|
|
8652
8650
|
});
|
|
8653
|
-
if (!((
|
|
8651
|
+
if (!((n = t.data) != null && n.bundleAddStakeholder))
|
|
8654
8652
|
throw new Error("Bundle not found!");
|
|
8655
8653
|
const a = t.data.bundleAddStakeholder.bundleStakeholders || [];
|
|
8656
8654
|
this.storeStakeholderCustomers(a);
|
|
@@ -8658,7 +8656,7 @@ class me {
|
|
|
8658
8656
|
async updateStakeholders(A) {
|
|
8659
8657
|
var a;
|
|
8660
8658
|
const e = await N.getShadowGraphqlClient().mutate({
|
|
8661
|
-
mutation:
|
|
8659
|
+
mutation: Ln,
|
|
8662
8660
|
variables: {
|
|
8663
8661
|
id: this.id,
|
|
8664
8662
|
input: A
|
|
@@ -8671,7 +8669,7 @@ class me {
|
|
|
8671
8669
|
}
|
|
8672
8670
|
async getAllStakeholders() {
|
|
8673
8671
|
const A = await N.getShadowGraphqlClient().query({
|
|
8674
|
-
query:
|
|
8672
|
+
query: Hn,
|
|
8675
8673
|
errorPolicy: "all",
|
|
8676
8674
|
variables: {
|
|
8677
8675
|
id: this.id
|
|
@@ -8688,7 +8686,7 @@ class me {
|
|
|
8688
8686
|
});
|
|
8689
8687
|
}
|
|
8690
8688
|
async finish(A) {
|
|
8691
|
-
return await
|
|
8689
|
+
return await dn(
|
|
8692
8690
|
this.workflowExperiences.map((e) => ({
|
|
8693
8691
|
workflowManager: e.getWorkflowManager(),
|
|
8694
8692
|
workflow: e.getWorkflowManager().getWorkflow(),
|
|
@@ -8723,11 +8721,11 @@ class me {
|
|
|
8723
8721
|
}
|
|
8724
8722
|
onModelSelectedEvent(A, e) {
|
|
8725
8723
|
if (A && A.metadata && A.metadata instanceof Map && A.metadata.has("workflowManager")) {
|
|
8726
|
-
const a = A.metadata.get("workflowManager").getTransaction(),
|
|
8727
|
-
(
|
|
8724
|
+
const a = A.metadata.get("workflowManager").getTransaction(), n = this.workflowExperiences.find(
|
|
8725
|
+
(s) => s.getWorkflowManager().getTransaction().id === a.id
|
|
8728
8726
|
);
|
|
8729
|
-
|
|
8730
|
-
workflowExperience:
|
|
8727
|
+
n && this.fireEvent(e ? "workflow-experience-hover-enter" : "workflow-experience-hover-exit", {
|
|
8728
|
+
workflowExperience: n
|
|
8731
8729
|
});
|
|
8732
8730
|
}
|
|
8733
8731
|
}
|
|
@@ -8759,7 +8757,7 @@ class me {
|
|
|
8759
8757
|
async updateBundle() {
|
|
8760
8758
|
var e;
|
|
8761
8759
|
if (!((e = (await N.getShadowGraphqlClient().mutate({
|
|
8762
|
-
mutation:
|
|
8760
|
+
mutation: Gn,
|
|
8763
8761
|
variables: {
|
|
8764
8762
|
id: this.id,
|
|
8765
8763
|
name: this.name,
|
|
@@ -8771,7 +8769,7 @@ class me {
|
|
|
8771
8769
|
}
|
|
8772
8770
|
async updateTransactionOrder() {
|
|
8773
8771
|
await N.getShadowGraphqlClient().mutate({
|
|
8774
|
-
mutation:
|
|
8772
|
+
mutation: On,
|
|
8775
8773
|
variables: {
|
|
8776
8774
|
id: this.id,
|
|
8777
8775
|
transactionIds: this.workflowExperiences.map((A) => A.getWorkflowManager().getTransaction().id)
|
|
@@ -8779,16 +8777,16 @@ class me {
|
|
|
8779
8777
|
});
|
|
8780
8778
|
}
|
|
8781
8779
|
async checkConditionalHandlesChanged(A, e) {
|
|
8782
|
-
const t = await this.globalPropertyHandleService.getHandles(), a = this.globalPropertyHandleService.applyConditionsFromState(t, A),
|
|
8780
|
+
const t = await this.globalPropertyHandleService.getHandles(), a = this.globalPropertyHandleService.applyConditionsFromState(t, A), n = this.globalPropertyHandleService.applyConditionsFromState(t, e);
|
|
8783
8781
|
(() => {
|
|
8784
|
-
if (a.length !==
|
|
8782
|
+
if (a.length !== n.length)
|
|
8785
8783
|
return !0;
|
|
8786
8784
|
for (let i = 0; i < a.length; i++)
|
|
8787
|
-
if (a[i].getName() !==
|
|
8785
|
+
if (a[i].getName() !== n[i].getName())
|
|
8788
8786
|
return !0;
|
|
8789
8787
|
return !1;
|
|
8790
8788
|
})() && this.fireEvent("conditional-global-properties-changed", {
|
|
8791
|
-
globalProperties:
|
|
8789
|
+
globalProperties: n
|
|
8792
8790
|
});
|
|
8793
8791
|
}
|
|
8794
8792
|
fireEvent(A, e) {
|
|
@@ -8801,7 +8799,7 @@ class me {
|
|
|
8801
8799
|
);
|
|
8802
8800
|
}
|
|
8803
8801
|
}
|
|
8804
|
-
const
|
|
8802
|
+
const es = y`
|
|
8805
8803
|
mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
|
|
8806
8804
|
processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
|
|
8807
8805
|
id
|
|
@@ -8812,25 +8810,25 @@ const An = y`
|
|
|
8812
8810
|
}
|
|
8813
8811
|
}
|
|
8814
8812
|
`;
|
|
8815
|
-
class
|
|
8813
|
+
class ts {
|
|
8816
8814
|
async execute(A, e, t) {
|
|
8817
8815
|
var c, r, B, l, d, E, C, w;
|
|
8818
8816
|
if (!((r = (c = (await N.getShadowGraphqlClient().mutate({
|
|
8819
|
-
mutation:
|
|
8817
|
+
mutation: es,
|
|
8820
8818
|
variables: {
|
|
8821
8819
|
processFlowId: A,
|
|
8822
8820
|
inputs: [...e.map((h) => h.getValueForTransmission())]
|
|
8823
8821
|
}
|
|
8824
8822
|
})).data) == null ? void 0 : c.processExecutionCreate) != null && r.id))
|
|
8825
8823
|
throw new Error("Failed to create process execution.");
|
|
8826
|
-
function
|
|
8824
|
+
function n(h) {
|
|
8827
8825
|
return new Promise((Q) => {
|
|
8828
8826
|
setTimeout(Q, h);
|
|
8829
8827
|
});
|
|
8830
8828
|
}
|
|
8831
|
-
let
|
|
8832
|
-
for (; !
|
|
8833
|
-
if (await
|
|
8829
|
+
let s = !1, i = 0, o;
|
|
8830
|
+
for (; !s; ) {
|
|
8831
|
+
if (await n(t != null && t.sleepTime ? Math.max(t.sleepTime, 500) : 2e3), o = await N.getShadowGraphqlClient().query({
|
|
8834
8832
|
query: y`
|
|
8835
8833
|
query getProcessFlowExecution($ids: [String]!) {
|
|
8836
8834
|
processExecutions(ids: $ids) {
|
|
@@ -8850,7 +8848,7 @@ class en {
|
|
|
8850
8848
|
}), !o || !((B = o.data) != null && B.getProcessFlowExecution))
|
|
8851
8849
|
throw new Error("Failed to retrieve server response for execution.");
|
|
8852
8850
|
if ((d = (l = o.data) == null ? void 0 : l.getProcessFlowExecution) == null ? void 0 : d.completedAt) {
|
|
8853
|
-
|
|
8851
|
+
s = !0;
|
|
8854
8852
|
break;
|
|
8855
8853
|
}
|
|
8856
8854
|
if ((C = (E = o.data) == null ? void 0 : E.getProcessFlowExecution) != null && C.failedAt)
|
|
@@ -8875,7 +8873,7 @@ class dt {
|
|
|
8875
8873
|
return A.startsWith("[") ? JSON.stringify(JSON.parse(A)) : JSON.stringify(A);
|
|
8876
8874
|
}
|
|
8877
8875
|
}
|
|
8878
|
-
var
|
|
8876
|
+
var as = /* @__PURE__ */ ((g) => (g.Transaction = "Transaction", g.Bundle = "Bundle", g.Product = "Product", g.Variant = "Variant", g.Option = "Option", g.LineItem = "LineItem", g.Asset = "Asset", g))(as || {});
|
|
8879
8877
|
class wt extends dt {
|
|
8880
8878
|
constructor(A, e) {
|
|
8881
8879
|
if (e !== "Asset" && !wt.validUUID(A))
|
|
@@ -8886,12 +8884,12 @@ class wt extends dt {
|
|
|
8886
8884
|
return A.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);
|
|
8887
8885
|
}
|
|
8888
8886
|
}
|
|
8889
|
-
class
|
|
8887
|
+
class Hs extends dt {
|
|
8890
8888
|
constructor(A) {
|
|
8891
8889
|
super(A);
|
|
8892
8890
|
}
|
|
8893
8891
|
}
|
|
8894
|
-
const
|
|
8892
|
+
const ns = y`
|
|
8895
8893
|
fragment RegionFields on Region {
|
|
8896
8894
|
width
|
|
8897
8895
|
top
|
|
@@ -8909,7 +8907,7 @@ const an = y`
|
|
|
8909
8907
|
height
|
|
8910
8908
|
}
|
|
8911
8909
|
}
|
|
8912
|
-
`,
|
|
8910
|
+
`, ss = y`
|
|
8913
8911
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
8914
8912
|
latDeg
|
|
8915
8913
|
lonDeg
|
|
@@ -8920,7 +8918,7 @@ const an = y`
|
|
|
8920
8918
|
z
|
|
8921
8919
|
}
|
|
8922
8920
|
}
|
|
8923
|
-
`,
|
|
8921
|
+
`, is = y`
|
|
8924
8922
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
8925
8923
|
antiAliasing {
|
|
8926
8924
|
samples
|
|
@@ -9004,21 +9002,21 @@ const an = y`
|
|
|
9004
9002
|
weight
|
|
9005
9003
|
}
|
|
9006
9004
|
}
|
|
9007
|
-
`,
|
|
9005
|
+
`, os = y`
|
|
9008
9006
|
fragment ModelAnimationFields on ModelAnimation {
|
|
9009
9007
|
from
|
|
9010
9008
|
to
|
|
9011
9009
|
loop
|
|
9012
9010
|
name
|
|
9013
9011
|
}
|
|
9014
|
-
`,
|
|
9012
|
+
`, rs = (g) => y`
|
|
9015
9013
|
${kA(g)}
|
|
9016
9014
|
${te}
|
|
9017
9015
|
${ze}
|
|
9018
|
-
${
|
|
9019
|
-
${
|
|
9020
|
-
${
|
|
9021
|
-
${
|
|
9016
|
+
${ns}
|
|
9017
|
+
${ss}
|
|
9018
|
+
${is}
|
|
9019
|
+
${os}
|
|
9022
9020
|
query GetWorkflows($ids: [String!]!) {
|
|
9023
9021
|
workflows(ids: $ids) {
|
|
9024
9022
|
allowProofDownload
|
|
@@ -9406,7 +9404,7 @@ const an = y`
|
|
|
9406
9404
|
}
|
|
9407
9405
|
}
|
|
9408
9406
|
}
|
|
9409
|
-
`,
|
|
9407
|
+
`, cs = y`
|
|
9410
9408
|
query GetTransactionForPartner($id: String!) {
|
|
9411
9409
|
transactions(ids: [$id]) {
|
|
9412
9410
|
id
|
|
@@ -9423,7 +9421,7 @@ const an = y`
|
|
|
9423
9421
|
}
|
|
9424
9422
|
}
|
|
9425
9423
|
}
|
|
9426
|
-
`,
|
|
9424
|
+
`, gs = y`
|
|
9427
9425
|
${kA(!1)}
|
|
9428
9426
|
query GetWorkflowForTheme($id: String!) {
|
|
9429
9427
|
workflow(id: $id) {
|
|
@@ -9445,7 +9443,7 @@ const an = y`
|
|
|
9445
9443
|
}
|
|
9446
9444
|
}
|
|
9447
9445
|
}
|
|
9448
|
-
`,
|
|
9446
|
+
`, ls = y`
|
|
9449
9447
|
query GetCustomer($emailAddress: String!) {
|
|
9450
9448
|
customer(emailAddress: $emailAddress) {
|
|
9451
9449
|
id
|
|
@@ -9455,7 +9453,7 @@ const an = y`
|
|
|
9455
9453
|
}
|
|
9456
9454
|
}
|
|
9457
9455
|
}
|
|
9458
|
-
`,
|
|
9456
|
+
`, Bs = y`
|
|
9459
9457
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
9460
9458
|
customerCreate(details: $details) {
|
|
9461
9459
|
id
|
|
@@ -9465,7 +9463,7 @@ const an = y`
|
|
|
9465
9463
|
}
|
|
9466
9464
|
}
|
|
9467
9465
|
}
|
|
9468
|
-
`,
|
|
9466
|
+
`, ds = y`
|
|
9469
9467
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
9470
9468
|
customerAuthenticate(loginToken: $loginToken) {
|
|
9471
9469
|
id
|
|
@@ -9492,11 +9490,11 @@ const an = y`
|
|
|
9492
9490
|
}
|
|
9493
9491
|
}
|
|
9494
9492
|
}
|
|
9495
|
-
`,
|
|
9493
|
+
`, ws = y`
|
|
9496
9494
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
9497
9495
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
9498
9496
|
}
|
|
9499
|
-
`,
|
|
9497
|
+
`, Es = y`
|
|
9500
9498
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
9501
9499
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
9502
9500
|
id
|
|
@@ -9524,10 +9522,10 @@ const an = y`
|
|
|
9524
9522
|
}
|
|
9525
9523
|
}
|
|
9526
9524
|
}
|
|
9527
|
-
`,
|
|
9525
|
+
`, hs = async (g, A) => {
|
|
9528
9526
|
var a;
|
|
9529
9527
|
const e = await N.getShadowGraphqlClient().query({
|
|
9530
|
-
query:
|
|
9528
|
+
query: rs(((a = A == null ? void 0 : A.assets) == null ? void 0 : a.metadata) || !1),
|
|
9531
9529
|
errorPolicy: "all",
|
|
9532
9530
|
fetchPolicy: "no-cache",
|
|
9533
9531
|
variables: {
|
|
@@ -9536,15 +9534,15 @@ const an = y`
|
|
|
9536
9534
|
}), t = e.data.workflows;
|
|
9537
9535
|
if (t === void 0 || t.length !== g.length)
|
|
9538
9536
|
throw new Error(`Unable to read workflows: ${e.errors ?? "Length mismatch in response"}`);
|
|
9539
|
-
return t.forEach((
|
|
9540
|
-
|
|
9537
|
+
return t.forEach((n) => {
|
|
9538
|
+
n.steps.forEach((s) => {
|
|
9541
9539
|
var i, o, c;
|
|
9542
|
-
delete
|
|
9540
|
+
delete s.data.__typename, (i = s.option) != null && i.id && ((o = s.option.defaultVariant) != null && o.asset && T.cacheAsset(s.option.defaultVariant.asset), s.option.colorProfile && T.cacheAsset(s.option.colorProfile), (c = s.option.variants) == null || c.forEach((r) => {
|
|
9543
9541
|
r.asset && T.cacheAsset(r.asset), r.displayImage && T.cacheAsset(r.displayImage), r.thumbnail && T.cacheAsset(r.thumbnail), r.material && T.cacheMaterial(r.material);
|
|
9544
|
-
}), BA.set({ id:
|
|
9542
|
+
}), BA.set({ id: s.option.id }, Promise.resolve(s.option)));
|
|
9545
9543
|
});
|
|
9546
9544
|
}), t;
|
|
9547
|
-
},
|
|
9545
|
+
}, Cs = async (g, A) => {
|
|
9548
9546
|
const t = (await A).find((a) => a.id === g);
|
|
9549
9547
|
if (!t)
|
|
9550
9548
|
throw new Error(`Workflow not found: ${g}`);
|
|
@@ -9553,11 +9551,11 @@ const an = y`
|
|
|
9553
9551
|
const e = g.map((i) => BA.get({ id: i, options: A })), t = g.filter((i, o) => e[o] === void 0);
|
|
9554
9552
|
if (t.length === 0)
|
|
9555
9553
|
return Promise.all(e);
|
|
9556
|
-
const a =
|
|
9557
|
-
(i) => BA.set({ id: i, options: A },
|
|
9558
|
-
),
|
|
9559
|
-
return await Promise.all(
|
|
9560
|
-
}, mA = async (g, A) => (await Et([g], A))[0],
|
|
9554
|
+
const a = hs(t, A), n = t.map(
|
|
9555
|
+
(i) => BA.set({ id: i, options: A }, Cs(i, a))
|
|
9556
|
+
), s = e.filter((i) => i !== void 0);
|
|
9557
|
+
return await Promise.all(s.concat(n));
|
|
9558
|
+
}, mA = async (g, A) => (await Et([g], A))[0], Qs = (g) => g.sort((A, e) => A.index - e.index).map((A) => ({
|
|
9561
9559
|
id: v(),
|
|
9562
9560
|
panelId: A.name,
|
|
9563
9561
|
name: A.name,
|
|
@@ -9572,9 +9570,9 @@ const an = y`
|
|
|
9572
9570
|
editableArea: A.editableArea
|
|
9573
9571
|
})), KA = (g, A) => {
|
|
9574
9572
|
const e = g.workflowState, t = e ? JSON.parse(e) : void 0;
|
|
9575
|
-
return t ? Object.values(t.layouts).map((a) => a.layout) :
|
|
9573
|
+
return t ? Object.values(t.layouts).map((a) => a.layout) : Qs(A.panels);
|
|
9576
9574
|
};
|
|
9577
|
-
class
|
|
9575
|
+
class us {
|
|
9578
9576
|
constructor(A) {
|
|
9579
9577
|
this.updateTransactionState = async (e) => {
|
|
9580
9578
|
try {
|
|
@@ -9602,7 +9600,7 @@ class un {
|
|
|
9602
9600
|
getFlowService() {
|
|
9603
9601
|
if (!this.options.applicationKey)
|
|
9604
9602
|
throw new Error("Application key required to use Flow Service.");
|
|
9605
|
-
return new
|
|
9603
|
+
return new ts();
|
|
9606
9604
|
}
|
|
9607
9605
|
// TODO: Authentication functions should probably be moved to a separate class.
|
|
9608
9606
|
/**
|
|
@@ -9611,17 +9609,17 @@ class un {
|
|
|
9611
9609
|
* @returns An object containing the success status of the authentication attempt, and the type of stakeholder when successful.
|
|
9612
9610
|
*/
|
|
9613
9611
|
async authenticateBundleFromLocalStorage(A) {
|
|
9614
|
-
var a,
|
|
9612
|
+
var a, n;
|
|
9615
9613
|
const e = x.getMap("bundleOwnerIds");
|
|
9616
9614
|
if (e != null && e.has(A)) {
|
|
9617
|
-
const
|
|
9618
|
-
return TA(
|
|
9615
|
+
const s = e.get(A);
|
|
9616
|
+
return TA(s), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
|
|
9619
9617
|
}
|
|
9620
9618
|
const t = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9621
9619
|
if (t.has(A)) {
|
|
9622
|
-
const
|
|
9620
|
+
const s = t.get(A), o = (x.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(s);
|
|
9623
9621
|
if (o && await this.authenticateCustomerId(o)) {
|
|
9624
|
-
const r = (
|
|
9622
|
+
const r = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
9625
9623
|
(B) => {
|
|
9626
9624
|
var l;
|
|
9627
9625
|
return ((l = B.bundle) == null ? void 0 : l.id) === A;
|
|
@@ -9649,7 +9647,7 @@ class un {
|
|
|
9649
9647
|
async authenticateTransactionFromLocalStorage(A) {
|
|
9650
9648
|
var r, B, l, d, E, C;
|
|
9651
9649
|
const e = N.getShadowGraphqlClient(), t = await e.query({
|
|
9652
|
-
query:
|
|
9650
|
+
query: cs,
|
|
9653
9651
|
errorPolicy: "all",
|
|
9654
9652
|
fetchPolicy: "no-cache",
|
|
9655
9653
|
variables: {
|
|
@@ -9663,9 +9661,9 @@ class un {
|
|
|
9663
9661
|
throw new Error(`Unable to read transaction: ${A}`);
|
|
9664
9662
|
if (a.isOrdered)
|
|
9665
9663
|
return Promise.resolve({ success: !1, transactionReadOnly: !0 });
|
|
9666
|
-
const
|
|
9667
|
-
if (
|
|
9668
|
-
const w =
|
|
9664
|
+
const s = x.getMap("transactionOwnerIds");
|
|
9665
|
+
if (s != null && s.has(A)) {
|
|
9666
|
+
const w = s.get(A);
|
|
9669
9667
|
return eA(w), Promise.resolve({ success: !0, stakeholderType: xA.Owner });
|
|
9670
9668
|
}
|
|
9671
9669
|
const i = x.getMap("transactionCustomerIds");
|
|
@@ -9691,7 +9689,7 @@ class un {
|
|
|
9691
9689
|
}
|
|
9692
9690
|
}
|
|
9693
9691
|
const c = (await e.query({
|
|
9694
|
-
query:
|
|
9692
|
+
query: gs,
|
|
9695
9693
|
errorPolicy: "all",
|
|
9696
9694
|
variables: {
|
|
9697
9695
|
id: a.workflowId
|
|
@@ -9715,19 +9713,19 @@ class un {
|
|
|
9715
9713
|
getStakeholderTypeForTransaction(A) {
|
|
9716
9714
|
var t, a;
|
|
9717
9715
|
const e = (a = (t = this.customer) == null ? void 0 : t.stakeholders) == null ? void 0 : a.find(
|
|
9718
|
-
(
|
|
9719
|
-
var
|
|
9720
|
-
return ((
|
|
9716
|
+
(n) => {
|
|
9717
|
+
var s;
|
|
9718
|
+
return ((s = n.transaction) == null ? void 0 : s.id) === A;
|
|
9721
9719
|
}
|
|
9722
9720
|
);
|
|
9723
9721
|
if (e)
|
|
9724
9722
|
return e.type;
|
|
9725
9723
|
}
|
|
9726
9724
|
async getOrCreateCustomer(A) {
|
|
9727
|
-
var
|
|
9725
|
+
var s;
|
|
9728
9726
|
this.customer = void 0;
|
|
9729
9727
|
const e = N.getShadowGraphqlClient(), a = (await e.query({
|
|
9730
|
-
query:
|
|
9728
|
+
query: ls,
|
|
9731
9729
|
errorPolicy: "all",
|
|
9732
9730
|
fetchPolicy: "no-cache",
|
|
9733
9731
|
variables: {
|
|
@@ -9735,8 +9733,8 @@ class un {
|
|
|
9735
9733
|
}
|
|
9736
9734
|
})).data.customer;
|
|
9737
9735
|
if (!a.id) {
|
|
9738
|
-
const o = (
|
|
9739
|
-
mutation:
|
|
9736
|
+
const o = (s = (await e.mutate({
|
|
9737
|
+
mutation: Bs,
|
|
9740
9738
|
errorPolicy: "all",
|
|
9741
9739
|
fetchPolicy: "no-cache",
|
|
9742
9740
|
variables: {
|
|
@@ -9744,7 +9742,7 @@ class un {
|
|
|
9744
9742
|
emailAddress: A
|
|
9745
9743
|
}
|
|
9746
9744
|
}
|
|
9747
|
-
})).data) == null ? void 0 :
|
|
9745
|
+
})).data) == null ? void 0 : s.customerCreate;
|
|
9748
9746
|
if (!o)
|
|
9749
9747
|
throw new Error("Unable to create customer.");
|
|
9750
9748
|
return this.storeCustomer(o), this.customer = o, {
|
|
@@ -9753,10 +9751,10 @@ class un {
|
|
|
9753
9751
|
};
|
|
9754
9752
|
}
|
|
9755
9753
|
this.storeCustomer(a);
|
|
9756
|
-
const
|
|
9754
|
+
const n = await this.authenticateCustomerId(a.id);
|
|
9757
9755
|
return {
|
|
9758
9756
|
customer: this.customer || a,
|
|
9759
|
-
isAuthenticated:
|
|
9757
|
+
isAuthenticated: n
|
|
9760
9758
|
};
|
|
9761
9759
|
}
|
|
9762
9760
|
async authenticateCustomerId(A) {
|
|
@@ -9767,15 +9765,15 @@ class un {
|
|
|
9767
9765
|
const a = t.get(A);
|
|
9768
9766
|
if (!a)
|
|
9769
9767
|
return !1;
|
|
9770
|
-
const
|
|
9771
|
-
mutation:
|
|
9768
|
+
const s = (i = (await e.mutate({
|
|
9769
|
+
mutation: ds,
|
|
9772
9770
|
errorPolicy: "all",
|
|
9773
9771
|
fetchPolicy: "no-cache",
|
|
9774
9772
|
variables: {
|
|
9775
9773
|
loginToken: a
|
|
9776
9774
|
}
|
|
9777
9775
|
})).data) == null ? void 0 : i.customerAuthenticate;
|
|
9778
|
-
return
|
|
9776
|
+
return s ? (this.storeCustomer(s), Ee(a), this.customer = s, !0) : !1;
|
|
9779
9777
|
}
|
|
9780
9778
|
/**
|
|
9781
9779
|
* Generates a verification code for the given email address.
|
|
@@ -9783,7 +9781,7 @@ class un {
|
|
|
9783
9781
|
*/
|
|
9784
9782
|
async generateVerificationCode(A) {
|
|
9785
9783
|
await N.getShadowGraphqlClient().mutate({
|
|
9786
|
-
mutation:
|
|
9784
|
+
mutation: ws,
|
|
9787
9785
|
variables: {
|
|
9788
9786
|
emailAddress: A
|
|
9789
9787
|
}
|
|
@@ -9796,18 +9794,18 @@ class un {
|
|
|
9796
9794
|
* @returns True if the verification was successful, false otherwise.
|
|
9797
9795
|
*/
|
|
9798
9796
|
async verifyCode(A, e) {
|
|
9799
|
-
var
|
|
9800
|
-
const a = (
|
|
9801
|
-
mutation:
|
|
9797
|
+
var n, s;
|
|
9798
|
+
const a = (n = (await N.getShadowGraphqlClient().mutate({
|
|
9799
|
+
mutation: Es,
|
|
9802
9800
|
errorPolicy: "all",
|
|
9803
9801
|
fetchPolicy: "no-cache",
|
|
9804
9802
|
variables: {
|
|
9805
9803
|
emailAddress: A,
|
|
9806
9804
|
verificationCode: e
|
|
9807
9805
|
}
|
|
9808
|
-
})).data) == null ? void 0 :
|
|
9806
|
+
})).data) == null ? void 0 : n.customerVerifyCode;
|
|
9809
9807
|
if (a != null && a.loginToken) {
|
|
9810
|
-
if (!((
|
|
9808
|
+
if (!((s = a.partner) != null && s.id))
|
|
9811
9809
|
throw new Error(`Unable to find customer: ${A}`);
|
|
9812
9810
|
const i = x.getMap("customerTokens") || /* @__PURE__ */ new Map();
|
|
9813
9811
|
return i.set(a.id, a.loginToken), x.setMap("customerTokens", i), this.storeCustomer(a), Ee(a.loginToken), this.customer = {
|
|
@@ -9822,20 +9820,20 @@ class un {
|
|
|
9822
9820
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
9823
9821
|
*/
|
|
9824
9822
|
async getNewBundle(A) {
|
|
9825
|
-
var
|
|
9826
|
-
const t = (
|
|
9827
|
-
mutation:
|
|
9823
|
+
var s;
|
|
9824
|
+
const t = (s = (await N.getShadowGraphqlClient().mutate({
|
|
9825
|
+
mutation: Un,
|
|
9828
9826
|
variables: {
|
|
9829
9827
|
collectionId: A
|
|
9830
9828
|
},
|
|
9831
9829
|
fetchPolicy: "no-cache"
|
|
9832
|
-
})).data) == null ? void 0 :
|
|
9830
|
+
})).data) == null ? void 0 : s.bundleCreate;
|
|
9833
9831
|
if (!(t != null && t.id))
|
|
9834
9832
|
throw new Error("Unable to create bundle");
|
|
9835
9833
|
const a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9836
9834
|
a.set(t.id, t.partner.id), x.setMap("bundlePartnerIds", a), TA(t.bundleOwnerId);
|
|
9837
|
-
const
|
|
9838
|
-
return
|
|
9835
|
+
const n = x.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
9836
|
+
return n.set(t.id, t.bundleOwnerId), x.setMap("bundleOwnerIds", n), new me(this, t);
|
|
9839
9837
|
}
|
|
9840
9838
|
/**
|
|
9841
9839
|
* Retrieves an existing bundle from the API, by id.
|
|
@@ -9846,18 +9844,18 @@ class un {
|
|
|
9846
9844
|
*/
|
|
9847
9845
|
async getExistingBundle(A, e, t) {
|
|
9848
9846
|
var r, B, l, d;
|
|
9849
|
-
const a = x.getMap("bundleOwnerIds"),
|
|
9850
|
-
|
|
9851
|
-
const
|
|
9852
|
-
query:
|
|
9847
|
+
const a = x.getMap("bundleOwnerIds"), n = a == null ? void 0 : a.get(A);
|
|
9848
|
+
n && TA(n);
|
|
9849
|
+
const s = await N.getShadowGraphqlClient().query({
|
|
9850
|
+
query: Rn,
|
|
9853
9851
|
variables: {
|
|
9854
9852
|
id: A
|
|
9855
9853
|
},
|
|
9856
9854
|
fetchPolicy: "no-cache"
|
|
9857
9855
|
});
|
|
9858
|
-
if (!((r =
|
|
9856
|
+
if (!((r = s.data) != null && r.bundles) || ((B = s.data) == null ? void 0 : B.bundles.length) === 0 || !((l = s.data) != null && l.bundles[0]))
|
|
9859
9857
|
throw new Error(`Unable to find bundle: ${A}`);
|
|
9860
|
-
const i = (d =
|
|
9858
|
+
const i = (d = s.data) == null ? void 0 : d.bundles[0], o = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9861
9859
|
o.set(i.id, i.partner.id), x.setMap("bundlePartnerIds", o);
|
|
9862
9860
|
const c = new me(this, i, e, t);
|
|
9863
9861
|
return await c.getInitializationPromise(), c;
|
|
@@ -9867,22 +9865,22 @@ class un {
|
|
|
9867
9865
|
* @returns An array of bundle stakeholders.
|
|
9868
9866
|
*/
|
|
9869
9867
|
async getBundleStakeholders() {
|
|
9870
|
-
var
|
|
9868
|
+
var n;
|
|
9871
9869
|
if (!this.customer)
|
|
9872
9870
|
throw new Error("Customer not authenticated.");
|
|
9873
9871
|
const A = await N.getShadowGraphqlClient().query({
|
|
9874
|
-
query:
|
|
9872
|
+
query: Pn,
|
|
9875
9873
|
variables: {
|
|
9876
9874
|
id: this.customer.id
|
|
9877
9875
|
},
|
|
9878
9876
|
fetchPolicy: "no-cache"
|
|
9879
9877
|
});
|
|
9880
|
-
if (!((
|
|
9878
|
+
if (!((n = A.data) != null && n.customers) || A.data.customers.length === 0)
|
|
9881
9879
|
throw new Error("Unable to find customer.");
|
|
9882
9880
|
const t = A.data.customers[0].bundleStakeholders || [], a = x.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
9883
|
-
return t.forEach((
|
|
9881
|
+
return t.forEach((s) => {
|
|
9884
9882
|
var i, o;
|
|
9885
|
-
(i =
|
|
9883
|
+
(i = s.bundle) != null && i.id && ((o = s.bundle.partner) != null && o.id) && a.set(s.bundle.id, s.bundle.partner.id);
|
|
9886
9884
|
}), x.setMap("bundlePartnerIds", a), t;
|
|
9887
9885
|
}
|
|
9888
9886
|
/**
|
|
@@ -9897,7 +9895,7 @@ class un {
|
|
|
9897
9895
|
var l, d, E, C, w;
|
|
9898
9896
|
if (!a)
|
|
9899
9897
|
return await this.getWorkflowExperienceDeprecated(A, e, t);
|
|
9900
|
-
const
|
|
9898
|
+
const n = async (h) => {
|
|
9901
9899
|
var Q;
|
|
9902
9900
|
for (const m in h.layouts) {
|
|
9903
9901
|
const u = h.layouts[m].elements.filter(
|
|
@@ -9915,7 +9913,7 @@ class un {
|
|
|
9915
9913
|
(Q = I.fontData) != null && Q.assetUrl && IA(I.fontData.assetUrl);
|
|
9916
9914
|
}
|
|
9917
9915
|
}
|
|
9918
|
-
},
|
|
9916
|
+
}, s = async () => {
|
|
9919
9917
|
var Q, m;
|
|
9920
9918
|
const h = N.getShadowGraphqlClient();
|
|
9921
9919
|
if (a.type === "transaction") {
|
|
@@ -9965,7 +9963,7 @@ class un {
|
|
|
9965
9963
|
return { transaction: F, workflow: I };
|
|
9966
9964
|
}
|
|
9967
9965
|
throw new U("No workflow ID provided.");
|
|
9968
|
-
}, { transaction: i, workflow: o, readOnly: c } = await
|
|
9966
|
+
}, { transaction: i, workflow: o, readOnly: c } = await s();
|
|
9969
9967
|
this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
|
|
9970
9968
|
const r = {
|
|
9971
9969
|
product: i.product,
|
|
@@ -9982,10 +9980,10 @@ class un {
|
|
|
9982
9980
|
};
|
|
9983
9981
|
if (a.type === "transaction" && i.workflowState) {
|
|
9984
9982
|
const h = JSON.parse(i.workflowState);
|
|
9985
|
-
r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await
|
|
9983
|
+
r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await n(h), r.reloadedState = h;
|
|
9986
9984
|
} else if (!c && a.workflowState) {
|
|
9987
9985
|
const h = JSON.parse(a.workflowState);
|
|
9988
|
-
r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await
|
|
9986
|
+
r.layouts = Object.values(h.layouts).map((Q) => Q.layout), await AA(h), await n(h), r.reloadedState = h;
|
|
9989
9987
|
} else
|
|
9990
9988
|
r.layouts = KA(
|
|
9991
9989
|
r.transaction,
|
|
@@ -10020,13 +10018,13 @@ class un {
|
|
|
10020
10018
|
async getWorkflowExperiences(A, e) {
|
|
10021
10019
|
if (A.length === 0)
|
|
10022
10020
|
throw new U("No options provided!");
|
|
10023
|
-
const t = N.getShadowGraphqlClient(), a = A.map((m, u) => ({ option: m, index: u })),
|
|
10021
|
+
const t = N.getShadowGraphqlClient(), a = A.map((m, u) => ({ option: m, index: u })), n = a.filter((m) => m.option.type === "transaction"), s = a.filter(
|
|
10024
10022
|
(m) => m.option.type === "integration" || m.option.type === "external"
|
|
10025
10023
|
), i = async () => {
|
|
10026
10024
|
var F, I;
|
|
10027
|
-
if (
|
|
10025
|
+
if (n.length === 0)
|
|
10028
10026
|
return [];
|
|
10029
|
-
const m =
|
|
10027
|
+
const m = n.map((f) => f.option.transactionId), u = await t.query({
|
|
10030
10028
|
query: EA,
|
|
10031
10029
|
variables: {
|
|
10032
10030
|
ids: m
|
|
@@ -10034,7 +10032,7 @@ class un {
|
|
|
10034
10032
|
errorPolicy: "all",
|
|
10035
10033
|
fetchPolicy: "no-cache"
|
|
10036
10034
|
}), p = u.data.transactions;
|
|
10037
|
-
if (p.length !==
|
|
10035
|
+
if (p.length !== n.length) {
|
|
10038
10036
|
const f = ((I = (F = u.errors) == null ? void 0 : F[0]) == null ? void 0 : I.message) || "Unknown error";
|
|
10039
10037
|
throw new U(`Not all transactions were found: ${f}`);
|
|
10040
10038
|
}
|
|
@@ -10043,18 +10041,18 @@ class un {
|
|
|
10043
10041
|
return {
|
|
10044
10042
|
transaction: f,
|
|
10045
10043
|
workflowId: f.workflowId,
|
|
10046
|
-
readOnly: ((Y =
|
|
10047
|
-
index:
|
|
10044
|
+
readOnly: ((Y = n.find((R) => R.option.transactionId === f.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
|
|
10045
|
+
index: n[M].index
|
|
10048
10046
|
};
|
|
10049
10047
|
});
|
|
10050
10048
|
}, o = async () => {
|
|
10051
10049
|
var p, F, I;
|
|
10052
|
-
if (
|
|
10050
|
+
if (s.length === 0)
|
|
10053
10051
|
return [];
|
|
10054
10052
|
const m = await t.mutate({
|
|
10055
10053
|
mutation: ca,
|
|
10056
10054
|
variables: {
|
|
10057
|
-
inputs:
|
|
10055
|
+
inputs: s.map((f) => ({
|
|
10058
10056
|
integrationProductId: f.option.type === "integration" ? f.option.integrationProductId : void 0,
|
|
10059
10057
|
externalIntegrationId: f.option.type === "external" ? f.option.externalIntegrationId : void 0,
|
|
10060
10058
|
externalProductId: f.option.type === "external" ? f.option.externalProductId : void 0,
|
|
@@ -10074,7 +10072,7 @@ class un {
|
|
|
10074
10072
|
transaction: f,
|
|
10075
10073
|
workflowId: f.workflowId,
|
|
10076
10074
|
readOnly: !1,
|
|
10077
|
-
index:
|
|
10075
|
+
index: s[M].index
|
|
10078
10076
|
}));
|
|
10079
10077
|
}, c = (await Promise.all([i(), o()])).flat(), r = [...new Set(c.map((m) => m.workflowId))], B = await Et(r, e), l = new Map(B.map((m) => [m.id, m])), d = async (m) => {
|
|
10080
10078
|
var u;
|
|
@@ -10136,7 +10134,7 @@ class un {
|
|
|
10136
10134
|
* @deprecated Use getWorkflowExperience to initialize the experience.
|
|
10137
10135
|
*/
|
|
10138
10136
|
async initFromIntegrationProduct(A) {
|
|
10139
|
-
var
|
|
10137
|
+
var s;
|
|
10140
10138
|
if (A === "")
|
|
10141
10139
|
throw new U("No integration product ID provided.");
|
|
10142
10140
|
const t = await N.getShadowGraphqlClient().mutate({
|
|
@@ -10156,9 +10154,9 @@ class un {
|
|
|
10156
10154
|
const a = t.data.transactionCreate;
|
|
10157
10155
|
if (!a.product)
|
|
10158
10156
|
throw new U("Failed to create transaction, product not available.");
|
|
10159
|
-
this.currencyCode = (
|
|
10160
|
-
const
|
|
10161
|
-
|
|
10157
|
+
this.currencyCode = (s = a.product.partner) == null ? void 0 : s.currencyCode;
|
|
10158
|
+
const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map();
|
|
10159
|
+
n.set(a.id, a.transactionOwnerId), eA(a.transactionOwnerId || ""), x.setMap("transactionOwnerIds", n), this.experienceOptions = {
|
|
10162
10160
|
product: a.product,
|
|
10163
10161
|
transaction: a,
|
|
10164
10162
|
layouts: [],
|
|
@@ -10199,9 +10197,9 @@ class un {
|
|
|
10199
10197
|
};
|
|
10200
10198
|
if (e)
|
|
10201
10199
|
return await a();
|
|
10202
|
-
const
|
|
10203
|
-
if (
|
|
10204
|
-
eA(
|
|
10200
|
+
const n = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), s = n.get(A);
|
|
10201
|
+
if (s) {
|
|
10202
|
+
eA(s);
|
|
10205
10203
|
const l = (i = (await t.query({
|
|
10206
10204
|
query: EA,
|
|
10207
10205
|
variables: {
|
|
@@ -10232,7 +10230,7 @@ class un {
|
|
|
10232
10230
|
throw new U("Failed to read transaction.");
|
|
10233
10231
|
if (!l.product)
|
|
10234
10232
|
throw new U("Failed to load transaction, product not available.");
|
|
10235
|
-
this.currencyCode = (r = l.product.partner) == null ? void 0 : r.currencyCode, l.transactionOwnerId && (
|
|
10233
|
+
this.currencyCode = (r = l.product.partner) == null ? void 0 : r.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), eA(l.transactionOwnerId), x.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
10236
10234
|
product: l.product,
|
|
10237
10235
|
transaction: l,
|
|
10238
10236
|
layouts: [],
|
|
@@ -10247,7 +10245,7 @@ class un {
|
|
|
10247
10245
|
* @deprecated Remove when the initFrom functions are removed.
|
|
10248
10246
|
*/
|
|
10249
10247
|
async getWorkflowExperienceDeprecated(A, e, t) {
|
|
10250
|
-
var
|
|
10248
|
+
var n, s, i, o, c, r;
|
|
10251
10249
|
if (!this.initialized || !this.experienceOptions)
|
|
10252
10250
|
throw new U("Cannot launch experience: Not initialized.");
|
|
10253
10251
|
const a = async (B) => {
|
|
@@ -10275,7 +10273,7 @@ class un {
|
|
|
10275
10273
|
const d = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10276
10274
|
this.experienceOptions.layouts = Object.values(d.layouts).map((E) => E.layout), await AA(d), await a(d), this.experienceOptions.reloadedState = d;
|
|
10277
10275
|
}
|
|
10278
|
-
this.experienceOptions.previewService = t && t(B), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (
|
|
10276
|
+
this.experienceOptions.previewService = t && t(B), this.experienceOptions.renderableContextService = new QA(this.experienceOptions.layouts), (n = this.experienceOptions.product) != null && n.modelUrl && ((s = this.experienceOptions.previewService) == null || s.initialize({
|
|
10279
10277
|
model: this.experienceOptions.product.modelUrl,
|
|
10280
10278
|
contextService: this.experienceOptions.renderableContextService
|
|
10281
10279
|
}), this.experienceOptions.modelContainer = (i = this.experienceOptions.previewService) == null ? void 0 : i.getAllModels()[0]);
|
|
@@ -10338,7 +10336,7 @@ class un {
|
|
|
10338
10336
|
e.set(A.partner.id, A.id), x.setMap("partnerCustomerIds", e);
|
|
10339
10337
|
}
|
|
10340
10338
|
}
|
|
10341
|
-
class
|
|
10339
|
+
class Ps {
|
|
10342
10340
|
getInitializationPromise() {
|
|
10343
10341
|
return Promise.resolve();
|
|
10344
10342
|
}
|
|
@@ -10484,8 +10482,8 @@ class Pn {
|
|
|
10484
10482
|
ejectFromPreviewService() {
|
|
10485
10483
|
}
|
|
10486
10484
|
}
|
|
10487
|
-
var
|
|
10488
|
-
class
|
|
10485
|
+
var ms = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(ms || {});
|
|
10486
|
+
class ps extends j {
|
|
10489
10487
|
constructor(A, e) {
|
|
10490
10488
|
var t;
|
|
10491
10489
|
super(A, e), this.frameService = (t = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : t.frameService;
|
|
@@ -10533,69 +10531,69 @@ class pn extends j {
|
|
|
10533
10531
|
}
|
|
10534
10532
|
export {
|
|
10535
10533
|
_ as AssetNotFoundError,
|
|
10536
|
-
|
|
10537
|
-
|
|
10538
|
-
|
|
10539
|
-
|
|
10534
|
+
vs as AssetType,
|
|
10535
|
+
ks as BringForwardCommand,
|
|
10536
|
+
Js as BringToBackCommand,
|
|
10537
|
+
bs as BringToFrontCommand,
|
|
10540
10538
|
ia as BulkPriceCalculationStrategy,
|
|
10541
10539
|
qa as BulkStepHandle,
|
|
10542
|
-
|
|
10543
|
-
|
|
10544
|
-
|
|
10540
|
+
Ts as CanvasCommand,
|
|
10541
|
+
As as CollectionProduct,
|
|
10542
|
+
Ls as CommandContext,
|
|
10545
10543
|
ra as ConversionDataType,
|
|
10546
10544
|
oa as ConversionLocation,
|
|
10547
|
-
|
|
10548
|
-
|
|
10549
|
-
|
|
10550
|
-
|
|
10551
|
-
|
|
10552
|
-
|
|
10553
|
-
|
|
10545
|
+
Os as CreateElementCommand,
|
|
10546
|
+
zs as CreateLayoutCommand,
|
|
10547
|
+
Ks as DeleteElementCommand,
|
|
10548
|
+
js as FontAlignmentCommand,
|
|
10549
|
+
Vs as FontColorCommand,
|
|
10550
|
+
Ws as FontSizeCommand,
|
|
10551
|
+
Xs as FontSourceCommand,
|
|
10554
10552
|
ua as FrameService,
|
|
10555
|
-
|
|
10556
|
-
|
|
10553
|
+
ms as FrameStep,
|
|
10554
|
+
ps as FrameStepHandle,
|
|
10557
10555
|
oe as GlobalPropertyHandle,
|
|
10558
|
-
|
|
10556
|
+
qs as GroupCommand,
|
|
10559
10557
|
Za as IllustrationStepHandle,
|
|
10560
10558
|
HA as InformationMessageType,
|
|
10561
|
-
|
|
10562
|
-
|
|
10563
|
-
$
|
|
10559
|
+
nn as InformationStepHandle,
|
|
10560
|
+
Zs as LayoutElementFactory,
|
|
10561
|
+
$s as LayoutElementType,
|
|
10564
10562
|
L as LayoutNotFoundError,
|
|
10565
10563
|
$a as MaterialStepHandle,
|
|
10566
10564
|
YA as MisconfigurationError,
|
|
10567
|
-
|
|
10565
|
+
Ps as MockWorkflowManager,
|
|
10568
10566
|
_a as ModelStepHandle,
|
|
10569
|
-
|
|
10567
|
+
_s as MoveCommand,
|
|
10570
10568
|
wt as ObjectInput,
|
|
10571
|
-
|
|
10569
|
+
as as ObjectInputType,
|
|
10572
10570
|
yA as OptionNotFoundError,
|
|
10573
10571
|
oA as ParseError,
|
|
10574
|
-
|
|
10575
|
-
|
|
10576
|
-
|
|
10572
|
+
An as PictureStepHandle,
|
|
10573
|
+
sa as ProductCameraRig,
|
|
10574
|
+
_n as ProductCollection,
|
|
10577
10575
|
We as PromiseQueue,
|
|
10578
|
-
|
|
10576
|
+
en as QuestionStepHandle,
|
|
10579
10577
|
Ve as QueueablePromise,
|
|
10580
10578
|
Ai as ResizeCommand,
|
|
10581
10579
|
lA as ResourceNotFoundError,
|
|
10582
10580
|
ei as RotateCommand,
|
|
10583
10581
|
ti as SendBackwardsCommand,
|
|
10584
|
-
|
|
10585
|
-
|
|
10582
|
+
tn as ShapeStepHandle,
|
|
10583
|
+
us as SpiffCommerceClient,
|
|
10586
10584
|
xA as StakeholderType,
|
|
10587
10585
|
ai as StepAspectType,
|
|
10588
10586
|
j as StepHandle,
|
|
10589
|
-
|
|
10590
|
-
|
|
10591
|
-
|
|
10592
|
-
|
|
10587
|
+
ni as StepType,
|
|
10588
|
+
si as TextChangeCommand,
|
|
10589
|
+
Hs as TextInput,
|
|
10590
|
+
an as TextStepHandle,
|
|
10593
10591
|
J as UnhandledBehaviorError,
|
|
10594
10592
|
ii as UnitOfMeasurement,
|
|
10595
10593
|
X as Variant,
|
|
10596
10594
|
CA as WorkflowExperienceImpl,
|
|
10597
10595
|
T as assetService,
|
|
10598
|
-
|
|
10596
|
+
Bn as createDesign,
|
|
10599
10597
|
oi as dataUrlFromExternalUrl,
|
|
10600
10598
|
zA as designService,
|
|
10601
10599
|
ri as determineCorrectFontSizeAndLines,
|
|
@@ -10605,9 +10603,9 @@ export {
|
|
|
10605
10603
|
qA as frameStepService,
|
|
10606
10604
|
je as gatherVaryingStepAspects,
|
|
10607
10605
|
li as generate,
|
|
10608
|
-
|
|
10606
|
+
Fn as generateCommands,
|
|
10609
10607
|
Bi as generateSVGWithUnknownColors,
|
|
10610
|
-
|
|
10608
|
+
xn as generateStateFromDesignInputSteps,
|
|
10611
10609
|
di as getAttributesFromArrayBuffer,
|
|
10612
10610
|
wi as getAxisAlignedBoundingBox,
|
|
10613
10611
|
Qa as getBoundedOffsets,
|
|
@@ -10633,7 +10631,7 @@ export {
|
|
|
10633
10631
|
cA as shapeStepService,
|
|
10634
10632
|
ma as shortenUrl,
|
|
10635
10633
|
SA as spiffCoreConfiguration,
|
|
10636
|
-
|
|
10634
|
+
Sn as stepAspectValuesToDesignInputSteps,
|
|
10637
10635
|
K as textStepService,
|
|
10638
10636
|
Ha as toast
|
|
10639
10637
|
};
|