@spiffcommerce/core 16.2.2-0 → 16.2.2-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 +321 -313
- package/dist/index.umd.cjs +15 -15
- 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),
|
|
@@ -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}`);
|
|
@@ -5393,10 +5392,10 @@ class Xa {
|
|
|
5393
5392
|
if (!t)
|
|
5394
5393
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
5395
5394
|
const a = async (c, r, B) => {
|
|
5396
|
-
if (c.type ===
|
|
5395
|
+
if (c.type === f.SilentIllustration) {
|
|
5397
5396
|
const l = await new Qe(c, r).trigger();
|
|
5398
5397
|
return { step: c, results: l };
|
|
5399
|
-
} else if (c.type ===
|
|
5398
|
+
} else if (c.type === f.ProductOverlay) {
|
|
5400
5399
|
const l = await new Qe(
|
|
5401
5400
|
c,
|
|
5402
5401
|
r,
|
|
@@ -5447,33 +5446,43 @@ class Xa {
|
|
|
5447
5446
|
), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.currentVariationRecord = null, await this.ensureStepsAreLoaded();
|
|
5448
5447
|
}
|
|
5449
5448
|
async setSelectionsAndElements(A, e, t, a) {
|
|
5450
|
-
var
|
|
5449
|
+
var D;
|
|
5451
5450
|
const n = this.stepSelections;
|
|
5452
5451
|
this.stepSelections = {
|
|
5453
5452
|
...this.stepSelections,
|
|
5454
5453
|
[A]: { selectedVariants: e }
|
|
5455
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((
|
|
5456
|
-
aA(
|
|
5454
|
+
}, 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) => {
|
|
5455
|
+
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
5456
|
});
|
|
5458
|
-
const s = this.allScenes, i = tA(s, n), o = tA(s, this.stepSelections), c = i.map((
|
|
5459
|
-
(
|
|
5457
|
+
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(
|
|
5458
|
+
(m) => !c.some((I) => I.stepName === m.stepName)
|
|
5460
5459
|
);
|
|
5461
|
-
c.forEach((
|
|
5462
|
-
aA(
|
|
5463
|
-
})
|
|
5460
|
+
c.forEach((m) => {
|
|
5461
|
+
aA(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
|
|
5462
|
+
});
|
|
5464
5463
|
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: w } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
5465
5464
|
this.stepElements = {
|
|
5466
5465
|
...this.stepElements,
|
|
5467
5466
|
...d,
|
|
5468
5467
|
[A]: t
|
|
5469
5468
|
}, 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()
|
|
5469
|
+
const h = this.workflow.steps.find((m) => m.stepName === A);
|
|
5470
|
+
if ((h == null ? void 0 : h.type) === f.Frame) {
|
|
5471
|
+
const m = this.getStepSpecificServices(A);
|
|
5472
|
+
(D = m == null ? void 0 : m.frameService) == null || D.setTargetElements(t.map((I) => I.id));
|
|
5473
|
+
}
|
|
5474
|
+
const E = l.map((m) => new $(m.id)), C = new de(this.constructSerializableWorkflow()), Q = [...w, ...E, C];
|
|
5475
|
+
Q.length > 0 && this.commandContext.apply(new G(Q), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5476
|
+
const u = this.getInvalidModelVariants(), p = this.modelContainer;
|
|
5477
|
+
u.length > 0 && p && u.forEach((m) => {
|
|
5478
|
+
p.applyModelVariant(
|
|
5479
|
+
m,
|
|
5480
|
+
{
|
|
5481
|
+
contextService: this.getLayoutPreviewService()
|
|
5482
|
+
},
|
|
5483
|
+
!1
|
|
5484
|
+
);
|
|
5485
|
+
}), await this.onSelectionChange(), a && await a();
|
|
5477
5486
|
}
|
|
5478
5487
|
async ensureStepsAreLoaded() {
|
|
5479
5488
|
var o, c;
|
|
@@ -5481,13 +5490,13 @@ class Xa {
|
|
|
5481
5490
|
for (const r of a)
|
|
5482
5491
|
if (!this.stepInitialised[r.stepName])
|
|
5483
5492
|
switch (this.stepInitialised[r.stepName] = !0, r.type) {
|
|
5484
|
-
case
|
|
5493
|
+
case f.Bulk:
|
|
5485
5494
|
this.updateStorage(
|
|
5486
5495
|
"Bulk",
|
|
5487
5496
|
((c = (o = this.reloadedState) == null ? void 0 : o.serializableWorkflow.steps.find((B) => B.stepName === "Bulk")) == null ? void 0 : c.storage) || {}
|
|
5488
5497
|
);
|
|
5489
5498
|
break;
|
|
5490
|
-
case
|
|
5499
|
+
case f.DigitalContent:
|
|
5491
5500
|
t.push(
|
|
5492
5501
|
Da.init(
|
|
5493
5502
|
r,
|
|
@@ -5496,8 +5505,8 @@ class Xa {
|
|
|
5496
5505
|
)
|
|
5497
5506
|
);
|
|
5498
5507
|
break;
|
|
5499
|
-
case
|
|
5500
|
-
case
|
|
5508
|
+
case f.Frame:
|
|
5509
|
+
case f.Photo:
|
|
5501
5510
|
{
|
|
5502
5511
|
const B = new ma(r.data.forceImageCover);
|
|
5503
5512
|
B.connectWorkflowManager(this, r.stepName), this.stepSpecificServices[r.stepName] = {
|
|
@@ -5507,40 +5516,40 @@ class Xa {
|
|
|
5507
5516
|
);
|
|
5508
5517
|
}
|
|
5509
5518
|
break;
|
|
5510
|
-
case
|
|
5519
|
+
case f.Illustration:
|
|
5511
5520
|
t.push(
|
|
5512
5521
|
FA.init(r, this, this.reloadedState)
|
|
5513
5522
|
);
|
|
5514
5523
|
break;
|
|
5515
|
-
case
|
|
5524
|
+
case f.Material:
|
|
5516
5525
|
t.push(
|
|
5517
5526
|
$e.init(r, this, this.reloadedState)
|
|
5518
5527
|
);
|
|
5519
5528
|
break;
|
|
5520
|
-
case
|
|
5529
|
+
case f.Model:
|
|
5521
5530
|
t.push(_e.init(r, this, this.reloadedState));
|
|
5522
5531
|
break;
|
|
5523
|
-
case
|
|
5532
|
+
case f.Module:
|
|
5524
5533
|
this.stepSpecificServices[r.stepName] = {
|
|
5525
5534
|
module: await it(r.data.module)
|
|
5526
5535
|
}, t.push(
|
|
5527
5536
|
Sa.init(r, this, this.reloadedState)
|
|
5528
5537
|
);
|
|
5529
5538
|
break;
|
|
5530
|
-
case
|
|
5539
|
+
case f.Picture:
|
|
5531
5540
|
t.push(
|
|
5532
5541
|
At.init(r, this, this.reloadedState)
|
|
5533
5542
|
);
|
|
5534
5543
|
break;
|
|
5535
|
-
case
|
|
5544
|
+
case f.Question:
|
|
5536
5545
|
t.push(
|
|
5537
5546
|
et.init(r, this, this.reloadedState)
|
|
5538
5547
|
);
|
|
5539
5548
|
break;
|
|
5540
|
-
case
|
|
5549
|
+
case f.Shape:
|
|
5541
5550
|
t.push(cA.init(r, this, this.reloadedState));
|
|
5542
5551
|
break;
|
|
5543
|
-
case
|
|
5552
|
+
case f.Text:
|
|
5544
5553
|
t.push(K.init(r, this, this.reloadedState));
|
|
5545
5554
|
break;
|
|
5546
5555
|
}
|
|
@@ -5586,7 +5595,6 @@ class Xa {
|
|
|
5586
5595
|
const A = await this.traversableScenes();
|
|
5587
5596
|
for (const e of this.selectionCallbacks)
|
|
5588
5597
|
e({
|
|
5589
|
-
invalidModelVariants: this.invalidModelVariants,
|
|
5590
5598
|
selectionCost: this.selectionCost,
|
|
5591
5599
|
selections: this.stepSelections,
|
|
5592
5600
|
traversableScenes: A
|
|
@@ -6240,25 +6248,25 @@ class sn extends j {
|
|
|
6240
6248
|
class oA {
|
|
6241
6249
|
static get(A, e) {
|
|
6242
6250
|
switch (e.type) {
|
|
6243
|
-
case
|
|
6251
|
+
case f.Information:
|
|
6244
6252
|
return new sn(A, e);
|
|
6245
|
-
case
|
|
6253
|
+
case f.Question:
|
|
6246
6254
|
return new tn(A, e);
|
|
6247
|
-
case
|
|
6255
|
+
case f.Text:
|
|
6248
6256
|
return new nn(A, e);
|
|
6249
|
-
case
|
|
6257
|
+
case f.Illustration:
|
|
6250
6258
|
return new $a(A, e);
|
|
6251
|
-
case
|
|
6259
|
+
case f.Picture:
|
|
6252
6260
|
return new en(A, e);
|
|
6253
|
-
case
|
|
6261
|
+
case f.Shape:
|
|
6254
6262
|
return new an(A, e);
|
|
6255
|
-
case
|
|
6263
|
+
case f.Material:
|
|
6256
6264
|
return new _a(A, e);
|
|
6257
|
-
case
|
|
6265
|
+
case f.Model:
|
|
6258
6266
|
return new An(A, e);
|
|
6259
|
-
case
|
|
6267
|
+
case f.Frame:
|
|
6260
6268
|
return new ys(A, e);
|
|
6261
|
-
case
|
|
6269
|
+
case f.Bulk:
|
|
6262
6270
|
return new Za(A, e);
|
|
6263
6271
|
default:
|
|
6264
6272
|
throw new J(`Step type ${e.type} not yet supported in Core SDK`);
|
|
@@ -6486,7 +6494,7 @@ const ct = y`
|
|
|
6486
6494
|
i
|
|
6487
6495
|
);
|
|
6488
6496
|
}, Bt = async (g, A, e, t, a, n, s, i, o, c) => {
|
|
6489
|
-
var
|
|
6497
|
+
var F;
|
|
6490
6498
|
await (async () => {
|
|
6491
6499
|
var S;
|
|
6492
6500
|
if (c !== void 0)
|
|
@@ -6502,7 +6510,7 @@ const ct = y`
|
|
|
6502
6510
|
Y.errors && console.log("Server Error:", k.message);
|
|
6503
6511
|
}), null) : R ?? null;
|
|
6504
6512
|
})() || (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 = (
|
|
6513
|
+
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
6514
|
const Y = {};
|
|
6507
6515
|
let R = 0;
|
|
6508
6516
|
if (Object.keys(n).length > 0)
|
|
@@ -6528,14 +6536,14 @@ const ct = y`
|
|
|
6528
6536
|
}
|
|
6529
6537
|
}
|
|
6530
6538
|
return [Y, R];
|
|
6531
|
-
}, [Q] = await C(!0),
|
|
6539
|
+
}, [Q] = await C(!0), u = Object.fromEntries(
|
|
6532
6540
|
Object.keys(Q).map((M) => [M, Q[M].map((Y) => Y.id)])
|
|
6533
|
-
), [
|
|
6534
|
-
Object.keys(
|
|
6541
|
+
), [p] = await C(!1), D = Object.fromEntries(
|
|
6542
|
+
Object.keys(p).map((M) => [
|
|
6535
6543
|
M,
|
|
6536
|
-
|
|
6544
|
+
p[M].map((Y) => Y.id)
|
|
6537
6545
|
])
|
|
6538
|
-
),
|
|
6546
|
+
), m = await i(w);
|
|
6539
6547
|
return {
|
|
6540
6548
|
designDetails: (() => {
|
|
6541
6549
|
const M = {
|
|
@@ -6547,7 +6555,7 @@ const ct = y`
|
|
|
6547
6555
|
workflowId: A.id,
|
|
6548
6556
|
transactionId: a.id,
|
|
6549
6557
|
useThreeDimPreview: !!w,
|
|
6550
|
-
previewImage:
|
|
6558
|
+
previewImage: m
|
|
6551
6559
|
};
|
|
6552
6560
|
if (E) {
|
|
6553
6561
|
const Y = [];
|
|
@@ -6555,9 +6563,9 @@ const ct = y`
|
|
|
6555
6563
|
Y.push({ key: R, value: S });
|
|
6556
6564
|
M.metadata = Y;
|
|
6557
6565
|
}
|
|
6558
|
-
if (
|
|
6566
|
+
if (u) {
|
|
6559
6567
|
const Y = [];
|
|
6560
|
-
for (const [R, S] of Object.entries(
|
|
6568
|
+
for (const [R, S] of Object.entries(D))
|
|
6561
6569
|
Y.push({ key: R, ids: S });
|
|
6562
6570
|
M.selectedVariants = Y;
|
|
6563
6571
|
}
|
|
@@ -6567,7 +6575,7 @@ const ct = y`
|
|
|
6567
6575
|
cartMetadata: h
|
|
6568
6576
|
};
|
|
6569
6577
|
}, dn = async (g, A, e, t, a, n, s, i, o, c, r, B, l) => {
|
|
6570
|
-
var
|
|
6578
|
+
var u, p, D;
|
|
6571
6579
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6572
6580
|
const { designDetails: d, cartSelectionsWithPrices: w, cartMetadata: h } = await Bt(
|
|
6573
6581
|
g,
|
|
@@ -6581,7 +6589,7 @@ const ct = y`
|
|
|
6581
6589
|
l
|
|
6582
6590
|
);
|
|
6583
6591
|
o("workflow.steps.finish.finalize.creatingDesign"), n.bulk && await c(r);
|
|
6584
|
-
const E = await cn(d), C = (
|
|
6592
|
+
const E = await cn(d), C = (u = E == null ? void 0 : E.transaction) == null ? void 0 : u.previewImageLink;
|
|
6585
6593
|
if (!(E != null && E.transaction))
|
|
6586
6594
|
throw new Error("Failed to create design");
|
|
6587
6595
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
@@ -6590,7 +6598,7 @@ const ct = y`
|
|
|
6590
6598
|
Q,
|
|
6591
6599
|
a,
|
|
6592
6600
|
C,
|
|
6593
|
-
(
|
|
6601
|
+
(p = E == null ? void 0 : E.processExecution) == null ? void 0 : p.id
|
|
6594
6602
|
) : await lt(
|
|
6595
6603
|
Q,
|
|
6596
6604
|
a,
|
|
@@ -6599,7 +6607,7 @@ const ct = y`
|
|
|
6599
6607
|
E == null ? void 0 : E.sku,
|
|
6600
6608
|
h,
|
|
6601
6609
|
C,
|
|
6602
|
-
(
|
|
6610
|
+
(D = E == null ? void 0 : E.processExecution) == null ? void 0 : D.id
|
|
6603
6611
|
);
|
|
6604
6612
|
}, wn = async (g, A) => {
|
|
6605
6613
|
A("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
@@ -6807,18 +6815,18 @@ class CA {
|
|
|
6807
6815
|
});
|
|
6808
6816
|
}
|
|
6809
6817
|
async createPreviewImage(A, e) {
|
|
6810
|
-
var Q,
|
|
6818
|
+
var Q, u;
|
|
6811
6819
|
const t = this.workflowManager.getWorkflow(), a = (Q = t == null ? void 0 : t.finalizeStepConfig) == null ? void 0 : Q.lookAtAnimation;
|
|
6812
6820
|
if (A) {
|
|
6813
6821
|
if (!a)
|
|
6814
6822
|
throw new Error("Failed to generate cart preview image!");
|
|
6815
|
-
return await ((
|
|
6823
|
+
return await ((u = this.workflowManager.getPreviewService()) == null ? void 0 : u.renderSceneScreenshot(512, a)) || "";
|
|
6816
6824
|
}
|
|
6817
6825
|
let n = 2048;
|
|
6818
6826
|
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 ((
|
|
6827
|
+
const s = yA(n, n), i = this.commandContext.getAllLayouts(), o = t.defaultPreviewPanelIndex || 0, c = t.panels[o], r = i.find((p) => {
|
|
6828
|
+
var D;
|
|
6829
|
+
return ((D = p.layoutState) == null ? void 0 : D.layout.panelId) === (c == null ? void 0 : c.name);
|
|
6822
6830
|
}) || i[0], B = r.layoutState.layout.previewRegion ? {
|
|
6823
6831
|
x: r.layoutState.layout.previewRegion.left,
|
|
6824
6832
|
y: r.layoutState.layout.previewRegion.top,
|
|
@@ -6880,7 +6888,7 @@ class CA {
|
|
|
6880
6888
|
getBulkStep() {
|
|
6881
6889
|
if (this.getWorkflowManager().getTransaction().bulk) {
|
|
6882
6890
|
const A = this.getWorkflowManager().getProduct().bulkConfiguration, e = {
|
|
6883
|
-
type:
|
|
6891
|
+
type: f.Bulk,
|
|
6884
6892
|
stepName: "Bulk",
|
|
6885
6893
|
stepTitle: (A == null ? void 0 : A.stepTitle) ?? "workflow.steps.bulk.title",
|
|
6886
6894
|
helpText: A == null ? void 0 : A.helpText,
|
|
@@ -6994,7 +7002,7 @@ class CA {
|
|
|
6994
7002
|
* @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
7003
|
*/
|
|
6996
7004
|
stepHasHandle(A) {
|
|
6997
|
-
return A.type !==
|
|
7005
|
+
return A.type !== f.SilentIllustration && A.type !== f.ProductOverlay;
|
|
6998
7006
|
}
|
|
6999
7007
|
getExportedData() {
|
|
7000
7008
|
var a;
|
|
@@ -7107,17 +7115,17 @@ const hn = [
|
|
|
7107
7115
|
return console.error(i), [];
|
|
7108
7116
|
}
|
|
7109
7117
|
}, un = async (g, A, e, t) => {
|
|
7110
|
-
var
|
|
7118
|
+
var D, m;
|
|
7111
7119
|
const a = e.data, n = t.option;
|
|
7112
7120
|
if (!n)
|
|
7113
7121
|
return console.error(`No option for step ${t.stepName}.`), [];
|
|
7114
|
-
const s = ((
|
|
7122
|
+
const s = ((D = n.variants) == null ? void 0 : D.find((I) => I.id === a.illustrationVariantId)) || GA(n);
|
|
7115
7123
|
if (!s)
|
|
7116
7124
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
7117
7125
|
if (!s.asset)
|
|
7118
7126
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7119
7127
|
A[t.stepName] = { selectedVariants: [s] };
|
|
7120
|
-
const i = (
|
|
7128
|
+
const i = (m = s.asset) == null ? void 0 : m.fileLink;
|
|
7121
7129
|
if (!i)
|
|
7122
7130
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7123
7131
|
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 +7135,9 @@ const hn = [
|
|
|
7127
7135
|
const h = {};
|
|
7128
7136
|
Pt(w, (I) => {
|
|
7129
7137
|
hn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
7130
|
-
const
|
|
7131
|
-
if (
|
|
7132
|
-
const Y =
|
|
7138
|
+
const F = I.attributes.getNamedItem("fill");
|
|
7139
|
+
if (F && F.value !== "none") {
|
|
7140
|
+
const Y = F.value, S = `spiff-fill-${Y.replace(/\W/g, "")}`;
|
|
7133
7141
|
I.classList.add(S), h[S] = { browserValue: Y };
|
|
7134
7142
|
}
|
|
7135
7143
|
const M = I.attributes.getNamedItem("stroke");
|
|
@@ -7140,16 +7148,16 @@ const hn = [
|
|
|
7140
7148
|
});
|
|
7141
7149
|
const C = Ue().serializeToString(w), Q = a.colors;
|
|
7142
7150
|
if (Q) {
|
|
7143
|
-
for (const [I,
|
|
7151
|
+
for (const [I, F] of Object.entries(h))
|
|
7144
7152
|
for (const M of Object.keys(Q))
|
|
7145
|
-
if (
|
|
7153
|
+
if (F.browserValue === M) {
|
|
7146
7154
|
h[I] = { browserValue: Q[M] };
|
|
7147
7155
|
break;
|
|
7148
7156
|
}
|
|
7149
7157
|
}
|
|
7150
|
-
const
|
|
7151
|
-
const
|
|
7152
|
-
if (!
|
|
7158
|
+
const u = (I) => {
|
|
7159
|
+
const F = g.find((Y) => Y.panelId === I.panelId);
|
|
7160
|
+
if (!F)
|
|
7153
7161
|
throw new L(I);
|
|
7154
7162
|
const M = v();
|
|
7155
7163
|
return new b(
|
|
@@ -7167,11 +7175,11 @@ const hn = [
|
|
|
7167
7175
|
layerIndex: I.layerIndex,
|
|
7168
7176
|
immutable: I.immutable
|
|
7169
7177
|
},
|
|
7170
|
-
|
|
7178
|
+
F
|
|
7171
7179
|
);
|
|
7172
|
-
},
|
|
7180
|
+
}, p = t.data.regions;
|
|
7173
7181
|
try {
|
|
7174
|
-
return
|
|
7182
|
+
return p.map(u);
|
|
7175
7183
|
} catch (I) {
|
|
7176
7184
|
return console.error(I), [];
|
|
7177
7185
|
}
|
|
@@ -7307,7 +7315,7 @@ const hn = [
|
|
|
7307
7315
|
}, Dn = async (g, A, e) => {
|
|
7308
7316
|
const t = [], n = (() => {
|
|
7309
7317
|
var c, r;
|
|
7310
|
-
return A.type ===
|
|
7318
|
+
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
7319
|
})(), i = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? H.Image : n.endsWith(".svg") ? H.Illustration : H.Illustration)(), o = A.data.regions;
|
|
7312
7320
|
if (i === "image")
|
|
7313
7321
|
try {
|
|
@@ -7325,7 +7333,7 @@ const hn = [
|
|
|
7325
7333
|
height: c.height,
|
|
7326
7334
|
layer: c.layer,
|
|
7327
7335
|
layerIndex: c.layerIndex,
|
|
7328
|
-
productOverlay: A.type ===
|
|
7336
|
+
productOverlay: A.type === f.ProductOverlay ? !0 : void 0,
|
|
7329
7337
|
scaleX: 1,
|
|
7330
7338
|
scaleY: 1,
|
|
7331
7339
|
rotation: c.rotation,
|
|
@@ -7365,7 +7373,7 @@ const hn = [
|
|
|
7365
7373
|
scaleX: 1,
|
|
7366
7374
|
scaleY: 1,
|
|
7367
7375
|
rotation: B.rotation,
|
|
7368
|
-
productOverlay: A.type ===
|
|
7376
|
+
productOverlay: A.type === f.ProductOverlay ? !0 : void 0,
|
|
7369
7377
|
excludeFromExport: A.data.excludeFromPrint
|
|
7370
7378
|
};
|
|
7371
7379
|
t.push(new b(d, l));
|
|
@@ -7374,11 +7382,11 @@ const hn = [
|
|
|
7374
7382
|
return t;
|
|
7375
7383
|
}, fn = async (g, A, e, t) => {
|
|
7376
7384
|
const a = [], n = e.data, s = 30, i = (E) => E.vertical ? "center" : E.textAlign || "center", o = () => {
|
|
7377
|
-
var
|
|
7385
|
+
var u;
|
|
7378
7386
|
const E = t.option;
|
|
7379
7387
|
if (!E)
|
|
7380
7388
|
return;
|
|
7381
|
-
const C = ((
|
|
7389
|
+
const C = ((u = E.variants) == null ? void 0 : u.find((p) => p.id === n.fontVariantId)) || GA(E);
|
|
7382
7390
|
if (!C || !C.asset)
|
|
7383
7391
|
return;
|
|
7384
7392
|
A[t.stepName] = { selectedVariants: [C] };
|
|
@@ -7390,10 +7398,10 @@ const hn = [
|
|
|
7390
7398
|
if (!E)
|
|
7391
7399
|
return;
|
|
7392
7400
|
console.log(`fetching ${E}`);
|
|
7393
|
-
const C = await Me(E), Q = await Ht(C),
|
|
7394
|
-
return await Ut(
|
|
7401
|
+
const C = await Me(E), Q = await Ht(C), u = UA(Q);
|
|
7402
|
+
return await Ut(u, E), {
|
|
7395
7403
|
assetUrl: E,
|
|
7396
|
-
name:
|
|
7404
|
+
name: u.names.fullName.en
|
|
7397
7405
|
};
|
|
7398
7406
|
})(), B = t.data.replaceableText ? t.data.replaceableText.replace("{{}}", n.text) : n.text, l = XA(B, {
|
|
7399
7407
|
vertical: t.data.vertical,
|
|
@@ -7406,7 +7414,7 @@ const hn = [
|
|
|
7406
7414
|
return Q == null ? void 0 : Q.color;
|
|
7407
7415
|
}, w = n.color || await d(t.data), h = t.data.regions;
|
|
7408
7416
|
for (const E of h) {
|
|
7409
|
-
const C = g.find((
|
|
7417
|
+
const C = g.find((u) => u.panelId === E.panelId);
|
|
7410
7418
|
if (!C)
|
|
7411
7419
|
continue;
|
|
7412
7420
|
const Q = {
|
|
@@ -7431,7 +7439,7 @@ const hn = [
|
|
|
7431
7439
|
y: E.top
|
|
7432
7440
|
};
|
|
7433
7441
|
if (r) {
|
|
7434
|
-
const [
|
|
7442
|
+
const [u, p] = IA(
|
|
7435
7443
|
t.data.size || s,
|
|
7436
7444
|
r,
|
|
7437
7445
|
E,
|
|
@@ -7451,8 +7459,8 @@ const hn = [
|
|
|
7451
7459
|
new b(
|
|
7452
7460
|
{
|
|
7453
7461
|
...Q,
|
|
7454
|
-
fontSize:
|
|
7455
|
-
text: Q.curved ? Q.text : (
|
|
7462
|
+
fontSize: u,
|
|
7463
|
+
text: Q.curved ? Q.text : (p || []).join(`
|
|
7456
7464
|
`)
|
|
7457
7465
|
},
|
|
7458
7466
|
C
|
|
@@ -7477,18 +7485,18 @@ const hn = [
|
|
|
7477
7485
|
const i = A.steps.find((o) => o.stepName === s.name);
|
|
7478
7486
|
if (i)
|
|
7479
7487
|
switch (i.type) {
|
|
7480
|
-
case
|
|
7488
|
+
case f.DigitalContent:
|
|
7481
7489
|
a.push(
|
|
7482
7490
|
...await Cn(e, s, i)
|
|
7483
7491
|
);
|
|
7484
7492
|
break;
|
|
7485
|
-
case
|
|
7486
|
-
case
|
|
7493
|
+
case f.Frame:
|
|
7494
|
+
case f.Photo:
|
|
7487
7495
|
a.push(
|
|
7488
7496
|
...await Qn(e, n, s, i)
|
|
7489
7497
|
);
|
|
7490
7498
|
break;
|
|
7491
|
-
case
|
|
7499
|
+
case f.Illustration:
|
|
7492
7500
|
a.push(
|
|
7493
7501
|
...await un(
|
|
7494
7502
|
e,
|
|
@@ -7498,20 +7506,20 @@ const hn = [
|
|
|
7498
7506
|
)
|
|
7499
7507
|
);
|
|
7500
7508
|
break;
|
|
7501
|
-
case
|
|
7509
|
+
case f.Module:
|
|
7502
7510
|
a.push(...await mn(e, s, i));
|
|
7503
7511
|
break;
|
|
7504
|
-
case
|
|
7512
|
+
case f.Picture:
|
|
7505
7513
|
a.push(
|
|
7506
7514
|
...await pn(e, n, s, i)
|
|
7507
7515
|
);
|
|
7508
7516
|
break;
|
|
7509
|
-
case
|
|
7517
|
+
case f.Shape:
|
|
7510
7518
|
a.push(
|
|
7511
7519
|
...await In(e, n, s, i)
|
|
7512
7520
|
);
|
|
7513
7521
|
break;
|
|
7514
|
-
case
|
|
7522
|
+
case f.Text:
|
|
7515
7523
|
a.push(
|
|
7516
7524
|
...await fn(e, n, s, i)
|
|
7517
7525
|
);
|
|
@@ -7519,7 +7527,7 @@ const hn = [
|
|
|
7519
7527
|
}
|
|
7520
7528
|
}
|
|
7521
7529
|
for (const s of A.steps)
|
|
7522
|
-
s.type !==
|
|
7530
|
+
s.type !== f.SilentIllustration && s.type !== f.ProductOverlay || Fn(s, n) && a.push(
|
|
7523
7531
|
...await Dn(e, s, t)
|
|
7524
7532
|
);
|
|
7525
7533
|
return a;
|
|
@@ -7708,7 +7716,7 @@ const xn = (g, A) => {
|
|
|
7708
7716
|
const e = [];
|
|
7709
7717
|
return g.forEach((t) => {
|
|
7710
7718
|
const a = A.steps.find((n) => n.stepName === t.stepName);
|
|
7711
|
-
(a == null ? void 0 : a.type) ===
|
|
7719
|
+
(a == null ? void 0 : a.type) === f.Text && t.stepAspectType === "Text" && e.push({
|
|
7712
7720
|
name: a.stepName,
|
|
7713
7721
|
data: {
|
|
7714
7722
|
text: t.value
|
|
@@ -9893,14 +9901,14 @@ class Fs {
|
|
|
9893
9901
|
const E = i.get(A);
|
|
9894
9902
|
if (E && await this.authenticateCustomerId(E)) {
|
|
9895
9903
|
const Q = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
9896
|
-
(
|
|
9897
|
-
var
|
|
9898
|
-
return (
|
|
9904
|
+
(u) => {
|
|
9905
|
+
var p, D;
|
|
9906
|
+
return (D = (p = u.bundle) == null ? void 0 : p.transactions) == null ? void 0 : D.some((m) => m.id === A);
|
|
9899
9907
|
}
|
|
9900
9908
|
)) || ((h = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : h.find(
|
|
9901
|
-
(
|
|
9902
|
-
var
|
|
9903
|
-
return ((
|
|
9909
|
+
(u) => {
|
|
9910
|
+
var p;
|
|
9911
|
+
return ((p = u.transaction) == null ? void 0 : p.id) === A;
|
|
9904
9912
|
}
|
|
9905
9913
|
));
|
|
9906
9914
|
if (Q)
|
|
@@ -10119,53 +10127,53 @@ class Fs {
|
|
|
10119
10127
|
return await this.getWorkflowExperienceDeprecated(A, e, t);
|
|
10120
10128
|
const n = async (C) => {
|
|
10121
10129
|
var Q;
|
|
10122
|
-
for (const
|
|
10123
|
-
const
|
|
10124
|
-
(
|
|
10130
|
+
for (const u in C.layouts) {
|
|
10131
|
+
const p = C.layouts[u].elements.filter(
|
|
10132
|
+
(m) => m.type === H.Illustration
|
|
10125
10133
|
);
|
|
10126
|
-
for (let
|
|
10127
|
-
const I =
|
|
10134
|
+
for (let m = 0; m < p.length; ++m) {
|
|
10135
|
+
const I = p[m];
|
|
10128
10136
|
I.src && I.svg && (I.cachedObjectURL = await nA(I.svg));
|
|
10129
10137
|
}
|
|
10130
|
-
const
|
|
10131
|
-
(
|
|
10138
|
+
const D = C.layouts[u].elements.filter(
|
|
10139
|
+
(m) => m.type === H.Textbox
|
|
10132
10140
|
);
|
|
10133
|
-
for (let
|
|
10134
|
-
const I =
|
|
10141
|
+
for (let m = 0; m < D.length; ++m) {
|
|
10142
|
+
const I = D[m];
|
|
10135
10143
|
(Q = I.fontData) != null && Q.assetUrl && DA(I.fontData.assetUrl);
|
|
10136
10144
|
}
|
|
10137
10145
|
}
|
|
10138
10146
|
}, s = async () => {
|
|
10139
|
-
var Q,
|
|
10147
|
+
var Q, u;
|
|
10140
10148
|
const C = N.getShadowGraphqlClient();
|
|
10141
10149
|
if (a.type === "transaction") {
|
|
10142
|
-
const { transactionId:
|
|
10150
|
+
const { transactionId: p, readOnly: D } = a, m = await C.query({
|
|
10143
10151
|
query: EA,
|
|
10144
10152
|
variables: {
|
|
10145
|
-
ids: [
|
|
10153
|
+
ids: [p]
|
|
10146
10154
|
},
|
|
10147
10155
|
errorPolicy: "all",
|
|
10148
10156
|
fetchPolicy: "no-cache"
|
|
10149
10157
|
});
|
|
10150
|
-
if (!((Q =
|
|
10158
|
+
if (!((Q = m.data) != null && Q.transactions) || m.data.transactions.length === 0)
|
|
10151
10159
|
throw new U("Existing transaction not found.");
|
|
10152
|
-
const I = (
|
|
10160
|
+
const I = (u = m.data) == null ? void 0 : u.transactions[0];
|
|
10153
10161
|
if (!I.workflowId)
|
|
10154
10162
|
throw new U("Existing transaction has no workflow ID.");
|
|
10155
|
-
const
|
|
10163
|
+
const F = await pA(I.workflowId);
|
|
10156
10164
|
if (!I.product)
|
|
10157
10165
|
throw new U("Failed to load transaction, product not available.");
|
|
10158
|
-
return { transaction: I, workflow:
|
|
10166
|
+
return { transaction: I, workflow: F, readOnly: D };
|
|
10159
10167
|
}
|
|
10160
10168
|
if (a.type === "integration" || a.type === "external") {
|
|
10161
|
-
const
|
|
10162
|
-
const
|
|
10169
|
+
const p = async () => {
|
|
10170
|
+
const F = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10163
10171
|
externalIntegrationId: a.externalIntegrationId,
|
|
10164
10172
|
externalProductId: a.externalProductId
|
|
10165
10173
|
}, M = await C.mutate({
|
|
10166
10174
|
mutation: Ce,
|
|
10167
10175
|
variables: {
|
|
10168
|
-
...
|
|
10176
|
+
...F,
|
|
10169
10177
|
bulk: a.bulk,
|
|
10170
10178
|
workflowId: a.workflowId,
|
|
10171
10179
|
claim: !0
|
|
@@ -10181,8 +10189,8 @@ class Fs {
|
|
|
10181
10189
|
if (!Y.product)
|
|
10182
10190
|
throw new U("Failed to create transaction, product not available.");
|
|
10183
10191
|
return Y;
|
|
10184
|
-
},
|
|
10185
|
-
return { transaction:
|
|
10192
|
+
}, D = pA(a.workflowId, a == null ? void 0 : a.graphql), [m, I] = await Promise.all([p(), D]);
|
|
10193
|
+
return { transaction: m, workflow: I };
|
|
10186
10194
|
}
|
|
10187
10195
|
throw new U("No workflow ID provided.");
|
|
10188
10196
|
}, { transaction: i, workflow: o, readOnly: c } = await s();
|
|
@@ -10194,8 +10202,8 @@ class Fs {
|
|
|
10194
10202
|
stateMutationFunc: c ? async () => {
|
|
10195
10203
|
throw new J("State mutation is forbidden in read only mode!");
|
|
10196
10204
|
} : async (C) => {
|
|
10197
|
-
const
|
|
10198
|
-
return this.updateTransactionState({ ...C, context: { transactionOwnerId:
|
|
10205
|
+
const u = (x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
|
|
10206
|
+
return this.updateTransactionState({ ...C, context: { transactionOwnerId: u } });
|
|
10199
10207
|
},
|
|
10200
10208
|
readOnly: c,
|
|
10201
10209
|
workflow: o
|
|
@@ -10240,98 +10248,98 @@ class Fs {
|
|
|
10240
10248
|
async getWorkflowExperiences(A, e) {
|
|
10241
10249
|
if (A.length === 0)
|
|
10242
10250
|
throw new U("No options provided!");
|
|
10243
|
-
const t = N.getShadowGraphqlClient(), a = A.map((
|
|
10244
|
-
(
|
|
10251
|
+
const t = N.getShadowGraphqlClient(), a = A.map((u, p) => ({ option: u, index: p })), n = a.filter((u) => u.option.type === "transaction"), s = a.filter(
|
|
10252
|
+
(u) => u.option.type === "integration" || u.option.type === "external"
|
|
10245
10253
|
), i = async () => {
|
|
10246
|
-
var
|
|
10254
|
+
var m, I;
|
|
10247
10255
|
if (n.length === 0)
|
|
10248
10256
|
return [];
|
|
10249
|
-
const
|
|
10257
|
+
const u = n.map((F) => F.option.transactionId), p = await t.query({
|
|
10250
10258
|
query: EA,
|
|
10251
10259
|
variables: {
|
|
10252
|
-
ids:
|
|
10260
|
+
ids: u
|
|
10253
10261
|
},
|
|
10254
10262
|
errorPolicy: "all",
|
|
10255
10263
|
fetchPolicy: "no-cache"
|
|
10256
|
-
}),
|
|
10257
|
-
if (
|
|
10258
|
-
const
|
|
10259
|
-
throw new U(`Not all transactions were found: ${
|
|
10264
|
+
}), D = p.data.transactions;
|
|
10265
|
+
if (D.length !== n.length) {
|
|
10266
|
+
const F = ((I = (m = p.errors) == null ? void 0 : m[0]) == null ? void 0 : I.message) || "Unknown error";
|
|
10267
|
+
throw new U(`Not all transactions were found: ${F}`);
|
|
10260
10268
|
}
|
|
10261
|
-
return
|
|
10269
|
+
return D.map((F, M) => {
|
|
10262
10270
|
var Y;
|
|
10263
10271
|
return {
|
|
10264
|
-
transaction:
|
|
10265
|
-
workflowId:
|
|
10266
|
-
readOnly: ((Y = n.find((R) => R.option.transactionId ===
|
|
10272
|
+
transaction: F,
|
|
10273
|
+
workflowId: F.workflowId,
|
|
10274
|
+
readOnly: ((Y = n.find((R) => R.option.transactionId === F.id)) == null ? void 0 : Y.option.readOnly) ?? !1,
|
|
10267
10275
|
index: n[M].index
|
|
10268
10276
|
};
|
|
10269
10277
|
});
|
|
10270
10278
|
}, o = async () => {
|
|
10271
|
-
var
|
|
10279
|
+
var D, m, I;
|
|
10272
10280
|
if (s.length === 0)
|
|
10273
10281
|
return [];
|
|
10274
|
-
const
|
|
10282
|
+
const u = await t.mutate({
|
|
10275
10283
|
mutation: ga,
|
|
10276
10284
|
variables: {
|
|
10277
|
-
inputs: s.map((
|
|
10278
|
-
integrationProductId:
|
|
10279
|
-
externalIntegrationId:
|
|
10280
|
-
externalProductId:
|
|
10281
|
-
workflowId:
|
|
10282
|
-
bulk:
|
|
10285
|
+
inputs: s.map((F) => ({
|
|
10286
|
+
integrationProductId: F.option.type === "integration" ? F.option.integrationProductId : void 0,
|
|
10287
|
+
externalIntegrationId: F.option.type === "external" ? F.option.externalIntegrationId : void 0,
|
|
10288
|
+
externalProductId: F.option.type === "external" ? F.option.externalProductId : void 0,
|
|
10289
|
+
workflowId: F.option.workflowId,
|
|
10290
|
+
bulk: F.option.bulk,
|
|
10283
10291
|
claim: !0
|
|
10284
10292
|
}))
|
|
10285
10293
|
},
|
|
10286
10294
|
errorPolicy: "all",
|
|
10287
10295
|
fetchPolicy: "no-cache"
|
|
10288
|
-
}),
|
|
10289
|
-
if (!
|
|
10290
|
-
const
|
|
10291
|
-
throw new U(`Failed to create transactions: ${
|
|
10296
|
+
}), p = (D = u.data) == null ? void 0 : D.transactionCreateMany;
|
|
10297
|
+
if (!p || p.length === 0) {
|
|
10298
|
+
const F = ((I = (m = u.errors) == null ? void 0 : m[0]) == null ? void 0 : I.message) || "Unknown error";
|
|
10299
|
+
throw new U(`Failed to create transactions: ${F}`);
|
|
10292
10300
|
}
|
|
10293
|
-
return
|
|
10294
|
-
transaction:
|
|
10295
|
-
workflowId:
|
|
10301
|
+
return p.map((F, M) => ({
|
|
10302
|
+
transaction: F,
|
|
10303
|
+
workflowId: F.workflowId,
|
|
10296
10304
|
readOnly: !1,
|
|
10297
10305
|
index: s[M].index
|
|
10298
10306
|
}));
|
|
10299
|
-
}, c = (await Promise.all([i(), o()])).flat(), r = [...new Set(c.map((
|
|
10300
|
-
var
|
|
10301
|
-
for (const
|
|
10302
|
-
const
|
|
10303
|
-
(
|
|
10307
|
+
}, 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) => {
|
|
10308
|
+
var p;
|
|
10309
|
+
for (const D in u.layouts) {
|
|
10310
|
+
const m = u.layouts[D].elements.filter(
|
|
10311
|
+
(F) => F.type === H.Illustration
|
|
10304
10312
|
);
|
|
10305
|
-
for (let
|
|
10306
|
-
const M = F
|
|
10313
|
+
for (let F = 0; F < m.length; ++F) {
|
|
10314
|
+
const M = m[F];
|
|
10307
10315
|
M.src && M.svg && (M.cachedObjectURL = await nA(M.svg));
|
|
10308
10316
|
}
|
|
10309
|
-
const I =
|
|
10310
|
-
(
|
|
10317
|
+
const I = u.layouts[D].elements.filter(
|
|
10318
|
+
(F) => F.type === H.Textbox
|
|
10311
10319
|
);
|
|
10312
|
-
for (let
|
|
10313
|
-
const M = I[
|
|
10314
|
-
(
|
|
10320
|
+
for (let F = 0; F < I.length; ++F) {
|
|
10321
|
+
const M = I[F];
|
|
10322
|
+
(p = M.fontData) != null && p.assetUrl && DA(M.fontData.assetUrl);
|
|
10315
10323
|
}
|
|
10316
10324
|
}
|
|
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:
|
|
10325
|
+
}, w = x.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = c.map(async (u) => {
|
|
10326
|
+
const { transaction: p, workflowId: D, readOnly: m, index: I } = u, F = l.get(D), M = A[I];
|
|
10327
|
+
!w.get(p.id) && p.transactionOwnerId && w.set(p.id, p.transactionOwnerId);
|
|
10328
|
+
const Y = w.get(p.id) || void 0, R = {
|
|
10329
|
+
product: p.product,
|
|
10330
|
+
transaction: p,
|
|
10323
10331
|
layouts: [],
|
|
10324
|
-
stateMutationFunc:
|
|
10332
|
+
stateMutationFunc: m ? async () => {
|
|
10325
10333
|
throw new J("State mutation is forbidden in read only mode!");
|
|
10326
10334
|
} : async (S) => this.updateTransactionState({ ...S, context: { transactionOwnerId: Y } }),
|
|
10327
|
-
readOnly:
|
|
10328
|
-
workflow:
|
|
10335
|
+
readOnly: m,
|
|
10336
|
+
workflow: F,
|
|
10329
10337
|
isReloadedTransaction: M.type === "transaction"
|
|
10330
10338
|
};
|
|
10331
|
-
if (M.type === "transaction" &&
|
|
10332
|
-
const S = JSON.parse(
|
|
10339
|
+
if (M.type === "transaction" && p.workflowState) {
|
|
10340
|
+
const S = JSON.parse(p.workflowState);
|
|
10333
10341
|
R.layouts = Object.values(S.layouts).map((k) => k.layout), await AA(S), await d(S), R.reloadedState = S;
|
|
10334
|
-
} else if (!
|
|
10342
|
+
} else if (!m && M.workflowState) {
|
|
10335
10343
|
const S = JSON.parse(M.workflowState);
|
|
10336
10344
|
R.layouts = Object.values(S.layouts).map((k) => k.layout), await AA(S), await d(S), R.reloadedState = S;
|
|
10337
10345
|
} else
|
|
@@ -10344,9 +10352,9 @@ class Fs {
|
|
|
10344
10352
|
), this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: I, options: M };
|
|
10345
10353
|
});
|
|
10346
10354
|
x.setMap("transactionOwnerIds", w);
|
|
10347
|
-
const Q = (await Promise.all(h)).sort((
|
|
10348
|
-
const { experienceOptions:
|
|
10349
|
-
return await
|
|
10355
|
+
const Q = (await Promise.all(h)).sort((u, p) => u.index - p.index).map(async (u) => {
|
|
10356
|
+
const { experienceOptions: p, options: D } = u, m = new CA(this, p);
|
|
10357
|
+
return await m.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await m.attachCustomerDetails({ email: this.customer.emailAddress }), m;
|
|
10350
10358
|
});
|
|
10351
10359
|
return await Promise.all(Q);
|
|
10352
10360
|
}
|