@spiffcommerce/core 21.7.0 → 21.8.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +427 -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
|
|
@@ -8918,6 +8938,7 @@ class Ft {
|
|
|
8918
8938
|
const e = await P.getShadowGraphqlClient().query({
|
|
8919
8939
|
query: Ha,
|
|
8920
8940
|
errorPolicy: "all",
|
|
8941
|
+
fetchPolicy: "no-cache",
|
|
8921
8942
|
variables: {
|
|
8922
8943
|
id: this.id
|
|
8923
8944
|
},
|
|
@@ -9035,7 +9056,7 @@ class Ft {
|
|
|
9035
9056
|
}
|
|
9036
9057
|
async updateTransactionOrder() {
|
|
9037
9058
|
await P.getShadowGraphqlClient().mutate({
|
|
9038
|
-
mutation:
|
|
9059
|
+
mutation: Ka,
|
|
9039
9060
|
variables: {
|
|
9040
9061
|
id: this.id,
|
|
9041
9062
|
transactionIds: this.workflowExperiences.map((e) => e.getWorkflowManager().getTransaction().id)
|
|
@@ -9068,14 +9089,14 @@ class Ft {
|
|
|
9068
9089
|
);
|
|
9069
9090
|
}
|
|
9070
9091
|
}
|
|
9071
|
-
const
|
|
9092
|
+
const ai = D`
|
|
9072
9093
|
mutation processFlowCreate($processFlowId: String!, $inputs: [String]!) {
|
|
9073
9094
|
processExecutionCreate(processFlowId: $processFlowId, inputs: $inputs) {
|
|
9074
9095
|
id
|
|
9075
9096
|
}
|
|
9076
9097
|
}
|
|
9077
9098
|
`;
|
|
9078
|
-
class
|
|
9099
|
+
class ii {
|
|
9079
9100
|
/**
|
|
9080
9101
|
*
|
|
9081
9102
|
* @param id
|
|
@@ -9086,7 +9107,7 @@ class ai {
|
|
|
9086
9107
|
async execute(e, t, A) {
|
|
9087
9108
|
var B, l, d;
|
|
9088
9109
|
const a = (l = (B = (await P.getShadowGraphqlClient().mutate({
|
|
9089
|
-
mutation:
|
|
9110
|
+
mutation: ai,
|
|
9090
9111
|
variables: {
|
|
9091
9112
|
processFlowId: e,
|
|
9092
9113
|
inputs: [...t.map((w) => w.getValueForTransmission())]
|
|
@@ -9102,7 +9123,7 @@ class ai {
|
|
|
9102
9123
|
let s = !1, o = 0, r, g;
|
|
9103
9124
|
for (; !s; ) {
|
|
9104
9125
|
r = await P.getShadowGraphqlClient().query({
|
|
9105
|
-
query:
|
|
9126
|
+
query: D`
|
|
9106
9127
|
query getProcessFlowExecution($ids: [String]!) {
|
|
9107
9128
|
processExecutions(ids: $ids) {
|
|
9108
9129
|
id
|
|
@@ -9128,7 +9149,7 @@ class ai {
|
|
|
9128
9149
|
"Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
|
|
9129
9150
|
);
|
|
9130
9151
|
if (w.completedAt) {
|
|
9131
|
-
s = !0, g = new
|
|
9152
|
+
s = !0, g = new si(w);
|
|
9132
9153
|
break;
|
|
9133
9154
|
}
|
|
9134
9155
|
o += 1;
|
|
@@ -9142,7 +9163,7 @@ class ai {
|
|
|
9142
9163
|
return Promise.resolve(g);
|
|
9143
9164
|
}
|
|
9144
9165
|
}
|
|
9145
|
-
class
|
|
9166
|
+
class si {
|
|
9146
9167
|
constructor(e) {
|
|
9147
9168
|
this.execution = e;
|
|
9148
9169
|
}
|
|
@@ -9156,14 +9177,14 @@ class ii {
|
|
|
9156
9177
|
* @returns The nodes contained within the execution.
|
|
9157
9178
|
*/
|
|
9158
9179
|
getNodes() {
|
|
9159
|
-
return this.execution.nodes.map((e) => new
|
|
9180
|
+
return this.execution.nodes.map((e) => new Qe(e));
|
|
9160
9181
|
}
|
|
9161
9182
|
/**
|
|
9162
9183
|
* @param type The type of node to return.
|
|
9163
9184
|
* @returns A list of nodes matching the requested type.
|
|
9164
9185
|
*/
|
|
9165
9186
|
getNodesByType(e) {
|
|
9166
|
-
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));
|
|
9167
9188
|
}
|
|
9168
9189
|
/**
|
|
9169
9190
|
* @returns A list of input nodes that exist in this execution.
|
|
@@ -9172,7 +9193,7 @@ class ii {
|
|
|
9172
9193
|
return this.execution.nodes.filter(
|
|
9173
9194
|
(e) => e.type === "StartTerminal"
|
|
9174
9195
|
/* StartTerminal */
|
|
9175
|
-
).map((e) => new
|
|
9196
|
+
).map((e) => new Qe(e));
|
|
9176
9197
|
}
|
|
9177
9198
|
/**
|
|
9178
9199
|
* @returns A list of out put nodes that exist in this execution.
|
|
@@ -9181,7 +9202,7 @@ class ii {
|
|
|
9181
9202
|
return this.execution.nodes.filter(
|
|
9182
9203
|
(e) => e.type === "EndTerminal"
|
|
9183
9204
|
/* EndTerminal */
|
|
9184
|
-
).map((e) => new
|
|
9205
|
+
).map((e) => new Qe(e));
|
|
9185
9206
|
}
|
|
9186
9207
|
/**
|
|
9187
9208
|
* @returns A date object representing the point in time this execution completed.
|
|
@@ -9198,7 +9219,7 @@ class ii {
|
|
|
9198
9219
|
return new Date(this.execution.failedAt);
|
|
9199
9220
|
}
|
|
9200
9221
|
}
|
|
9201
|
-
class
|
|
9222
|
+
class Qe {
|
|
9202
9223
|
constructor(e) {
|
|
9203
9224
|
this.node = e;
|
|
9204
9225
|
}
|
|
@@ -9227,8 +9248,8 @@ class lt {
|
|
|
9227
9248
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
9228
9249
|
}
|
|
9229
9250
|
}
|
|
9230
|
-
var
|
|
9231
|
-
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 {
|
|
9232
9253
|
constructor(e) {
|
|
9233
9254
|
super(`"${e}"`);
|
|
9234
9255
|
}
|
|
@@ -9243,7 +9264,7 @@ class dA extends lt {
|
|
|
9243
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);
|
|
9244
9265
|
}
|
|
9245
9266
|
}
|
|
9246
|
-
class
|
|
9267
|
+
class Ti extends lt {
|
|
9247
9268
|
constructor(e) {
|
|
9248
9269
|
super(`[${e.map((t) => t.getRaw()).join(",")}]`);
|
|
9249
9270
|
}
|
|
@@ -9290,7 +9311,7 @@ class Mt {
|
|
|
9290
9311
|
return e.sort((t, A) => (t.index ?? 0) - (A.index ?? 0)).map((t) => new ce(t));
|
|
9291
9312
|
}
|
|
9292
9313
|
}
|
|
9293
|
-
const
|
|
9314
|
+
const ri = D`
|
|
9294
9315
|
fragment RegionFields on Region {
|
|
9295
9316
|
width
|
|
9296
9317
|
top
|
|
@@ -9308,7 +9329,7 @@ const oi = F`
|
|
|
9308
9329
|
height
|
|
9309
9330
|
}
|
|
9310
9331
|
}
|
|
9311
|
-
`,
|
|
9332
|
+
`, ci = D`
|
|
9312
9333
|
fragment LookAtAnimationFields on LookAtAnimation {
|
|
9313
9334
|
latDeg
|
|
9314
9335
|
lonDeg
|
|
@@ -9319,7 +9340,7 @@ const oi = F`
|
|
|
9319
9340
|
z
|
|
9320
9341
|
}
|
|
9321
9342
|
}
|
|
9322
|
-
`,
|
|
9343
|
+
`, gi = D`
|
|
9323
9344
|
fragment RenderingPipelineConfigurationFields on RenderingPipelineConfiguration {
|
|
9324
9345
|
antiAliasing {
|
|
9325
9346
|
samples
|
|
@@ -9403,21 +9424,21 @@ const oi = F`
|
|
|
9403
9424
|
weight
|
|
9404
9425
|
}
|
|
9405
9426
|
}
|
|
9406
|
-
`,
|
|
9427
|
+
`, li = D`
|
|
9407
9428
|
fragment ModelAnimationFields on ModelAnimation {
|
|
9408
9429
|
from
|
|
9409
9430
|
to
|
|
9410
9431
|
loop
|
|
9411
9432
|
name
|
|
9412
9433
|
}
|
|
9413
|
-
`,
|
|
9434
|
+
`, Bi = (c) => D`
|
|
9414
9435
|
${ve(c)}
|
|
9415
9436
|
${it}
|
|
9416
9437
|
${Kt}
|
|
9417
|
-
${oi}
|
|
9418
9438
|
${ri}
|
|
9419
9439
|
${ci}
|
|
9420
9440
|
${gi}
|
|
9441
|
+
${li}
|
|
9421
9442
|
query GetWorkflows($ids: [String!]!) {
|
|
9422
9443
|
workflows(ids: $ids) {
|
|
9423
9444
|
allowProofDownload
|
|
@@ -9795,7 +9816,7 @@ const oi = F`
|
|
|
9795
9816
|
}
|
|
9796
9817
|
}
|
|
9797
9818
|
}
|
|
9798
|
-
`,
|
|
9819
|
+
`, di = D`
|
|
9799
9820
|
query GetTransactionForPartner($id: String!) {
|
|
9800
9821
|
transactions(ids: [$id]) {
|
|
9801
9822
|
id
|
|
@@ -9812,7 +9833,7 @@ const oi = F`
|
|
|
9812
9833
|
}
|
|
9813
9834
|
}
|
|
9814
9835
|
}
|
|
9815
|
-
`,
|
|
9836
|
+
`, wi = D`
|
|
9816
9837
|
query GetIntegrationWithPartnerAndLogo {
|
|
9817
9838
|
currentIntegration {
|
|
9818
9839
|
id
|
|
@@ -9830,7 +9851,7 @@ const oi = F`
|
|
|
9830
9851
|
}
|
|
9831
9852
|
}
|
|
9832
9853
|
}
|
|
9833
|
-
`,
|
|
9854
|
+
`, Ei = D`
|
|
9834
9855
|
${ve(!1)}
|
|
9835
9856
|
query GetWorkflowForTheme($id: String!) {
|
|
9836
9857
|
workflow(id: $id) {
|
|
@@ -9852,7 +9873,7 @@ const oi = F`
|
|
|
9852
9873
|
}
|
|
9853
9874
|
}
|
|
9854
9875
|
}
|
|
9855
|
-
`,
|
|
9876
|
+
`, hi = D`
|
|
9856
9877
|
query GetCustomer($emailAddress: String!) {
|
|
9857
9878
|
customer(emailAddress: $emailAddress) {
|
|
9858
9879
|
id
|
|
@@ -9862,7 +9883,7 @@ const oi = F`
|
|
|
9862
9883
|
}
|
|
9863
9884
|
}
|
|
9864
9885
|
}
|
|
9865
|
-
`,
|
|
9886
|
+
`, Ci = D`
|
|
9866
9887
|
mutation CustomerCreate($details: CustomerDetailsInput!) {
|
|
9867
9888
|
customerCreate(details: $details) {
|
|
9868
9889
|
id
|
|
@@ -9872,7 +9893,7 @@ const oi = F`
|
|
|
9872
9893
|
}
|
|
9873
9894
|
}
|
|
9874
9895
|
}
|
|
9875
|
-
`,
|
|
9896
|
+
`, ui = D`
|
|
9876
9897
|
mutation CustomerAuthenticate($loginToken: String!) {
|
|
9877
9898
|
customerAuthenticate(loginToken: $loginToken) {
|
|
9878
9899
|
id
|
|
@@ -9899,11 +9920,11 @@ const oi = F`
|
|
|
9899
9920
|
}
|
|
9900
9921
|
}
|
|
9901
9922
|
}
|
|
9902
|
-
`, Qi =
|
|
9923
|
+
`, Qi = D`
|
|
9903
9924
|
mutation CustomerGenerateVerificationCode($emailAddress: String!) {
|
|
9904
9925
|
customerGenerateVerificationCode(emailAddress: $emailAddress)
|
|
9905
9926
|
}
|
|
9906
|
-
`,
|
|
9927
|
+
`, mi = D`
|
|
9907
9928
|
mutation CustomerVerifyCode($emailAddress: String!, $verificationCode: String!) {
|
|
9908
9929
|
customerVerifyCode(emailAddress: $emailAddress, verificationCode: $verificationCode) {
|
|
9909
9930
|
id
|
|
@@ -9947,10 +9968,10 @@ const oi = F`
|
|
|
9947
9968
|
(e = i.fontData) != null && e.assetUrl && await tt(i.fontData.assetUrl);
|
|
9948
9969
|
}
|
|
9949
9970
|
}
|
|
9950
|
-
},
|
|
9971
|
+
}, Ii = async (c, e) => {
|
|
9951
9972
|
var n;
|
|
9952
9973
|
const t = await P.getShadowGraphqlClient().query({
|
|
9953
|
-
query:
|
|
9974
|
+
query: Bi(((n = e == null ? void 0 : e.assets) == null ? void 0 : n.metadata) || !1),
|
|
9954
9975
|
errorPolicy: "all",
|
|
9955
9976
|
fetchPolicy: "no-cache",
|
|
9956
9977
|
variables: {
|
|
@@ -9967,7 +9988,7 @@ const oi = F`
|
|
|
9967
9988
|
}), le.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
9968
9989
|
});
|
|
9969
9990
|
}), A;
|
|
9970
|
-
},
|
|
9991
|
+
}, pi = async (c, e) => {
|
|
9971
9992
|
const A = (await e).find((n) => n.id === c);
|
|
9972
9993
|
if (!A)
|
|
9973
9994
|
throw new Error(`Workflow not found: ${c}`);
|
|
@@ -9976,11 +9997,11 @@ const oi = F`
|
|
|
9976
9997
|
const t = c.map((s) => le.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
|
|
9977
9998
|
if (A.length === 0)
|
|
9978
9999
|
return Promise.all(t);
|
|
9979
|
-
const n =
|
|
9980
|
-
(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))
|
|
9981
10002
|
), i = t.filter((s) => s !== void 0);
|
|
9982
10003
|
return await Promise.all(i.concat(a));
|
|
9983
|
-
}, 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) => ({
|
|
9984
10005
|
id: J(),
|
|
9985
10006
|
panelId: e.name,
|
|
9986
10007
|
name: e.name,
|
|
@@ -9995,9 +10016,9 @@ const oi = F`
|
|
|
9995
10016
|
editableArea: e.editableArea
|
|
9996
10017
|
})), ze = (c, e) => {
|
|
9997
10018
|
const t = c.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
9998
|
-
return A ? Object.values(A.layouts).map((n) => n.layout) :
|
|
10019
|
+
return A ? Object.values(A.layouts).map((n) => n.layout) : fi(e.panels);
|
|
9999
10020
|
};
|
|
10000
|
-
class
|
|
10021
|
+
class Di {
|
|
10001
10022
|
constructor(e) {
|
|
10002
10023
|
this.updateTransactionState = async (t) => {
|
|
10003
10024
|
try {
|
|
@@ -10025,11 +10046,11 @@ class fi {
|
|
|
10025
10046
|
getFlowService() {
|
|
10026
10047
|
if (!TA())
|
|
10027
10048
|
throw new Error("Application key required to use Flow Service.");
|
|
10028
|
-
return new
|
|
10049
|
+
return new ii();
|
|
10029
10050
|
}
|
|
10030
10051
|
async getIntegration() {
|
|
10031
10052
|
return (await P.getShadowGraphqlClient().query({
|
|
10032
|
-
query:
|
|
10053
|
+
query: wi,
|
|
10033
10054
|
errorPolicy: "all"
|
|
10034
10055
|
})).data.currentIntegration;
|
|
10035
10056
|
}
|
|
@@ -10076,7 +10097,7 @@ class fi {
|
|
|
10076
10097
|
async authenticateTransactionFromLocalStorage(e) {
|
|
10077
10098
|
var g, B, l, d, w, h;
|
|
10078
10099
|
const t = P.getShadowGraphqlClient(), A = await t.query({
|
|
10079
|
-
query:
|
|
10100
|
+
query: di,
|
|
10080
10101
|
errorPolicy: "all",
|
|
10081
10102
|
fetchPolicy: "no-cache",
|
|
10082
10103
|
variables: {
|
|
@@ -10099,13 +10120,13 @@ class fi {
|
|
|
10099
10120
|
if (E && await this.authenticateCustomerId(E)) {
|
|
10100
10121
|
const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
10101
10122
|
(f) => {
|
|
10102
|
-
var
|
|
10103
|
-
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);
|
|
10104
10125
|
}
|
|
10105
10126
|
)) || ((h = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : h.find(
|
|
10106
10127
|
(f) => {
|
|
10107
|
-
var
|
|
10108
|
-
return ((
|
|
10128
|
+
var Q;
|
|
10129
|
+
return ((Q = f.transaction) == null ? void 0 : Q.id) === e;
|
|
10109
10130
|
}
|
|
10110
10131
|
));
|
|
10111
10132
|
if (C)
|
|
@@ -10116,7 +10137,7 @@ class fi {
|
|
|
10116
10137
|
}
|
|
10117
10138
|
}
|
|
10118
10139
|
const r = (await t.query({
|
|
10119
|
-
query:
|
|
10140
|
+
query: Ei,
|
|
10120
10141
|
errorPolicy: "all",
|
|
10121
10142
|
variables: {
|
|
10122
10143
|
id: n.workflowId
|
|
@@ -10152,7 +10173,7 @@ class fi {
|
|
|
10152
10173
|
var i;
|
|
10153
10174
|
this.customer = void 0;
|
|
10154
10175
|
const t = P.getShadowGraphqlClient(), n = (await t.query({
|
|
10155
|
-
query:
|
|
10176
|
+
query: hi,
|
|
10156
10177
|
errorPolicy: "all",
|
|
10157
10178
|
fetchPolicy: "no-cache",
|
|
10158
10179
|
variables: {
|
|
@@ -10161,7 +10182,7 @@ class fi {
|
|
|
10161
10182
|
})).data.customer;
|
|
10162
10183
|
if (!n.id) {
|
|
10163
10184
|
const o = (i = (await t.mutate({
|
|
10164
|
-
mutation:
|
|
10185
|
+
mutation: Ci,
|
|
10165
10186
|
errorPolicy: "all",
|
|
10166
10187
|
fetchPolicy: "no-cache",
|
|
10167
10188
|
variables: {
|
|
@@ -10193,7 +10214,7 @@ class fi {
|
|
|
10193
10214
|
if (!n)
|
|
10194
10215
|
return !1;
|
|
10195
10216
|
const i = (s = (await t.mutate({
|
|
10196
|
-
mutation:
|
|
10217
|
+
mutation: ui,
|
|
10197
10218
|
errorPolicy: "all",
|
|
10198
10219
|
fetchPolicy: "no-cache",
|
|
10199
10220
|
variables: {
|
|
@@ -10223,7 +10244,7 @@ class fi {
|
|
|
10223
10244
|
async verifyCode(e, t) {
|
|
10224
10245
|
var a, i;
|
|
10225
10246
|
const n = (a = (await P.getShadowGraphqlClient().mutate({
|
|
10226
|
-
mutation:
|
|
10247
|
+
mutation: mi,
|
|
10227
10248
|
errorPolicy: "all",
|
|
10228
10249
|
fetchPolicy: "no-cache",
|
|
10229
10250
|
variables: {
|
|
@@ -10325,10 +10346,10 @@ class fi {
|
|
|
10325
10346
|
if (!n)
|
|
10326
10347
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
10327
10348
|
const a = async () => {
|
|
10328
|
-
var
|
|
10349
|
+
var u, C;
|
|
10329
10350
|
const E = P.getShadowGraphqlClient();
|
|
10330
10351
|
if (n.type === "transaction") {
|
|
10331
|
-
const { transactionId: f, readOnly:
|
|
10352
|
+
const { transactionId: f, readOnly: Q } = n, m = await E.query({
|
|
10332
10353
|
query: we,
|
|
10333
10354
|
variables: {
|
|
10334
10355
|
ids: [f]
|
|
@@ -10336,7 +10357,7 @@ class fi {
|
|
|
10336
10357
|
errorPolicy: "all",
|
|
10337
10358
|
fetchPolicy: "no-cache"
|
|
10338
10359
|
});
|
|
10339
|
-
if (!((
|
|
10360
|
+
if (!((u = m.data) != null && u.transactions) || m.data.transactions.length === 0)
|
|
10340
10361
|
throw new U("Existing transaction not found.");
|
|
10341
10362
|
const I = (C = m.data) == null ? void 0 : C.transactions[0];
|
|
10342
10363
|
if (!I.workflowId)
|
|
@@ -10344,7 +10365,7 @@ class fi {
|
|
|
10344
10365
|
const p = await me(I.workflowId);
|
|
10345
10366
|
if (!I.product)
|
|
10346
10367
|
throw new U("Failed to load transaction, product not available.");
|
|
10347
|
-
return { transaction: I, workflow: p, readOnly:
|
|
10368
|
+
return { transaction: I, workflow: p, readOnly: Q };
|
|
10348
10369
|
}
|
|
10349
10370
|
if (n.type === "integration" || n.type === "external") {
|
|
10350
10371
|
const f = async () => {
|
|
@@ -10369,7 +10390,7 @@ class fi {
|
|
|
10369
10390
|
if (!y.product)
|
|
10370
10391
|
throw new U("Failed to create transaction, product not available.");
|
|
10371
10392
|
return y;
|
|
10372
|
-
},
|
|
10393
|
+
}, Q = me(n.workflowId, n == null ? void 0 : n.graphql), [m, I] = await Promise.all([f(), Q]);
|
|
10373
10394
|
return { transaction: m, workflow: I };
|
|
10374
10395
|
}
|
|
10375
10396
|
throw new U("No workflow ID provided.");
|
|
@@ -10391,16 +10412,16 @@ class fi {
|
|
|
10391
10412
|
};
|
|
10392
10413
|
if (n.type === "transaction" && i.workflowState) {
|
|
10393
10414
|
const E = JSON.parse(i.workflowState);
|
|
10394
|
-
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;
|
|
10395
10416
|
} else if (!o && n.workflowState) {
|
|
10396
10417
|
const E = JSON.parse(n.workflowState);
|
|
10397
|
-
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;
|
|
10398
10419
|
} else
|
|
10399
10420
|
r.layouts = ze(
|
|
10400
10421
|
r.transaction,
|
|
10401
10422
|
r.workflow
|
|
10402
10423
|
);
|
|
10403
|
-
if (r.renderableContextService = new
|
|
10424
|
+
if (r.renderableContextService = new ue(
|
|
10404
10425
|
r.layouts
|
|
10405
10426
|
), n.previewService ? (r.previewService = n.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
10406
10427
|
model: r.product.modelUrl,
|
|
@@ -10482,7 +10503,7 @@ class fi {
|
|
|
10482
10503
|
}));
|
|
10483
10504
|
}, i = e.map((m, I) => ({ option: m, index: I })), s = i.filter((m) => m.option.type === "transaction"), o = i.filter(
|
|
10484
10505
|
(m) => m.option.type === "integration" || m.option.type === "external"
|
|
10485
|
-
), r =
|
|
10506
|
+
), r = ut(s, 10), g = ut(o, 10), B = (await Promise.all([
|
|
10486
10507
|
...r.map(n),
|
|
10487
10508
|
...g.map(a)
|
|
10488
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) => {
|
|
@@ -10512,7 +10533,7 @@ class fi {
|
|
|
10512
10533
|
H.transaction,
|
|
10513
10534
|
H.workflow
|
|
10514
10535
|
);
|
|
10515
|
-
return H.renderableContextService = new
|
|
10536
|
+
return H.renderableContextService = new ue(
|
|
10516
10537
|
H.layouts
|
|
10517
10538
|
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: y, options: Y };
|
|
10518
10539
|
});
|
|
@@ -10520,8 +10541,8 @@ class fi {
|
|
|
10520
10541
|
const f = (await Promise.all(E)).sort((m, I) => m.index - I.index).map(async (m) => {
|
|
10521
10542
|
const { experienceOptions: I, options: p } = m, M = new Ce(this, I);
|
|
10522
10543
|
return await M.getWorkflowManager().getInitializationPromise(), p.type !== "transaction" && this.customer && await M.attachCustomerDetails({ email: this.customer.emailAddress }), M;
|
|
10523
|
-
}),
|
|
10524
|
-
return
|
|
10544
|
+
}), Q = await Promise.all(f);
|
|
10545
|
+
return Q.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
|
|
10525
10546
|
}
|
|
10526
10547
|
/**
|
|
10527
10548
|
* Initialize the client from an integration product.
|
|
@@ -10653,7 +10674,7 @@ class fi {
|
|
|
10653
10674
|
const g = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10654
10675
|
this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
|
|
10655
10676
|
}
|
|
10656
|
-
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({
|
|
10657
10678
|
model: this.experienceOptions.product.modelUrl,
|
|
10658
10679
|
contextService: this.experienceOptions.renderableContextService
|
|
10659
10680
|
}));
|
|
@@ -10679,7 +10700,7 @@ class fi {
|
|
|
10679
10700
|
this.experienceOptions.transaction,
|
|
10680
10701
|
this.experienceOptions.workflow
|
|
10681
10702
|
);
|
|
10682
|
-
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({
|
|
10683
10704
|
model: this.experienceOptions.product.modelUrl,
|
|
10684
10705
|
contextService: this.experienceOptions.renderableContextService
|
|
10685
10706
|
}));
|
|
@@ -10754,7 +10775,7 @@ class fi {
|
|
|
10754
10775
|
return e.type === "integration" ? this.getIntegrationProductById(e.integrationProductId) : this.getIntegrationProductFromExternalIds(e.externalIntegrationId, e.externalProductId);
|
|
10755
10776
|
}
|
|
10756
10777
|
}
|
|
10757
|
-
class
|
|
10778
|
+
class Oi {
|
|
10758
10779
|
getInitializationPromise() {
|
|
10759
10780
|
return Promise.resolve();
|
|
10760
10781
|
}
|
|
@@ -10879,8 +10900,8 @@ class Ti {
|
|
|
10879
10900
|
setWorkflowStateSyncEnabled(e) {
|
|
10880
10901
|
}
|
|
10881
10902
|
}
|
|
10882
|
-
var
|
|
10883
|
-
class
|
|
10903
|
+
var Fi = /* @__PURE__ */ ((c) => (c.SelectFrame = "SelectFrame", c.SelectImage = "SelectImage", c.Position = "Position", c))(Fi || {});
|
|
10904
|
+
class Mi extends W {
|
|
10884
10905
|
constructor(e, t) {
|
|
10885
10906
|
var A;
|
|
10886
10907
|
super(e, t), this.frameService = (A = this.manager.getStepSpecificServices(this.getId())) == null ? void 0 : A.frameService;
|
|
@@ -10921,121 +10942,121 @@ class Fi extends W {
|
|
|
10921
10942
|
}
|
|
10922
10943
|
}
|
|
10923
10944
|
export {
|
|
10924
|
-
|
|
10925
|
-
|
|
10945
|
+
Ti as ArrayInput,
|
|
10946
|
+
ji as AspectType,
|
|
10926
10947
|
_ as AssetNotFoundError,
|
|
10927
|
-
|
|
10928
|
-
|
|
10929
|
-
|
|
10930
|
-
|
|
10931
|
-
|
|
10948
|
+
Vi as AssetType,
|
|
10949
|
+
Wi as BringForwardCommand,
|
|
10950
|
+
Xi as BringToBackCommand,
|
|
10951
|
+
qi as BringToFrontCommand,
|
|
10952
|
+
Zi as CanvasCommand,
|
|
10932
10953
|
Oe as CollectionProduct,
|
|
10933
|
-
|
|
10934
|
-
|
|
10954
|
+
Xa as ColorOptionGlobalPropertyHandle,
|
|
10955
|
+
$i as CommandContext,
|
|
10935
10956
|
cn as ConversionDataType,
|
|
10936
10957
|
rn as ConversionLocation,
|
|
10937
|
-
|
|
10938
|
-
|
|
10939
|
-
|
|
10940
|
-
|
|
10941
|
-
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
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,
|
|
10948
10969
|
pn as FrameService,
|
|
10949
|
-
|
|
10950
|
-
|
|
10970
|
+
Fi as FrameStep,
|
|
10971
|
+
Mi as FrameStepHandle,
|
|
10951
10972
|
gt as GlobalPropertyHandle,
|
|
10952
|
-
|
|
10973
|
+
ss as GroupCommand,
|
|
10953
10974
|
$n as IllustrationStepHandle,
|
|
10954
10975
|
Ne as InformationMessageType,
|
|
10955
10976
|
ia as InformationStepHandle,
|
|
10956
10977
|
Mt as IntegrationProduct,
|
|
10957
10978
|
sn as IntegrationType,
|
|
10958
|
-
|
|
10959
|
-
|
|
10979
|
+
os as LayoutElementFactory,
|
|
10980
|
+
rs as LayoutElementType,
|
|
10960
10981
|
z as LayoutNotFoundError,
|
|
10961
10982
|
_n as MaterialStepHandle,
|
|
10962
10983
|
Ye as MisconfigurationError,
|
|
10963
|
-
|
|
10984
|
+
Oi as MockWorkflowManager,
|
|
10964
10985
|
ea as ModelStepHandle,
|
|
10965
|
-
|
|
10986
|
+
cs as MoveCommand,
|
|
10966
10987
|
dA as ObjectInput,
|
|
10967
|
-
|
|
10988
|
+
oi as ObjectInputType,
|
|
10968
10989
|
BA as OptionGlobalPropertyHandle,
|
|
10969
10990
|
ye as OptionNotFoundError,
|
|
10970
10991
|
oe as ParseError,
|
|
10971
10992
|
ta as PictureStepHandle,
|
|
10972
10993
|
on as ProductCameraRig,
|
|
10973
|
-
|
|
10994
|
+
ti as ProductCollection,
|
|
10974
10995
|
ce as ProductWorkflow,
|
|
10975
10996
|
le as PromiseCache,
|
|
10976
10997
|
Xt as PromiseQueue,
|
|
10977
10998
|
Aa as QuestionStepHandle,
|
|
10978
10999
|
Wt as QueueablePromise,
|
|
10979
|
-
|
|
11000
|
+
gs as ResizeCommand,
|
|
10980
11001
|
ge as ResourceNotFoundError,
|
|
10981
|
-
|
|
10982
|
-
|
|
11002
|
+
ls as RotateCommand,
|
|
11003
|
+
Bs as SendBackwardsCommand,
|
|
10983
11004
|
na as ShapeStepHandle,
|
|
10984
|
-
|
|
11005
|
+
Di as SpiffCommerceClient,
|
|
10985
11006
|
Se as StakeholderType,
|
|
10986
|
-
|
|
11007
|
+
ds as StepAspectType,
|
|
10987
11008
|
W as StepHandle,
|
|
10988
|
-
|
|
10989
|
-
|
|
10990
|
-
|
|
10991
|
-
|
|
11009
|
+
ws as StepType,
|
|
11010
|
+
Es as TextChangeCommand,
|
|
11011
|
+
Wa as TextGlobalPropertyHandle,
|
|
11012
|
+
Li as TextInput,
|
|
10992
11013
|
aa as TextStepHandle,
|
|
10993
|
-
|
|
10994
|
-
|
|
11014
|
+
ni as Transform,
|
|
11015
|
+
Ai as TransformCollection,
|
|
10995
11016
|
k as UnhandledBehaviorError,
|
|
10996
|
-
|
|
11017
|
+
hs as UnitOfMeasurement,
|
|
10997
11018
|
X as Variant,
|
|
10998
11019
|
Ea as WorkflowExperienceEventType,
|
|
10999
11020
|
Ce as WorkflowExperienceImpl,
|
|
11000
11021
|
T as assetService,
|
|
11001
11022
|
la as createDesign,
|
|
11002
|
-
|
|
11023
|
+
Cs as dataUrlFromExternalUrl,
|
|
11003
11024
|
Te as designService,
|
|
11004
|
-
|
|
11025
|
+
us as determineCorrectFontSizeAndLines,
|
|
11005
11026
|
Fn as digitalContentStepService,
|
|
11006
11027
|
Qs as findElement,
|
|
11007
|
-
|
|
11028
|
+
ms as frameDataCache,
|
|
11008
11029
|
Xe as frameStepService,
|
|
11009
|
-
|
|
11030
|
+
Is as generate,
|
|
11010
11031
|
Ma as generateCommands,
|
|
11011
|
-
|
|
11012
|
-
|
|
11013
|
-
|
|
11014
|
-
|
|
11032
|
+
ps as generateSVGWithUnknownColors,
|
|
11033
|
+
bi as generateStateFromDesignInputSteps,
|
|
11034
|
+
fs as getAttributesFromArrayBuffer,
|
|
11035
|
+
Ds as getAxisAlignedBoundingBox,
|
|
11015
11036
|
In as getBoundedOffsets,
|
|
11016
|
-
|
|
11017
|
-
|
|
11037
|
+
Fs as getFrameData,
|
|
11038
|
+
Ms as getSvgElement,
|
|
11018
11039
|
me as getWorkflow,
|
|
11019
11040
|
wA as getWorkflows,
|
|
11020
11041
|
P as graphQlManager,
|
|
11021
11042
|
fe as illustrationStepService,
|
|
11022
|
-
|
|
11043
|
+
ys as loadFont,
|
|
11023
11044
|
Zt as materialStepService,
|
|
11024
11045
|
$t as modelStepService,
|
|
11025
11046
|
Pn as moduleStepService,
|
|
11026
11047
|
j as optionService,
|
|
11027
|
-
|
|
11048
|
+
Ys as patternImageDataCache,
|
|
11028
11049
|
x as persistenceService,
|
|
11029
11050
|
_t as pictureStepService,
|
|
11030
11051
|
eA as questionStepService,
|
|
11031
|
-
|
|
11032
|
-
|
|
11033
|
-
|
|
11034
|
-
|
|
11052
|
+
Ss as registerFetchImplementation,
|
|
11053
|
+
xs as registerWindowImplementation,
|
|
11054
|
+
Ps as rehydrateSerializedLayout,
|
|
11055
|
+
Ns as setCanvasModule,
|
|
11035
11056
|
re as shapeStepService,
|
|
11036
11057
|
fn as shortenUrl,
|
|
11037
11058
|
q as spiffCoreConfiguration,
|
|
11038
|
-
|
|
11059
|
+
Ji as stepAspectValuesToDesignInputSteps,
|
|
11039
11060
|
K as textStepService,
|
|
11040
11061
|
Gn as toast
|
|
11041
11062
|
};
|