@spiffcommerce/core 21.7.1 → 21.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +426 -406
- package/dist/index.umd.cjs +27 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createHttpLink as EA, InMemoryCache as hA, ApolloClient as CA, from as
|
|
2
|
-
import { fetch as $e, getAttributesFromArrayBuffer as yt, AssetType as Bt, StepType as
|
|
3
|
-
import { AspectType as
|
|
1
|
+
import { createHttpLink as EA, InMemoryCache as hA, ApolloClient as CA, from as uA, gql as D } from "@apollo/client/core";
|
|
2
|
+
import { fetch as $e, getAttributesFromArrayBuffer as yt, AssetType as Bt, StepType as F, getFrameData as _e, frameDataCache as QA, GroupCommand as G, UpdateFramePattern as Yt, UpdateFrameThresholdSettingsCommand as mA, calculateOffsets as et, LayoutElementType as v, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as St, svgObjectURL as De, fetchAsString as Z, DeleteElementCommand as $, generateDefaultRectangleFrameSvg as dt, GetSVGDimensions as IA, patternImageDataCache as wt, fetchAsArrayBuffer as pA, findElement as Fe, modifySVGWithElementProperties as fA, IllustrationColorCommand as Ke, IllustrationCacheCommand as DA, getFontMetrics as FA, getPatternImageData as je, FontAlignmentCommand as MA, FontColorCommand as yA, FontImageFillCommand as Je, applyTextTransformations as Ve, determineCorrectFontSizeAndLines as Ie, FontSourceCommand as Et, loadFont as tt, TextChangeCommand as YA, FontSizeCommand as SA, createElementNS as xA, createElement as de, _loadFontExternalDataURL as At, UpdateWorkflowStateCommand as ht, CommandContext as PA, createCanvas as Me, getSvgElement as xt, LayoutRenderingPurpose as Pt, renderPapyrusComponentAsString as Nt, loadImage as Ht, getDomParser as Rt, toBase64 as Ct, getVariant as NA, generateFrameSVG as HA, getDefaultVariant as He, domParser as Ut, sanitizeSvgTree as Gt, traverse as RA, xmlSerializer as vt, CreateLayoutCommand as UA, AspectType as pe, rehydrateSerializedLayout as ee } from "@spiffcommerce/papyrus";
|
|
3
|
+
import { AspectType as ji, AssetType as Vi, BringForwardCommand as Wi, BringToBackCommand as Xi, BringToFrontCommand as qi, CanvasCommand as Zi, CommandContext as $i, CreateElementCommand as _i, CreateLayoutCommand as es, DeleteElementCommand as ts, FontAlignmentCommand as As, FontColorCommand as ns, FontSizeCommand as as, FontSourceCommand as is, GroupCommand as ss, LayoutElementFactory as os, LayoutElementType as rs, MoveCommand as cs, ResizeCommand as gs, RotateCommand as ls, SendBackwardsCommand as Bs, StepAspectType as ds, StepType as ws, TextChangeCommand as Es, UnitOfMeasurement as hs, dataUrlFromExternalUrl as Cs, determineCorrectFontSizeAndLines as us, findElement as Qs, frameDataCache as ms, generate as Is, generateSVGWithUnknownColors as ps, getAttributesFromArrayBuffer as fs, getAxisAlignedBoundingBox as Ds, getFrameData as Fs, getSvgElement as Ms, loadFont as ys, patternImageDataCache as Ys, registerFetchImplementation as Ss, registerWindowImplementation as xs, rehydrateSerializedLayout as Ps, setCanvasModule as Ns } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as GA } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as vA } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as kt } from "pith";
|
|
@@ -10,7 +10,7 @@ import Re from "lodash.clonedeep";
|
|
|
10
10
|
import { toString as Lt } from "qrcode";
|
|
11
11
|
import { split as We } from "unicode-default-word-boundary";
|
|
12
12
|
import nt from "svg-path-bbox";
|
|
13
|
-
import
|
|
13
|
+
import ut from "lodash.chunk";
|
|
14
14
|
class Tt extends Error {
|
|
15
15
|
constructor(e) {
|
|
16
16
|
super(e), this.name = this.constructor.name;
|
|
@@ -91,7 +91,7 @@ class kA {
|
|
|
91
91
|
this.set(e, A);
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
class
|
|
94
|
+
class Qt {
|
|
95
95
|
constructor() {
|
|
96
96
|
this.storage = /* @__PURE__ */ new Map();
|
|
97
97
|
}
|
|
@@ -116,9 +116,9 @@ class ut {
|
|
|
116
116
|
}
|
|
117
117
|
const JA = () => {
|
|
118
118
|
try {
|
|
119
|
-
return localStorage ? new kA() : new
|
|
119
|
+
return localStorage ? new kA() : new Qt();
|
|
120
120
|
} catch {
|
|
121
|
-
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new
|
|
121
|
+
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Qt();
|
|
122
122
|
}
|
|
123
123
|
}, x = JA();
|
|
124
124
|
class bA {
|
|
@@ -181,20 +181,20 @@ class KA {
|
|
|
181
181
|
uri: `${q.getServerUrl()}/graphql`,
|
|
182
182
|
fetch: $e
|
|
183
183
|
}), t = GA(async (i, s) => {
|
|
184
|
-
const { headers: o } = s, r = o || {}, g = await zA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, h = s.customerToken ?? g.customerToken, E = s.applicationKey ?? g.applicationKey,
|
|
184
|
+
const { headers: o } = s, r = o || {}, g = await zA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, h = s.customerToken ?? g.customerToken, E = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
|
|
185
185
|
try {
|
|
186
186
|
if (window && window.__SENTRY__) {
|
|
187
187
|
const C = window.__SENTRY__.hub;
|
|
188
188
|
if (C) {
|
|
189
189
|
const f = C.traceHeaders();
|
|
190
|
-
Object.entries(f).forEach(([
|
|
191
|
-
r[
|
|
190
|
+
Object.entries(f).forEach(([Q, m]) => {
|
|
191
|
+
r[Q] = m;
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
} catch {
|
|
196
196
|
}
|
|
197
|
-
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), w && (r.transactionOwnerId = w), h && (r.customerToken = h), E && (r["X-Application-Key"] = E),
|
|
197
|
+
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), w && (r.transactionOwnerId = w), h && (r.customerToken = h), E && (r["X-Application-Key"] = E), u && (r.bundleOwnerId = u), {
|
|
198
198
|
headers: r
|
|
199
199
|
};
|
|
200
200
|
}), A = vA(({ operation: i, graphQLErrors: s, networkError: o }) => {
|
|
@@ -246,20 +246,20 @@ class KA {
|
|
|
246
246
|
}
|
|
247
247
|
});
|
|
248
248
|
return new CA({
|
|
249
|
-
link:
|
|
249
|
+
link: uA([A, t, e]),
|
|
250
250
|
cache: a,
|
|
251
251
|
name: "Core"
|
|
252
252
|
});
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
const P = new KA(), jA =
|
|
255
|
+
const P = new KA(), jA = D`
|
|
256
256
|
fragment AssetMetadataFields on Asset {
|
|
257
257
|
metadata {
|
|
258
258
|
key
|
|
259
259
|
value
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
|
-
`, ve = (c) =>
|
|
262
|
+
`, ve = (c) => D`
|
|
263
263
|
${c && jA || ""}
|
|
264
264
|
fragment AssetFields on Asset {
|
|
265
265
|
name
|
|
@@ -274,14 +274,14 @@ const P = new KA(), jA = F`
|
|
|
274
274
|
}
|
|
275
275
|
${c && "...AssetMetadataFields" || ""}
|
|
276
276
|
}
|
|
277
|
-
`, VA =
|
|
277
|
+
`, VA = D`
|
|
278
278
|
${ve(!1)}
|
|
279
279
|
query GetAssets($keys: [String]!) {
|
|
280
280
|
assets(keys: $keys) {
|
|
281
281
|
...AssetFields
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
|
-
`, it =
|
|
284
|
+
`, it = D`
|
|
285
285
|
fragment MaterialFields on Material {
|
|
286
286
|
id
|
|
287
287
|
name
|
|
@@ -328,14 +328,14 @@ const P = new KA(), jA = F`
|
|
|
328
328
|
fileLink
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
|
-
`, WA =
|
|
331
|
+
`, WA = D`
|
|
332
332
|
${it}
|
|
333
333
|
query GetMaterials($ids: [String]) {
|
|
334
334
|
materials(id: $ids) {
|
|
335
335
|
...MaterialFields
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
-
`, XA =
|
|
338
|
+
`, XA = D`
|
|
339
339
|
mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
|
|
340
340
|
assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
|
|
341
341
|
uploadUrl
|
|
@@ -565,7 +565,7 @@ class _A {
|
|
|
565
565
|
this.disabled = e;
|
|
566
566
|
}
|
|
567
567
|
}
|
|
568
|
-
const le = new _A(), Kt =
|
|
568
|
+
const le = new _A(), Kt = D`
|
|
569
569
|
fragment OptionFields on Option {
|
|
570
570
|
id
|
|
571
571
|
name
|
|
@@ -605,7 +605,7 @@ const le = new _A(), Kt = F`
|
|
|
605
605
|
...AssetFields
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
|
-
`, en =
|
|
608
|
+
`, en = D`
|
|
609
609
|
${ve(!1)}
|
|
610
610
|
${it}
|
|
611
611
|
${Kt}
|
|
@@ -693,7 +693,7 @@ class an {
|
|
|
693
693
|
}
|
|
694
694
|
const j = new an();
|
|
695
695
|
var sn = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(sn || {}), on = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(on || {}), rn = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(rn || {}), cn = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(cn || {}), Se = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Se || {});
|
|
696
|
-
const ae =
|
|
696
|
+
const ae = D`
|
|
697
697
|
fragment AdditionalIntegrationProductFields on IntegrationProduct {
|
|
698
698
|
id
|
|
699
699
|
product {
|
|
@@ -710,7 +710,7 @@ const ae = F`
|
|
|
710
710
|
preloadImageUrl
|
|
711
711
|
}
|
|
712
712
|
}
|
|
713
|
-
`, It =
|
|
713
|
+
`, It = D`
|
|
714
714
|
${ae}
|
|
715
715
|
mutation CreateTransaction(
|
|
716
716
|
$integrationProductId: String
|
|
@@ -799,7 +799,7 @@ const ae = F`
|
|
|
799
799
|
}
|
|
800
800
|
}
|
|
801
801
|
}
|
|
802
|
-
`, gn =
|
|
802
|
+
`, gn = D`
|
|
803
803
|
${ae}
|
|
804
804
|
mutation CreateTransactions($inputs: [TransactionCreateInput]!) {
|
|
805
805
|
transactionCreateMany(inputs: $inputs) {
|
|
@@ -876,7 +876,7 @@ const ae = F`
|
|
|
876
876
|
}
|
|
877
877
|
}
|
|
878
878
|
}
|
|
879
|
-
`, ln =
|
|
879
|
+
`, ln = D`
|
|
880
880
|
${ae}
|
|
881
881
|
mutation ClaimTransaction($id: String!) {
|
|
882
882
|
transactionClaim(id: $id) {
|
|
@@ -953,7 +953,7 @@ const ae = F`
|
|
|
953
953
|
}
|
|
954
954
|
}
|
|
955
955
|
}
|
|
956
|
-
`, we =
|
|
956
|
+
`, we = D`
|
|
957
957
|
${ae}
|
|
958
958
|
query ReadTransactions($ids: [String]!) {
|
|
959
959
|
transactions(ids: $ids) {
|
|
@@ -1057,26 +1057,26 @@ const ae = F`
|
|
|
1057
1057
|
}
|
|
1058
1058
|
}
|
|
1059
1059
|
}
|
|
1060
|
-
`, Bn =
|
|
1060
|
+
`, Bn = D`
|
|
1061
1061
|
mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
|
|
1062
1062
|
transactionUpdate(id: $id, workflowState: $workflowState) {
|
|
1063
1063
|
id
|
|
1064
1064
|
}
|
|
1065
1065
|
}
|
|
1066
|
-
`, dn =
|
|
1066
|
+
`, dn = D`
|
|
1067
1067
|
mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
|
|
1068
1068
|
transactionUpdate(id: $id, workflowId: $workflowId) {
|
|
1069
1069
|
id
|
|
1070
1070
|
}
|
|
1071
1071
|
}
|
|
1072
|
-
`, wn =
|
|
1072
|
+
`, wn = D`
|
|
1073
1073
|
mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
|
|
1074
1074
|
transactionUpdate(id: $id, quantity: $quantity) {
|
|
1075
1075
|
id
|
|
1076
1076
|
}
|
|
1077
1077
|
}
|
|
1078
1078
|
`;
|
|
1079
|
-
|
|
1079
|
+
D`
|
|
1080
1080
|
query ReadTransactionForDesignCreation($id: String!) {
|
|
1081
1081
|
transactions(ids: [$id]) {
|
|
1082
1082
|
id
|
|
@@ -1122,14 +1122,14 @@ F`
|
|
|
1122
1122
|
}
|
|
1123
1123
|
}
|
|
1124
1124
|
`;
|
|
1125
|
-
const jt =
|
|
1125
|
+
const jt = D`
|
|
1126
1126
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1127
1127
|
transactions(ids: $ids) {
|
|
1128
1128
|
id
|
|
1129
1129
|
workflowState
|
|
1130
1130
|
}
|
|
1131
1131
|
}
|
|
1132
|
-
`, Vt =
|
|
1132
|
+
`, Vt = D`
|
|
1133
1133
|
${ae}
|
|
1134
1134
|
fragment IntegrationProductFields on IntegrationProduct {
|
|
1135
1135
|
id
|
|
@@ -1176,14 +1176,14 @@ const jt = F`
|
|
|
1176
1176
|
}
|
|
1177
1177
|
}
|
|
1178
1178
|
}
|
|
1179
|
-
`, En =
|
|
1179
|
+
`, En = D`
|
|
1180
1180
|
${Vt}
|
|
1181
1181
|
query GetIntegrationProducts($ids: [String!]!) {
|
|
1182
1182
|
integrationProducts(ids: $ids) {
|
|
1183
1183
|
...IntegrationProductFields
|
|
1184
1184
|
}
|
|
1185
1185
|
}
|
|
1186
|
-
`, hn =
|
|
1186
|
+
`, hn = D`
|
|
1187
1187
|
${Vt}
|
|
1188
1188
|
query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
|
|
1189
1189
|
integrationProductFromExternalIds(
|
|
@@ -1193,14 +1193,14 @@ const jt = F`
|
|
|
1193
1193
|
...IntegrationProductFields
|
|
1194
1194
|
}
|
|
1195
1195
|
}
|
|
1196
|
-
`, se = [
|
|
1196
|
+
`, se = [F.SilentIllustration, F.ProductOverlay], Cn = async (c) => {
|
|
1197
1197
|
const e = [];
|
|
1198
1198
|
c.introduction && e.push({
|
|
1199
1199
|
name: "Introduction",
|
|
1200
1200
|
title: c.name,
|
|
1201
1201
|
renderableSteps: [
|
|
1202
1202
|
{
|
|
1203
|
-
type:
|
|
1203
|
+
type: F.Introduction,
|
|
1204
1204
|
stepName: "Introduction",
|
|
1205
1205
|
stepTitle: c.name,
|
|
1206
1206
|
helpText: c.introduction,
|
|
@@ -1211,7 +1211,7 @@ const jt = F`
|
|
|
1211
1211
|
silentSteps: []
|
|
1212
1212
|
});
|
|
1213
1213
|
for (const A of c.steps) {
|
|
1214
|
-
const n =
|
|
1214
|
+
const n = un(A.stepName, c.stepGroups);
|
|
1215
1215
|
if (!n)
|
|
1216
1216
|
e.push({
|
|
1217
1217
|
name: A.stepName,
|
|
@@ -1235,7 +1235,7 @@ const jt = F`
|
|
|
1235
1235
|
title: t,
|
|
1236
1236
|
renderableSteps: [
|
|
1237
1237
|
{
|
|
1238
|
-
type:
|
|
1238
|
+
type: F.Finish,
|
|
1239
1239
|
stepName: "Finish",
|
|
1240
1240
|
stepTitle: t,
|
|
1241
1241
|
helpText: "",
|
|
@@ -1248,7 +1248,7 @@ const jt = F`
|
|
|
1248
1248
|
],
|
|
1249
1249
|
silentSteps: []
|
|
1250
1250
|
}), e;
|
|
1251
|
-
},
|
|
1251
|
+
}, un = (c, e) => e.find((t) => t.stepNames.includes(c)), ne = (c, e) => (c.conditions || []).every((t) => {
|
|
1252
1252
|
const A = e[t.targetStepName];
|
|
1253
1253
|
if (A && A.selectedVariants) {
|
|
1254
1254
|
const n = A.selectedVariants;
|
|
@@ -1257,7 +1257,7 @@ const jt = F`
|
|
|
1257
1257
|
);
|
|
1258
1258
|
}
|
|
1259
1259
|
return !1;
|
|
1260
|
-
}),
|
|
1260
|
+
}), Qn = (c, e) => {
|
|
1261
1261
|
const t = {
|
|
1262
1262
|
name: c.name,
|
|
1263
1263
|
title: c.title,
|
|
@@ -1265,13 +1265,13 @@ const jt = F`
|
|
|
1265
1265
|
silentSteps: c.silentSteps.filter((A) => ne(A, e))
|
|
1266
1266
|
};
|
|
1267
1267
|
return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
|
|
1268
|
-
}, Ae = (c, e) => c.map((t) =>
|
|
1268
|
+
}, Ae = (c, e) => c.map((t) => Qn(t, e)).filter((t) => t !== null), mn = async (c, e, t = !1) => {
|
|
1269
1269
|
var i;
|
|
1270
1270
|
const A = Ae(c, e), n = [];
|
|
1271
1271
|
for (const s of A)
|
|
1272
1272
|
for (const o of s.renderableSteps) {
|
|
1273
1273
|
const r = (((i = o.option) == null ? void 0 : i.variants) || []).length;
|
|
1274
|
-
o.silent || (o.type ===
|
|
1274
|
+
o.silent || (o.type === F.Model || o.type === F.Material || o.type === F.Picture || o.type === F.Shape ? (r > 1 || t) && n.push(o.stepName) : n.push(o.stepName));
|
|
1275
1275
|
}
|
|
1276
1276
|
const a = A.filter((s) => s.renderableSteps.filter(
|
|
1277
1277
|
(r) => n.includes(r.stepName)
|
|
@@ -1423,7 +1423,7 @@ class pn {
|
|
|
1423
1423
|
return;
|
|
1424
1424
|
}
|
|
1425
1425
|
e.forEach((t, A) => {
|
|
1426
|
-
const n =
|
|
1426
|
+
const n = QA.get(t);
|
|
1427
1427
|
n && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = n);
|
|
1428
1428
|
});
|
|
1429
1429
|
}
|
|
@@ -1564,14 +1564,14 @@ class pt {
|
|
|
1564
1564
|
if (!a)
|
|
1565
1565
|
throw new z(n);
|
|
1566
1566
|
let i = "";
|
|
1567
|
-
if (this.configuration.type ===
|
|
1567
|
+
if (this.configuration.type === F.ProductOverlay) {
|
|
1568
1568
|
let l = "";
|
|
1569
1569
|
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1570
1570
|
throw new Ye(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1571
1571
|
}
|
|
1572
1572
|
const s = this.evaluateAssetType();
|
|
1573
1573
|
if (s === v.Image) {
|
|
1574
|
-
const l = this.configuration.type ===
|
|
1574
|
+
const l = this.configuration.type === F.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
|
|
1575
1575
|
if (!l)
|
|
1576
1576
|
throw new Error("Undefined raster silent step source");
|
|
1577
1577
|
const d = {
|
|
@@ -1586,7 +1586,7 @@ class pt {
|
|
|
1586
1586
|
layer: n.layer,
|
|
1587
1587
|
layerIndex: n.layerIndex,
|
|
1588
1588
|
immutable: n.immutable,
|
|
1589
|
-
productOverlay: this.configuration.type ===
|
|
1589
|
+
productOverlay: this.configuration.type === F.ProductOverlay ? !0 : void 0,
|
|
1590
1590
|
rotation: n.rotation,
|
|
1591
1591
|
excludeFromExport: this.configuration.data.excludeFromPrint,
|
|
1592
1592
|
preserveAspectRatio: "none"
|
|
@@ -1599,9 +1599,9 @@ class pt {
|
|
|
1599
1599
|
command: new L(d, a)
|
|
1600
1600
|
};
|
|
1601
1601
|
} else {
|
|
1602
|
-
const l = this.configuration.type ===
|
|
1602
|
+
const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await St(await (async () => new Promise((E, u) => {
|
|
1603
1603
|
if (!l) {
|
|
1604
|
-
|
|
1604
|
+
u("Undefined vector silent step source");
|
|
1605
1605
|
return;
|
|
1606
1606
|
}
|
|
1607
1607
|
Z(l, !0).then((C) => {
|
|
@@ -1623,7 +1623,7 @@ class pt {
|
|
|
1623
1623
|
layerIndex: n.layerIndex,
|
|
1624
1624
|
rotation: n.rotation,
|
|
1625
1625
|
immutable: n.immutable,
|
|
1626
|
-
productOverlay: this.configuration.type ===
|
|
1626
|
+
productOverlay: this.configuration.type === F.ProductOverlay ? !0 : void 0,
|
|
1627
1627
|
excludeFromExport: this.configuration.data.excludeFromPrint
|
|
1628
1628
|
};
|
|
1629
1629
|
return {
|
|
@@ -1639,11 +1639,11 @@ class pt {
|
|
|
1639
1639
|
async trigger() {
|
|
1640
1640
|
if (!this.configuration.data.regions)
|
|
1641
1641
|
throw new Ye(this.configuration, "Missing regions.");
|
|
1642
|
-
if (this.configuration.type ===
|
|
1642
|
+
if (this.configuration.type === F.SilentIllustration) {
|
|
1643
1643
|
const e = this.configuration.data.regions.map(this.processRegion);
|
|
1644
1644
|
return Promise.all(e);
|
|
1645
1645
|
} else
|
|
1646
|
-
return this.configuration.type ===
|
|
1646
|
+
return this.configuration.type === F.ProductOverlay ? Promise.all(
|
|
1647
1647
|
this.configuration.data.regions.map((e) => {
|
|
1648
1648
|
if (!this.layouts.find((A) => e.panelId === A.panelId))
|
|
1649
1649
|
throw new z(e);
|
|
@@ -1653,7 +1653,7 @@ class pt {
|
|
|
1653
1653
|
}
|
|
1654
1654
|
evaluateAssetType() {
|
|
1655
1655
|
var t, A, n;
|
|
1656
|
-
const e = this.configuration.type ===
|
|
1656
|
+
const e = this.configuration.type === F.ProductOverlay && ((t = this.product) != null && t.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (n = (A = this.configuration.data.asset) == null ? void 0 : A.fileLink) == null ? void 0 : n.toLowerCase().split("?")[0];
|
|
1657
1657
|
return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? v.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? v.Illustration : v.Illustration;
|
|
1658
1658
|
}
|
|
1659
1659
|
}
|
|
@@ -1715,19 +1715,19 @@ class Dn {
|
|
|
1715
1715
|
async regenerateQRCode(e, t, A, n, a, i, s, o, r) {
|
|
1716
1716
|
if (!t && A !== "" && n === "") {
|
|
1717
1717
|
const g = async () => {
|
|
1718
|
-
var
|
|
1719
|
-
const C = (await zt([A]))[0], f = (m = (
|
|
1718
|
+
var Q, m;
|
|
1719
|
+
const C = (await zt([A]))[0], f = (m = (Q = C == null ? void 0 : C.versions) == null ? void 0 : Q.find((I) => I.name === "mpeg4")) == null ? void 0 : m.link;
|
|
1720
1720
|
return { asset: C, link: f };
|
|
1721
1721
|
}, B = await new Promise((C, f) => {
|
|
1722
1722
|
new qt(
|
|
1723
1723
|
async () => !!(await g()).link,
|
|
1724
1724
|
async () => {
|
|
1725
|
-
const
|
|
1726
|
-
if (!
|
|
1727
|
-
throw new ge(
|
|
1725
|
+
const Q = await g();
|
|
1726
|
+
if (!Q.link || !Q.link)
|
|
1727
|
+
throw new ge(Q.asset);
|
|
1728
1728
|
C({
|
|
1729
1729
|
rel: "mpeg4",
|
|
1730
|
-
href:
|
|
1730
|
+
href: Q.link
|
|
1731
1731
|
});
|
|
1732
1732
|
},
|
|
1733
1733
|
() => {
|
|
@@ -1746,8 +1746,8 @@ class Dn {
|
|
|
1746
1746
|
const h = await fn(w);
|
|
1747
1747
|
if (s(h), !i.data || !i.data.regions)
|
|
1748
1748
|
throw new Ye(i, "Missing regions.");
|
|
1749
|
-
const E = await this.regionElements(i),
|
|
1750
|
-
|
|
1749
|
+
const E = await this.regionElements(i), u = await this.command(h, E, a, i.stepName);
|
|
1750
|
+
u && (u.command && a.getCommandDispatcher()(u.command), u.followup && await u.followup()), await a.setSelectionsAndElements(i.stepName, [], E, async () => {
|
|
1751
1751
|
a.updateStorage(i.stepName, {
|
|
1752
1752
|
videoShortUrl: h,
|
|
1753
1753
|
videoUrl: n
|
|
@@ -1847,18 +1847,18 @@ class Mn {
|
|
|
1847
1847
|
frameOffsetsList: l,
|
|
1848
1848
|
framePatternSrc: B
|
|
1849
1849
|
}), B) {
|
|
1850
|
-
const
|
|
1851
|
-
if (!
|
|
1850
|
+
const u = (h = t.getStepSpecificServices(e.stepName)) == null ? void 0 : h.frameService;
|
|
1851
|
+
if (!u)
|
|
1852
1852
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1853
|
-
await this.loadPatternFromString(B,
|
|
1853
|
+
await this.loadPatternFromString(B, u), t.updateMetadata(e.stepName, { image: B }), t.updateStorage(e.stepName, {
|
|
1854
1854
|
framePatternSrc: B
|
|
1855
1855
|
});
|
|
1856
1856
|
}
|
|
1857
|
-
if (l != null && l.some((
|
|
1858
|
-
const
|
|
1859
|
-
if (!
|
|
1857
|
+
if (l != null && l.some((u) => u.zoom)) {
|
|
1858
|
+
const u = (E = t.getStepSpecificServices(e.stepName)) == null ? void 0 : E.frameService;
|
|
1859
|
+
if (!u)
|
|
1860
1860
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1861
|
-
|
|
1861
|
+
u.updateOffsets(l);
|
|
1862
1862
|
}
|
|
1863
1863
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
1864
1864
|
};
|
|
@@ -1970,7 +1970,7 @@ class Mn {
|
|
|
1970
1970
|
a && a(!0);
|
|
1971
1971
|
const r = await Promise.all(
|
|
1972
1972
|
e.data.regions.map(async (d, w) => {
|
|
1973
|
-
const h = await _e(o[w]), E = s.getImageData(),
|
|
1973
|
+
const h = await _e(o[w]), E = s.getImageData(), u = A.map((p) => new $(p.id)), C = E ? et(E, h) : void 0, f = E ? {
|
|
1974
1974
|
id: J(),
|
|
1975
1975
|
src: E.src,
|
|
1976
1976
|
x: (C == null ? void 0 : C.x) || 0,
|
|
@@ -1980,11 +1980,11 @@ class Mn {
|
|
|
1980
1980
|
scaleX: (C == null ? void 0 : C.zoom) || 1,
|
|
1981
1981
|
scaleY: (C == null ? void 0 : C.zoom) || 1,
|
|
1982
1982
|
rotation: 0
|
|
1983
|
-
} : void 0,
|
|
1983
|
+
} : void 0, Q = J(), I = n.getLayouts().find((p) => p.panelId === d.panelId);
|
|
1984
1984
|
if (!I)
|
|
1985
1985
|
throw new z(d);
|
|
1986
1986
|
return {
|
|
1987
|
-
command: this.getCreateElementCommand(
|
|
1987
|
+
command: this.getCreateElementCommand(Q, d, I, {
|
|
1988
1988
|
frameData: h,
|
|
1989
1989
|
pattern: f,
|
|
1990
1990
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
@@ -1994,10 +1994,10 @@ class Mn {
|
|
|
1994
1994
|
stepName: e.stepName
|
|
1995
1995
|
}),
|
|
1996
1996
|
regionEl: {
|
|
1997
|
-
id:
|
|
1997
|
+
id: Q,
|
|
1998
1998
|
region: d
|
|
1999
1999
|
},
|
|
2000
|
-
removeExistingCommands:
|
|
2000
|
+
removeExistingCommands: u
|
|
2001
2001
|
};
|
|
2002
2002
|
})
|
|
2003
2003
|
), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
@@ -2165,8 +2165,8 @@ class yn {
|
|
|
2165
2165
|
n().map((h) => h.layoutState)
|
|
2166
2166
|
), s = { ...i.colors }, o = {};
|
|
2167
2167
|
Object.entries(s).forEach(([h, E]) => {
|
|
2168
|
-
const
|
|
2169
|
-
C && (
|
|
2168
|
+
const u = { browserValue: E.browserValue }, C = E.spotColor;
|
|
2169
|
+
C && (u.spotColor = { profileName: C.profileName, namedColor: C.namedColor }), o[h] = u;
|
|
2170
2170
|
});
|
|
2171
2171
|
for (const [h, E] of a.entries())
|
|
2172
2172
|
s[h] = { browserValue: E, spotColor: (d = s[h]) == null ? void 0 : d.spotColor }, o[h] = { browserValue: E };
|
|
@@ -2174,8 +2174,8 @@ class yn {
|
|
|
2174
2174
|
const g = e.data.colorOption;
|
|
2175
2175
|
g && ((w = g.variants) == null || w.forEach((h) => {
|
|
2176
2176
|
r = r.map((E) => {
|
|
2177
|
-
var
|
|
2178
|
-
return E.toLowerCase() === ((
|
|
2177
|
+
var u;
|
|
2178
|
+
return E.toLowerCase() === ((u = h.color) == null ? void 0 : u.toLowerCase()) ? h.name : E;
|
|
2179
2179
|
});
|
|
2180
2180
|
})), A.updateMetadata(e.stepName, { colors: r });
|
|
2181
2181
|
const B = /* @__PURE__ */ new Map();
|
|
@@ -2199,7 +2199,7 @@ class yn {
|
|
|
2199
2199
|
i && (i.command && a.getCommandDispatcher()(i.command), i.followup && await i.followup());
|
|
2200
2200
|
}
|
|
2201
2201
|
async selectVariantCommand(e, t, A, n, a) {
|
|
2202
|
-
var
|
|
2202
|
+
var u;
|
|
2203
2203
|
if (!e.data || !e.data.regions)
|
|
2204
2204
|
throw new Ye(e, "Missing regions.");
|
|
2205
2205
|
n(!0);
|
|
@@ -2215,10 +2215,10 @@ class yn {
|
|
|
2215
2215
|
const f = a.getLayouts().find((m) => m.panelId === C.panelId);
|
|
2216
2216
|
if (!f)
|
|
2217
2217
|
throw new z(C);
|
|
2218
|
-
const
|
|
2218
|
+
const Q = J();
|
|
2219
2219
|
return {
|
|
2220
|
-
regionElement: { id:
|
|
2221
|
-
command: this.getCreateElementCommand(
|
|
2220
|
+
regionElement: { id: Q, region: C },
|
|
2221
|
+
command: this.getCreateElementCommand(Q, C, f, {
|
|
2222
2222
|
stepName: e.stepName,
|
|
2223
2223
|
src: o,
|
|
2224
2224
|
objectURL: g,
|
|
@@ -2228,10 +2228,10 @@ class yn {
|
|
|
2228
2228
|
}, l = e.data.regions.map(B), w = [...l.map((C) => C.command), ...i];
|
|
2229
2229
|
let h = Array.from(Object.values(r.colors)).map((C) => C.browserValue);
|
|
2230
2230
|
const E = e.data.colorOption;
|
|
2231
|
-
return E && ((
|
|
2231
|
+
return E && ((u = E.variants) == null || u.forEach((C) => {
|
|
2232
2232
|
h = h.map((f) => {
|
|
2233
|
-
var
|
|
2234
|
-
return f.toLowerCase() === ((
|
|
2233
|
+
var Q;
|
|
2234
|
+
return f.toLowerCase() === ((Q = C.color) == null ? void 0 : Q.toLowerCase()) ? C.name : f;
|
|
2235
2235
|
});
|
|
2236
2236
|
})), a.updateMetadata(e.stepName, { colors: h }), {
|
|
2237
2237
|
command: new G(w),
|
|
@@ -2239,20 +2239,20 @@ class yn {
|
|
|
2239
2239
|
await a.setSelectionsAndElements(
|
|
2240
2240
|
e.stepName,
|
|
2241
2241
|
[t],
|
|
2242
|
-
l.map((
|
|
2242
|
+
l.map((Q) => Q.regionElement),
|
|
2243
2243
|
async () => {
|
|
2244
2244
|
a.setMandatoryFulfilled(e.stepName, !0), n(!1);
|
|
2245
2245
|
}
|
|
2246
2246
|
);
|
|
2247
2247
|
const C = await this.availableColors(e, a) || [], f = Object.keys(r.colors);
|
|
2248
2248
|
if (e.data.colorPickerEnabled && C.length === 1 && f.length === 1) {
|
|
2249
|
-
const
|
|
2249
|
+
const Q = C[0], m = f[0];
|
|
2250
2250
|
await this.changeColors(
|
|
2251
2251
|
e,
|
|
2252
2252
|
l.map((I) => I.regionElement),
|
|
2253
2253
|
a,
|
|
2254
2254
|
() => a.getCommandContext().getAllLayouts(),
|
|
2255
|
-
/* @__PURE__ */ new Map([[m,
|
|
2255
|
+
/* @__PURE__ */ new Map([[m, Q.variant.color]])
|
|
2256
2256
|
);
|
|
2257
2257
|
}
|
|
2258
2258
|
}
|
|
@@ -2458,8 +2458,8 @@ class xn {
|
|
|
2458
2458
|
const w = d || J(), E = A.getLayouts().find((C) => C.panelId === l.panelId);
|
|
2459
2459
|
if (!E)
|
|
2460
2460
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2461
|
-
const
|
|
2462
|
-
return d &&
|
|
2461
|
+
const u = [];
|
|
2462
|
+
return d && u.push(new $(w)), u.push(
|
|
2463
2463
|
new L(
|
|
2464
2464
|
{
|
|
2465
2465
|
stepRegion: l,
|
|
@@ -2482,7 +2482,7 @@ class xn {
|
|
|
2482
2482
|
), {
|
|
2483
2483
|
id: w,
|
|
2484
2484
|
region: l,
|
|
2485
|
-
command: new G(
|
|
2485
|
+
command: new G(u)
|
|
2486
2486
|
};
|
|
2487
2487
|
};
|
|
2488
2488
|
if (i.length > 0) {
|
|
@@ -2812,8 +2812,8 @@ class Rn {
|
|
|
2812
2812
|
fill="${h}"
|
|
2813
2813
|
/>
|
|
2814
2814
|
</svg>
|
|
2815
|
-
`,
|
|
2816
|
-
|
|
2815
|
+
`, u = {};
|
|
2816
|
+
u[this.shapeFillId] = { browserValue: h };
|
|
2817
2817
|
const C = J();
|
|
2818
2818
|
return {
|
|
2819
2819
|
id: C,
|
|
@@ -2822,7 +2822,7 @@ class Rn {
|
|
|
2822
2822
|
{
|
|
2823
2823
|
stepRegion: d,
|
|
2824
2824
|
stepName: e.stepName,
|
|
2825
|
-
colors:
|
|
2825
|
+
colors: u,
|
|
2826
2826
|
id: C,
|
|
2827
2827
|
svg: E,
|
|
2828
2828
|
type: v.Illustration,
|
|
@@ -3127,19 +3127,19 @@ class kn {
|
|
|
3127
3127
|
if (o && l) {
|
|
3128
3128
|
const d = (r = o.variants) == null ? void 0 : r.find((w) => w.id === l);
|
|
3129
3129
|
if (d) {
|
|
3130
|
-
const w = await this.fontDataFromVariant(d), h = s.map((f) => ({ id: f.id, region: f.stepRegion })), E = (g = n.storage) == null ? void 0 : g.color,
|
|
3130
|
+
const w = await this.fontDataFromVariant(d), h = s.map((f) => ({ id: f.id, region: f.stepRegion })), E = (g = n.storage) == null ? void 0 : g.color, u = (B = n.storage) == null ? void 0 : B.text;
|
|
3131
3131
|
await t.setSelectionsAndElements(
|
|
3132
3132
|
e.stepName,
|
|
3133
3133
|
[d],
|
|
3134
3134
|
h,
|
|
3135
3135
|
async () => {
|
|
3136
|
-
t.updateMetadata(e.stepName, { color: E, text:
|
|
3137
|
-
const f = s.map((m) => new Et(m.id, w)),
|
|
3138
|
-
t.getCommandDispatcher()(
|
|
3136
|
+
t.updateMetadata(e.stepName, { color: E, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
|
|
3137
|
+
const f = s.map((m) => new Et(m.id, w)), Q = new G(f);
|
|
3138
|
+
t.getCommandDispatcher()(Q), t.setMandatoryFulfilled(e.stepName, !0);
|
|
3139
3139
|
}
|
|
3140
3140
|
);
|
|
3141
3141
|
const { command: C } = K.updateInputText(
|
|
3142
|
-
|
|
3142
|
+
u || "",
|
|
3143
3143
|
s,
|
|
3144
3144
|
e,
|
|
3145
3145
|
t
|
|
@@ -3226,7 +3226,7 @@ class kn {
|
|
|
3226
3226
|
), w = l.flatMap((E) => E.commands);
|
|
3227
3227
|
if (o) {
|
|
3228
3228
|
const E = l.map(
|
|
3229
|
-
(
|
|
3229
|
+
(u) => new Je(u.regionElement.id, o)
|
|
3230
3230
|
);
|
|
3231
3231
|
w.push(...E);
|
|
3232
3232
|
}
|
|
@@ -3256,17 +3256,17 @@ class kn {
|
|
|
3256
3256
|
if (!d)
|
|
3257
3257
|
throw new Pe("Failed to find layout for region: " + B.panelId);
|
|
3258
3258
|
const E = A.colorOption;
|
|
3259
|
-
let
|
|
3259
|
+
let u;
|
|
3260
3260
|
if (E && E.variants) {
|
|
3261
3261
|
const N = E.variants.find((H) => {
|
|
3262
3262
|
var O;
|
|
3263
3263
|
return H.id === ((O = E.defaultVariant) == null ? void 0 : O.id);
|
|
3264
3264
|
}) || E.variants[0];
|
|
3265
|
-
|
|
3265
|
+
u = this.createTextFillSpotColor(E, N), i.updateStorage(e, {
|
|
3266
3266
|
colorProfileAssetKey: (h = E.colorProfile) == null ? void 0 : h.key
|
|
3267
3267
|
});
|
|
3268
3268
|
}
|
|
3269
|
-
const C = await this.getDefaultColor(A), f = C || "#000000",
|
|
3269
|
+
const C = await this.getDefaultColor(A), f = C || "#000000", Q = {
|
|
3270
3270
|
stepRegion: B,
|
|
3271
3271
|
stepName: e,
|
|
3272
3272
|
align: this.textAlign(A),
|
|
@@ -3289,35 +3289,35 @@ class kn {
|
|
|
3289
3289
|
verticalAlign: A.verticalAlign || "middle",
|
|
3290
3290
|
curved: A.curved,
|
|
3291
3291
|
paths: A.paths,
|
|
3292
|
-
fillSpotColorDefinition:
|
|
3292
|
+
fillSpotColorDefinition: u
|
|
3293
3293
|
}, m = [], I = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
|
|
3294
|
-
if (!
|
|
3294
|
+
if (!Q.fontData)
|
|
3295
3295
|
throw new k("Failed to resolve font data for text.");
|
|
3296
3296
|
const [M, y] = Ie(
|
|
3297
|
-
|
|
3298
|
-
|
|
3297
|
+
Q.fontSize,
|
|
3298
|
+
Q.fontData,
|
|
3299
3299
|
{
|
|
3300
|
-
left:
|
|
3301
|
-
top:
|
|
3302
|
-
width:
|
|
3303
|
-
height:
|
|
3304
|
-
rotation:
|
|
3300
|
+
left: Q.x,
|
|
3301
|
+
top: Q.y,
|
|
3302
|
+
width: Q.width,
|
|
3303
|
+
height: Q.height,
|
|
3304
|
+
rotation: Q.rotation,
|
|
3305
3305
|
panelId: ""
|
|
3306
3306
|
},
|
|
3307
3307
|
[o],
|
|
3308
3308
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
3309
3309
|
);
|
|
3310
|
-
I.set(
|
|
3310
|
+
I.set(Q.id, M), p.set(Q.id, y);
|
|
3311
3311
|
const S = A.curved || A.vertical ? o : (y || []).join(`
|
|
3312
3312
|
`);
|
|
3313
3313
|
m.push(
|
|
3314
|
-
this.generateTextChangeCommandsForRegion(M, A,
|
|
3314
|
+
this.generateTextChangeCommandsForRegion(M, A, Q.id, S)
|
|
3315
3315
|
);
|
|
3316
|
-
const Y = new L(
|
|
3316
|
+
const Y = new L(Q, d);
|
|
3317
3317
|
return {
|
|
3318
3318
|
regionElement: { id: w, region: B },
|
|
3319
3319
|
commands: [Y, ...m],
|
|
3320
|
-
newElement:
|
|
3320
|
+
newElement: Q,
|
|
3321
3321
|
fontData: n
|
|
3322
3322
|
};
|
|
3323
3323
|
} catch (E) {
|
|
@@ -3352,48 +3352,48 @@ class kn {
|
|
|
3352
3352
|
*/
|
|
3353
3353
|
async changeInputTextWithRegion(e, t, A, n, a, i, s, o, r, g) {
|
|
3354
3354
|
const B = (n || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), w = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
|
|
3355
|
-
for (const
|
|
3356
|
-
if (
|
|
3355
|
+
for (const Q of d)
|
|
3356
|
+
if (Q.region) {
|
|
3357
3357
|
const [m, I] = Ie(
|
|
3358
3358
|
t,
|
|
3359
3359
|
A,
|
|
3360
|
-
|
|
3360
|
+
Q.region,
|
|
3361
3361
|
[l],
|
|
3362
3362
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
3363
3363
|
);
|
|
3364
|
-
w.set(
|
|
3364
|
+
w.set(Q.id, m), h.set(Q.id, I);
|
|
3365
3365
|
}
|
|
3366
|
-
const
|
|
3366
|
+
const u = (() => {
|
|
3367
3367
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
3368
3368
|
return g && g(!0), { info: "0" };
|
|
3369
|
-
const
|
|
3369
|
+
const Q = i.getProfanities(), m = We(l.toLowerCase());
|
|
3370
3370
|
for (const I of m)
|
|
3371
|
-
for (const p in
|
|
3372
|
-
const M =
|
|
3371
|
+
for (const p in Q) {
|
|
3372
|
+
const M = Q[p].toLowerCase().replace(/\s/g, "");
|
|
3373
3373
|
if (I === M)
|
|
3374
3374
|
return o(!0), { error: "Blocked profanity." };
|
|
3375
3375
|
}
|
|
3376
3376
|
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
3377
3377
|
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(h.values()).every((p) => p) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
3378
3378
|
})();
|
|
3379
|
-
if (
|
|
3380
|
-
r(
|
|
3379
|
+
if (u.error) {
|
|
3380
|
+
r(u.error);
|
|
3381
3381
|
return;
|
|
3382
3382
|
}
|
|
3383
|
-
if (r(`${
|
|
3383
|
+
if (r(`${u.info} characters remaining` || ""), g)
|
|
3384
3384
|
return;
|
|
3385
3385
|
i.updateStorage(e.stepName, { text: B }), i.updateMetadata(e.stepName, {
|
|
3386
3386
|
text: this.injectReplaceableText(B, e.data)
|
|
3387
3387
|
}), a.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
|
|
3388
3388
|
const C = [];
|
|
3389
|
-
for (const
|
|
3390
|
-
const m = e.data.curved ? l : (h.get(
|
|
3389
|
+
for (const Q of d) {
|
|
3390
|
+
const m = e.data.curved ? l : (h.get(Q.id) || []).join(`
|
|
3391
3391
|
`);
|
|
3392
3392
|
C.push(
|
|
3393
3393
|
this.generateTextChangeCommandsForRegion(
|
|
3394
|
-
w.get(
|
|
3394
|
+
w.get(Q.id) || 1,
|
|
3395
3395
|
e.data,
|
|
3396
|
-
|
|
3396
|
+
Q.id,
|
|
3397
3397
|
m
|
|
3398
3398
|
)
|
|
3399
3399
|
);
|
|
@@ -4859,14 +4859,14 @@ class Kn extends st {
|
|
|
4859
4859
|
o.appendChild(B), AA(o, B, t);
|
|
4860
4860
|
const l = r * 0.23, d = g * 0.94, w = g * 0.04, h = r * 0.53, E = R("g");
|
|
4861
4861
|
o.appendChild(E), E.setAttribute("transform", `translate(${w} ${h}) rotate(-21)`);
|
|
4862
|
-
const
|
|
4863
|
-
|
|
4862
|
+
const u = ot(l, d);
|
|
4863
|
+
u.setAttribute("opacity", "0"), E.appendChild(u);
|
|
4864
4864
|
const C = R("g");
|
|
4865
4865
|
E.appendChild(C);
|
|
4866
4866
|
const f = s();
|
|
4867
4867
|
C.appendChild(f);
|
|
4868
|
-
const
|
|
4869
|
-
return rt(C,
|
|
4868
|
+
const Q = nt(i);
|
|
4869
|
+
return rt(C, Q, l, d), aA(o.outerHTML);
|
|
4870
4870
|
}
|
|
4871
4871
|
}
|
|
4872
4872
|
const jn = "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==";
|
|
@@ -4902,18 +4902,18 @@ class Vn extends st {
|
|
|
4902
4902
|
return "";
|
|
4903
4903
|
const d = R("defs");
|
|
4904
4904
|
g.appendChild(d), AA(g, d, t);
|
|
4905
|
-
let w, h, E,
|
|
4906
|
-
A ? (w = B * 0.25 * (1 + 0.1), h = l / 2 * (1 + 0.1), E = l * 0.22,
|
|
4905
|
+
let w, h, E, u;
|
|
4906
|
+
A ? (w = B * 0.25 * (1 + 0.1), h = l / 2 * (1 + 0.1), E = l * 0.22, u = B * 0.32) : (w = B * 0.22 * (1 + 0.1), h = l * 0.8, E = l * 0.067, u = B * 0.33);
|
|
4907
4907
|
const C = R("g");
|
|
4908
|
-
g.appendChild(C), C.setAttribute("transform", `translate(${E} ${
|
|
4908
|
+
g.appendChild(C), C.setAttribute("transform", `translate(${E} ${u}) rotate(-10)`);
|
|
4909
4909
|
const f = ot(w, h);
|
|
4910
4910
|
f.setAttribute("opacity", "0"), C.appendChild(f);
|
|
4911
|
-
const
|
|
4912
|
-
C.appendChild(
|
|
4911
|
+
const Q = R("g");
|
|
4912
|
+
C.appendChild(Q);
|
|
4913
4913
|
const m = r();
|
|
4914
|
-
|
|
4914
|
+
Q.appendChild(m);
|
|
4915
4915
|
const I = nt(o);
|
|
4916
|
-
return rt(
|
|
4916
|
+
return rt(Q, I, w, h), g.outerHTML;
|
|
4917
4917
|
}
|
|
4918
4918
|
// 1 if true, 0 if false.
|
|
4919
4919
|
}
|
|
@@ -4932,10 +4932,10 @@ class Xn extends st {
|
|
|
4932
4932
|
const A = At(Wn), a = e !== "" ? ((f) => f.charAt(0).toUpperCase() + f.substr(1).toLowerCase())(e) : "", i = A.getPath(a, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, g = i.toPathData(3), B = () => {
|
|
4933
4933
|
const f = R("g");
|
|
4934
4934
|
f.classList.add("module-text-group");
|
|
4935
|
-
const
|
|
4936
|
-
f.appendChild(
|
|
4935
|
+
const Q = R("defs");
|
|
4936
|
+
f.appendChild(Q), Q.appendChild(nA(0, 2, 2, "shadow"));
|
|
4937
4937
|
const m = R("path");
|
|
4938
|
-
m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"),
|
|
4938
|
+
m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), Q.appendChild(m);
|
|
4939
4939
|
const I = R("g");
|
|
4940
4940
|
I.classList.add("module-layer0"), f.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = m.outerHTML;
|
|
4941
4941
|
const p = R("g");
|
|
@@ -4954,8 +4954,8 @@ class Xn extends st {
|
|
|
4954
4954
|
h.setAttribute("opacity", "0"), w.appendChild(h);
|
|
4955
4955
|
const E = R("g");
|
|
4956
4956
|
E.classList.add("module-text-enclosure"), l.appendChild(E);
|
|
4957
|
-
const
|
|
4958
|
-
E.appendChild(
|
|
4957
|
+
const u = B();
|
|
4958
|
+
E.appendChild(u);
|
|
4959
4959
|
const C = nt(g);
|
|
4960
4960
|
return rt(E, C, t.height, t.width, 0.35, 0.65), aA(l.outerHTML);
|
|
4961
4961
|
}
|
|
@@ -4991,9 +4991,9 @@ class Zn {
|
|
|
4991
4991
|
var C;
|
|
4992
4992
|
if (!this.previewService)
|
|
4993
4993
|
return;
|
|
4994
|
-
const E = this.getCommandContext().getAllLayouts(),
|
|
4995
|
-
if (
|
|
4996
|
-
for (const [, f] of
|
|
4994
|
+
const E = this.getCommandContext().getAllLayouts(), u = (C = this.getLayoutPreviewService()) == null ? void 0 : C.getAll();
|
|
4995
|
+
if (u)
|
|
4996
|
+
for (const [, f] of u)
|
|
4997
4997
|
f.render(this.getWorkflow(), E, this.getProduct().overlayImageUrl);
|
|
4998
4998
|
}, this.updateTransaction = a, this.commandContext = n, this.reloadedState = g, this.transaction = i, this.readOnly = B, this.singleVariantsRenderable = w, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = e, this.stepSpecificServices = {}, this.profanityFilter = t, this.pollers = [], this.allScenes = [], this.layouts = A, this.product = s, 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.currentAdjustingStepId = "", this.renderableContextService = r, this.isReloadedTransaction = d, h && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(e), this.initializationPromise.then(() => {
|
|
4999
4999
|
this.initialized = !0;
|
|
@@ -5189,7 +5189,7 @@ class Zn {
|
|
|
5189
5189
|
},
|
|
5190
5190
|
{ refocusCamera: t }
|
|
5191
5191
|
);
|
|
5192
|
-
this.setModelContainer(A), Ae(this.allScenes, this.stepSelections).filter((i) => i).map((i) => i.renderableSteps).flat().filter((i) => i.type ===
|
|
5192
|
+
this.setModelContainer(A), Ae(this.allScenes, this.stepSelections).filter((i) => i).map((i) => i.renderableSteps).flat().filter((i) => i.type === F.Model || i.type === F.Material).forEach((i) => {
|
|
5193
5193
|
var r, g, B;
|
|
5194
5194
|
if (!((r = i.option) != null && r.id)) {
|
|
5195
5195
|
console.error(`Failed to read option id from step: ${i.stepName}`);
|
|
@@ -5199,7 +5199,7 @@ class Zn {
|
|
|
5199
5199
|
if (s.length === 0)
|
|
5200
5200
|
return;
|
|
5201
5201
|
const o = s[0];
|
|
5202
|
-
if (i.type ===
|
|
5202
|
+
if (i.type === F.Model) {
|
|
5203
5203
|
if (!this.modelContainer)
|
|
5204
5204
|
throw new k(
|
|
5205
5205
|
"We should always have a model container when injecting a preview!"
|
|
@@ -5333,17 +5333,17 @@ class Zn {
|
|
|
5333
5333
|
), e), []);
|
|
5334
5334
|
}
|
|
5335
5335
|
getInvalidModelVariants() {
|
|
5336
|
-
return this.workflow.steps.reduce((e, t) => (t.type ===
|
|
5336
|
+
return this.workflow.steps.reduce((e, t) => (t.type === F.Model && !ne(t, this.stepSelections) && e.push(t.stepName), e), []);
|
|
5337
5337
|
}
|
|
5338
5338
|
async stepElementsForIntroducedSilentSteps(e, t) {
|
|
5339
5339
|
const A = this.product;
|
|
5340
5340
|
if (!A)
|
|
5341
5341
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
5342
5342
|
const n = async (r, g, B) => {
|
|
5343
|
-
if (r.type ===
|
|
5343
|
+
if (r.type === F.SilentIllustration) {
|
|
5344
5344
|
const l = await new pt(r, g).trigger();
|
|
5345
5345
|
return { step: r, results: l };
|
|
5346
|
-
} else if (r.type ===
|
|
5346
|
+
} else if (r.type === F.ProductOverlay) {
|
|
5347
5347
|
const l = await new pt(
|
|
5348
5348
|
r,
|
|
5349
5349
|
g,
|
|
@@ -5409,16 +5409,16 @@ class Zn {
|
|
|
5409
5409
|
[e]: A
|
|
5410
5410
|
}, this.removeElements(l);
|
|
5411
5411
|
const h = this.workflow.steps.find((I) => I.stepName === e);
|
|
5412
|
-
if ((h == null ? void 0 : h.type) ===
|
|
5412
|
+
if ((h == null ? void 0 : h.type) === F.Frame) {
|
|
5413
5413
|
const I = this.getStepSpecificServices(e);
|
|
5414
5414
|
(m = I == null ? void 0 : I.frameService) == null || m.setTargetElements(A.map((p) => p.id));
|
|
5415
5415
|
}
|
|
5416
|
-
const E = l.map((I) => new $(I.id)),
|
|
5416
|
+
const E = l.map((I) => new $(I.id)), u = new ht(this.constructSerializableWorkflow()), C = [...w, ...E, u];
|
|
5417
5417
|
C.length > 0 && this.commandContext.apply(new G(C), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5418
|
-
const f = this.getInvalidModelVariants(),
|
|
5419
|
-
if (
|
|
5418
|
+
const f = this.getInvalidModelVariants(), Q = this.modelContainer;
|
|
5419
|
+
if (Q) {
|
|
5420
5420
|
const I = f.map(
|
|
5421
|
-
(p) =>
|
|
5421
|
+
(p) => Q.applyModelVariant(
|
|
5422
5422
|
p,
|
|
5423
5423
|
{
|
|
5424
5424
|
contextService: this.getLayoutPreviewService()
|
|
@@ -5435,7 +5435,7 @@ class Zn {
|
|
|
5435
5435
|
for (const o of n)
|
|
5436
5436
|
if (!this.stepInitialised[o.stepName])
|
|
5437
5437
|
switch (this.stepInitialised[o.stepName] = !0, o.type) {
|
|
5438
|
-
case
|
|
5438
|
+
case F.DigitalContent:
|
|
5439
5439
|
A.push(
|
|
5440
5440
|
Fn.init(
|
|
5441
5441
|
o,
|
|
@@ -5444,8 +5444,8 @@ class Zn {
|
|
|
5444
5444
|
)
|
|
5445
5445
|
);
|
|
5446
5446
|
break;
|
|
5447
|
-
case
|
|
5448
|
-
case
|
|
5447
|
+
case F.Frame:
|
|
5448
|
+
case F.Photo:
|
|
5449
5449
|
{
|
|
5450
5450
|
const r = new pn(o.data.forceImageCover);
|
|
5451
5451
|
r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
|
|
@@ -5455,40 +5455,40 @@ class Zn {
|
|
|
5455
5455
|
);
|
|
5456
5456
|
}
|
|
5457
5457
|
break;
|
|
5458
|
-
case
|
|
5458
|
+
case F.Illustration:
|
|
5459
5459
|
A.push(
|
|
5460
5460
|
fe.init(o, this, this.reloadedState)
|
|
5461
5461
|
);
|
|
5462
5462
|
break;
|
|
5463
|
-
case
|
|
5463
|
+
case F.Material:
|
|
5464
5464
|
A.push(
|
|
5465
5465
|
Zt.init(o, this, this.reloadedState)
|
|
5466
5466
|
);
|
|
5467
5467
|
break;
|
|
5468
|
-
case
|
|
5468
|
+
case F.Model:
|
|
5469
5469
|
A.push($t.init(o, this, this.reloadedState));
|
|
5470
5470
|
break;
|
|
5471
|
-
case
|
|
5471
|
+
case F.Module:
|
|
5472
5472
|
this.stepSpecificServices[o.stepName] = {
|
|
5473
5473
|
module: await iA(o.data.module)
|
|
5474
5474
|
}, A.push(
|
|
5475
5475
|
Pn.init(o, this, this.reloadedState)
|
|
5476
5476
|
);
|
|
5477
5477
|
break;
|
|
5478
|
-
case
|
|
5478
|
+
case F.Picture:
|
|
5479
5479
|
A.push(
|
|
5480
5480
|
_t.init(o, this, this.reloadedState)
|
|
5481
5481
|
);
|
|
5482
5482
|
break;
|
|
5483
|
-
case
|
|
5483
|
+
case F.Question:
|
|
5484
5484
|
A.push(
|
|
5485
5485
|
eA.init(o, this, this.reloadedState)
|
|
5486
5486
|
);
|
|
5487
5487
|
break;
|
|
5488
|
-
case
|
|
5488
|
+
case F.Shape:
|
|
5489
5489
|
A.push(re.init(o, this, this.reloadedState));
|
|
5490
5490
|
break;
|
|
5491
|
-
case
|
|
5491
|
+
case F.Text:
|
|
5492
5492
|
A.push(K.init(o, this, this.reloadedState));
|
|
5493
5493
|
break;
|
|
5494
5494
|
}
|
|
@@ -6125,30 +6125,30 @@ class ia extends W {
|
|
|
6125
6125
|
class he {
|
|
6126
6126
|
static get(e, t) {
|
|
6127
6127
|
switch (t.type) {
|
|
6128
|
-
case
|
|
6128
|
+
case F.Information:
|
|
6129
6129
|
return new ia(e, t);
|
|
6130
|
-
case
|
|
6130
|
+
case F.Question:
|
|
6131
6131
|
return new Aa(e, t);
|
|
6132
|
-
case
|
|
6132
|
+
case F.Text:
|
|
6133
6133
|
return new aa(e, t);
|
|
6134
|
-
case
|
|
6134
|
+
case F.Illustration:
|
|
6135
6135
|
return new $n(e, t);
|
|
6136
|
-
case
|
|
6136
|
+
case F.Picture:
|
|
6137
6137
|
return new ta(e, t);
|
|
6138
|
-
case
|
|
6138
|
+
case F.Shape:
|
|
6139
6139
|
return new na(e, t);
|
|
6140
|
-
case
|
|
6140
|
+
case F.Material:
|
|
6141
6141
|
return new _n(e, t);
|
|
6142
|
-
case
|
|
6142
|
+
case F.Model:
|
|
6143
6143
|
return new ea(e, t);
|
|
6144
|
-
case
|
|
6145
|
-
return new
|
|
6144
|
+
case F.Frame:
|
|
6145
|
+
return new Mi(e, t);
|
|
6146
6146
|
default:
|
|
6147
6147
|
throw new k(`Step type ${t.type} not yet supported in Core SDK`);
|
|
6148
6148
|
}
|
|
6149
6149
|
}
|
|
6150
6150
|
}
|
|
6151
|
-
const oA =
|
|
6151
|
+
const oA = D`
|
|
6152
6152
|
fragment CreateDesignTransaction on Transaction {
|
|
6153
6153
|
id
|
|
6154
6154
|
designName
|
|
@@ -6168,7 +6168,7 @@ const oA = F`
|
|
|
6168
6168
|
additionalExternalVariantId
|
|
6169
6169
|
}
|
|
6170
6170
|
}
|
|
6171
|
-
`, sa =
|
|
6171
|
+
`, sa = D`
|
|
6172
6172
|
${oA}
|
|
6173
6173
|
mutation CreateDesign(
|
|
6174
6174
|
$name: String!
|
|
@@ -6200,7 +6200,7 @@ const oA = F`
|
|
|
6200
6200
|
}
|
|
6201
6201
|
}
|
|
6202
6202
|
}
|
|
6203
|
-
`, oa =
|
|
6203
|
+
`, oa = D`
|
|
6204
6204
|
${oA}
|
|
6205
6205
|
mutation CreateDesigns($inputs: [DesignCreateInput]!) {
|
|
6206
6206
|
designCreateMany(inputs: $inputs) {
|
|
@@ -6362,7 +6362,7 @@ const oA = F`
|
|
|
6362
6362
|
N.errors && console.log("Server Error:", b.message);
|
|
6363
6363
|
}), null) : H ?? null;
|
|
6364
6364
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
6365
|
-
const l = c.getPreviewService(), d = (M = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : M.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, h = o && Ze(o, e, !0), E = o && Ze(o, e, !1),
|
|
6365
|
+
const l = c.getPreviewService(), d = (M = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : M.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, h = o && Ze(o, e, !0), E = o && Ze(o, e, !1), u = async (y) => {
|
|
6366
6366
|
const S = {};
|
|
6367
6367
|
let Y = 0;
|
|
6368
6368
|
if (Object.keys(a).length > 0)
|
|
@@ -6388,12 +6388,12 @@ const oA = F`
|
|
|
6388
6388
|
}
|
|
6389
6389
|
}
|
|
6390
6390
|
return [S, Y];
|
|
6391
|
-
}, [C] = await
|
|
6391
|
+
}, [C] = await u(!0), f = Object.fromEntries(
|
|
6392
6392
|
Object.keys(C).map((y) => [y, C[y].map((S) => S.id)])
|
|
6393
|
-
), [
|
|
6394
|
-
Object.keys(
|
|
6393
|
+
), [Q] = await u(!1), m = Object.fromEntries(
|
|
6394
|
+
Object.keys(Q).map((y) => [
|
|
6395
6395
|
y,
|
|
6396
|
-
|
|
6396
|
+
Q[y].map((S) => S.id)
|
|
6397
6397
|
])
|
|
6398
6398
|
), I = await s(w, n.id);
|
|
6399
6399
|
return {
|
|
@@ -6427,7 +6427,7 @@ const oA = F`
|
|
|
6427
6427
|
cartMetadata: h
|
|
6428
6428
|
};
|
|
6429
6429
|
}, la = async (c, e, t, A, n, a, i, s, o, r, g) => {
|
|
6430
|
-
var
|
|
6430
|
+
var u, C;
|
|
6431
6431
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6432
6432
|
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await cA(
|
|
6433
6433
|
c,
|
|
@@ -6441,7 +6441,7 @@ const oA = F`
|
|
|
6441
6441
|
g
|
|
6442
6442
|
);
|
|
6443
6443
|
o("workflow.steps.finish.finalize.creatingDesign");
|
|
6444
|
-
const w = await ra(B), h = (
|
|
6444
|
+
const w = await ra(B), h = (u = w == null ? void 0 : w.transaction) == null ? void 0 : u.previewImageLink;
|
|
6445
6445
|
if (!(w != null && w.transaction))
|
|
6446
6446
|
throw new Error("Failed to create design");
|
|
6447
6447
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
@@ -6574,7 +6574,7 @@ class da {
|
|
|
6574
6574
|
throw new k("Unexpected storage method requested");
|
|
6575
6575
|
}
|
|
6576
6576
|
}
|
|
6577
|
-
const Te = new da(), wa =
|
|
6577
|
+
const Te = new da(), wa = D`
|
|
6578
6578
|
mutation AddTransactionStakeholder($id: String!, $type: String!, $details: CustomerDetailsInput!) {
|
|
6579
6579
|
transactionAddStakeholder(id: $id, details: $details, type: $type) {
|
|
6580
6580
|
id
|
|
@@ -6676,9 +6676,9 @@ class Ce {
|
|
|
6676
6676
|
}
|
|
6677
6677
|
let a = 2048;
|
|
6678
6678
|
t && t <= 2048 && (a = t);
|
|
6679
|
-
const i = Me(a, a), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((
|
|
6679
|
+
const i = Me(a, a), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
|
|
6680
6680
|
var m;
|
|
6681
|
-
return ((m =
|
|
6681
|
+
return ((m = Q.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6682
6682
|
}) || s[0], B = g.layoutState.layout.previewRegion ? {
|
|
6683
6683
|
x: g.layoutState.layout.previewRegion.left,
|
|
6684
6684
|
y: g.layoutState.layout.previewRegion.top,
|
|
@@ -6706,8 +6706,8 @@ class Ce {
|
|
|
6706
6706
|
DOMParser: Rt(),
|
|
6707
6707
|
fetch: $e
|
|
6708
6708
|
})).render();
|
|
6709
|
-
const
|
|
6710
|
-
return i.toDataURL(
|
|
6709
|
+
const u = await this.getCanvasObjectURLAsync(i);
|
|
6710
|
+
return i.toDataURL(u);
|
|
6711
6711
|
}
|
|
6712
6712
|
getStepById(e) {
|
|
6713
6713
|
const t = this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === e);
|
|
@@ -6798,13 +6798,13 @@ class Ce {
|
|
|
6798
6798
|
d !== void 0 && d.forEach((w) => {
|
|
6799
6799
|
const h = o(w), E = g.has(JSON.stringify(w));
|
|
6800
6800
|
if (E && (h == null ? void 0 : h.getType()) === "Option") {
|
|
6801
|
-
const
|
|
6802
|
-
if (!
|
|
6801
|
+
const u = l.getCurrentVariant();
|
|
6802
|
+
if (!u)
|
|
6803
6803
|
return;
|
|
6804
|
-
r.selectVariant(
|
|
6804
|
+
r.selectVariant(u), g.delete(JSON.stringify(w));
|
|
6805
6805
|
} else if (E && (h == null ? void 0 : h.getType()) === "Text") {
|
|
6806
|
-
const
|
|
6807
|
-
r.setText(
|
|
6806
|
+
const u = l.getText();
|
|
6807
|
+
r.setText(u), g.delete(JSON.stringify(w));
|
|
6808
6808
|
}
|
|
6809
6809
|
});
|
|
6810
6810
|
}));
|
|
@@ -6886,7 +6886,7 @@ class Ce {
|
|
|
6886
6886
|
const e = Re(this.getCommandContext().getState());
|
|
6887
6887
|
if (!e)
|
|
6888
6888
|
throw new k("Internal state is undefined! Cannot copy experience!");
|
|
6889
|
-
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), n = new
|
|
6889
|
+
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), n = new Di({}), a = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
|
|
6890
6890
|
if (!a)
|
|
6891
6891
|
throw new k("Integration product id is undefined!");
|
|
6892
6892
|
return await n.initFromIntegrationProduct(a), await n.getWorkflowExperience(A.id, t, void 0);
|
|
@@ -6913,7 +6913,7 @@ class Ce {
|
|
|
6913
6913
|
* @returns Returns true when a valid handle is implemented for a given step type. Certain steps don't support handles, such as silent illustrations.
|
|
6914
6914
|
*/
|
|
6915
6915
|
stepHasHandle(e) {
|
|
6916
|
-
return e.type !==
|
|
6916
|
+
return e.type !== F.SilentIllustration && e.type !== F.ProductOverlay;
|
|
6917
6917
|
}
|
|
6918
6918
|
getExportedData() {
|
|
6919
6919
|
var n;
|
|
@@ -7010,7 +7010,7 @@ const ha = [
|
|
|
7010
7010
|
} catch (d) {
|
|
7011
7011
|
return console.error(d), [];
|
|
7012
7012
|
}
|
|
7013
|
-
},
|
|
7013
|
+
}, ua = async (c, e, t, A) => {
|
|
7014
7014
|
const n = t.data, a = n.assetUrl, i = await je(a);
|
|
7015
7015
|
try {
|
|
7016
7016
|
const s = NA(n, A.option);
|
|
@@ -7063,7 +7063,7 @@ const ha = [
|
|
|
7063
7063
|
} catch (s) {
|
|
7064
7064
|
return console.error(s), [];
|
|
7065
7065
|
}
|
|
7066
|
-
},
|
|
7066
|
+
}, Qa = async (c, e, t, A) => {
|
|
7067
7067
|
var m, I;
|
|
7068
7068
|
const n = t.data, a = A.option;
|
|
7069
7069
|
if (!a)
|
|
@@ -7095,7 +7095,7 @@ const ha = [
|
|
|
7095
7095
|
p.classList.add(N), h[N] = { browserValue: S };
|
|
7096
7096
|
}
|
|
7097
7097
|
});
|
|
7098
|
-
const
|
|
7098
|
+
const u = vt().serializeToString(w), C = n.colors;
|
|
7099
7099
|
if (C) {
|
|
7100
7100
|
for (const [p, M] of Object.entries(h))
|
|
7101
7101
|
for (const y of Object.keys(C))
|
|
@@ -7113,7 +7113,7 @@ const ha = [
|
|
|
7113
7113
|
{
|
|
7114
7114
|
colors: h,
|
|
7115
7115
|
id: y,
|
|
7116
|
-
svg:
|
|
7116
|
+
svg: u,
|
|
7117
7117
|
type: v.Illustration,
|
|
7118
7118
|
y: p.top,
|
|
7119
7119
|
x: p.left,
|
|
@@ -7126,9 +7126,9 @@ const ha = [
|
|
|
7126
7126
|
},
|
|
7127
7127
|
M
|
|
7128
7128
|
);
|
|
7129
|
-
},
|
|
7129
|
+
}, Q = A.data.regions;
|
|
7130
7130
|
try {
|
|
7131
|
-
return
|
|
7131
|
+
return Q.map(f);
|
|
7132
7132
|
} catch (p) {
|
|
7133
7133
|
return console.error(p), [];
|
|
7134
7134
|
}
|
|
@@ -7264,7 +7264,7 @@ const ha = [
|
|
|
7264
7264
|
}, fa = async (c, e, t) => {
|
|
7265
7265
|
const A = [], a = (() => {
|
|
7266
7266
|
var r, g;
|
|
7267
|
-
return e.type ===
|
|
7267
|
+
return e.type === F.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((g = e.data.asset) == null ? void 0 : g.fileLink) || "";
|
|
7268
7268
|
})(), s = (() => a.endsWith(".jpeg") || a.endsWith(".jpg") || a.endsWith(".png") ? v.Image : a.endsWith(".svg") ? v.Illustration : v.Illustration)(), o = e.data.regions;
|
|
7269
7269
|
if (s === "image")
|
|
7270
7270
|
try {
|
|
@@ -7282,7 +7282,7 @@ const ha = [
|
|
|
7282
7282
|
height: r.height,
|
|
7283
7283
|
layer: r.layer,
|
|
7284
7284
|
layerIndex: r.layerIndex,
|
|
7285
|
-
productOverlay: e.type ===
|
|
7285
|
+
productOverlay: e.type === F.ProductOverlay ? !0 : void 0,
|
|
7286
7286
|
scaleX: 1,
|
|
7287
7287
|
scaleY: 1,
|
|
7288
7288
|
rotation: r.rotation,
|
|
@@ -7296,10 +7296,10 @@ const ha = [
|
|
|
7296
7296
|
}
|
|
7297
7297
|
else {
|
|
7298
7298
|
const r = await Z(a, !0), g = (B) => {
|
|
7299
|
-
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "",
|
|
7300
|
-
if (!
|
|
7299
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Ut().parseFromString(w, "image/svg+xml").firstElementChild;
|
|
7300
|
+
if (!u)
|
|
7301
7301
|
throw new oe("Failed to read SVG.");
|
|
7302
|
-
return Gt(
|
|
7302
|
+
return Gt(u), vt().serializeToString(u);
|
|
7303
7303
|
};
|
|
7304
7304
|
o.forEach((B) => {
|
|
7305
7305
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
@@ -7321,7 +7321,7 @@ const ha = [
|
|
|
7321
7321
|
scaleX: 1,
|
|
7322
7322
|
scaleY: 1,
|
|
7323
7323
|
rotation: B.rotation,
|
|
7324
|
-
productOverlay: e.type ===
|
|
7324
|
+
productOverlay: e.type === F.ProductOverlay ? !0 : void 0,
|
|
7325
7325
|
excludeFromExport: e.data.excludeFromPrint
|
|
7326
7326
|
};
|
|
7327
7327
|
A.push(new L(d, l));
|
|
@@ -7334,35 +7334,35 @@ const ha = [
|
|
|
7334
7334
|
const E = A.option;
|
|
7335
7335
|
if (!E)
|
|
7336
7336
|
return;
|
|
7337
|
-
const
|
|
7338
|
-
if (!
|
|
7337
|
+
const u = ((f = E.variants) == null ? void 0 : f.find((Q) => Q.id === a.fontVariantId)) || He(E);
|
|
7338
|
+
if (!u || !u.asset)
|
|
7339
7339
|
return;
|
|
7340
|
-
e[A.stepName] = { selectedVariants: [
|
|
7341
|
-
const C =
|
|
7340
|
+
e[A.stepName] = { selectedVariants: [u] };
|
|
7341
|
+
const C = u.asset.fileLink;
|
|
7342
7342
|
if (C)
|
|
7343
7343
|
return C;
|
|
7344
7344
|
}, g = await (async () => {
|
|
7345
7345
|
const E = o();
|
|
7346
7346
|
if (!E)
|
|
7347
7347
|
return;
|
|
7348
|
-
const
|
|
7348
|
+
const u = await tt(E);
|
|
7349
7349
|
return {
|
|
7350
7350
|
assetUrl: E,
|
|
7351
|
-
name:
|
|
7351
|
+
name: u.names.fullName.en
|
|
7352
7352
|
};
|
|
7353
7353
|
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", a.text) : a.text) || "", l = Ve(B, {
|
|
7354
7354
|
vertical: A.data.vertical,
|
|
7355
7355
|
uppercase: A.data.uppercase
|
|
7356
7356
|
}), d = async (E) => {
|
|
7357
|
-
const
|
|
7358
|
-
if (!
|
|
7357
|
+
const u = E.colorOption;
|
|
7358
|
+
if (!u)
|
|
7359
7359
|
return;
|
|
7360
|
-
const C = j.getDefaultVariant(
|
|
7360
|
+
const C = j.getDefaultVariant(u);
|
|
7361
7361
|
return C == null ? void 0 : C.color;
|
|
7362
7362
|
}, w = a.color || await d(A.data), h = A.data.regions;
|
|
7363
7363
|
for (const E of h) {
|
|
7364
|
-
const
|
|
7365
|
-
if (!
|
|
7364
|
+
const u = c.find((f) => f.panelId === E.panelId);
|
|
7365
|
+
if (!u)
|
|
7366
7366
|
continue;
|
|
7367
7367
|
const C = {
|
|
7368
7368
|
stepName: t.name,
|
|
@@ -7386,7 +7386,7 @@ const ha = [
|
|
|
7386
7386
|
y: E.top
|
|
7387
7387
|
};
|
|
7388
7388
|
if (g) {
|
|
7389
|
-
const [f,
|
|
7389
|
+
const [f, Q] = Ie(
|
|
7390
7390
|
A.data.size || i,
|
|
7391
7391
|
g,
|
|
7392
7392
|
E,
|
|
@@ -7407,14 +7407,14 @@ const ha = [
|
|
|
7407
7407
|
{
|
|
7408
7408
|
...C,
|
|
7409
7409
|
fontSize: f,
|
|
7410
|
-
text: C.curved ? C.text : (
|
|
7410
|
+
text: C.curved ? C.text : (Q || []).join(`
|
|
7411
7411
|
`)
|
|
7412
7412
|
},
|
|
7413
|
-
|
|
7413
|
+
u
|
|
7414
7414
|
)
|
|
7415
7415
|
);
|
|
7416
7416
|
} else
|
|
7417
|
-
n.push(new L(C,
|
|
7417
|
+
n.push(new L(C, u));
|
|
7418
7418
|
}
|
|
7419
7419
|
return n;
|
|
7420
7420
|
}, Fa = (c, e) => c.conditions ? c.conditions.every((t) => {
|
|
@@ -7432,20 +7432,20 @@ const ha = [
|
|
|
7432
7432
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
7433
7433
|
if (s)
|
|
7434
7434
|
switch (s.type) {
|
|
7435
|
-
case
|
|
7435
|
+
case F.DigitalContent:
|
|
7436
7436
|
n.push(
|
|
7437
7437
|
...await Ca(t, i, s)
|
|
7438
7438
|
);
|
|
7439
7439
|
break;
|
|
7440
|
-
case
|
|
7441
|
-
case
|
|
7440
|
+
case F.Frame:
|
|
7441
|
+
case F.Photo:
|
|
7442
7442
|
n.push(
|
|
7443
|
-
...await
|
|
7443
|
+
...await ua(t, a, i, s)
|
|
7444
7444
|
);
|
|
7445
7445
|
break;
|
|
7446
|
-
case
|
|
7446
|
+
case F.Illustration:
|
|
7447
7447
|
n.push(
|
|
7448
|
-
...await
|
|
7448
|
+
...await Qa(
|
|
7449
7449
|
t,
|
|
7450
7450
|
a,
|
|
7451
7451
|
i,
|
|
@@ -7453,20 +7453,20 @@ const ha = [
|
|
|
7453
7453
|
)
|
|
7454
7454
|
);
|
|
7455
7455
|
break;
|
|
7456
|
-
case
|
|
7456
|
+
case F.Module:
|
|
7457
7457
|
n.push(...await ma(t, i, s));
|
|
7458
7458
|
break;
|
|
7459
|
-
case
|
|
7459
|
+
case F.Picture:
|
|
7460
7460
|
n.push(
|
|
7461
7461
|
...await Ia(t, a, i, s)
|
|
7462
7462
|
);
|
|
7463
7463
|
break;
|
|
7464
|
-
case
|
|
7464
|
+
case F.Shape:
|
|
7465
7465
|
n.push(
|
|
7466
7466
|
...await pa(t, a, i, s)
|
|
7467
7467
|
);
|
|
7468
7468
|
break;
|
|
7469
|
-
case
|
|
7469
|
+
case F.Text:
|
|
7470
7470
|
n.push(
|
|
7471
7471
|
...await Da(t, a, i, s)
|
|
7472
7472
|
);
|
|
@@ -7474,12 +7474,12 @@ const ha = [
|
|
|
7474
7474
|
}
|
|
7475
7475
|
}
|
|
7476
7476
|
for (const i of e.steps)
|
|
7477
|
-
i.type !==
|
|
7477
|
+
i.type !== F.SilentIllustration && i.type !== F.ProductOverlay || Fa(i, a) && n.push(
|
|
7478
7478
|
...await fa(t, i, A)
|
|
7479
7479
|
);
|
|
7480
7480
|
return n;
|
|
7481
7481
|
};
|
|
7482
|
-
class
|
|
7482
|
+
class ue {
|
|
7483
7483
|
constructor(e) {
|
|
7484
7484
|
this.handleCompleteRender = null;
|
|
7485
7485
|
const t = /* @__PURE__ */ new Map();
|
|
@@ -7642,18 +7642,18 @@ class xa extends Wt {
|
|
|
7642
7642
|
B.resize(s, o), await B.render(), this.onRender();
|
|
7643
7643
|
}
|
|
7644
7644
|
}
|
|
7645
|
-
const
|
|
7645
|
+
const Ji = (c, e) => {
|
|
7646
7646
|
const t = [];
|
|
7647
7647
|
return c.forEach((A) => {
|
|
7648
7648
|
const n = e.steps.find((a) => a.stepName === A.stepName);
|
|
7649
|
-
(n == null ? void 0 : n.type) ===
|
|
7649
|
+
(n == null ? void 0 : n.type) === F.Text && A.stepAspectType === "Text" && t.push({
|
|
7650
7650
|
name: n.stepName,
|
|
7651
7651
|
data: {
|
|
7652
7652
|
text: A.value
|
|
7653
7653
|
}
|
|
7654
7654
|
});
|
|
7655
7655
|
}), t;
|
|
7656
|
-
},
|
|
7656
|
+
}, bi = async (c, e, t, A) => {
|
|
7657
7657
|
let n = {
|
|
7658
7658
|
serializableWorkflow: { steps: [] },
|
|
7659
7659
|
layouts: {}
|
|
@@ -7661,7 +7661,7 @@ const ki = (c, e) => {
|
|
|
7661
7661
|
n = new G(t.map((o) => new UA(o))).apply(n);
|
|
7662
7662
|
const i = await Ma(c, e, t, A);
|
|
7663
7663
|
return new G(i).apply(n);
|
|
7664
|
-
}, Pa =
|
|
7664
|
+
}, Pa = D`
|
|
7665
7665
|
${ae}
|
|
7666
7666
|
fragment ProductFields on Product {
|
|
7667
7667
|
id
|
|
@@ -7704,7 +7704,7 @@ const ki = (c, e) => {
|
|
|
7704
7704
|
name
|
|
7705
7705
|
}
|
|
7706
7706
|
}
|
|
7707
|
-
`, gA =
|
|
7707
|
+
`, gA = D`
|
|
7708
7708
|
${Pa}
|
|
7709
7709
|
fragment ProductCollectionProductFields on ProductCollectionProduct {
|
|
7710
7710
|
id
|
|
@@ -7714,7 +7714,7 @@ const ki = (c, e) => {
|
|
|
7714
7714
|
...ProductFields
|
|
7715
7715
|
}
|
|
7716
7716
|
}
|
|
7717
|
-
`, lA = (c) =>
|
|
7717
|
+
`, lA = (c) => D`
|
|
7718
7718
|
${c ? gA : ""}
|
|
7719
7719
|
fragment ProductCollectionFields on ProductCollection {
|
|
7720
7720
|
id
|
|
@@ -7759,7 +7759,7 @@ const ki = (c, e) => {
|
|
|
7759
7759
|
}
|
|
7760
7760
|
}
|
|
7761
7761
|
}
|
|
7762
|
-
`, Na = (c) =>
|
|
7762
|
+
`, Na = (c) => D`
|
|
7763
7763
|
${lA(c)}
|
|
7764
7764
|
query GetBundle($id: String!) {
|
|
7765
7765
|
bundles(ids: [$id]) {
|
|
@@ -7781,7 +7781,7 @@ const ki = (c, e) => {
|
|
|
7781
7781
|
}
|
|
7782
7782
|
}
|
|
7783
7783
|
}
|
|
7784
|
-
`, Ha =
|
|
7784
|
+
`, Ha = D`
|
|
7785
7785
|
query GetBundleStakeholders($id: String!) {
|
|
7786
7786
|
bundles(ids: [$id]) {
|
|
7787
7787
|
id
|
|
@@ -7801,7 +7801,7 @@ const ki = (c, e) => {
|
|
|
7801
7801
|
}
|
|
7802
7802
|
}
|
|
7803
7803
|
}
|
|
7804
|
-
`, Ra =
|
|
7804
|
+
`, Ra = D`
|
|
7805
7805
|
query GetBundlesForCustomer($id: String!) {
|
|
7806
7806
|
customers(ids: [$id]) {
|
|
7807
7807
|
bundleStakeholders {
|
|
@@ -7822,7 +7822,7 @@ const ki = (c, e) => {
|
|
|
7822
7822
|
}
|
|
7823
7823
|
}
|
|
7824
7824
|
}
|
|
7825
|
-
`, Ua =
|
|
7825
|
+
`, Ua = D`
|
|
7826
7826
|
${gA}
|
|
7827
7827
|
query GetProductCollectionProducts($id: String!) {
|
|
7828
7828
|
productCollections(ids: [$id]) {
|
|
@@ -7832,7 +7832,7 @@ const ki = (c, e) => {
|
|
|
7832
7832
|
}
|
|
7833
7833
|
}
|
|
7834
7834
|
}
|
|
7835
|
-
`, Ga = (c) =>
|
|
7835
|
+
`, Ga = (c) => D`
|
|
7836
7836
|
${lA(c)}
|
|
7837
7837
|
mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
|
|
7838
7838
|
bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
|
|
@@ -7851,25 +7851,25 @@ const ki = (c, e) => {
|
|
|
7851
7851
|
}
|
|
7852
7852
|
}
|
|
7853
7853
|
}
|
|
7854
|
-
`, va =
|
|
7854
|
+
`, va = D`
|
|
7855
7855
|
mutation UpdateBundle($id: String!, $name: String, $metadata: [MetadataInput!], $bundleStateData: String) {
|
|
7856
7856
|
bundleUpdate(id: $id, name: $name, metadata: $metadata, bundleStateData: $bundleStateData) {
|
|
7857
7857
|
id
|
|
7858
7858
|
}
|
|
7859
7859
|
}
|
|
7860
|
-
`, ka =
|
|
7860
|
+
`, ka = D`
|
|
7861
7861
|
mutation BundleAddTransaction($id: String!, $transactionId: String!) {
|
|
7862
7862
|
bundleAddTransaction(id: $id, transactionId: $transactionId) {
|
|
7863
7863
|
id
|
|
7864
7864
|
}
|
|
7865
7865
|
}
|
|
7866
|
-
`, Ja =
|
|
7866
|
+
`, Ja = D`
|
|
7867
7867
|
mutation BundleAddTransactions($id: String!, $transactionIds: [String!]!, $transactionOwnerIds: [String!]) {
|
|
7868
7868
|
bundleAddTransactions(id: $id, transactionIds: $transactionIds, transactionOwnerIds: $transactionOwnerIds) {
|
|
7869
7869
|
id
|
|
7870
7870
|
}
|
|
7871
7871
|
}
|
|
7872
|
-
`, ba =
|
|
7872
|
+
`, ba = D`
|
|
7873
7873
|
mutation BundleRemoveTransaction(
|
|
7874
7874
|
$id: String!
|
|
7875
7875
|
$transactionId: String!
|
|
@@ -7884,7 +7884,7 @@ const ki = (c, e) => {
|
|
|
7884
7884
|
id
|
|
7885
7885
|
}
|
|
7886
7886
|
}
|
|
7887
|
-
`, La =
|
|
7887
|
+
`, La = D`
|
|
7888
7888
|
mutation BundleRemoveTransactions(
|
|
7889
7889
|
$id: String!
|
|
7890
7890
|
$transactionIds: [String!]!
|
|
@@ -7899,7 +7899,7 @@ const ki = (c, e) => {
|
|
|
7899
7899
|
id
|
|
7900
7900
|
}
|
|
7901
7901
|
}
|
|
7902
|
-
`, Ta =
|
|
7902
|
+
`, Ta = D`
|
|
7903
7903
|
mutation BundleAddStakeholder($id: String!, $details: CustomerDetailsInput!, $type: String!) {
|
|
7904
7904
|
bundleAddStakeholder(id: $id, details: $details, type: $type) {
|
|
7905
7905
|
id
|
|
@@ -7919,7 +7919,13 @@ const ki = (c, e) => {
|
|
|
7919
7919
|
}
|
|
7920
7920
|
}
|
|
7921
7921
|
}
|
|
7922
|
-
`, Oa =
|
|
7922
|
+
`, Oa = D`
|
|
7923
|
+
mutation BundleAddStakeholder($id: String!, $emailAddress: String!) {
|
|
7924
|
+
bundleRemoveStakeholder(id: $id, emailAddress: $emailAddress) {
|
|
7925
|
+
id
|
|
7926
|
+
}
|
|
7927
|
+
}
|
|
7928
|
+
`, za = D`
|
|
7923
7929
|
mutation BundleUpdateStakeholders($id: String!, $input: [BundleStakeholderInput!]!) {
|
|
7924
7930
|
bundleUpdateStakeholders(id: $id, input: $input) {
|
|
7925
7931
|
id
|
|
@@ -7939,14 +7945,14 @@ const ki = (c, e) => {
|
|
|
7939
7945
|
}
|
|
7940
7946
|
}
|
|
7941
7947
|
}
|
|
7942
|
-
`,
|
|
7948
|
+
`, Ka = D`
|
|
7943
7949
|
mutation BundleUpdateTransactionOrder($id: String!, $transactionIds: [String!]!) {
|
|
7944
7950
|
bundleUpdateTransactionOrder(id: $id, transactionIds: $transactionIds) {
|
|
7945
7951
|
id
|
|
7946
7952
|
}
|
|
7947
7953
|
}
|
|
7948
7954
|
`;
|
|
7949
|
-
class
|
|
7955
|
+
class ja {
|
|
7950
7956
|
constructor(e) {
|
|
7951
7957
|
this.handleCache = {}, this.bundle = e;
|
|
7952
7958
|
}
|
|
@@ -7990,13 +7996,13 @@ class Ka {
|
|
|
7990
7996
|
async createHandle(e) {
|
|
7991
7997
|
switch (e.type) {
|
|
7992
7998
|
case pe.FileUpload:
|
|
7993
|
-
return new
|
|
7999
|
+
return new Va(this.bundle, e);
|
|
7994
8000
|
case pe.Option: {
|
|
7995
8001
|
const t = e.entityId ? await j.getOption(e.entityId) : void 0;
|
|
7996
|
-
return (t == null ? void 0 : t.type) === "Color" ? new
|
|
8002
|
+
return (t == null ? void 0 : t.type) === "Color" ? new Xa(this.bundle, e, t) : new BA(this.bundle, e, t);
|
|
7997
8003
|
}
|
|
7998
8004
|
case pe.Text:
|
|
7999
|
-
return new
|
|
8005
|
+
return new Wa(this.bundle, e);
|
|
8000
8006
|
}
|
|
8001
8007
|
}
|
|
8002
8008
|
}
|
|
@@ -8055,7 +8061,7 @@ class gt {
|
|
|
8055
8061
|
return this.bundle.getGlobalPropertyStateManager().getAspect(this.property.name);
|
|
8056
8062
|
}
|
|
8057
8063
|
}
|
|
8058
|
-
class
|
|
8064
|
+
class Va extends gt {
|
|
8059
8065
|
constructor(e, t) {
|
|
8060
8066
|
super(e, t);
|
|
8061
8067
|
}
|
|
@@ -8097,7 +8103,7 @@ class ja extends gt {
|
|
|
8097
8103
|
await Promise.all(n);
|
|
8098
8104
|
}
|
|
8099
8105
|
}
|
|
8100
|
-
class
|
|
8106
|
+
class Wa extends gt {
|
|
8101
8107
|
constructor(e, t) {
|
|
8102
8108
|
super(e, t);
|
|
8103
8109
|
}
|
|
@@ -8192,7 +8198,7 @@ class BA extends gt {
|
|
|
8192
8198
|
await Promise.all(n);
|
|
8193
8199
|
}
|
|
8194
8200
|
}
|
|
8195
|
-
class
|
|
8201
|
+
class Xa extends BA {
|
|
8196
8202
|
constructor(e, t, A) {
|
|
8197
8203
|
super(e, t, A);
|
|
8198
8204
|
}
|
|
@@ -8209,7 +8215,7 @@ class Wa extends BA {
|
|
|
8209
8215
|
return this.getSharedSteps()[0].getCustomColor();
|
|
8210
8216
|
}
|
|
8211
8217
|
}
|
|
8212
|
-
const
|
|
8218
|
+
const qa = D`
|
|
8213
8219
|
mutation CreateGlobalPropertyState($bundleId: String!) {
|
|
8214
8220
|
globalPropertyStateCreate(bundleId: $bundleId) {
|
|
8215
8221
|
id
|
|
@@ -8219,7 +8225,7 @@ const Xa = F`
|
|
|
8219
8225
|
}
|
|
8220
8226
|
}
|
|
8221
8227
|
}
|
|
8222
|
-
`,
|
|
8228
|
+
`, Za = D`
|
|
8223
8229
|
mutation UpdateGlobalPropertyState($id: String!, $aspects: [GlobalPropertyStateAspectInput]!) {
|
|
8224
8230
|
globalPropertyStateUpdate(id: $id, aspects: $aspects) {
|
|
8225
8231
|
id
|
|
@@ -8229,7 +8235,7 @@ const Xa = F`
|
|
|
8229
8235
|
}
|
|
8230
8236
|
}
|
|
8231
8237
|
}
|
|
8232
|
-
`,
|
|
8238
|
+
`, $a = D`
|
|
8233
8239
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
8234
8240
|
globalPropertyState(bundleId: $bundleId) {
|
|
8235
8241
|
id
|
|
@@ -8240,7 +8246,7 @@ const Xa = F`
|
|
|
8240
8246
|
}
|
|
8241
8247
|
}
|
|
8242
8248
|
`;
|
|
8243
|
-
class
|
|
8249
|
+
class _a {
|
|
8244
8250
|
constructor(e, t, A) {
|
|
8245
8251
|
this.bundleId = e, this.bundleOwnerId = t, this.initPromise = this.getOrCreateGlobalPropertyState().then((n) => {
|
|
8246
8252
|
this.globalPropertyState = n;
|
|
@@ -8270,7 +8276,7 @@ class $a {
|
|
|
8270
8276
|
if (!this.globalPropertyState)
|
|
8271
8277
|
throw new Error("Global property state not initialized");
|
|
8272
8278
|
const e = await P.getShadowGraphqlClient().mutate({
|
|
8273
|
-
mutation:
|
|
8279
|
+
mutation: Za,
|
|
8274
8280
|
variables: {
|
|
8275
8281
|
id: this.globalPropertyState.id,
|
|
8276
8282
|
aspects: this.globalPropertyState.aspects
|
|
@@ -8287,7 +8293,7 @@ class $a {
|
|
|
8287
8293
|
async getOrCreateGlobalPropertyState() {
|
|
8288
8294
|
var A;
|
|
8289
8295
|
const e = await P.getShadowGraphqlClient().query({
|
|
8290
|
-
query:
|
|
8296
|
+
query: $a,
|
|
8291
8297
|
errorPolicy: "all",
|
|
8292
8298
|
fetchPolicy: "no-cache",
|
|
8293
8299
|
variables: {
|
|
@@ -8300,7 +8306,7 @@ class $a {
|
|
|
8300
8306
|
if (e.data.globalPropertyState && e.data.globalPropertyState.id)
|
|
8301
8307
|
return e.data.globalPropertyState;
|
|
8302
8308
|
const t = await P.getShadowGraphqlClient().mutate({
|
|
8303
|
-
mutation:
|
|
8309
|
+
mutation: qa,
|
|
8304
8310
|
variables: {
|
|
8305
8311
|
bundleId: this.bundleId
|
|
8306
8312
|
},
|
|
@@ -8313,7 +8319,7 @@ class $a {
|
|
|
8313
8319
|
throw new Error(`Unable to create global property state for bundle: ${this.bundleId}`);
|
|
8314
8320
|
}
|
|
8315
8321
|
}
|
|
8316
|
-
class
|
|
8322
|
+
class ei {
|
|
8317
8323
|
constructor(e) {
|
|
8318
8324
|
this.setState(e);
|
|
8319
8325
|
}
|
|
@@ -8396,7 +8402,7 @@ class _a {
|
|
|
8396
8402
|
};
|
|
8397
8403
|
}
|
|
8398
8404
|
}
|
|
8399
|
-
class
|
|
8405
|
+
class ti {
|
|
8400
8406
|
constructor(e) {
|
|
8401
8407
|
this.collection = e;
|
|
8402
8408
|
}
|
|
@@ -8438,7 +8444,7 @@ class ei {
|
|
|
8438
8444
|
}
|
|
8439
8445
|
getTransformCollection() {
|
|
8440
8446
|
if (this.collection.transformCollection)
|
|
8441
|
-
return new
|
|
8447
|
+
return new Ai(this.collection.transformCollection);
|
|
8442
8448
|
}
|
|
8443
8449
|
/**
|
|
8444
8450
|
* The raw collection resource. This is generally not needed and should be avoided.
|
|
@@ -8590,7 +8596,7 @@ class ce {
|
|
|
8590
8596
|
return this.workflow.imageUrl;
|
|
8591
8597
|
}
|
|
8592
8598
|
}
|
|
8593
|
-
class
|
|
8599
|
+
class Ai {
|
|
8594
8600
|
constructor(e) {
|
|
8595
8601
|
this.collection = e;
|
|
8596
8602
|
}
|
|
@@ -8610,10 +8616,10 @@ class ti {
|
|
|
8610
8616
|
* @returns The transforms in this collection.
|
|
8611
8617
|
*/
|
|
8612
8618
|
getTransforms() {
|
|
8613
|
-
return this.collection.transforms.map((e) => new
|
|
8619
|
+
return this.collection.transforms.map((e) => new ni(e));
|
|
8614
8620
|
}
|
|
8615
8621
|
}
|
|
8616
|
-
class
|
|
8622
|
+
class ni {
|
|
8617
8623
|
constructor(e) {
|
|
8618
8624
|
this.transform = e;
|
|
8619
8625
|
}
|
|
@@ -8643,11 +8649,11 @@ class Ai {
|
|
|
8643
8649
|
class Ft {
|
|
8644
8650
|
constructor(e, t, A, n, a) {
|
|
8645
8651
|
var i, s;
|
|
8646
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = e, this.id = t.id, this.name = t.name || "", this.ownerId = a, this.metadata = new Map(((i = t.metadata) == null ? void 0 : i.map((o) => [o.key, o.value])) || []), this.productCollection = t.productCollection, this.bundleStateManager = new
|
|
8652
|
+
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = e, this.id = t.id, this.name = t.name || "", this.ownerId = a, this.metadata = new Map(((i = t.metadata) == null ? void 0 : i.map((o) => [o.key, o.value])) || []), this.productCollection = t.productCollection, this.bundleStateManager = new ei(t.bundleStateData), this.globalPropertyStateManager = new _a(
|
|
8647
8653
|
this.id,
|
|
8648
8654
|
this.ownerId,
|
|
8649
8655
|
this.checkConditionalHandlesChanged.bind(this)
|
|
8650
|
-
), this.globalPropertyHandleService = new
|
|
8656
|
+
), this.globalPropertyHandleService = new ja(this), this.setPreviewService(A), this.initializationPromise = this.loadExistingWorkflowExperiences(
|
|
8651
8657
|
((s = t.transactions) == null ? void 0 : s.map((o) => o.id)) || [],
|
|
8652
8658
|
n
|
|
8653
8659
|
);
|
|
@@ -8710,7 +8716,7 @@ class Ft {
|
|
|
8710
8716
|
return this.workflowExperiences.map((e) => e.getTotalPriceSubunits()).reduce((e, t) => e + t, 0);
|
|
8711
8717
|
}
|
|
8712
8718
|
getProductCollection() {
|
|
8713
|
-
return this.productCollection ? new
|
|
8719
|
+
return this.productCollection ? new ti(this.productCollection) : void 0;
|
|
8714
8720
|
}
|
|
8715
8721
|
async addWorkflowExperience(e) {
|
|
8716
8722
|
e.setBundle(this), await this.appendWorkflowExperience(e), await this.injectExperienceIntoPreviewService(e);
|
|
@@ -8897,10 +8903,24 @@ class Ft {
|
|
|
8897
8903
|
const n = A.data.bundleAddStakeholder.bundleStakeholders || [];
|
|
8898
8904
|
this.storeStakeholderCustomers(n);
|
|
8899
8905
|
}
|
|
8906
|
+
async removeStakeholder(e) {
|
|
8907
|
+
var A;
|
|
8908
|
+
if (!((A = (await P.getShadowGraphqlClient().mutate({
|
|
8909
|
+
mutation: Oa,
|
|
8910
|
+
variables: {
|
|
8911
|
+
id: this.id,
|
|
8912
|
+
emailAddress: e
|
|
8913
|
+
},
|
|
8914
|
+
context: {
|
|
8915
|
+
bundleOwnerId: this.ownerId
|
|
8916
|
+
}
|
|
8917
|
+
})).data) != null && A.bundleRemoveStakeholder))
|
|
8918
|
+
throw new Error("Bundle not found!");
|
|
8919
|
+
}
|
|
8900
8920
|
async updateStakeholders(e) {
|
|
8901
8921
|
var n;
|
|
8902
8922
|
const t = await P.getShadowGraphqlClient().mutate({
|
|
8903
|
-
mutation:
|
|
8923
|
+
mutation: za,
|
|
8904
8924
|
variables: {
|
|
8905
8925
|
id: this.id,
|
|
8906
8926
|
input: e
|
|
@@ -9036,7 +9056,7 @@ class Ft {
|
|
|
9036
9056
|
}
|
|
9037
9057
|
async updateTransactionOrder() {
|
|
9038
9058
|
await P.getShadowGraphqlClient().mutate({
|
|
9039
|
-
mutation:
|
|
9059
|
+
mutation: Ka,
|
|
9040
9060
|
variables: {
|
|
9041
9061
|
id: this.id,
|
|
9042
9062
|
transactionIds: this.workflowExperiences.map((e) => e.getWorkflowManager().getTransaction().id)
|
|
@@ -9069,14 +9089,14 @@ class Ft {
|
|
|
9069
9089
|
);
|
|
9070
9090
|
}
|
|
9071
9091
|
}
|
|
9072
|
-
const
|
|
9092
|
+
const ai = D`
|
|
9073
9093
|
mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
|
|
9074
9094
|
processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
|
|
9075
9095
|
id
|
|
9076
9096
|
}
|
|
9077
9097
|
}
|
|
9078
9098
|
`;
|
|
9079
|
-
class
|
|
9099
|
+
class ii {
|
|
9080
9100
|
/**
|
|
9081
9101
|
*
|
|
9082
9102
|
* @param id
|
|
@@ -9087,7 +9107,7 @@ class ai {
|
|
|
9087
9107
|
async execute(e, t, A) {
|
|
9088
9108
|
var B, l, d;
|
|
9089
9109
|
const a = (l = (B = (await P.getShadowGraphqlClient().mutate({
|
|
9090
|
-
mutation:
|
|
9110
|
+
mutation: ai,
|
|
9091
9111
|
variables: {
|
|
9092
9112
|
processFlowId: e,
|
|
9093
9113
|
inputs: [...t.map((w) => w.getValueForTransmission())]
|
|
@@ -9103,7 +9123,7 @@ class ai {
|
|
|
9103
9123
|
let s = !1, o = 0, r, g;
|
|
9104
9124
|
for (; !s; ) {
|
|
9105
9125
|
r = await P.getShadowGraphqlClient().query({
|
|
9106
|
-
query:
|
|
9126
|
+
query: D`
|
|
9107
9127
|
query getProcessFlowExecution($ids: [String]!) {
|
|
9108
9128
|
processExecutions(ids: $ids) {
|
|
9109
9129
|
id
|
|
@@ -9129,7 +9149,7 @@ class ai {
|
|
|
9129
9149
|
"Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
|
|
9130
9150
|
);
|
|
9131
9151
|
if (w.completedAt) {
|
|
9132
|
-
s = !0, g = new
|
|
9152
|
+
s = !0, g = new si(w);
|
|
9133
9153
|
break;
|
|
9134
9154
|
}
|
|
9135
9155
|
o += 1;
|
|
@@ -9143,7 +9163,7 @@ class ai {
|
|
|
9143
9163
|
return Promise.resolve(g);
|
|
9144
9164
|
}
|
|
9145
9165
|
}
|
|
9146
|
-
class
|
|
9166
|
+
class si {
|
|
9147
9167
|
constructor(e) {
|
|
9148
9168
|
this.execution = e;
|
|
9149
9169
|
}
|
|
@@ -9157,14 +9177,14 @@ class ii {
|
|
|
9157
9177
|
* @returns The nodes contained within the execution.
|
|
9158
9178
|
*/
|
|
9159
9179
|
getNodes() {
|
|
9160
|
-
return this.execution.nodes.map((e) => new
|
|
9180
|
+
return this.execution.nodes.map((e) => new Qe(e));
|
|
9161
9181
|
}
|
|
9162
9182
|
/**
|
|
9163
9183
|
* @param type The type of node to return.
|
|
9164
9184
|
* @returns A list of nodes matching the requested type.
|
|
9165
9185
|
*/
|
|
9166
9186
|
getNodesByType(e) {
|
|
9167
|
-
return this.execution.nodes.filter((t) => t.type === e).map((t) => new
|
|
9187
|
+
return this.execution.nodes.filter((t) => t.type === e).map((t) => new Qe(t));
|
|
9168
9188
|
}
|
|
9169
9189
|
/**
|
|
9170
9190
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -9173,7 +9193,7 @@ class ii {
|
|
|
9173
9193
|
return this.execution.nodes.filter(
|
|
9174
9194
|
(e) => e.type === "StartTerminal"
|
|
9175
9195
|
/* StartTerminal */
|
|
9176
|
-
).map((e) => new
|
|
9196
|
+
).map((e) => new Qe(e));
|
|
9177
9197
|
}
|
|
9178
9198
|
/**
|
|
9179
9199
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -9182,7 +9202,7 @@ class ii {
|
|
|
9182
9202
|
return this.execution.nodes.filter(
|
|
9183
9203
|
(e) => e.type === "EndTerminal"
|
|
9184
9204
|
/* EndTerminal */
|
|
9185
|
-
).map((e) => new
|
|
9205
|
+
).map((e) => new Qe(e));
|
|
9186
9206
|
}
|
|
9187
9207
|
/**
|
|
9188
9208
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -9199,7 +9219,7 @@ class ii {
|
|
|
9199
9219
|
return new Date(this.execution.failedAt);
|
|
9200
9220
|
}
|
|
9201
9221
|
}
|
|
9202
|
-
class
|
|
9222
|
+
class Qe {
|
|
9203
9223
|
constructor(e) {
|
|
9204
9224
|
this.node = e;
|
|
9205
9225
|
}
|
|
@@ -9228,8 +9248,8 @@ class lt {
|
|
|
9228
9248
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
9229
9249
|
}
|
|
9230
9250
|
}
|
|
9231
|
-
var
|
|
9232
|
-
class
|
|
9251
|
+
var oi = /* @__PURE__ */ ((c) => (c.Transaction = "Transaction", c.Bundle = "Bundle", c.Product = "Product", c.Variant = "Variant", c.Option = "Option", c.LineItem = "LineItem", c.Asset = "Asset", c))(oi || {});
|
|
9252
|
+
class Li extends lt {
|
|
9233
9253
|
constructor(e) {
|
|
9234
9254
|
super(`"${e}"`);
|
|
9235
9255
|
}
|
|
@@ -9244,7 +9264,7 @@ class dA extends lt {
|
|
|
9244
9264
|
return e.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
9245
9265
|
}
|
|
9246
9266
|
}
|
|
9247
|
-
class
|
|
9267
|
+
class Ti extends lt {
|
|
9248
9268
|
constructor(e) {
|
|
9249
9269
|
super(`[${e.map((t) => t.getRaw()).join(",")}]`);
|
|
9250
9270
|
}
|
|
@@ -9291,7 +9311,7 @@ class Mt {
|
|
|
9291
9311
|
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new ce(t));
|
|
9292
9312
|
}
|
|
9293
9313
|
}
|
|
9294
|
-
const
|
|
9314
|
+
const ri = D`
|
|
9295
9315
|
fragment RegionFields on Region {
|
|
9296
9316
|
width
|
|
9297
9317
|
top
|
|
@@ -9309,7 +9329,7 @@ const oi = F`
|
|
|
9309
9329
|
height
|
|
9310
9330
|
}
|
|
9311
9331
|
}
|
|
9312
|
-
`,
|
|
9332
|
+
`, ci = D`
|
|
9313
9333
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
9314
9334
|
latDeg
|
|
9315
9335
|
lonDeg
|
|
@@ -9320,7 +9340,7 @@ const oi = F`
|
|
|
9320
9340
|
z
|
|
9321
9341
|
}
|
|
9322
9342
|
}
|
|
9323
|
-
`,
|
|
9343
|
+
`, gi = D`
|
|
9324
9344
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
9325
9345
|
antiAliasing {
|
|
9326
9346
|
samples
|
|
@@ -9404,21 +9424,21 @@ const oi = F`
|
|
|
9404
9424
|
weight
|
|
9405
9425
|
}
|
|
9406
9426
|
}
|
|
9407
|
-
`,
|
|
9427
|
+
`, li = D`
|
|
9408
9428
|
fragment ModelAnimationFields on ModelAnimation {
|
|
9409
9429
|
from
|
|
9410
9430
|
to
|
|
9411
9431
|
loop
|
|
9412
9432
|
name
|
|
9413
9433
|
}
|
|
9414
|
-
`,
|
|
9434
|
+
`, Bi = (c) => D`
|
|
9415
9435
|
${ve(c)}
|
|
9416
9436
|
${it}
|
|
9417
9437
|
${Kt}
|
|
9418
|
-
${oi}
|
|
9419
9438
|
${ri}
|
|
9420
9439
|
${ci}
|
|
9421
9440
|
${gi}
|
|
9441
|
+
${li}
|
|
9422
9442
|
query GetWorkflows($ids: [String!]!) {
|
|
9423
9443
|
workflows(ids: $ids) {
|
|
9424
9444
|
allowProofDownload
|
|
@@ -9796,7 +9816,7 @@ const oi = F`
|
|
|
9796
9816
|
}
|
|
9797
9817
|
}
|
|
9798
9818
|
}
|
|
9799
|
-
`,
|
|
9819
|
+
`, di = D`
|
|
9800
9820
|
query GetTransactionForPartner($id: String!) {
|
|
9801
9821
|
transactions(ids: [$id]) {
|
|
9802
9822
|
id
|
|
@@ -9813,7 +9833,7 @@ const oi = F`
|
|
|
9813
9833
|
}
|
|
9814
9834
|
}
|
|
9815
9835
|
}
|
|
9816
|
-
`,
|
|
9836
|
+
`, wi = D`
|
|
9817
9837
|
query GetIntegrationWithPartnerAndLogo {
|
|
9818
9838
|
currentIntegration {
|
|
9819
9839
|
id
|
|
@@ -9831,7 +9851,7 @@ const oi = F`
|
|
|
9831
9851
|
}
|
|
9832
9852
|
}
|
|
9833
9853
|
}
|
|
9834
|
-
`,
|
|
9854
|
+
`, Ei = D`
|
|
9835
9855
|
${ve(!1)}
|
|
9836
9856
|
query GetWorkflowForTheme($id: String!) {
|
|
9837
9857
|
workflow(id: $id) {
|
|
@@ -9853,7 +9873,7 @@ const oi = F`
|
|
|
9853
9873
|
}
|
|
9854
9874
|
}
|
|
9855
9875
|
}
|
|
9856
|
-
`,
|
|
9876
|
+
`, hi = D`
|
|
9857
9877
|
query GetCustomer($emailAddress: String!) {
|
|
9858
9878
|
customer(emailAddress: $emailAddress) {
|
|
9859
9879
|
id
|
|
@@ -9863,7 +9883,7 @@ const oi = F`
|
|
|
9863
9883
|
}
|
|
9864
9884
|
}
|
|
9865
9885
|
}
|
|
9866
|
-
`,
|
|
9886
|
+
`, Ci = D`
|
|
9867
9887
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
9868
9888
|
customerCreate(details: $details) {
|
|
9869
9889
|
id
|
|
@@ -9873,7 +9893,7 @@ const oi = F`
|
|
|
9873
9893
|
}
|
|
9874
9894
|
}
|
|
9875
9895
|
}
|
|
9876
|
-
`,
|
|
9896
|
+
`, ui = D`
|
|
9877
9897
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
9878
9898
|
customerAuthenticate(loginToken: $loginToken) {
|
|
9879
9899
|
id
|
|
@@ -9900,11 +9920,11 @@ const oi = F`
|
|
|
9900
9920
|
}
|
|
9901
9921
|
}
|
|
9902
9922
|
}
|
|
9903
|
-
`, Qi =
|
|
9923
|
+
`, Qi = D`
|
|
9904
9924
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
9905
9925
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
9906
9926
|
}
|
|
9907
|
-
`,
|
|
9927
|
+
`, mi = D`
|
|
9908
9928
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
9909
9929
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
9910
9930
|
id
|
|
@@ -9948,10 +9968,10 @@ const oi = F`
|
|
|
9948
9968
|
(e = i.fontData) != null && e.assetUrl && await tt(i.fontData.assetUrl);
|
|
9949
9969
|
}
|
|
9950
9970
|
}
|
|
9951
|
-
},
|
|
9971
|
+
}, Ii = async (c, e) => {
|
|
9952
9972
|
var n;
|
|
9953
9973
|
const t = await P.getShadowGraphqlClient().query({
|
|
9954
|
-
query:
|
|
9974
|
+
query: Bi(((n = e == null ? void 0 : e.assets) == null ? void 0 : n.metadata) || !1),
|
|
9955
9975
|
errorPolicy: "all",
|
|
9956
9976
|
fetchPolicy: "no-cache",
|
|
9957
9977
|
variables: {
|
|
@@ -9968,7 +9988,7 @@ const oi = F`
|
|
|
9968
9988
|
}), le.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
9969
9989
|
});
|
|
9970
9990
|
}), A;
|
|
9971
|
-
},
|
|
9991
|
+
}, pi = async (c, e) => {
|
|
9972
9992
|
const A = (await e).find((n) => n.id === c);
|
|
9973
9993
|
if (!A)
|
|
9974
9994
|
throw new Error(`Workflow not found: ${c}`);
|
|
@@ -9977,11 +9997,11 @@ const oi = F`
|
|
|
9977
9997
|
const t = c.map((s) => le.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
|
|
9978
9998
|
if (A.length === 0)
|
|
9979
9999
|
return Promise.all(t);
|
|
9980
|
-
const n =
|
|
9981
|
-
(s) => le.set({ id: s, options: e },
|
|
10000
|
+
const n = Ii(A, e), a = A.map(
|
|
10001
|
+
(s) => le.set({ id: s, options: e }, pi(s, n))
|
|
9982
10002
|
), i = t.filter((s) => s !== void 0);
|
|
9983
10003
|
return await Promise.all(i.concat(a));
|
|
9984
|
-
}, me = async (c, e) => (await wA([c], e))[0],
|
|
10004
|
+
}, me = async (c, e) => (await wA([c], e))[0], fi = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
|
|
9985
10005
|
id: J(),
|
|
9986
10006
|
panelId: e.name,
|
|
9987
10007
|
name: e.name,
|
|
@@ -9996,9 +10016,9 @@ const oi = F`
|
|
|
9996
10016
|
editableArea: e.editableArea
|
|
9997
10017
|
})), ze = (c, e) => {
|
|
9998
10018
|
const t = c.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
9999
|
-
return A ? Object.values(A.layouts).map((n) => n.layout) :
|
|
10019
|
+
return A ? Object.values(A.layouts).map((n) => n.layout) : fi(e.panels);
|
|
10000
10020
|
};
|
|
10001
|
-
class
|
|
10021
|
+
class Di {
|
|
10002
10022
|
constructor(e) {
|
|
10003
10023
|
this.updateTransactionState = async (t) => {
|
|
10004
10024
|
try {
|
|
@@ -10026,11 +10046,11 @@ class fi {
|
|
|
10026
10046
|
getFlowService() {
|
|
10027
10047
|
if (!TA())
|
|
10028
10048
|
throw new Error("Application key required to use Flow Service.");
|
|
10029
|
-
return new
|
|
10049
|
+
return new ii();
|
|
10030
10050
|
}
|
|
10031
10051
|
async getIntegration() {
|
|
10032
10052
|
return (await P.getShadowGraphqlClient().query({
|
|
10033
|
-
query:
|
|
10053
|
+
query: wi,
|
|
10034
10054
|
errorPolicy: "all"
|
|
10035
10055
|
})).data.currentIntegration;
|
|
10036
10056
|
}
|
|
@@ -10077,7 +10097,7 @@ class fi {
|
|
|
10077
10097
|
async authenticateTransactionFromLocalStorage(e) {
|
|
10078
10098
|
var g, B, l, d, w, h;
|
|
10079
10099
|
const t = P.getShadowGraphqlClient(), A = await t.query({
|
|
10080
|
-
query:
|
|
10100
|
+
query: di,
|
|
10081
10101
|
errorPolicy: "all",
|
|
10082
10102
|
fetchPolicy: "no-cache",
|
|
10083
10103
|
variables: {
|
|
@@ -10100,13 +10120,13 @@ class fi {
|
|
|
10100
10120
|
if (E && await this.authenticateCustomerId(E)) {
|
|
10101
10121
|
const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
10102
10122
|
(f) => {
|
|
10103
|
-
var
|
|
10104
|
-
return (m = (
|
|
10123
|
+
var Q, m;
|
|
10124
|
+
return (m = (Q = f.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : m.some((I) => I.id === e);
|
|
10105
10125
|
}
|
|
10106
10126
|
)) || ((h = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : h.find(
|
|
10107
10127
|
(f) => {
|
|
10108
|
-
var
|
|
10109
|
-
return ((
|
|
10128
|
+
var Q;
|
|
10129
|
+
return ((Q = f.transaction) == null ? void 0 : Q.id) === e;
|
|
10110
10130
|
}
|
|
10111
10131
|
));
|
|
10112
10132
|
if (C)
|
|
@@ -10117,7 +10137,7 @@ class fi {
|
|
|
10117
10137
|
}
|
|
10118
10138
|
}
|
|
10119
10139
|
const r = (await t.query({
|
|
10120
|
-
query:
|
|
10140
|
+
query: Ei,
|
|
10121
10141
|
errorPolicy: "all",
|
|
10122
10142
|
variables: {
|
|
10123
10143
|
id: n.workflowId
|
|
@@ -10153,7 +10173,7 @@ class fi {
|
|
|
10153
10173
|
var i;
|
|
10154
10174
|
this.customer = void 0;
|
|
10155
10175
|
const t = P.getShadowGraphqlClient(), n = (await t.query({
|
|
10156
|
-
query:
|
|
10176
|
+
query: hi,
|
|
10157
10177
|
errorPolicy: "all",
|
|
10158
10178
|
fetchPolicy: "no-cache",
|
|
10159
10179
|
variables: {
|
|
@@ -10162,7 +10182,7 @@ class fi {
|
|
|
10162
10182
|
})).data.customer;
|
|
10163
10183
|
if (!n.id) {
|
|
10164
10184
|
const o = (i = (await t.mutate({
|
|
10165
|
-
mutation:
|
|
10185
|
+
mutation: Ci,
|
|
10166
10186
|
errorPolicy: "all",
|
|
10167
10187
|
fetchPolicy: "no-cache",
|
|
10168
10188
|
variables: {
|
|
@@ -10194,7 +10214,7 @@ class fi {
|
|
|
10194
10214
|
if (!n)
|
|
10195
10215
|
return !1;
|
|
10196
10216
|
const i = (s = (await t.mutate({
|
|
10197
|
-
mutation:
|
|
10217
|
+
mutation: ui,
|
|
10198
10218
|
errorPolicy: "all",
|
|
10199
10219
|
fetchPolicy: "no-cache",
|
|
10200
10220
|
variables: {
|
|
@@ -10224,7 +10244,7 @@ class fi {
|
|
|
10224
10244
|
async verifyCode(e, t) {
|
|
10225
10245
|
var a, i;
|
|
10226
10246
|
const n = (a = (await P.getShadowGraphqlClient().mutate({
|
|
10227
|
-
mutation:
|
|
10247
|
+
mutation: mi,
|
|
10228
10248
|
errorPolicy: "all",
|
|
10229
10249
|
fetchPolicy: "no-cache",
|
|
10230
10250
|
variables: {
|
|
@@ -10326,10 +10346,10 @@ class fi {
|
|
|
10326
10346
|
if (!n)
|
|
10327
10347
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
10328
10348
|
const a = async () => {
|
|
10329
|
-
var
|
|
10349
|
+
var u, C;
|
|
10330
10350
|
const E = P.getShadowGraphqlClient();
|
|
10331
10351
|
if (n.type === "transaction") {
|
|
10332
|
-
const { transactionId: f, readOnly:
|
|
10352
|
+
const { transactionId: f, readOnly: Q } = n, m = await E.query({
|
|
10333
10353
|
query: we,
|
|
10334
10354
|
variables: {
|
|
10335
10355
|
ids: [f]
|
|
@@ -10337,7 +10357,7 @@ class fi {
|
|
|
10337
10357
|
errorPolicy: "all",
|
|
10338
10358
|
fetchPolicy: "no-cache"
|
|
10339
10359
|
});
|
|
10340
|
-
if (!((
|
|
10360
|
+
if (!((u = m.data) != null && u.transactions) || m.data.transactions.length === 0)
|
|
10341
10361
|
throw new U("Existing transaction not found.");
|
|
10342
10362
|
const I = (C = m.data) == null ? void 0 : C.transactions[0];
|
|
10343
10363
|
if (!I.workflowId)
|
|
@@ -10345,7 +10365,7 @@ class fi {
|
|
|
10345
10365
|
const p = await me(I.workflowId);
|
|
10346
10366
|
if (!I.product)
|
|
10347
10367
|
throw new U("Failed to load transaction, product not available.");
|
|
10348
|
-
return { transaction: I, workflow: p, readOnly:
|
|
10368
|
+
return { transaction: I, workflow: p, readOnly: Q };
|
|
10349
10369
|
}
|
|
10350
10370
|
if (n.type === "integration" || n.type === "external") {
|
|
10351
10371
|
const f = async () => {
|
|
@@ -10370,7 +10390,7 @@ class fi {
|
|
|
10370
10390
|
if (!y.product)
|
|
10371
10391
|
throw new U("Failed to create transaction, product not available.");
|
|
10372
10392
|
return y;
|
|
10373
|
-
},
|
|
10393
|
+
}, Q = me(n.workflowId, n == null ? void 0 : n.graphql), [m, I] = await Promise.all([f(), Q]);
|
|
10374
10394
|
return { transaction: m, workflow: I };
|
|
10375
10395
|
}
|
|
10376
10396
|
throw new U("No workflow ID provided.");
|
|
@@ -10392,16 +10412,16 @@ class fi {
|
|
|
10392
10412
|
};
|
|
10393
10413
|
if (n.type === "transaction" && i.workflowState) {
|
|
10394
10414
|
const E = JSON.parse(i.workflowState);
|
|
10395
|
-
r.layouts = Object.values(E.layouts).map((
|
|
10415
|
+
r.layouts = Object.values(E.layouts).map((u) => u.layout), await ee(E), await te(E), r.reloadedState = E;
|
|
10396
10416
|
} else if (!o && n.workflowState) {
|
|
10397
10417
|
const E = JSON.parse(n.workflowState);
|
|
10398
|
-
r.layouts = Object.values(E.layouts).map((
|
|
10418
|
+
r.layouts = Object.values(E.layouts).map((u) => u.layout), await ee(E), await te(E), r.reloadedState = E;
|
|
10399
10419
|
} else
|
|
10400
10420
|
r.layouts = ze(
|
|
10401
10421
|
r.transaction,
|
|
10402
10422
|
r.workflow
|
|
10403
10423
|
);
|
|
10404
|
-
if (r.renderableContextService = new
|
|
10424
|
+
if (r.renderableContextService = new ue(
|
|
10405
10425
|
r.layouts
|
|
10406
10426
|
), n.previewService ? (r.previewService = n.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
10407
10427
|
model: r.product.modelUrl,
|
|
@@ -10483,7 +10503,7 @@ class fi {
|
|
|
10483
10503
|
}));
|
|
10484
10504
|
}, i = e.map((m, I) => ({ option: m, index: I })), s = i.filter((m) => m.option.type === "transaction"), o = i.filter(
|
|
10485
10505
|
(m) => m.option.type === "integration" || m.option.type === "external"
|
|
10486
|
-
), r =
|
|
10506
|
+
), r = ut(s, 10), g = ut(o, 10), B = (await Promise.all([
|
|
10487
10507
|
...r.map(n),
|
|
10488
10508
|
...g.map(a)
|
|
10489
10509
|
])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await wA(l, t), w = new Map(d.map((m) => [m.id, m])), h = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), E = B.map(async (m) => {
|
|
@@ -10513,7 +10533,7 @@ class fi {
|
|
|
10513
10533
|
H.transaction,
|
|
10514
10534
|
H.workflow
|
|
10515
10535
|
);
|
|
10516
|
-
return H.renderableContextService = new
|
|
10536
|
+
return H.renderableContextService = new ue(
|
|
10517
10537
|
H.layouts
|
|
10518
10538
|
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: y, options: Y };
|
|
10519
10539
|
});
|
|
@@ -10521,8 +10541,8 @@ class fi {
|
|
|
10521
10541
|
const f = (await Promise.all(E)).sort((m, I) => m.index - I.index).map(async (m) => {
|
|
10522
10542
|
const { experienceOptions: I, options: p } = m, M = new Ce(this, I);
|
|
10523
10543
|
return await M.getWorkflowManager().getInitializationPromise(), p.type !== "transaction" && this.customer && await M.attachCustomerDetails({ email: this.customer.emailAddress }), M;
|
|
10524
|
-
}),
|
|
10525
|
-
return
|
|
10544
|
+
}), Q = await Promise.all(f);
|
|
10545
|
+
return Q.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
|
|
10526
10546
|
}
|
|
10527
10547
|
/**
|
|
10528
10548
|
* Initialize the client from an integration product.
|
|
@@ -10654,7 +10674,7 @@ class fi {
|
|
|
10654
10674
|
const g = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10655
10675
|
this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
|
|
10656
10676
|
}
|
|
10657
|
-
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new
|
|
10677
|
+
this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new ue(this.experienceOptions.layouts), (n = this.experienceOptions.product) != null && n.modelUrl && (this.experienceOptions.modelContainer = (a = this.experienceOptions.previewService) == null ? void 0 : a.loadModel({
|
|
10658
10678
|
model: this.experienceOptions.product.modelUrl,
|
|
10659
10679
|
contextService: this.experienceOptions.renderableContextService
|
|
10660
10680
|
}));
|
|
@@ -10680,7 +10700,7 @@ class fi {
|
|
|
10680
10700
|
this.experienceOptions.transaction,
|
|
10681
10701
|
this.experienceOptions.workflow
|
|
10682
10702
|
);
|
|
10683
|
-
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new
|
|
10703
|
+
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new ue(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
|
|
10684
10704
|
model: this.experienceOptions.product.modelUrl,
|
|
10685
10705
|
contextService: this.experienceOptions.renderableContextService
|
|
10686
10706
|
}));
|
|
@@ -10755,7 +10775,7 @@ class fi {
|
|
|
10755
10775
|
return e.type === "integration" ? this.getIntegrationProductById(e.integrationProductId) : this.getIntegrationProductFromExternalIds(e.externalIntegrationId, e.externalProductId);
|
|
10756
10776
|
}
|
|
10757
10777
|
}
|
|
10758
|
-
class
|
|
10778
|
+
class Oi {
|
|
10759
10779
|
getInitializationPromise() {
|
|
10760
10780
|
return Promise.resolve();
|
|
10761
10781
|
}
|
|
@@ -10880,8 +10900,8 @@ class Ti {
|
|
|
10880
10900
|
setWorkflowStateSyncEnabled(e) {
|
|
10881
10901
|
}
|
|
10882
10902
|
}
|
|
10883
|
-
var
|
|
10884
|
-
class
|
|
10903
|
+
var Fi = /* @__PURE__ */ ((c) => (c.SelectFrame = "SelectFrame", c.SelectImage = "SelectImage", c.Position = "Position", c))(Fi || {});
|
|
10904
|
+
class Mi extends W {
|
|
10885
10905
|
constructor(e, t) {
|
|
10886
10906
|
var A;
|
|
10887
10907
|
super(e, t), this.frameService = (A = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : A.frameService;
|
|
@@ -10922,121 +10942,121 @@ class Fi extends W {
|
|
|
10922
10942
|
}
|
|
10923
10943
|
}
|
|
10924
10944
|
export {
|
|
10925
|
-
|
|
10926
|
-
|
|
10945
|
+
Ti as ArrayInput,
|
|
10946
|
+
ji as AspectType,
|
|
10927
10947
|
_ as AssetNotFoundError,
|
|
10928
|
-
|
|
10929
|
-
|
|
10930
|
-
|
|
10931
|
-
|
|
10932
|
-
|
|
10948
|
+
Vi as AssetType,
|
|
10949
|
+
Wi as BringForwardCommand,
|
|
10950
|
+
Xi as BringToBackCommand,
|
|
10951
|
+
qi as BringToFrontCommand,
|
|
10952
|
+
Zi as CanvasCommand,
|
|
10933
10953
|
Oe as CollectionProduct,
|
|
10934
|
-
|
|
10935
|
-
|
|
10954
|
+
Xa as ColorOptionGlobalPropertyHandle,
|
|
10955
|
+
$i as CommandContext,
|
|
10936
10956
|
cn as ConversionDataType,
|
|
10937
10957
|
rn as ConversionLocation,
|
|
10938
|
-
|
|
10939
|
-
|
|
10940
|
-
|
|
10941
|
-
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10958
|
+
_i as CreateElementCommand,
|
|
10959
|
+
es as CreateLayoutCommand,
|
|
10960
|
+
ts as DeleteElementCommand,
|
|
10961
|
+
Va as FileUploadGlobalPropertyHandle,
|
|
10962
|
+
Qe as FlowExecutionNodeResult,
|
|
10963
|
+
si as FlowExecutionResult,
|
|
10964
|
+
ii as FlowService,
|
|
10965
|
+
As as FontAlignmentCommand,
|
|
10966
|
+
ns as FontColorCommand,
|
|
10967
|
+
as as FontSizeCommand,
|
|
10968
|
+
is as FontSourceCommand,
|
|
10949
10969
|
pn as FrameService,
|
|
10950
|
-
|
|
10951
|
-
|
|
10970
|
+
Fi as FrameStep,
|
|
10971
|
+
Mi as FrameStepHandle,
|
|
10952
10972
|
gt as GlobalPropertyHandle,
|
|
10953
|
-
|
|
10973
|
+
ss as GroupCommand,
|
|
10954
10974
|
$n as IllustrationStepHandle,
|
|
10955
10975
|
Ne as InformationMessageType,
|
|
10956
10976
|
ia as InformationStepHandle,
|
|
10957
10977
|
Mt as IntegrationProduct,
|
|
10958
10978
|
sn as IntegrationType,
|
|
10959
|
-
|
|
10960
|
-
|
|
10979
|
+
os as LayoutElementFactory,
|
|
10980
|
+
rs as LayoutElementType,
|
|
10961
10981
|
z as LayoutNotFoundError,
|
|
10962
10982
|
_n as MaterialStepHandle,
|
|
10963
10983
|
Ye as MisconfigurationError,
|
|
10964
|
-
|
|
10984
|
+
Oi as MockWorkflowManager,
|
|
10965
10985
|
ea as ModelStepHandle,
|
|
10966
|
-
|
|
10986
|
+
cs as MoveCommand,
|
|
10967
10987
|
dA as ObjectInput,
|
|
10968
|
-
|
|
10988
|
+
oi as ObjectInputType,
|
|
10969
10989
|
BA as OptionGlobalPropertyHandle,
|
|
10970
10990
|
ye as OptionNotFoundError,
|
|
10971
10991
|
oe as ParseError,
|
|
10972
10992
|
ta as PictureStepHandle,
|
|
10973
10993
|
on as ProductCameraRig,
|
|
10974
|
-
|
|
10994
|
+
ti as ProductCollection,
|
|
10975
10995
|
ce as ProductWorkflow,
|
|
10976
10996
|
le as PromiseCache,
|
|
10977
10997
|
Xt as PromiseQueue,
|
|
10978
10998
|
Aa as QuestionStepHandle,
|
|
10979
10999
|
Wt as QueueablePromise,
|
|
10980
|
-
|
|
11000
|
+
gs as ResizeCommand,
|
|
10981
11001
|
ge as ResourceNotFoundError,
|
|
10982
|
-
|
|
10983
|
-
|
|
11002
|
+
ls as RotateCommand,
|
|
11003
|
+
Bs as SendBackwardsCommand,
|
|
10984
11004
|
na as ShapeStepHandle,
|
|
10985
|
-
|
|
11005
|
+
Di as SpiffCommerceClient,
|
|
10986
11006
|
Se as StakeholderType,
|
|
10987
|
-
|
|
11007
|
+
ds as StepAspectType,
|
|
10988
11008
|
W as StepHandle,
|
|
10989
|
-
|
|
10990
|
-
|
|
10991
|
-
|
|
10992
|
-
|
|
11009
|
+
ws as StepType,
|
|
11010
|
+
Es as TextChangeCommand,
|
|
11011
|
+
Wa as TextGlobalPropertyHandle,
|
|
11012
|
+
Li as TextInput,
|
|
10993
11013
|
aa as TextStepHandle,
|
|
10994
|
-
|
|
10995
|
-
|
|
11014
|
+
ni as Transform,
|
|
11015
|
+
Ai as TransformCollection,
|
|
10996
11016
|
k as UnhandledBehaviorError,
|
|
10997
|
-
|
|
11017
|
+
hs as UnitOfMeasurement,
|
|
10998
11018
|
X as Variant,
|
|
10999
11019
|
Ea as WorkflowExperienceEventType,
|
|
11000
11020
|
Ce as WorkflowExperienceImpl,
|
|
11001
11021
|
T as assetService,
|
|
11002
11022
|
la as createDesign,
|
|
11003
|
-
|
|
11023
|
+
Cs as dataUrlFromExternalUrl,
|
|
11004
11024
|
Te as designService,
|
|
11005
|
-
|
|
11025
|
+
us as determineCorrectFontSizeAndLines,
|
|
11006
11026
|
Fn as digitalContentStepService,
|
|
11007
11027
|
Qs as findElement,
|
|
11008
|
-
|
|
11028
|
+
ms as frameDataCache,
|
|
11009
11029
|
Xe as frameStepService,
|
|
11010
|
-
|
|
11030
|
+
Is as generate,
|
|
11011
11031
|
Ma as generateCommands,
|
|
11012
|
-
|
|
11013
|
-
|
|
11014
|
-
|
|
11015
|
-
|
|
11032
|
+
ps as generateSVGWithUnknownColors,
|
|
11033
|
+
bi as generateStateFromDesignInputSteps,
|
|
11034
|
+
fs as getAttributesFromArrayBuffer,
|
|
11035
|
+
Ds as getAxisAlignedBoundingBox,
|
|
11016
11036
|
In as getBoundedOffsets,
|
|
11017
|
-
|
|
11018
|
-
|
|
11037
|
+
Fs as getFrameData,
|
|
11038
|
+
Ms as getSvgElement,
|
|
11019
11039
|
me as getWorkflow,
|
|
11020
11040
|
wA as getWorkflows,
|
|
11021
11041
|
P as graphQlManager,
|
|
11022
11042
|
fe as illustrationStepService,
|
|
11023
|
-
|
|
11043
|
+
ys as loadFont,
|
|
11024
11044
|
Zt as materialStepService,
|
|
11025
11045
|
$t as modelStepService,
|
|
11026
11046
|
Pn as moduleStepService,
|
|
11027
11047
|
j as optionService,
|
|
11028
|
-
|
|
11048
|
+
Ys as patternImageDataCache,
|
|
11029
11049
|
x as persistenceService,
|
|
11030
11050
|
_t as pictureStepService,
|
|
11031
11051
|
eA as questionStepService,
|
|
11032
|
-
|
|
11033
|
-
|
|
11034
|
-
|
|
11035
|
-
|
|
11052
|
+
Ss as registerFetchImplementation,
|
|
11053
|
+
xs as registerWindowImplementation,
|
|
11054
|
+
Ps as rehydrateSerializedLayout,
|
|
11055
|
+
Ns as setCanvasModule,
|
|
11036
11056
|
re as shapeStepService,
|
|
11037
11057
|
fn as shortenUrl,
|
|
11038
11058
|
q as spiffCoreConfiguration,
|
|
11039
|
-
|
|
11059
|
+
Ji as stepAspectValuesToDesignInputSteps,
|
|
11040
11060
|
K as textStepService,
|
|
11041
11061
|
Gn as toast
|
|
11042
11062
|
};
|