@spiffcommerce/core 16.2.2-0 → 16.2.3-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -1
- package/dist/index.js +326 -321
- package/dist/index.umd.cjs +24 -24
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHttpLink as Ct, InMemoryCache as Qt, ApolloClient as ut, from as mt, gql as y } from "@apollo/client/core";
|
|
2
|
-
import { getAttributesFromArrayBuffer as De, AssetType as ce, StepType as
|
|
2
|
+
import { getAttributesFromArrayBuffer as De, AssetType as ce, StepType as f, StepAspectType as O, getFrameData as Ae, frameDataCache as pt, UpdateFramePattern as fe, calculateOffsets as ee, LayoutElementType as H, generate as v, CreateElementCommand as b, generateSVGWithUnknownColors as Fe, svgObjectURL as nA, fetchAsString as Z, DeleteElementCommand as $, GroupCommand as G, generateDefaultRectangleFrameSvg as ge, GetSVGDimensions as It, patternImageDataCache as le, fetchAsArrayBuffer as Me, findElement as MA, modifySVGWithElementProperties as Dt, IllustrationColorCommand as VA, IllustrationCacheCommand as ft, getFontMetrics as Ft, getPatternImageData as WA, FontColorCommand as Mt, FontImageFillCommand as TA, applyTextTransformations as XA, determineCorrectFontSizeAndLines as IA, FontSourceCommand as Be, loadFontFromExternalUrl as DA, TextChangeCommand as yt, FontSizeCommand as Yt, createElementNS as St, createElement as wA, loadFontFromDataUrl as UA, UpdateWorkflowStateCommand as de, CommandContext as xt, createCanvas as yA, getSvgElement as ye, LayoutRenderingPurpose as Ye, renderPapyrusComponentAsString as Se, loadImage as xe, getDomParser as Ne, fetch as Re, toBase64 as we, getVariant as Nt, generateFrameSVG as Rt, getDefaultVariant as GA, domParser as Pe, sanitizeSvgTree as He, traverse as Pt, xmlSerializer as Ue, arrayBufferToDataUrl as Ht, loadFontFaceSet as Ut, CreateLayoutCommand as Gt, sortElementsByLayersWithIndex as vt, AspectType as fA, rehydrateSerializedLayout as AA } from "@spiffcommerce/papyrus";
|
|
3
3
|
import { AssetType as Ls, BringForwardCommand as Os, BringToBackCommand as zs, BringToFrontCommand as Ks, CanvasCommand as js, CommandContext as Vs, CreateElementCommand as Ws, CreateLayoutCommand as Xs, DeleteElementCommand as qs, FontAlignmentCommand as Zs, FontColorCommand as $s, FontSizeCommand as _s, FontSourceCommand as Ai, GroupCommand as ei, LayoutElementFactory as ti, LayoutElementType as ai, MoveCommand as ni, ResizeCommand as si, RotateCommand as ii, SendBackwardsCommand as oi, StepAspectType as ri, StepType as ci, TextChangeCommand as gi, UnitOfMeasurement as li, dataUrlFromExternalUrl as Bi, determineCorrectFontSizeAndLines as di, findElement as wi, frameDataCache as Ei, generate as hi, generateSVGWithUnknownColors as Ci, getAttributesFromArrayBuffer as Qi, getAxisAlignedBoundingBox as ui, getFrameData as mi, getSvgElement as pi, loadFontFromDataUrl as Ii, loadFontFromExternalUrl as Di, patternImageDataCache as fi, registerFetchImplementation as Fi, registerWindowImplementation as Mi, rehydrateSerializedLayout as yi } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as kt } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as Jt } from "@apollo/client/link/error";
|
|
@@ -1098,14 +1098,14 @@ const Ve = y`
|
|
|
1098
1098
|
const A = [];
|
|
1099
1099
|
for (const e of g.steps)
|
|
1100
1100
|
switch (e.type) {
|
|
1101
|
-
case
|
|
1101
|
+
case f.DigitalContent:
|
|
1102
1102
|
e.data.varyUpload && A.push({
|
|
1103
1103
|
stepName: e.stepName,
|
|
1104
1104
|
stepType: e.type,
|
|
1105
1105
|
aspectType: O.Upload
|
|
1106
1106
|
});
|
|
1107
1107
|
break;
|
|
1108
|
-
case
|
|
1108
|
+
case f.Frame:
|
|
1109
1109
|
const a = e.data;
|
|
1110
1110
|
a.varySelection && e.option && A.push({
|
|
1111
1111
|
stepName: e.stepName,
|
|
@@ -1117,7 +1117,7 @@ const Ve = y`
|
|
|
1117
1117
|
aspectType: O.Upload
|
|
1118
1118
|
});
|
|
1119
1119
|
break;
|
|
1120
|
-
case
|
|
1120
|
+
case f.Illustration:
|
|
1121
1121
|
const n = e.data;
|
|
1122
1122
|
n.varySelection && e.option && A.push({
|
|
1123
1123
|
stepName: e.stepName,
|
|
@@ -1129,42 +1129,42 @@ const Ve = y`
|
|
|
1129
1129
|
aspectType: O.Colors
|
|
1130
1130
|
});
|
|
1131
1131
|
break;
|
|
1132
|
-
case
|
|
1132
|
+
case f.Material:
|
|
1133
1133
|
e.data.varySelection && A.push({
|
|
1134
1134
|
stepName: e.stepName,
|
|
1135
1135
|
stepType: e.type,
|
|
1136
1136
|
aspectType: O.Selection
|
|
1137
1137
|
});
|
|
1138
1138
|
break;
|
|
1139
|
-
case
|
|
1139
|
+
case f.Model:
|
|
1140
1140
|
e.data.varySelection && A.push({
|
|
1141
1141
|
stepName: e.stepName,
|
|
1142
1142
|
stepType: e.type,
|
|
1143
1143
|
aspectType: O.Selection
|
|
1144
1144
|
});
|
|
1145
1145
|
break;
|
|
1146
|
-
case
|
|
1146
|
+
case f.Picture:
|
|
1147
1147
|
e.data.varySelection && A.push({
|
|
1148
1148
|
stepName: e.stepName,
|
|
1149
1149
|
stepType: e.type,
|
|
1150
1150
|
aspectType: O.Selection
|
|
1151
1151
|
});
|
|
1152
1152
|
break;
|
|
1153
|
-
case
|
|
1153
|
+
case f.Question:
|
|
1154
1154
|
e.data.varySelections && A.push({
|
|
1155
1155
|
stepName: e.stepName,
|
|
1156
1156
|
stepType: e.type,
|
|
1157
1157
|
aspectType: O.Selections
|
|
1158
1158
|
});
|
|
1159
1159
|
break;
|
|
1160
|
-
case
|
|
1160
|
+
case f.Shape:
|
|
1161
1161
|
e.data.varySelection && A.push({
|
|
1162
1162
|
stepName: e.stepName,
|
|
1163
1163
|
stepType: e.type,
|
|
1164
1164
|
aspectType: O.Selection
|
|
1165
1165
|
});
|
|
1166
1166
|
break;
|
|
1167
|
-
case
|
|
1167
|
+
case f.Text:
|
|
1168
1168
|
const B = e.data;
|
|
1169
1169
|
B.varyText && A.push({
|
|
1170
1170
|
stepName: e.stepName,
|
|
@@ -1182,7 +1182,7 @@ const Ve = y`
|
|
|
1182
1182
|
break;
|
|
1183
1183
|
}
|
|
1184
1184
|
return A;
|
|
1185
|
-
}, iA = [
|
|
1185
|
+
}, iA = [f.SilentIllustration, f.ProductOverlay], Ea = async (g, A, e) => {
|
|
1186
1186
|
var a;
|
|
1187
1187
|
const t = [];
|
|
1188
1188
|
g.introduction && t.push({
|
|
@@ -1190,7 +1190,7 @@ const Ve = y`
|
|
|
1190
1190
|
title: g.name,
|
|
1191
1191
|
renderableSteps: [
|
|
1192
1192
|
{
|
|
1193
|
-
type:
|
|
1193
|
+
type: f.Introduction,
|
|
1194
1194
|
stepName: "Introduction",
|
|
1195
1195
|
stepTitle: g.name,
|
|
1196
1196
|
helpText: g.introduction,
|
|
@@ -1204,37 +1204,37 @@ const Ve = y`
|
|
|
1204
1204
|
if (A.bulkScene) {
|
|
1205
1205
|
let i = !1;
|
|
1206
1206
|
switch (n.type) {
|
|
1207
|
-
case
|
|
1207
|
+
case f.DigitalContent:
|
|
1208
1208
|
n.data.varyUpload && (i = !0);
|
|
1209
1209
|
break;
|
|
1210
|
-
case
|
|
1210
|
+
case f.Frame:
|
|
1211
1211
|
{
|
|
1212
1212
|
const o = n.data;
|
|
1213
1213
|
o.varyUpload && (o.varySelection || !n.option) && (i = !0);
|
|
1214
1214
|
}
|
|
1215
1215
|
break;
|
|
1216
|
-
case
|
|
1216
|
+
case f.Illustration:
|
|
1217
1217
|
{
|
|
1218
1218
|
const o = n.data;
|
|
1219
1219
|
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColors || !o.colorPickerEnabled) && (i = !0);
|
|
1220
1220
|
}
|
|
1221
1221
|
break;
|
|
1222
|
-
case
|
|
1222
|
+
case f.Material:
|
|
1223
1223
|
n.data.varySelection && (i = !0);
|
|
1224
1224
|
break;
|
|
1225
|
-
case
|
|
1225
|
+
case f.Model:
|
|
1226
1226
|
n.data.varySelection && (i = !0);
|
|
1227
1227
|
break;
|
|
1228
|
-
case
|
|
1228
|
+
case f.Picture:
|
|
1229
1229
|
n.data.varySelection && (i = !0);
|
|
1230
1230
|
break;
|
|
1231
|
-
case
|
|
1231
|
+
case f.Question:
|
|
1232
1232
|
n.data.varySelections && (i = !0);
|
|
1233
1233
|
break;
|
|
1234
|
-
case
|
|
1234
|
+
case f.Shape:
|
|
1235
1235
|
n.data.varySelection && (i = !0);
|
|
1236
1236
|
break;
|
|
1237
|
-
case
|
|
1237
|
+
case f.Text:
|
|
1238
1238
|
{
|
|
1239
1239
|
const o = n.data;
|
|
1240
1240
|
(o.varySelection || !n.option || (n.option.variants || []).length === 1) && (o.varyColor || !o.colorPickerEnabled || !o.colorOption) && o.varyText && (i = !0);
|
|
@@ -1269,7 +1269,7 @@ const Ve = y`
|
|
|
1269
1269
|
title: (n == null ? void 0 : n.sceneTitle) ?? A.bulkSceneTitle,
|
|
1270
1270
|
renderableSteps: [
|
|
1271
1271
|
{
|
|
1272
|
-
type:
|
|
1272
|
+
type: f.Bulk,
|
|
1273
1273
|
stepName: "Bulk",
|
|
1274
1274
|
stepTitle: (n == null ? void 0 : n.stepTitle) ?? A.bulkSceneTitle,
|
|
1275
1275
|
helpText: n == null ? void 0 : n.helpText,
|
|
@@ -1287,7 +1287,7 @@ const Ve = y`
|
|
|
1287
1287
|
title: A.finishSceneTitle,
|
|
1288
1288
|
renderableSteps: [
|
|
1289
1289
|
{
|
|
1290
|
-
type:
|
|
1290
|
+
type: f.Finish,
|
|
1291
1291
|
stepName: "Finish",
|
|
1292
1292
|
stepTitle: A.finishSceneTitle,
|
|
1293
1293
|
helpText: "",
|
|
@@ -1322,7 +1322,7 @@ const Ve = y`
|
|
|
1322
1322
|
const e = tA(g, A), t = [];
|
|
1323
1323
|
for (const s of e)
|
|
1324
1324
|
for (const i of s.renderableSteps)
|
|
1325
|
-
if (i.type ===
|
|
1325
|
+
if (i.type === f.Model || i.type === f.Material || i.type === f.Picture || i.type === f.Shape) {
|
|
1326
1326
|
const o = (((n = i.option) == null ? void 0 : n.variants) || []).length;
|
|
1327
1327
|
o && o > 1 && t.push(i.stepName);
|
|
1328
1328
|
} else
|
|
@@ -1596,14 +1596,14 @@ class Qe {
|
|
|
1596
1596
|
if (!n)
|
|
1597
1597
|
throw new L(a);
|
|
1598
1598
|
let s = "";
|
|
1599
|
-
if (this.configuration.type ===
|
|
1599
|
+
if (this.configuration.type === f.ProductOverlay) {
|
|
1600
1600
|
let l = "";
|
|
1601
1601
|
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), s = l, !l)
|
|
1602
1602
|
throw new SA(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1603
1603
|
}
|
|
1604
1604
|
const i = this.evaluateAssetType();
|
|
1605
1605
|
if (i === H.Image) {
|
|
1606
|
-
const l = this.configuration.type ===
|
|
1606
|
+
const l = this.configuration.type === f.SilentIllustration ? (c = this.configuration.data.asset) == null ? void 0 : c.fileLink : (r = this.product) == null ? void 0 : r.overlayImageUrl;
|
|
1607
1607
|
if (!l)
|
|
1608
1608
|
throw new Error("Undefined raster silent step source");
|
|
1609
1609
|
const d = {
|
|
@@ -1618,7 +1618,7 @@ class Qe {
|
|
|
1618
1618
|
layer: a.layer,
|
|
1619
1619
|
layerIndex: a.layerIndex,
|
|
1620
1620
|
immutable: a.immutable,
|
|
1621
|
-
productOverlay: this.configuration.type ===
|
|
1621
|
+
productOverlay: this.configuration.type === f.ProductOverlay ? !0 : void 0,
|
|
1622
1622
|
rotation: a.rotation,
|
|
1623
1623
|
excludeFromExport: this.configuration.data.excludeFromPrint,
|
|
1624
1624
|
preserveAspectRatio: "none"
|
|
@@ -1631,7 +1631,7 @@ class Qe {
|
|
|
1631
1631
|
command: new b(d, n)
|
|
1632
1632
|
};
|
|
1633
1633
|
} else {
|
|
1634
|
-
const l = this.configuration.type ===
|
|
1634
|
+
const l = this.configuration.type === f.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : s, w = await Fe(await (async () => new Promise((E, C) => {
|
|
1635
1635
|
if (!l) {
|
|
1636
1636
|
C("Undefined vector silent step source");
|
|
1637
1637
|
return;
|
|
@@ -1655,7 +1655,7 @@ class Qe {
|
|
|
1655
1655
|
layerIndex: a.layerIndex,
|
|
1656
1656
|
rotation: a.rotation,
|
|
1657
1657
|
immutable: a.immutable,
|
|
1658
|
-
productOverlay: this.configuration.type ===
|
|
1658
|
+
productOverlay: this.configuration.type === f.ProductOverlay ? !0 : void 0,
|
|
1659
1659
|
excludeFromExport: this.configuration.data.excludeFromPrint
|
|
1660
1660
|
};
|
|
1661
1661
|
return {
|
|
@@ -1671,11 +1671,11 @@ class Qe {
|
|
|
1671
1671
|
async trigger() {
|
|
1672
1672
|
if (!this.configuration.data.regions)
|
|
1673
1673
|
throw new SA(this.configuration, "Missing regions.");
|
|
1674
|
-
if (this.configuration.type ===
|
|
1674
|
+
if (this.configuration.type === f.SilentIllustration) {
|
|
1675
1675
|
const A = this.configuration.data.regions.map(this.processRegion);
|
|
1676
1676
|
return Promise.all(A);
|
|
1677
1677
|
} else
|
|
1678
|
-
return this.configuration.type ===
|
|
1678
|
+
return this.configuration.type === f.ProductOverlay ? Promise.all(
|
|
1679
1679
|
this.configuration.data.regions.map((A) => {
|
|
1680
1680
|
if (!this.layouts.find((t) => A.panelId === t.panelId))
|
|
1681
1681
|
throw new L(A);
|
|
@@ -1685,7 +1685,7 @@ class Qe {
|
|
|
1685
1685
|
}
|
|
1686
1686
|
evaluateAssetType() {
|
|
1687
1687
|
var e, t, a;
|
|
1688
|
-
const A = this.configuration.type ===
|
|
1688
|
+
const A = this.configuration.type === f.ProductOverlay && ((e = this.product) != null && e.overlayImageUrl) ? this.product.overlayImageUrl.toLowerCase() : (a = (t = this.configuration.data.asset) == null ? void 0 : t.fileLink) == null ? void 0 : a.toLowerCase().split("?")[0];
|
|
1689
1689
|
return A != null && A.startsWith("data:image/png") || A != null && A.endsWith(".jpeg") || A != null && A.endsWith(".jpg") || A != null && A.endsWith(".png") ? H.Image : A != null && A.endsWith(".svg") || A != null && A.startsWith("image/svg+xml") ? H.Illustration : H.Illustration;
|
|
1690
1690
|
}
|
|
1691
1691
|
}
|
|
@@ -1747,23 +1747,23 @@ class Ia {
|
|
|
1747
1747
|
async regenerateQRCode(A, e, t, a, n, s, i, o, c) {
|
|
1748
1748
|
if (!e && t !== "" && a === "") {
|
|
1749
1749
|
const r = async () => {
|
|
1750
|
-
var
|
|
1751
|
-
const Q = (await Ke([t]))[0],
|
|
1752
|
-
return { asset: Q, link:
|
|
1753
|
-
}, B = await new Promise((Q,
|
|
1750
|
+
var p, D;
|
|
1751
|
+
const Q = (await Ke([t]))[0], u = (D = (p = Q == null ? void 0 : Q.versions) == null ? void 0 : p.find((m) => m.name === "mpeg4")) == null ? void 0 : D.link;
|
|
1752
|
+
return { asset: Q, link: u };
|
|
1753
|
+
}, B = await new Promise((Q, u) => {
|
|
1754
1754
|
new Ze(
|
|
1755
1755
|
async () => !!(await r()).link,
|
|
1756
1756
|
async () => {
|
|
1757
|
-
const
|
|
1758
|
-
if (!
|
|
1759
|
-
throw new lA(
|
|
1757
|
+
const p = await r();
|
|
1758
|
+
if (!p.link || !p.link)
|
|
1759
|
+
throw new lA(p.asset);
|
|
1760
1760
|
Q({
|
|
1761
1761
|
rel: "mpeg4",
|
|
1762
|
-
href:
|
|
1762
|
+
href: p.link
|
|
1763
1763
|
});
|
|
1764
1764
|
},
|
|
1765
1765
|
() => {
|
|
1766
|
-
|
|
1766
|
+
u("Poller timed out with 40 attempts @ 3 second interval");
|
|
1767
1767
|
},
|
|
1768
1768
|
3e3,
|
|
1769
1769
|
40
|
|
@@ -2002,7 +2002,7 @@ class fa {
|
|
|
2002
2002
|
n && n(!0);
|
|
2003
2003
|
const c = await Promise.all(
|
|
2004
2004
|
A.data.regions.map(async (d, w) => {
|
|
2005
|
-
const h = await Ae(o[w]), E = i.getImageData(), C = t.map((I) => new $(I.id)), Q = E ? ee(E, h) : void 0,
|
|
2005
|
+
const h = await Ae(o[w]), E = i.getImageData(), C = t.map((I) => new $(I.id)), Q = E ? ee(E, h) : void 0, u = E ? {
|
|
2006
2006
|
id: v(),
|
|
2007
2007
|
src: E.src,
|
|
2008
2008
|
x: (Q == null ? void 0 : Q.x) || 0,
|
|
@@ -2012,13 +2012,13 @@ class fa {
|
|
|
2012
2012
|
scaleX: (Q == null ? void 0 : Q.zoom) || 1,
|
|
2013
2013
|
scaleY: (Q == null ? void 0 : Q.zoom) || 1,
|
|
2014
2014
|
rotation: 0
|
|
2015
|
-
} : void 0,
|
|
2016
|
-
if (!
|
|
2015
|
+
} : void 0, p = v(), m = a.getLayouts().find((I) => I.panelId === d.panelId);
|
|
2016
|
+
if (!m)
|
|
2017
2017
|
throw new L(d);
|
|
2018
2018
|
return {
|
|
2019
|
-
command: this.getCreateElementCommand(
|
|
2019
|
+
command: this.getCreateElementCommand(p, d, m, {
|
|
2020
2020
|
frameData: h,
|
|
2021
|
-
pattern:
|
|
2021
|
+
pattern: u,
|
|
2022
2022
|
disablePlaceholder: A.data.disablePlaceholder,
|
|
2023
2023
|
focalBlur: A.data.focalBlur,
|
|
2024
2024
|
focalBlurStrength: A.data.focalBlurStrength,
|
|
@@ -2026,7 +2026,7 @@ class fa {
|
|
|
2026
2026
|
stepName: A.stepName
|
|
2027
2027
|
}),
|
|
2028
2028
|
regionEl: {
|
|
2029
|
-
id:
|
|
2029
|
+
id: p,
|
|
2030
2030
|
region: d
|
|
2031
2031
|
},
|
|
2032
2032
|
removeExistingCommands: C
|
|
@@ -2244,13 +2244,13 @@ class Fa {
|
|
|
2244
2244
|
if (!o)
|
|
2245
2245
|
throw new lA(i);
|
|
2246
2246
|
const c = await Fe(await this.getIllustrationBody(o)), r = await nA(c.svg), B = (Q) => {
|
|
2247
|
-
const
|
|
2248
|
-
if (!
|
|
2247
|
+
const u = n.getLayouts().find((D) => D.panelId === Q.panelId);
|
|
2248
|
+
if (!u)
|
|
2249
2249
|
throw new L(Q);
|
|
2250
|
-
const
|
|
2250
|
+
const p = v();
|
|
2251
2251
|
return {
|
|
2252
|
-
regionElement: { id:
|
|
2253
|
-
command: this.getCreateElementCommand(
|
|
2252
|
+
regionElement: { id: p, region: Q },
|
|
2253
|
+
command: this.getCreateElementCommand(p, Q, u, {
|
|
2254
2254
|
stepName: A.stepName,
|
|
2255
2255
|
src: o,
|
|
2256
2256
|
objectURL: r,
|
|
@@ -2261,9 +2261,9 @@ class Fa {
|
|
|
2261
2261
|
let h = Array.from(Object.values(c.colors)).map((Q) => Q.browserValue);
|
|
2262
2262
|
const E = A.data.colorOption;
|
|
2263
2263
|
return E && ((C = E.variants) == null || C.forEach((Q) => {
|
|
2264
|
-
h = h.map((
|
|
2265
|
-
var
|
|
2266
|
-
return
|
|
2264
|
+
h = h.map((u) => {
|
|
2265
|
+
var p;
|
|
2266
|
+
return u.toLowerCase() === ((p = Q.color) == null ? void 0 : p.toLowerCase()) ? Q.name : u;
|
|
2267
2267
|
});
|
|
2268
2268
|
})), n.updateMetadata(A.stepName, { colors: h }), {
|
|
2269
2269
|
command: new G(w),
|
|
@@ -2394,7 +2394,7 @@ class ya {
|
|
|
2394
2394
|
if (!h)
|
|
2395
2395
|
throw new _(B);
|
|
2396
2396
|
await d.applyModelVariant(
|
|
2397
|
-
A.
|
|
2397
|
+
A.stepName || "",
|
|
2398
2398
|
{
|
|
2399
2399
|
model: h,
|
|
2400
2400
|
contextService: e.getLayoutPreviewService()
|
|
@@ -2424,8 +2424,8 @@ class ya {
|
|
|
2424
2424
|
await t.setSelectionsAndElements(A.stepName, [e], [], async () => {
|
|
2425
2425
|
try {
|
|
2426
2426
|
const i = t.getModelContainer();
|
|
2427
|
-
i &&
|
|
2428
|
-
A.
|
|
2427
|
+
i && i.applyModelVariant(
|
|
2428
|
+
A.stepName,
|
|
2429
2429
|
{
|
|
2430
2430
|
model: n,
|
|
2431
2431
|
contextService: t.getLayoutPreviewService()
|
|
@@ -2810,7 +2810,7 @@ class Ra {
|
|
|
2810
2810
|
};
|
|
2811
2811
|
} else {
|
|
2812
2812
|
const c = (d) => {
|
|
2813
|
-
const w = n.find((
|
|
2813
|
+
const w = n.find((u) => u.panelId === d.panelId);
|
|
2814
2814
|
if (!w)
|
|
2815
2815
|
throw new L(d);
|
|
2816
2816
|
const h = i(), E = `
|
|
@@ -3139,15 +3139,15 @@ class Ga {
|
|
|
3139
3139
|
if (o && l) {
|
|
3140
3140
|
const d = (c = o.variants) == null ? void 0 : c.find((w) => w.id === l);
|
|
3141
3141
|
if (d) {
|
|
3142
|
-
const w = await this.fontDataFromVariant(d), h = i.map((
|
|
3142
|
+
const w = await this.fontDataFromVariant(d), h = i.map((u) => ({ id: u.id, region: u.stepRegion })), E = (r = a.storage) == null ? void 0 : r.color, C = (B = a.storage) == null ? void 0 : B.text;
|
|
3143
3143
|
await e.setSelectionsAndElements(
|
|
3144
3144
|
A.stepName,
|
|
3145
3145
|
[d],
|
|
3146
3146
|
h,
|
|
3147
3147
|
async () => {
|
|
3148
3148
|
e.updateMetadata(A.stepName, { color: E, text: C }), e.updateStorage(A.stepName, { text: C, inputText: C });
|
|
3149
|
-
const
|
|
3150
|
-
e.getCommandDispatcher()(
|
|
3149
|
+
const u = i.map((D) => new Be(D.id, w)), p = new G(u);
|
|
3150
|
+
e.getCommandDispatcher()(p), e.setMandatoryFulfilled(A.stepName, !0);
|
|
3151
3151
|
}
|
|
3152
3152
|
);
|
|
3153
3153
|
const { command: Q } = K.updateInputText(
|
|
@@ -3278,11 +3278,11 @@ class Ga {
|
|
|
3278
3278
|
colorProfileAssetKey: (E = C.colorProfile) == null ? void 0 : E.key
|
|
3279
3279
|
});
|
|
3280
3280
|
}
|
|
3281
|
-
const
|
|
3281
|
+
const u = await this.getDefaultColor(t), p = u || "#000000", D = {
|
|
3282
3282
|
stepRegion: l,
|
|
3283
3283
|
stepName: A,
|
|
3284
3284
|
align: this.textAlign(t),
|
|
3285
|
-
fill: n.color ? n.color :
|
|
3285
|
+
fill: n.color ? n.color : p,
|
|
3286
3286
|
fontSize: t.size || zA,
|
|
3287
3287
|
fontData: a,
|
|
3288
3288
|
id: h,
|
|
@@ -3302,34 +3302,34 @@ class Ga {
|
|
|
3302
3302
|
curved: t.curved,
|
|
3303
3303
|
paths: t.paths,
|
|
3304
3304
|
fillSpotColorDefinition: Q
|
|
3305
|
-
},
|
|
3306
|
-
if (!
|
|
3305
|
+
}, m = [], I = /* @__PURE__ */ new Map(), F = /* @__PURE__ */ new Map();
|
|
3306
|
+
if (!D.fontData)
|
|
3307
3307
|
throw new J("Failed to resolve font data for text.");
|
|
3308
3308
|
const [M, Y] = IA(
|
|
3309
|
-
|
|
3310
|
-
|
|
3309
|
+
D.fontSize,
|
|
3310
|
+
D.fontData,
|
|
3311
3311
|
{
|
|
3312
|
-
left:
|
|
3313
|
-
top:
|
|
3314
|
-
width:
|
|
3315
|
-
height:
|
|
3316
|
-
rotation:
|
|
3312
|
+
left: D.x,
|
|
3313
|
+
top: D.y,
|
|
3314
|
+
width: D.width,
|
|
3315
|
+
height: D.height,
|
|
3316
|
+
rotation: D.rotation,
|
|
3317
3317
|
panelId: ""
|
|
3318
3318
|
},
|
|
3319
3319
|
[c],
|
|
3320
3320
|
{ size: t.size, minSize: t.minSize, maxSize: t.maxSize }
|
|
3321
3321
|
);
|
|
3322
|
-
I.set(
|
|
3322
|
+
I.set(D.id, M), F.set(D.id, Y);
|
|
3323
3323
|
const R = t.curved || t.vertical ? c : (Y || []).join(`
|
|
3324
3324
|
`);
|
|
3325
|
-
|
|
3326
|
-
this.generateTextChangeCommandsForRegion(M, t,
|
|
3325
|
+
m.push(
|
|
3326
|
+
this.generateTextChangeCommandsForRegion(M, t, D.id, R, i)
|
|
3327
3327
|
);
|
|
3328
|
-
const S = new b(
|
|
3328
|
+
const S = new b(D, w);
|
|
3329
3329
|
return S.varying = i, {
|
|
3330
3330
|
regionElement: { id: h, region: l },
|
|
3331
|
-
commands: [S, ...
|
|
3332
|
-
newElement:
|
|
3331
|
+
commands: [S, ...m],
|
|
3332
|
+
newElement: D,
|
|
3333
3333
|
fontData: a
|
|
3334
3334
|
};
|
|
3335
3335
|
} catch (C) {
|
|
@@ -3365,29 +3365,29 @@ class Ga {
|
|
|
3365
3365
|
*/
|
|
3366
3366
|
async changeInputTextWithRegion(A, e, t, a, n, s, i, o, c, r) {
|
|
3367
3367
|
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, A.data, i), d = s.getRegionElements(A.stepName), w = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
|
|
3368
|
-
for (const
|
|
3369
|
-
if (
|
|
3370
|
-
const [
|
|
3368
|
+
for (const D of d)
|
|
3369
|
+
if (D.region) {
|
|
3370
|
+
const [m, I] = IA(
|
|
3371
3371
|
e,
|
|
3372
3372
|
t,
|
|
3373
|
-
|
|
3373
|
+
D.region,
|
|
3374
3374
|
[l],
|
|
3375
3375
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
3376
3376
|
);
|
|
3377
|
-
w.set(
|
|
3377
|
+
w.set(D.id, m), h.set(D.id, I);
|
|
3378
3378
|
}
|
|
3379
3379
|
const C = (() => {
|
|
3380
3380
|
if (A.data && A.data.maxLength && l.length > A.data.maxLength)
|
|
3381
3381
|
return r && r(!0), { info: "0" };
|
|
3382
|
-
const
|
|
3383
|
-
for (const I of
|
|
3384
|
-
for (const
|
|
3385
|
-
const M =
|
|
3382
|
+
const D = s.getProfanities(), m = qA(l.toLowerCase());
|
|
3383
|
+
for (const I of m)
|
|
3384
|
+
for (const F in D) {
|
|
3385
|
+
const M = D[F].toLowerCase().replace(/\s/g, "");
|
|
3386
3386
|
if (I === M)
|
|
3387
3387
|
return o(!0), { error: "Blocked profanity." };
|
|
3388
3388
|
}
|
|
3389
3389
|
return !A.data.vertical && !A.data.allowNewlines && (l.includes(`
|
|
3390
|
-
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(h.values()).every((
|
|
3390
|
+
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !A.data.curved && !Array.from(h.values()).every((F) => F) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (A.data.maxLength - l.length).toString() });
|
|
3391
3391
|
})();
|
|
3392
3392
|
if (C.error) {
|
|
3393
3393
|
c(C.error);
|
|
@@ -3400,22 +3400,22 @@ class Ga {
|
|
|
3400
3400
|
});
|
|
3401
3401
|
const Q = s.getTransaction().bulk && A.data.varyText || !1;
|
|
3402
3402
|
n.defaultCleared && s.setMandatoryFulfilled(A.stepName, !0);
|
|
3403
|
-
const
|
|
3404
|
-
for (const
|
|
3405
|
-
const
|
|
3403
|
+
const u = [];
|
|
3404
|
+
for (const D of d) {
|
|
3405
|
+
const m = A.data.curved ? l : (h.get(D.id) || []).join(`
|
|
3406
3406
|
`);
|
|
3407
|
-
|
|
3407
|
+
u.push(
|
|
3408
3408
|
this.generateTextChangeCommandsForRegion(
|
|
3409
|
-
w.get(
|
|
3409
|
+
w.get(D.id) || 1,
|
|
3410
3410
|
A.data,
|
|
3411
|
-
|
|
3412
|
-
|
|
3411
|
+
D.id,
|
|
3412
|
+
m,
|
|
3413
3413
|
Q
|
|
3414
3414
|
)
|
|
3415
3415
|
);
|
|
3416
3416
|
}
|
|
3417
|
-
const
|
|
3418
|
-
return
|
|
3417
|
+
const p = new G(u);
|
|
3418
|
+
return p.varying = Q, p;
|
|
3419
3419
|
}
|
|
3420
3420
|
}
|
|
3421
3421
|
const K = new Ga();
|
|
@@ -4859,16 +4859,16 @@ class Oa extends ne {
|
|
|
4859
4859
|
}
|
|
4860
4860
|
brandSvg(A, e) {
|
|
4861
4861
|
const t = A.toSVG(2), a = A.getBoundingBox(), n = a.x2 - a.x1, s = A.toPathData(3), i = () => {
|
|
4862
|
-
const
|
|
4863
|
-
|
|
4862
|
+
const D = P("g"), m = P("defs");
|
|
4863
|
+
D.appendChild(m), m.appendChild(nt(3, 7, 4, "shadow"));
|
|
4864
4864
|
const I = P("g");
|
|
4865
|
-
|
|
4866
|
-
const
|
|
4867
|
-
|
|
4865
|
+
D.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = t;
|
|
4866
|
+
const F = P("g");
|
|
4867
|
+
D.appendChild(F), F.setAttribute("fill", "red"), F.setAttribute("stroke", "red"), F.setAttribute("stroke-width", "9"), F.innerHTML = t;
|
|
4868
4868
|
const M = P("g");
|
|
4869
|
-
|
|
4869
|
+
D.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = t;
|
|
4870
4870
|
const Y = P("g");
|
|
4871
|
-
return
|
|
4871
|
+
return D.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = t, new oe(D).transform(([S, k]) => [S, k + (n / 2 - S) ** 2 / (n * 2.9)]), D;
|
|
4872
4872
|
}, [o, c, r] = tt(e);
|
|
4873
4873
|
if (!o)
|
|
4874
4874
|
return "";
|
|
@@ -4880,10 +4880,10 @@ class Oa extends ne {
|
|
|
4880
4880
|
C.setAttribute("opacity", "0"), E.appendChild(C);
|
|
4881
4881
|
const Q = P("g");
|
|
4882
4882
|
E.appendChild(Q);
|
|
4883
|
-
const
|
|
4884
|
-
Q.appendChild(
|
|
4885
|
-
const
|
|
4886
|
-
return ie(Q,
|
|
4883
|
+
const u = i();
|
|
4884
|
+
Q.appendChild(u);
|
|
4885
|
+
const p = te(s);
|
|
4886
|
+
return ie(Q, p, l, d), st(o.outerHTML);
|
|
4887
4887
|
}
|
|
4888
4888
|
}
|
|
4889
4889
|
const za = "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==";
|
|
@@ -4903,8 +4903,8 @@ class Ka extends ne {
|
|
|
4903
4903
|
}
|
|
4904
4904
|
brandSvg(A, e, t) {
|
|
4905
4905
|
const a = A.toSVG(2), n = A.getBoundingBox(), s = n.y2 - n.y1, i = n.x2 - n.x1, o = A.toPathData(3), c = () => {
|
|
4906
|
-
const I = P("g"),
|
|
4907
|
-
I.appendChild(
|
|
4906
|
+
const I = P("g"), F = P("g");
|
|
4907
|
+
I.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
|
|
4908
4908
|
const M = P("g");
|
|
4909
4909
|
I.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
|
|
4910
4910
|
const Y = P("g");
|
|
@@ -4923,14 +4923,14 @@ class Ka extends ne {
|
|
|
4923
4923
|
t ? (w = B * 0.25 * (1 + 0.1), h = l / 2 * (1 + 0.1), E = l * 0.22, C = B * 0.32) : (w = B * 0.22 * (1 + 0.1), h = l * 0.8, E = l * 0.067, C = B * 0.33);
|
|
4924
4924
|
const Q = P("g");
|
|
4925
4925
|
r.appendChild(Q), Q.setAttribute("transform", `translate(${E} ${C}) rotate(-10)`);
|
|
4926
|
-
const
|
|
4927
|
-
|
|
4928
|
-
const
|
|
4929
|
-
Q.appendChild(
|
|
4930
|
-
const
|
|
4931
|
-
|
|
4932
|
-
const
|
|
4933
|
-
return ie(
|
|
4926
|
+
const u = se(w, h);
|
|
4927
|
+
u.setAttribute("opacity", "0"), Q.appendChild(u);
|
|
4928
|
+
const p = P("g");
|
|
4929
|
+
Q.appendChild(p);
|
|
4930
|
+
const D = c();
|
|
4931
|
+
p.appendChild(D);
|
|
4932
|
+
const m = te(o);
|
|
4933
|
+
return ie(p, m, w, h), r.outerHTML;
|
|
4934
4934
|
}
|
|
4935
4935
|
// 1 if true, 0 if false.
|
|
4936
4936
|
}
|
|
@@ -4946,21 +4946,21 @@ class Va extends ne {
|
|
|
4946
4946
|
return this.svgElement(A, e);
|
|
4947
4947
|
}
|
|
4948
4948
|
svgElement(A, e) {
|
|
4949
|
-
const t = UA(ja), n = A !== "" ? ((
|
|
4949
|
+
const t = UA(ja), n = A !== "" ? ((u) => u.charAt(0).toUpperCase() + u.substr(1).toLowerCase())(A) : "", s = t.getPath(n, 0, 72, 72), i = s.toSVG(2), o = s.getBoundingBox(), c = o.x2 - o.x1, r = s.toPathData(3), B = () => {
|
|
4950
|
+
const u = P("g");
|
|
4951
|
+
u.classList.add("module-text-group");
|
|
4952
|
+
const p = P("defs");
|
|
4953
|
+
u.appendChild(p), p.appendChild(nt(0, 2, 2, "shadow"));
|
|
4954
|
+
const D = P("path");
|
|
4955
|
+
D.setAttribute("d", r), D.setAttribute("stroke", "black"), D.setAttribute("stroke-width", "3"), p.appendChild(D);
|
|
4950
4956
|
const m = P("g");
|
|
4951
|
-
m.classList.add("module-
|
|
4952
|
-
const u = P("defs");
|
|
4953
|
-
m.appendChild(u), u.appendChild(nt(0, 2, 2, "shadow"));
|
|
4954
|
-
const p = P("path");
|
|
4955
|
-
p.setAttribute("d", r), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), u.appendChild(p);
|
|
4956
|
-
const F = P("g");
|
|
4957
|
-
F.classList.add("module-layer0"), m.appendChild(F), F.setAttribute("filter", "url(#shadow)"), F.innerHTML = p.outerHTML;
|
|
4957
|
+
m.classList.add("module-layer0"), u.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = D.outerHTML;
|
|
4958
4958
|
const I = P("g");
|
|
4959
|
-
I.classList.add("module-layer1"),
|
|
4960
|
-
const
|
|
4961
|
-
|
|
4959
|
+
I.classList.add("module-layer1"), u.appendChild(I), I.setAttribute("stroke-width", "3"), I.setAttribute("stroke", "rgb(45,41,38)"), I.setAttribute("fill", "rgb(45,41,38)"), I.setAttribute("transform", "translate(0.5,0)"), I.innerHTML = i;
|
|
4960
|
+
const F = P("g");
|
|
4961
|
+
F.classList.add("module-layer2"), u.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = i;
|
|
4962
4962
|
const M = P("g");
|
|
4963
|
-
return M.classList.add("module-layer3"),
|
|
4963
|
+
return M.classList.add("module-layer3"), u.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = i, new oe(u).transform(([R, S]) => [R, S + (c / 2 - R) ** 2 / (c * 6)]), u;
|
|
4964
4964
|
}, l = P("g");
|
|
4965
4965
|
l.classList.add("module-root");
|
|
4966
4966
|
const d = P("defs");
|
|
@@ -5018,7 +5018,7 @@ class Xa {
|
|
|
5018
5018
|
this.getCurrentVariationRecord(),
|
|
5019
5019
|
this.getProduct().overlayImageUrl
|
|
5020
5020
|
);
|
|
5021
|
-
}, this.updateTransaction = n, this.commandContext = a, this.reloadedState = r, this.transaction = s, this.readOnly = B, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = o, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.
|
|
5021
|
+
}, this.updateTransaction = n, this.commandContext = a, this.reloadedState = r, this.transaction = s, this.readOnly = B, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = e, this.pollers = [], this.allScenes = [], this.layouts = t, this.product = i, this.previewService = o, this.modelContainer = l, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentVariationRecordCallbacks = [], this.variationRecordCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = c, this.currentVariationRecord = null, this.isReloadedTransaction = d, this.initializationPromise = this.initializeDefaultWorkflowState(A, s), this.initializationPromise.then(() => {
|
|
5022
5022
|
this.initialized = !0;
|
|
5023
5023
|
}), this.initializationPromise.catch((w) => {
|
|
5024
5024
|
throw console.error(w), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -5105,7 +5105,6 @@ class Xa {
|
|
|
5105
5105
|
}
|
|
5106
5106
|
async addSelectionCallback(A) {
|
|
5107
5107
|
A({
|
|
5108
|
-
invalidModelVariants: this.invalidModelVariants,
|
|
5109
5108
|
selectionCost: this.selectionCost,
|
|
5110
5109
|
selections: this.stepSelections,
|
|
5111
5110
|
traversableScenes: await this.traversableScenes()
|
|
@@ -5243,7 +5242,7 @@ class Xa {
|
|
|
5243
5242
|
model: this.getProduct().modelUrl,
|
|
5244
5243
|
contextService: this.getLayoutPreviewService()
|
|
5245
5244
|
});
|
|
5246
|
-
this.setModelContainer(e), tA(this.allScenes, this.stepSelections).filter((n) => n).map((n) => n.renderableSteps).flat().filter((n) => n.type ===
|
|
5245
|
+
this.setModelContainer(e), tA(this.allScenes, this.stepSelections).filter((n) => n).map((n) => n.renderableSteps).flat().filter((n) => n.type === f.Model || n.type === f.Material).forEach((n) => {
|
|
5247
5246
|
var o, c, r;
|
|
5248
5247
|
if (!((o = n.option) != null && o.id)) {
|
|
5249
5248
|
console.error(`Failed to read option id from step: ${n.stepName}`);
|
|
@@ -5253,7 +5252,7 @@ class Xa {
|
|
|
5253
5252
|
if (s.length === 0)
|
|
5254
5253
|
return;
|
|
5255
5254
|
const i = s[0];
|
|
5256
|
-
if (n.type ===
|
|
5255
|
+
if (n.type === f.Model) {
|
|
5257
5256
|
const B = (r = i.asset) == null ? void 0 : r.fileLink;
|
|
5258
5257
|
if (!B) {
|
|
5259
5258
|
console.error(`Failed to read model url from variant: ${i.id} for step: ${n.stepName}`);
|
|
@@ -5261,7 +5260,7 @@ class Xa {
|
|
|
5261
5260
|
}
|
|
5262
5261
|
const l = n.data;
|
|
5263
5262
|
this.modelContainer.applyModelVariant(
|
|
5264
|
-
n.
|
|
5263
|
+
n.stepName,
|
|
5265
5264
|
{
|
|
5266
5265
|
model: B,
|
|
5267
5266
|
contextService: this.getLayoutPreviewService()
|
|
@@ -5383,20 +5382,17 @@ class Xa {
|
|
|
5383
5382
|
), A), []);
|
|
5384
5383
|
}
|
|
5385
5384
|
getInvalidModelVariants() {
|
|
5386
|
-
return this.workflow.steps.reduce((A, e) =>
|
|
5387
|
-
var t;
|
|
5388
|
-
return e.type === "Model" && ((t = e.option) != null && t.id) && !aA(e, this.stepSelections) && A.push(e.option.id), A;
|
|
5389
|
-
}, []);
|
|
5385
|
+
return this.workflow.steps.reduce((A, e) => (e.type === f.Model && !aA(e, this.stepSelections) && A.push(e.stepName), A), []);
|
|
5390
5386
|
}
|
|
5391
5387
|
async stepElementsForIntroducedSilentSteps(A, e) {
|
|
5392
5388
|
const t = this.product;
|
|
5393
5389
|
if (!t)
|
|
5394
5390
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
5395
5391
|
const a = async (c, r, B) => {
|
|
5396
|
-
if (c.type ===
|
|
5392
|
+
if (c.type === f.SilentIllustration) {
|
|
5397
5393
|
const l = await new Qe(c, r).trigger();
|
|
5398
5394
|
return { step: c, results: l };
|
|
5399
|
-
} else if (c.type ===
|
|
5395
|
+
} else if (c.type === f.ProductOverlay) {
|
|
5400
5396
|
const l = await new Qe(
|
|
5401
5397
|
c,
|
|
5402
5398
|
r,
|
|
@@ -5447,33 +5443,43 @@ class Xa {
|
|
|
5447
5443
|
), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.currentVariationRecord = null, await this.ensureStepsAreLoaded();
|
|
5448
5444
|
}
|
|
5449
5445
|
async setSelectionsAndElements(A, e, t, a) {
|
|
5450
|
-
var
|
|
5446
|
+
var D;
|
|
5451
5447
|
const n = this.stepSelections;
|
|
5452
5448
|
this.stepSelections = {
|
|
5453
5449
|
...this.stepSelections,
|
|
5454
5450
|
[A]: { selectedVariants: e }
|
|
5455
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
5456
|
-
aA(
|
|
5451
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((m, I) => m + I.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, M) => F + M, 0), 0), this.workflow.steps.forEach((m) => {
|
|
5452
|
+
aA(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1, delete this.stepMetadata[m.stepName], delete this.stepSelections[m.stepName], delete this.storage[m.stepName]);
|
|
5457
5453
|
});
|
|
5458
|
-
const s = this.allScenes, i = tA(s, n), o = tA(s, this.stepSelections), c = i.map((
|
|
5459
|
-
(
|
|
5454
|
+
const s = this.allScenes, i = tA(s, n), o = tA(s, this.stepSelections), c = i.map((m) => m.silentSteps).flat(), B = o.map((m) => m.silentSteps).flat().filter(
|
|
5455
|
+
(m) => !c.some((I) => I.stepName === m.stepName)
|
|
5460
5456
|
);
|
|
5461
|
-
c.forEach((
|
|
5462
|
-
aA(
|
|
5463
|
-
})
|
|
5457
|
+
c.forEach((m) => {
|
|
5458
|
+
aA(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
|
|
5459
|
+
});
|
|
5464
5460
|
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: w } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
5465
5461
|
this.stepElements = {
|
|
5466
5462
|
...this.stepElements,
|
|
5467
5463
|
...d,
|
|
5468
5464
|
[A]: t
|
|
5469
5465
|
}, this.removeElements(l);
|
|
5470
|
-
const h = this.workflow.steps.find((
|
|
5471
|
-
if ((h == null ? void 0 : h.type) ===
|
|
5472
|
-
const
|
|
5473
|
-
(
|
|
5474
|
-
}
|
|
5475
|
-
const E = l.map((
|
|
5476
|
-
Q.length > 0 && this.commandContext.apply(new G(Q), !0), await this.ensureStepsAreLoaded(), this.onElementsChange()
|
|
5466
|
+
const h = this.workflow.steps.find((m) => m.stepName === A);
|
|
5467
|
+
if ((h == null ? void 0 : h.type) === f.Frame) {
|
|
5468
|
+
const m = this.getStepSpecificServices(A);
|
|
5469
|
+
(D = m == null ? void 0 : m.frameService) == null || D.setTargetElements(t.map((I) => I.id));
|
|
5470
|
+
}
|
|
5471
|
+
const E = l.map((m) => new $(m.id)), C = new de(this.constructSerializableWorkflow()), Q = [...w, ...E, C];
|
|
5472
|
+
Q.length > 0 && this.commandContext.apply(new G(Q), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5473
|
+
const u = this.getInvalidModelVariants(), p = this.modelContainer;
|
|
5474
|
+
p && u.forEach((m) => {
|
|
5475
|
+
p.applyModelVariant(
|
|
5476
|
+
m,
|
|
5477
|
+
{
|
|
5478
|
+
contextService: this.getLayoutPreviewService()
|
|
5479
|
+
},
|
|
5480
|
+
!1
|
|
5481
|
+
);
|
|
5482
|
+
}), await this.onSelectionChange(), a && await a();
|
|
5477
5483
|
}
|
|
5478
5484
|
async ensureStepsAreLoaded() {
|
|
5479
5485
|
var o, c;
|
|
@@ -5481,13 +5487,13 @@ class Xa {
|
|
|
5481
5487
|
for (const r of a)
|
|
5482
5488
|
if (!this.stepInitialised[r.stepName])
|
|
5483
5489
|
switch (this.stepInitialised[r.stepName] = !0, r.type) {
|
|
5484
|
-
case
|
|
5490
|
+
case f.Bulk:
|
|
5485
5491
|
this.updateStorage(
|
|
5486
5492
|
"Bulk",
|
|
5487
5493
|
((c = (o = this.reloadedState) == null ? void 0 : o.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : c.storage) || {}
|
|
5488
5494
|
);
|
|
5489
5495
|
break;
|
|
5490
|
-
case
|
|
5496
|
+
case f.DigitalContent:
|
|
5491
5497
|
t.push(
|
|
5492
5498
|
Da.init(
|
|
5493
5499
|
r,
|
|
@@ -5496,8 +5502,8 @@ class Xa {
|
|
|
5496
5502
|
)
|
|
5497
5503
|
);
|
|
5498
5504
|
break;
|
|
5499
|
-
case
|
|
5500
|
-
case
|
|
5505
|
+
case f.Frame:
|
|
5506
|
+
case f.Photo:
|
|
5501
5507
|
{
|
|
5502
5508
|
const B = new ma(r.data.forceImageCover);
|
|
5503
5509
|
B.connectWorkflowManager(this, r.stepName), this.stepSpecificServices[r.stepName] = {
|
|
@@ -5507,40 +5513,40 @@ class Xa {
|
|
|
5507
5513
|
);
|
|
5508
5514
|
}
|
|
5509
5515
|
break;
|
|
5510
|
-
case
|
|
5516
|
+
case f.Illustration:
|
|
5511
5517
|
t.push(
|
|
5512
5518
|
FA.init(r, this, this.reloadedState)
|
|
5513
5519
|
);
|
|
5514
5520
|
break;
|
|
5515
|
-
case
|
|
5521
|
+
case f.Material:
|
|
5516
5522
|
t.push(
|
|
5517
5523
|
$e.init(r, this, this.reloadedState)
|
|
5518
5524
|
);
|
|
5519
5525
|
break;
|
|
5520
|
-
case
|
|
5526
|
+
case f.Model:
|
|
5521
5527
|
t.push(_e.init(r, this, this.reloadedState));
|
|
5522
5528
|
break;
|
|
5523
|
-
case
|
|
5529
|
+
case f.Module:
|
|
5524
5530
|
this.stepSpecificServices[r.stepName] = {
|
|
5525
5531
|
module: await it(r.data.module)
|
|
5526
5532
|
}, t.push(
|
|
5527
5533
|
Sa.init(r, this, this.reloadedState)
|
|
5528
5534
|
);
|
|
5529
5535
|
break;
|
|
5530
|
-
case
|
|
5536
|
+
case f.Picture:
|
|
5531
5537
|
t.push(
|
|
5532
5538
|
At.init(r, this, this.reloadedState)
|
|
5533
5539
|
);
|
|
5534
5540
|
break;
|
|
5535
|
-
case
|
|
5541
|
+
case f.Question:
|
|
5536
5542
|
t.push(
|
|
5537
5543
|
et.init(r, this, this.reloadedState)
|
|
5538
5544
|
);
|
|
5539
5545
|
break;
|
|
5540
|
-
case
|
|
5546
|
+
case f.Shape:
|
|
5541
5547
|
t.push(cA.init(r, this, this.reloadedState));
|
|
5542
5548
|
break;
|
|
5543
|
-
case
|
|
5549
|
+
case f.Text:
|
|
5544
5550
|
t.push(K.init(r, this, this.reloadedState));
|
|
5545
5551
|
break;
|
|
5546
5552
|
}
|
|
@@ -5586,7 +5592,6 @@ class Xa {
|
|
|
5586
5592
|
const A = await this.traversableScenes();
|
|
5587
5593
|
for (const e of this.selectionCallbacks)
|
|
5588
5594
|
e({
|
|
5589
|
-
invalidModelVariants: this.invalidModelVariants,
|
|
5590
5595
|
selectionCost: this.selectionCost,
|
|
5591
5596
|
selections: this.stepSelections,
|
|
5592
5597
|
traversableScenes: A
|
|
@@ -6240,25 +6245,25 @@ class sn extends j {
|
|
|
6240
6245
|
class oA {
|
|
6241
6246
|
static get(A, e) {
|
|
6242
6247
|
switch (e.type) {
|
|
6243
|
-
case
|
|
6248
|
+
case f.Information:
|
|
6244
6249
|
return new sn(A, e);
|
|
6245
|
-
case
|
|
6250
|
+
case f.Question:
|
|
6246
6251
|
return new tn(A, e);
|
|
6247
|
-
case
|
|
6252
|
+
case f.Text:
|
|
6248
6253
|
return new nn(A, e);
|
|
6249
|
-
case
|
|
6254
|
+
case f.Illustration:
|
|
6250
6255
|
return new $a(A, e);
|
|
6251
|
-
case
|
|
6256
|
+
case f.Picture:
|
|
6252
6257
|
return new en(A, e);
|
|
6253
|
-
case
|
|
6258
|
+
case f.Shape:
|
|
6254
6259
|
return new an(A, e);
|
|
6255
|
-
case
|
|
6260
|
+
case f.Material:
|
|
6256
6261
|
return new _a(A, e);
|
|
6257
|
-
case
|
|
6262
|
+
case f.Model:
|
|
6258
6263
|
return new An(A, e);
|
|
6259
|
-
case
|
|
6264
|
+
case f.Frame:
|
|
6260
6265
|
return new ys(A, e);
|
|
6261
|
-
case
|
|
6266
|
+
case f.Bulk:
|
|
6262
6267
|
return new Za(A, e);
|
|
6263
6268
|
default:
|
|
6264
6269
|
throw new J(`Step type ${e.type} not yet supported in Core SDK`);
|
|
@@ -6486,7 +6491,7 @@ const ct = y`
|
|
|
6486
6491
|
i
|
|
6487
6492
|
);
|
|
6488
6493
|
}, Bt = async (g, A, e, t, a, n, s, i, o, c) => {
|
|
6489
|
-
var
|
|
6494
|
+
var F;
|
|
6490
6495
|
await (async () => {
|
|
6491
6496
|
var S;
|
|
6492
6497
|
if (c !== void 0)
|
|
@@ -6502,7 +6507,7 @@ const ct = y`
|
|
|
6502
6507
|
Y.errors && console.log("Server Error:", k.message);
|
|
6503
6508
|
}), null) : R ?? null;
|
|
6504
6509
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(t())), await g.updateStateWithServerImmediate(t), console.log("Server state is undefined @ Workflow completion"));
|
|
6505
|
-
const l = g.getPreviewService(), d = (
|
|
6510
|
+
const l = g.getPreviewService(), d = (F = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && l.getSceneInitializationProgress() === 100 && A.showModelOnFinishStep && !!d, h = o && _A(o, A, !0), E = o && _A(o, A, !1), C = async (M) => {
|
|
6506
6511
|
const Y = {};
|
|
6507
6512
|
let R = 0;
|
|
6508
6513
|
if (Object.keys(n).length > 0)
|
|
@@ -6528,14 +6533,14 @@ const ct = y`
|
|
|
6528
6533
|
}
|
|
6529
6534
|
}
|
|
6530
6535
|
return [Y, R];
|
|
6531
|
-
}, [Q] = await C(!0),
|
|
6536
|
+
}, [Q] = await C(!0), u = Object.fromEntries(
|
|
6532
6537
|
Object.keys(Q).map((M) => [M, Q[M].map((Y) => Y.id)])
|
|
6533
|
-
), [
|
|
6534
|
-
Object.keys(
|
|
6538
|
+
), [p] = await C(!1), D = Object.fromEntries(
|
|
6539
|
+
Object.keys(p).map((M) => [
|
|
6535
6540
|
M,
|
|
6536
|
-
|
|
6541
|
+
p[M].map((Y) => Y.id)
|
|
6537
6542
|
])
|
|
6538
|
-
),
|
|
6543
|
+
), m = await i(w);
|
|
6539
6544
|
return {
|
|
6540
6545
|
designDetails: (() => {
|
|
6541
6546
|
const M = {
|
|
@@ -6547,7 +6552,7 @@ const ct = y`
|
|
|
6547
6552
|
workflowId: A.id,
|
|
6548
6553
|
transactionId: a.id,
|
|
6549
6554
|
useThreeDimPreview: !!w,
|
|
6550
|
-
previewImage:
|
|
6555
|
+
previewImage: m
|
|
6551
6556
|
};
|
|
6552
6557
|
if (E) {
|
|
6553
6558
|
const Y = [];
|
|
@@ -6555,9 +6560,9 @@ const ct = y`
|
|
|
6555
6560
|
Y.push({ key: R, value: S });
|
|
6556
6561
|
M.metadata = Y;
|
|
6557
6562
|
}
|
|
6558
|
-
if (
|
|
6563
|
+
if (u) {
|
|
6559
6564
|
const Y = [];
|
|
6560
|
-
for (const [R, S] of Object.entries(
|
|
6565
|
+
for (const [R, S] of Object.entries(D))
|
|
6561
6566
|
Y.push({ key: R, ids: S });
|
|
6562
6567
|
M.selectedVariants = Y;
|
|
6563
6568
|
}
|
|
@@ -6567,7 +6572,7 @@ const ct = y`
|
|
|
6567
6572
|
cartMetadata: h
|
|
6568
6573
|
};
|
|
6569
6574
|
}, dn = async (g, A, e, t, a, n, s, i, o, c, r, B, l) => {
|
|
6570
|
-
var
|
|
6575
|
+
var u, p, D;
|
|
6571
6576
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6572
6577
|
const { designDetails: d, cartSelectionsWithPrices: w, cartMetadata: h } = await Bt(
|
|
6573
6578
|
g,
|
|
@@ -6581,7 +6586,7 @@ const ct = y`
|
|
|
6581
6586
|
l
|
|
6582
6587
|
);
|
|
6583
6588
|
o("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await c(r);
|
|
6584
|
-
const E = await cn(d), C = (
|
|
6589
|
+
const E = await cn(d), C = (u = E == null ? void 0 : E.transaction) == null ? void 0 : u.previewImageLink;
|
|
6585
6590
|
if (!(E != null && E.transaction))
|
|
6586
6591
|
throw new Error("Failed to create design");
|
|
6587
6592
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
@@ -6590,7 +6595,7 @@ const ct = y`
|
|
|
6590
6595
|
Q,
|
|
6591
6596
|
a,
|
|
6592
6597
|
C,
|
|
6593
|
-
(
|
|
6598
|
+
(p = E == null ? void 0 : E.processExecution) == null ? void 0 : p.id
|
|
6594
6599
|
) : await lt(
|
|
6595
6600
|
Q,
|
|
6596
6601
|
a,
|
|
@@ -6599,7 +6604,7 @@ const ct = y`
|
|
|
6599
6604
|
E == null ? void 0 : E.sku,
|
|
6600
6605
|
h,
|
|
6601
6606
|
C,
|
|
6602
|
-
(
|
|
6607
|
+
(D = E == null ? void 0 : E.processExecution) == null ? void 0 : D.id
|
|
6603
6608
|
);
|
|
6604
6609
|
}, wn = async (g, A) => {
|
|
6605
6610
|
A("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
@@ -6807,18 +6812,18 @@ class CA {
|
|
|
6807
6812
|
});
|
|
6808
6813
|
}
|
|
6809
6814
|
async createPreviewImage(A, e) {
|
|
6810
|
-
var Q,
|
|
6815
|
+
var Q, u;
|
|
6811
6816
|
const t = this.workflowManager.getWorkflow(), a = (Q = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : Q.lookAtAnimation;
|
|
6812
6817
|
if (A) {
|
|
6813
6818
|
if (!a)
|
|
6814
6819
|
throw new Error("Failed to generate cart preview image!");
|
|
6815
|
-
return await ((
|
|
6820
|
+
return await ((u = this.workflowManager.getPreviewService()) == null ? void 0 : u.renderSceneScreenshot(512, a)) || "";
|
|
6816
6821
|
}
|
|
6817
6822
|
let n = 2048;
|
|
6818
6823
|
e && e <= 2048 && (n = e);
|
|
6819
|
-
const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, c = t.panels[o], r = i.find((
|
|
6820
|
-
var
|
|
6821
|
-
return ((
|
|
6824
|
+
const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, c = t.panels[o], r = i.find((p) => {
|
|
6825
|
+
var D;
|
|
6826
|
+
return ((D = p.layoutState) == null ? void 0 : D.layout.panelId) === (c == null ? void 0 : c.name);
|
|
6822
6827
|
}) || i[0], B = r.layoutState.layout.previewRegion ? {
|
|
6823
6828
|
x: r.layoutState.layout.previewRegion.left,
|
|
6824
6829
|
y: r.layoutState.layout.previewRegion.top,
|
|
@@ -6880,7 +6885,7 @@ class CA {
|
|
|
6880
6885
|
getBulkStep() {
|
|
6881
6886
|
if (this.getWorkflowManager().getTransaction().bulk) {
|
|
6882
6887
|
const A = this.getWorkflowManager().getProduct().bulkConfiguration, e = {
|
|
6883
|
-
type:
|
|
6888
|
+
type: f.Bulk,
|
|
6884
6889
|
stepName: "Bulk",
|
|
6885
6890
|
stepTitle: (A == null ? void 0 : A.stepTitle) ?? "workflow.steps.bulk.title",
|
|
6886
6891
|
helpText: A == null ? void 0 : A.helpText,
|
|
@@ -6994,7 +6999,7 @@ class CA {
|
|
|
6994
6999
|
* @returns Returns true when a valid handle is implemented for a given step type. Certain steps don't support handles, such as silent illustrations.
|
|
6995
7000
|
*/
|
|
6996
7001
|
stepHasHandle(A) {
|
|
6997
|
-
return A.type !==
|
|
7002
|
+
return A.type !== f.SilentIllustration && A.type !== f.ProductOverlay;
|
|
6998
7003
|
}
|
|
6999
7004
|
getExportedData() {
|
|
7000
7005
|
var a;
|
|
@@ -7107,17 +7112,17 @@ const hn = [
|
|
|
7107
7112
|
return console.error(i), [];
|
|
7108
7113
|
}
|
|
7109
7114
|
}, un = async (g, A, e, t) => {
|
|
7110
|
-
var
|
|
7115
|
+
var D, m;
|
|
7111
7116
|
const a = e.data, n = t.option;
|
|
7112
7117
|
if (!n)
|
|
7113
7118
|
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7114
|
-
const s = ((
|
|
7119
|
+
const s = ((D = n.variants) == null ? void 0 : D.find((I) => I.id === a.illustrationVariantId)) || GA(n);
|
|
7115
7120
|
if (!s)
|
|
7116
7121
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
7117
7122
|
if (!s.asset)
|
|
7118
7123
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7119
7124
|
A[t.stepName] = { selectedVariants: [s] };
|
|
7120
|
-
const i = (
|
|
7125
|
+
const i = (m = s.asset) == null ? void 0 : m.fileLink;
|
|
7121
7126
|
if (!i)
|
|
7122
7127
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7123
7128
|
const o = await Z(i), c = /<svg.*?<\/svg>/s, r = o.match(c) || [], B = (r == null ? void 0 : r.length) > 0 ? r[0] : "", w = Pe().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
@@ -7127,9 +7132,9 @@ const hn = [
|
|
|
7127
7132
|
const h = {};
|
|
7128
7133
|
Pt(w, (I) => {
|
|
7129
7134
|
hn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
7130
|
-
const
|
|
7131
|
-
if (
|
|
7132
|
-
const Y =
|
|
7135
|
+
const F = I.attributes.getNamedItem("fill");
|
|
7136
|
+
if (F && F.value !== "none") {
|
|
7137
|
+
const Y = F.value, S = `spiff-fill-${Y.replace(/\W/g, "")}`;
|
|
7133
7138
|
I.classList.add(S), h[S] = { browserValue: Y };
|
|
7134
7139
|
}
|
|
7135
7140
|
const M = I.attributes.getNamedItem("stroke");
|
|
@@ -7140,16 +7145,16 @@ const hn = [
|
|
|
7140
7145
|
});
|
|
7141
7146
|
const C = Ue().serializeToString(w), Q = a.colors;
|
|
7142
7147
|
if (Q) {
|
|
7143
|
-
for (const [I,
|
|
7148
|
+
for (const [I, F] of Object.entries(h))
|
|
7144
7149
|
for (const M of Object.keys(Q))
|
|
7145
|
-
if (
|
|
7150
|
+
if (F.browserValue === M) {
|
|
7146
7151
|
h[I] = { browserValue: Q[M] };
|
|
7147
7152
|
break;
|
|
7148
7153
|
}
|
|
7149
7154
|
}
|
|
7150
|
-
const
|
|
7151
|
-
const
|
|
7152
|
-
if (!
|
|
7155
|
+
const u = (I) => {
|
|
7156
|
+
const F = g.find((Y) => Y.panelId === I.panelId);
|
|
7157
|
+
if (!F)
|
|
7153
7158
|
throw new L(I);
|
|
7154
7159
|
const M = v();
|
|
7155
7160
|
return new b(
|
|
@@ -7167,11 +7172,11 @@ const hn = [
|
|
|
7167
7172
|
layerIndex: I.layerIndex,
|
|
7168
7173
|
immutable: I.immutable
|
|
7169
7174
|
},
|
|
7170
|
-
|
|
7175
|
+
F
|
|
7171
7176
|
);
|
|
7172
|
-
},
|
|
7177
|
+
}, p = t.data.regions;
|
|
7173
7178
|
try {
|
|
7174
|
-
return
|
|
7179
|
+
return p.map(u);
|
|
7175
7180
|
} catch (I) {
|
|
7176
7181
|
return console.error(I), [];
|
|
7177
7182
|
}
|
|
@@ -7307,7 +7312,7 @@ const hn = [
|
|
|
7307
7312
|
}, Dn = async (g, A, e) => {
|
|
7308
7313
|
const t = [], n = (() => {
|
|
7309
7314
|
var c, r;
|
|
7310
|
-
return A.type ===
|
|
7315
|
+
return A.type === f.ProductOverlay ? e || ((c = A.data.asset) == null ? void 0 : c.fileLink) || "" : ((r = A.data.asset) == null ? void 0 : r.fileLink) || "";
|
|
7311
7316
|
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), o = A.data.regions;
|
|
7312
7317
|
if (i === "image")
|
|
7313
7318
|
try {
|
|
@@ -7325,7 +7330,7 @@ const hn = [
|
|
|
7325
7330
|
height: c.height,
|
|
7326
7331
|
layer: c.layer,
|
|
7327
7332
|
layerIndex: c.layerIndex,
|
|
7328
|
-
productOverlay: A.type ===
|
|
7333
|
+
productOverlay: A.type === f.ProductOverlay ? !0 : void 0,
|
|
7329
7334
|
scaleX: 1,
|
|
7330
7335
|
scaleY: 1,
|
|
7331
7336
|
rotation: c.rotation,
|
|
@@ -7365,7 +7370,7 @@ const hn = [
|
|
|
7365
7370
|
scaleX: 1,
|
|
7366
7371
|
scaleY: 1,
|
|
7367
7372
|
rotation: B.rotation,
|
|
7368
|
-
productOverlay: A.type ===
|
|
7373
|
+
productOverlay: A.type === f.ProductOverlay ? !0 : void 0,
|
|
7369
7374
|
excludeFromExport: A.data.excludeFromPrint
|
|
7370
7375
|
};
|
|
7371
7376
|
t.push(new b(d, l));
|
|
@@ -7374,11 +7379,11 @@ const hn = [
|
|
|
7374
7379
|
return t;
|
|
7375
7380
|
}, fn = async (g, A, e, t) => {
|
|
7376
7381
|
const a = [], n = e.data, s = 30, i = (E) => E.vertical ? "center" : E.textAlign || "center", o = () => {
|
|
7377
|
-
var
|
|
7382
|
+
var u;
|
|
7378
7383
|
const E = t.option;
|
|
7379
7384
|
if (!E)
|
|
7380
7385
|
return;
|
|
7381
|
-
const C = ((
|
|
7386
|
+
const C = ((u = E.variants) == null ? void 0 : u.find((p) => p.id === n.fontVariantId)) || GA(E);
|
|
7382
7387
|
if (!C || !C.asset)
|
|
7383
7388
|
return;
|
|
7384
7389
|
A[t.stepName] = { selectedVariants: [C] };
|
|
@@ -7390,10 +7395,10 @@ const hn = [
|
|
|
7390
7395
|
if (!E)
|
|
7391
7396
|
return;
|
|
7392
7397
|
console.log(`fetching ${E}`);
|
|
7393
|
-
const C = await Me(E), Q = await Ht(C),
|
|
7394
|
-
return await Ut(
|
|
7398
|
+
const C = await Me(E), Q = await Ht(C), u = UA(Q);
|
|
7399
|
+
return await Ut(u, E), {
|
|
7395
7400
|
assetUrl: E,
|
|
7396
|
-
name:
|
|
7401
|
+
name: u.names.fullName.en
|
|
7397
7402
|
};
|
|
7398
7403
|
})(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", n.text) : n.text, l = XA(B, {
|
|
7399
7404
|
vertical: t.data.vertical,
|
|
@@ -7406,7 +7411,7 @@ const hn = [
|
|
|
7406
7411
|
return Q == null ? void 0 : Q.color;
|
|
7407
7412
|
}, w = n.color || await d(t.data), h = t.data.regions;
|
|
7408
7413
|
for (const E of h) {
|
|
7409
|
-
const C = g.find((
|
|
7414
|
+
const C = g.find((u) => u.panelId === E.panelId);
|
|
7410
7415
|
if (!C)
|
|
7411
7416
|
continue;
|
|
7412
7417
|
const Q = {
|
|
@@ -7431,7 +7436,7 @@ const hn = [
|
|
|
7431
7436
|
y: E.top
|
|
7432
7437
|
};
|
|
7433
7438
|
if (r) {
|
|
7434
|
-
const [
|
|
7439
|
+
const [u, p] = IA(
|
|
7435
7440
|
t.data.size || s,
|
|
7436
7441
|
r,
|
|
7437
7442
|
E,
|
|
@@ -7451,8 +7456,8 @@ const hn = [
|
|
|
7451
7456
|
new b(
|
|
7452
7457
|
{
|
|
7453
7458
|
...Q,
|
|
7454
|
-
fontSize:
|
|
7455
|
-
text: Q.curved ? Q.text : (
|
|
7459
|
+
fontSize: u,
|
|
7460
|
+
text: Q.curved ? Q.text : (p || []).join(`
|
|
7456
7461
|
`)
|
|
7457
7462
|
},
|
|
7458
7463
|
C
|
|
@@ -7477,18 +7482,18 @@ const hn = [
|
|
|
7477
7482
|
const i = A.steps.find((o) => o.stepName === s.name);
|
|
7478
7483
|
if (i)
|
|
7479
7484
|
switch (i.type) {
|
|
7480
|
-
case
|
|
7485
|
+
case f.DigitalContent:
|
|
7481
7486
|
a.push(
|
|
7482
7487
|
...await Cn(e, s, i)
|
|
7483
7488
|
);
|
|
7484
7489
|
break;
|
|
7485
|
-
case
|
|
7486
|
-
case
|
|
7490
|
+
case f.Frame:
|
|
7491
|
+
case f.Photo:
|
|
7487
7492
|
a.push(
|
|
7488
7493
|
...await Qn(e, n, s, i)
|
|
7489
7494
|
);
|
|
7490
7495
|
break;
|
|
7491
|
-
case
|
|
7496
|
+
case f.Illustration:
|
|
7492
7497
|
a.push(
|
|
7493
7498
|
...await un(
|
|
7494
7499
|
e,
|
|
@@ -7498,20 +7503,20 @@ const hn = [
|
|
|
7498
7503
|
)
|
|
7499
7504
|
);
|
|
7500
7505
|
break;
|
|
7501
|
-
case
|
|
7506
|
+
case f.Module:
|
|
7502
7507
|
a.push(...await mn(e, s, i));
|
|
7503
7508
|
break;
|
|
7504
|
-
case
|
|
7509
|
+
case f.Picture:
|
|
7505
7510
|
a.push(
|
|
7506
7511
|
...await pn(e, n, s, i)
|
|
7507
7512
|
);
|
|
7508
7513
|
break;
|
|
7509
|
-
case
|
|
7514
|
+
case f.Shape:
|
|
7510
7515
|
a.push(
|
|
7511
7516
|
...await In(e, n, s, i)
|
|
7512
7517
|
);
|
|
7513
7518
|
break;
|
|
7514
|
-
case
|
|
7519
|
+
case f.Text:
|
|
7515
7520
|
a.push(
|
|
7516
7521
|
...await fn(e, n, s, i)
|
|
7517
7522
|
);
|
|
@@ -7519,7 +7524,7 @@ const hn = [
|
|
|
7519
7524
|
}
|
|
7520
7525
|
}
|
|
7521
7526
|
for (const s of A.steps)
|
|
7522
|
-
s.type !==
|
|
7527
|
+
s.type !== f.SilentIllustration && s.type !== f.ProductOverlay || Fn(s, n) && a.push(
|
|
7523
7528
|
...await Dn(e, s, t)
|
|
7524
7529
|
);
|
|
7525
7530
|
return a;
|
|
@@ -7708,7 +7713,7 @@ const xn = (g, A) => {
|
|
|
7708
7713
|
const e = [];
|
|
7709
7714
|
return g.forEach((t) => {
|
|
7710
7715
|
const a = A.steps.find((n) => n.stepName === t.stepName);
|
|
7711
|
-
(a == null ? void 0 : a.type) ===
|
|
7716
|
+
(a == null ? void 0 : a.type) === f.Text && t.stepAspectType === "Text" && e.push({
|
|
7712
7717
|
name: a.stepName,
|
|
7713
7718
|
data: {
|
|
7714
7719
|
text: t.value
|
|
@@ -9893,14 +9898,14 @@ class Fs {
|
|
|
9893
9898
|
const E = i.get(A);
|
|
9894
9899
|
if (E && await this.authenticateCustomerId(E)) {
|
|
9895
9900
|
const Q = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
9896
|
-
(
|
|
9897
|
-
var
|
|
9898
|
-
return (
|
|
9901
|
+
(u) => {
|
|
9902
|
+
var p, D;
|
|
9903
|
+
return (D = (p = u.bundle) == null ? void 0 : p.transactions) == null ? void 0 : D.some((m) => m.id === A);
|
|
9899
9904
|
}
|
|
9900
9905
|
)) || ((h = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : h.find(
|
|
9901
|
-
(
|
|
9902
|
-
var
|
|
9903
|
-
return ((
|
|
9906
|
+
(u) => {
|
|
9907
|
+
var p;
|
|
9908
|
+
return ((p = u.transaction) == null ? void 0 : p.id) === A;
|
|
9904
9909
|
}
|
|
9905
9910
|
));
|
|
9906
9911
|
if (Q)
|
|
@@ -10119,53 +10124,53 @@ class Fs {
|
|
|
10119
10124
|
return await this.getWorkflowExperienceDeprecated(A, e, t);
|
|
10120
10125
|
const n = async (C) => {
|
|
10121
10126
|
var Q;
|
|
10122
|
-
for (const
|
|
10123
|
-
const
|
|
10124
|
-
(
|
|
10127
|
+
for (const u in C.layouts) {
|
|
10128
|
+
const p = C.layouts[u].elements.filter(
|
|
10129
|
+
(m) => m.type === H.Illustration
|
|
10125
10130
|
);
|
|
10126
|
-
for (let
|
|
10127
|
-
const I =
|
|
10131
|
+
for (let m = 0; m < p.length; ++m) {
|
|
10132
|
+
const I = p[m];
|
|
10128
10133
|
I.src && I.svg && (I.cachedObjectURL = await nA(I.svg));
|
|
10129
10134
|
}
|
|
10130
|
-
const
|
|
10131
|
-
(
|
|
10135
|
+
const D = C.layouts[u].elements.filter(
|
|
10136
|
+
(m) => m.type === H.Textbox
|
|
10132
10137
|
);
|
|
10133
|
-
for (let
|
|
10134
|
-
const I =
|
|
10138
|
+
for (let m = 0; m < D.length; ++m) {
|
|
10139
|
+
const I = D[m];
|
|
10135
10140
|
(Q = I.fontData) != null && Q.assetUrl && DA(I.fontData.assetUrl);
|
|
10136
10141
|
}
|
|
10137
10142
|
}
|
|
10138
10143
|
}, s = async () => {
|
|
10139
|
-
var Q,
|
|
10144
|
+
var Q, u;
|
|
10140
10145
|
const C = N.getShadowGraphqlClient();
|
|
10141
10146
|
if (a.type === "transaction") {
|
|
10142
|
-
const { transactionId:
|
|
10147
|
+
const { transactionId: p, readOnly: D } = a, m = await C.query({
|
|
10143
10148
|
query: EA,
|
|
10144
10149
|
variables: {
|
|
10145
|
-
ids: [
|
|
10150
|
+
ids: [p]
|
|
10146
10151
|
},
|
|
10147
10152
|
errorPolicy: "all",
|
|
10148
10153
|
fetchPolicy: "no-cache"
|
|
10149
10154
|
});
|
|
10150
|
-
if (!((Q =
|
|
10155
|
+
if (!((Q = m.data) != null && Q.transactions) || m.data.transactions.length === 0)
|
|
10151
10156
|
throw new U("Existing transaction not found.");
|
|
10152
|
-
const I = (
|
|
10157
|
+
const I = (u = m.data) == null ? void 0 : u.transactions[0];
|
|
10153
10158
|
if (!I.workflowId)
|
|
10154
10159
|
throw new U("Existing transaction has no workflow ID.");
|
|
10155
|
-
const
|
|
10160
|
+
const F = await pA(I.workflowId);
|
|
10156
10161
|
if (!I.product)
|
|
10157
10162
|
throw new U("Failed to load transaction, product not available.");
|
|
10158
|
-
return { transaction: I, workflow:
|
|
10163
|
+
return { transaction: I, workflow: F, readOnly: D };
|
|
10159
10164
|
}
|
|
10160
10165
|
if (a.type === "integration" || a.type === "external") {
|
|
10161
|
-
const
|
|
10162
|
-
const
|
|
10166
|
+
const p = async () => {
|
|
10167
|
+
const F = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10163
10168
|
externalIntegrationId: a.externalIntegrationId,
|
|
10164
10169
|
externalProductId: a.externalProductId
|
|
10165
10170
|
}, M = await C.mutate({
|
|
10166
10171
|
mutation: Ce,
|
|
10167
10172
|
variables: {
|
|
10168
|
-
...
|
|
10173
|
+
...F,
|
|
10169
10174
|
bulk: a.bulk,
|
|
10170
10175
|
workflowId: a.workflowId,
|
|
10171
10176
|
claim: !0
|
|
@@ -10181,8 +10186,8 @@ class Fs {
|
|
|
10181
10186
|
if (!Y.product)
|
|
10182
10187
|
throw new U("Failed to create transaction, product not available.");
|
|
10183
10188
|
return Y;
|
|
10184
|
-
},
|
|
10185
|
-
return { transaction:
|
|
10189
|
+
}, D = pA(a.workflowId, a == null ? void 0 : a.graphql), [m, I] = await Promise.all([p(), D]);
|
|
10190
|
+
return { transaction: m, workflow: I };
|
|
10186
10191
|
}
|
|
10187
10192
|
throw new U("No workflow ID provided.");
|
|
10188
10193
|
}, { transaction: i, workflow: o, readOnly: c } = await s();
|
|
@@ -10194,8 +10199,8 @@ class Fs {
|
|
|
10194
10199
|
stateMutationFunc: c ? async () => {
|
|
10195
10200
|
throw new J("State mutation is forbidden in read only mode!");
|
|
10196
10201
|
} : async (C) => {
|
|
10197
|
-
const
|
|
10198
|
-
return this.updateTransactionState({ ...C, context: { transactionOwnerId:
|
|
10202
|
+
const u = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
|
|
10203
|
+
return this.updateTransactionState({ ...C, context: { transactionOwnerId: u } });
|
|
10199
10204
|
},
|
|
10200
10205
|
readOnly: c,
|
|
10201
10206
|
workflow: o
|
|
@@ -10240,98 +10245,98 @@ class Fs {
|
|
|
10240
10245
|
async getWorkflowExperiences(A, e) {
|
|
10241
10246
|
if (A.length === 0)
|
|
10242
10247
|
throw new U("No options provided!");
|
|
10243
|
-
const t = N.getShadowGraphqlClient(), a = A.map((
|
|
10244
|
-
(
|
|
10248
|
+
const t = N.getShadowGraphqlClient(), a = A.map((u, p) => ({ option: u, index: p })), n = a.filter((u) => u.option.type === "transaction"), s = a.filter(
|
|
10249
|
+
(u) => u.option.type === "integration" || u.option.type === "external"
|
|
10245
10250
|
), i = async () => {
|
|
10246
|
-
var
|
|
10251
|
+
var m, I;
|
|
10247
10252
|
if (n.length === 0)
|
|
10248
10253
|
return [];
|
|
10249
|
-
const
|
|
10254
|
+
const u = n.map((F) => F.option.transactionId), p = await t.query({
|
|
10250
10255
|
query: EA,
|
|
10251
10256
|
variables: {
|
|
10252
|
-
ids:
|
|
10257
|
+
ids: u
|
|
10253
10258
|
},
|
|
10254
10259
|
errorPolicy: "all",
|
|
10255
10260
|
fetchPolicy: "no-cache"
|
|
10256
|
-
}),
|
|
10257
|
-
if (
|
|
10258
|
-
const
|
|
10259
|
-
throw new U(`Not all transactions were found: ${
|
|
10261
|
+
}), D = p.data.transactions;
|
|
10262
|
+
if (D.length !== n.length) {
|
|
10263
|
+
const F = ((I = (m = p.errors) == null ? void 0 : m[0]) == null ? void 0 : I.message) || "Unknown error";
|
|
10264
|
+
throw new U(`Not all transactions were found: ${F}`);
|
|
10260
10265
|
}
|
|
10261
|
-
return
|
|
10266
|
+
return D.map((F, M) => {
|
|
10262
10267
|
var Y;
|
|
10263
10268
|
return {
|
|
10264
|
-
transaction:
|
|
10265
|
-
workflowId:
|
|
10266
|
-
readOnly: ((Y = n.find((R) => R.option.transactionId ===
|
|
10269
|
+
transaction: F,
|
|
10270
|
+
workflowId: F.workflowId,
|
|
10271
|
+
readOnly: ((Y = n.find((R) => R.option.transactionId === F.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
|
|
10267
10272
|
index: n[M].index
|
|
10268
10273
|
};
|
|
10269
10274
|
});
|
|
10270
10275
|
}, o = async () => {
|
|
10271
|
-
var
|
|
10276
|
+
var D, m, I;
|
|
10272
10277
|
if (s.length === 0)
|
|
10273
10278
|
return [];
|
|
10274
|
-
const
|
|
10279
|
+
const u = await t.mutate({
|
|
10275
10280
|
mutation: ga,
|
|
10276
10281
|
variables: {
|
|
10277
|
-
inputs: s.map((
|
|
10278
|
-
integrationProductId:
|
|
10279
|
-
externalIntegrationId:
|
|
10280
|
-
externalProductId:
|
|
10281
|
-
workflowId:
|
|
10282
|
-
bulk:
|
|
10282
|
+
inputs: s.map((F) => ({
|
|
10283
|
+
integrationProductId: F.option.type === "integration" ? F.option.integrationProductId : void 0,
|
|
10284
|
+
externalIntegrationId: F.option.type === "external" ? F.option.externalIntegrationId : void 0,
|
|
10285
|
+
externalProductId: F.option.type === "external" ? F.option.externalProductId : void 0,
|
|
10286
|
+
workflowId: F.option.workflowId,
|
|
10287
|
+
bulk: F.option.bulk,
|
|
10283
10288
|
claim: !0
|
|
10284
10289
|
}))
|
|
10285
10290
|
},
|
|
10286
10291
|
errorPolicy: "all",
|
|
10287
10292
|
fetchPolicy: "no-cache"
|
|
10288
|
-
}),
|
|
10289
|
-
if (!
|
|
10290
|
-
const
|
|
10291
|
-
throw new U(`Failed to create transactions: ${
|
|
10293
|
+
}), p = (D = u.data) == null ? void 0 : D.transactionCreateMany;
|
|
10294
|
+
if (!p || p.length === 0) {
|
|
10295
|
+
const F = ((I = (m = u.errors) == null ? void 0 : m[0]) == null ? void 0 : I.message) || "Unknown error";
|
|
10296
|
+
throw new U(`Failed to create transactions: ${F}`);
|
|
10292
10297
|
}
|
|
10293
|
-
return
|
|
10294
|
-
transaction:
|
|
10295
|
-
workflowId:
|
|
10298
|
+
return p.map((F, M) => ({
|
|
10299
|
+
transaction: F,
|
|
10300
|
+
workflowId: F.workflowId,
|
|
10296
10301
|
readOnly: !1,
|
|
10297
10302
|
index: s[M].index
|
|
10298
10303
|
}));
|
|
10299
|
-
}, c = (await Promise.all([i(), o()])).flat(), r = [...new Set(c.map((
|
|
10300
|
-
var
|
|
10301
|
-
for (const
|
|
10302
|
-
const
|
|
10303
|
-
(
|
|
10304
|
+
}, c = (await Promise.all([i(), o()])).flat(), r = [...new Set(c.map((u) => u.workflowId))], B = await ht(r, e), l = new Map(B.map((u) => [u.id, u])), d = async (u) => {
|
|
10305
|
+
var p;
|
|
10306
|
+
for (const D in u.layouts) {
|
|
10307
|
+
const m = u.layouts[D].elements.filter(
|
|
10308
|
+
(F) => F.type === H.Illustration
|
|
10304
10309
|
);
|
|
10305
|
-
for (let
|
|
10306
|
-
const M = F
|
|
10310
|
+
for (let F = 0; F < m.length; ++F) {
|
|
10311
|
+
const M = m[F];
|
|
10307
10312
|
M.src && M.svg && (M.cachedObjectURL = await nA(M.svg));
|
|
10308
10313
|
}
|
|
10309
|
-
const I =
|
|
10310
|
-
(
|
|
10314
|
+
const I = u.layouts[D].elements.filter(
|
|
10315
|
+
(F) => F.type === H.Textbox
|
|
10311
10316
|
);
|
|
10312
|
-
for (let
|
|
10313
|
-
const M = I[
|
|
10314
|
-
(
|
|
10317
|
+
for (let F = 0; F < I.length; ++F) {
|
|
10318
|
+
const M = I[F];
|
|
10319
|
+
(p = M.fontData) != null && p.assetUrl && DA(M.fontData.assetUrl);
|
|
10315
10320
|
}
|
|
10316
10321
|
}
|
|
10317
|
-
}, w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = c.map(async (
|
|
10318
|
-
const { transaction:
|
|
10319
|
-
!w.get(
|
|
10320
|
-
const Y = w.get(
|
|
10321
|
-
product:
|
|
10322
|
-
transaction:
|
|
10322
|
+
}, w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = c.map(async (u) => {
|
|
10323
|
+
const { transaction: p, workflowId: D, readOnly: m, index: I } = u, F = l.get(D), M = A[I];
|
|
10324
|
+
!w.get(p.id) && p.transactionOwnerId && w.set(p.id, p.transactionOwnerId);
|
|
10325
|
+
const Y = w.get(p.id) || void 0, R = {
|
|
10326
|
+
product: p.product,
|
|
10327
|
+
transaction: p,
|
|
10323
10328
|
layouts: [],
|
|
10324
|
-
stateMutationFunc:
|
|
10329
|
+
stateMutationFunc: m ? async () => {
|
|
10325
10330
|
throw new J("State mutation is forbidden in read only mode!");
|
|
10326
10331
|
} : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
|
|
10327
|
-
readOnly:
|
|
10328
|
-
workflow:
|
|
10332
|
+
readOnly: m,
|
|
10333
|
+
workflow: F,
|
|
10329
10334
|
isReloadedTransaction: M.type === "transaction"
|
|
10330
10335
|
};
|
|
10331
|
-
if (M.type === "transaction" &&
|
|
10332
|
-
const S = JSON.parse(
|
|
10336
|
+
if (M.type === "transaction" && p.workflowState) {
|
|
10337
|
+
const S = JSON.parse(p.workflowState);
|
|
10333
10338
|
R.layouts = Object.values(S.layouts).map((k) => k.layout), await AA(S), await d(S), R.reloadedState = S;
|
|
10334
|
-
} else if (!
|
|
10339
|
+
} else if (!m && M.workflowState) {
|
|
10335
10340
|
const S = JSON.parse(M.workflowState);
|
|
10336
10341
|
R.layouts = Object.values(S.layouts).map((k) => k.layout), await AA(S), await d(S), R.reloadedState = S;
|
|
10337
10342
|
} else
|
|
@@ -10344,9 +10349,9 @@ class Fs {
|
|
|
10344
10349
|
), this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: I, options: M };
|
|
10345
10350
|
});
|
|
10346
10351
|
x.setMap("transactionOwnerIds", w);
|
|
10347
|
-
const Q = (await Promise.all(h)).sort((
|
|
10348
|
-
const { experienceOptions:
|
|
10349
|
-
return await
|
|
10352
|
+
const Q = (await Promise.all(h)).sort((u, p) => u.index - p.index).map(async (u) => {
|
|
10353
|
+
const { experienceOptions: p, options: D } = u, m = new CA(this, p);
|
|
10354
|
+
return await m.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await m.attachCustomerDetails({ email: this.customer.emailAddress }), m;
|
|
10350
10355
|
});
|
|
10351
10356
|
return await Promise.all(Q);
|
|
10352
10357
|
}
|