@spiffcommerce/core 24.0.1 → 24.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +349 -366
- package/dist/index.umd.cjs +25 -25
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -6,8 +6,9 @@ import an from "exifreader";
|
|
|
6
6
|
import { Pith as sA } from "pith";
|
|
7
7
|
import KA from "lodash.debounce";
|
|
8
8
|
import VA from "lodash.isequal";
|
|
9
|
-
import {
|
|
10
|
-
import sn from "
|
|
9
|
+
import { dataUriToBuffer as nn } from "data-uri-to-buffer";
|
|
10
|
+
import { parse as sn } from "css";
|
|
11
|
+
import on from "fuse.js";
|
|
11
12
|
import Mt from "lodash.clonedeep";
|
|
12
13
|
import { jsx as v, jsxs as ot, Fragment as Jt } from "preact/jsx-runtime";
|
|
13
14
|
import Ve from "opentype.js";
|
|
@@ -15,7 +16,7 @@ import { toString as WA } from "qrcode";
|
|
|
15
16
|
import { split as We } from "unicode-default-word-boundary";
|
|
16
17
|
import oA from "svg-path-bbox";
|
|
17
18
|
import yA from "lodash.chunk";
|
|
18
|
-
var Ce = /* @__PURE__ */ ((n) => (n.Data = "Data", n.Font = "Font", n.Frame = "Frame", n.Illustration = "Illustration", n.Image = "Image", n.Model = "Model", n.Material = "Material", n.Color = "Color", n.QuestionnaireCollateral = "QuestionnaireCollateral", n.RequestCollateral = "RequestCollateral", n.SignupCollateral = "SignupCollateral", n.Video = "Video", n.ColorProfile = "ColorProfile", n.Environment = "Environment", n))(Ce || {}), st = /* @__PURE__ */ ((n) => (n.FileUpload = "FileUpload", n.Option = "Option", n.ColorOption = "ColorOption", n.Text = "Text", n))(st || {}), M = /* @__PURE__ */ ((n) => (n.Information = "Information", n.Bulk = "Bulk", n.DigitalContent = "DigitalContent", n.Finish = "Finish", n.Frame = "Frame", n.Illustration = "Illustration", n.Introduction = "Introduction", n.Material = "Material", n.Model = "Model", n.Module = "Module", n.Picture = "Picture", n.Photo = "Photo", n.ProductOverlay = "ProductOverlay", n.Question = "Question", n.Shape = "Shape", n.SilentIllustration = "SilentIllustration", n.Text = "Text", n))(M || {}),
|
|
19
|
+
var Ce = /* @__PURE__ */ ((n) => (n.Data = "Data", n.Font = "Font", n.Frame = "Frame", n.Illustration = "Illustration", n.Image = "Image", n.Model = "Model", n.Material = "Material", n.Color = "Color", n.QuestionnaireCollateral = "QuestionnaireCollateral", n.RequestCollateral = "RequestCollateral", n.SignupCollateral = "SignupCollateral", n.Video = "Video", n.ColorProfile = "ColorProfile", n.Environment = "Environment", n))(Ce || {}), st = /* @__PURE__ */ ((n) => (n.FileUpload = "FileUpload", n.Option = "Option", n.ColorOption = "ColorOption", n.Text = "Text", n))(st || {}), M = /* @__PURE__ */ ((n) => (n.Information = "Information", n.Bulk = "Bulk", n.DigitalContent = "DigitalContent", n.Finish = "Finish", n.Frame = "Frame", n.Illustration = "Illustration", n.Introduction = "Introduction", n.Material = "Material", n.Model = "Model", n.Module = "Module", n.Picture = "Picture", n.Photo = "Photo", n.ProductOverlay = "ProductOverlay", n.Question = "Question", n.Shape = "Shape", n.SilentIllustration = "SilentIllustration", n.Text = "Text", n))(M || {}), rn = /* @__PURE__ */ ((n) => (n.Color = "Color", n.Colors = "Colors", n.Selection = "Selection", n.Selections = "Selections", n.Text = "Text", n.Upload = "Upload", n))(rn || {}), Ot = /* @__PURE__ */ ((n) => (n.ThreeD = "ThreeD", n.FreeDesign = "FreeDesign", n.Print = "Print", n))(Ot || {}), R = /* @__PURE__ */ ((n) => (n.Frame = "frame", n.Group = "group", n.Image = "image", n.Pattern = "pattern", n.Illustration = "illustration", n.Textbox = "textbox", n))(R || {}), cn = /* @__PURE__ */ ((n) => (n.Hyperlink = "Hyperlink", n.Edit = "Edit", n.Approve = "Approve", n))(cn || {}), ln = /* @__PURE__ */ ((n) => (n.Hub = "Hub", n.Shopify = "Shopify", n))(ln || {}), rA = /* @__PURE__ */ ((n) => (n.BackgroundRemover = "BackgroundRemover", n.ConversionAccelerator = "Conversion Accelerator", n.ProcessBuilder = "ProcessBuilder", n))(rA || {}), gn = /* @__PURE__ */ ((n) => (n[n.Orbit = 0] = "Orbit", n[n.Pan = 1] = "Pan", n))(gn || {}), dn = /* @__PURE__ */ ((n) => (n.Manual = "Manual", n.OnStart = "OnStart", n.OnQuit = "OnQuit", n.OnEnd = "OnEnd", n))(dn || {}), Bn = /* @__PURE__ */ ((n) => (n.Email = "Email", n.FirstName = "FirstName", n.LastName = "LastName", n.Phone = "Phone", n))(Bn || {}), we = /* @__PURE__ */ ((n) => (n.Owner = "Owner", n.Approver = "Approver", n.Editor = "Editor", n.Viewer = "Viewer", n))(we || {}), Yt = /* @__PURE__ */ ((n) => (n.Autosize = "Autosize", n.Traditional = "Traditional", n))(Yt || {}), W = /* @__PURE__ */ ((n) => (n[n.North = 0] = "North", n[n.Northeast = 1] = "Northeast", n[n.East = 2] = "East", n[n.Southeast = 3] = "Southeast", n[n.South = 4] = "South", n[n.Southwest = 5] = "Southwest", n[n.West = 6] = "West", n[n.Northwest = 7] = "Northwest", n))(W || {}), hn = /* @__PURE__ */ ((n) => (n.Pixel = "px", n.Millimeter = "mm", n.Centimeter = "cm", n))(hn || {});
|
|
19
20
|
class XA extends Error {
|
|
20
21
|
constructor(t) {
|
|
21
22
|
super(t), this.name = this.constructor.name;
|
|
@@ -76,7 +77,7 @@ class Fe extends De {
|
|
|
76
77
|
super(`Resource Generation Failed: ${t}`);
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
|
-
class
|
|
80
|
+
class Cn {
|
|
80
81
|
get(t) {
|
|
81
82
|
return localStorage.getItem(t) || void 0;
|
|
82
83
|
}
|
|
@@ -119,14 +120,14 @@ class MA {
|
|
|
119
120
|
this.set(t, A);
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
|
-
const
|
|
123
|
+
const wn = () => {
|
|
123
124
|
try {
|
|
124
|
-
return localStorage ? new
|
|
125
|
+
return localStorage ? new Cn() : new MA();
|
|
125
126
|
} catch {
|
|
126
127
|
return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new MA();
|
|
127
128
|
}
|
|
128
|
-
}, Y =
|
|
129
|
-
class
|
|
129
|
+
}, Y = wn();
|
|
130
|
+
class un {
|
|
130
131
|
constructor() {
|
|
131
132
|
this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
|
|
132
133
|
}
|
|
@@ -152,12 +153,12 @@ class wn {
|
|
|
152
153
|
this.serverUrlCallbacks.push(t);
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
|
-
const nt = new
|
|
156
|
+
const nt = new un();
|
|
156
157
|
let Xe, qe;
|
|
157
|
-
function
|
|
158
|
+
function Cr(n) {
|
|
158
159
|
Xe = n;
|
|
159
160
|
}
|
|
160
|
-
function
|
|
161
|
+
function wr(n) {
|
|
161
162
|
qe = n;
|
|
162
163
|
}
|
|
163
164
|
function ye() {
|
|
@@ -185,13 +186,13 @@ const qA = /* @__PURE__ */ new Map(), SA = /* @__PURE__ */ new Map(), xA = /* @_
|
|
|
185
186
|
return qA.set(n, ((i = a.headers) == null ? void 0 : i.get("content-type")) || ""), await a.arrayBuffer();
|
|
186
187
|
})();
|
|
187
188
|
return SA.set(n, A), A;
|
|
188
|
-
},
|
|
189
|
+
}, En = async (n) => {
|
|
189
190
|
const t = xA.get(n);
|
|
190
191
|
if (t)
|
|
191
192
|
return t;
|
|
192
193
|
const A = (async () => await (await rt(n)).text())();
|
|
193
194
|
return xA.set(n, A), A;
|
|
194
|
-
}, Wt = (n) => n.every((t) => t !== "undefined"), ee = (n) => Wt([typeof document]) ? document.createElement(n) : ye().window.document.createElement(n),
|
|
195
|
+
}, Wt = (n) => n.every((t) => t !== "undefined"), ee = (n) => Wt([typeof document]) ? document.createElement(n) : ye().window.document.createElement(n), mn = (n, t) => {
|
|
195
196
|
if (Wt([typeof document]))
|
|
196
197
|
return document.createElementNS(n, t);
|
|
197
198
|
const A = ye().window.document.createElement(t);
|
|
@@ -208,10 +209,10 @@ const qA = /* @__PURE__ */ new Map(), SA = /* @__PURE__ */ new Map(), xA = /* @_
|
|
|
208
209
|
A(a);
|
|
209
210
|
});
|
|
210
211
|
}), tt = (n, t) => new Promise((e, A) => {
|
|
211
|
-
t ?
|
|
212
|
+
t ? En(n).then(e).catch(A) : rt(n).then((a) => {
|
|
212
213
|
a.text().then(e).catch(A);
|
|
213
214
|
}).catch(A);
|
|
214
|
-
}), $A = (n) => An(n), Ne = /* @__PURE__ */ new Map(),
|
|
215
|
+
}), $A = (n) => An(n), Ne = /* @__PURE__ */ new Map(), Qn = async (n, t) => {
|
|
215
216
|
if (Wt([typeof FontFace])) {
|
|
216
217
|
if (Ne.has(t))
|
|
217
218
|
return Ne.get(t);
|
|
@@ -252,16 +253,16 @@ const qA = /* @__PURE__ */ new Map(), SA = /* @__PURE__ */ new Map(), xA = /* @_
|
|
|
252
253
|
}
|
|
253
254
|
const e = t();
|
|
254
255
|
return e || "image/svg+xml";
|
|
255
|
-
},
|
|
256
|
+
}, ur = async (n) => {
|
|
256
257
|
const t = await ZA(n), e = qA.get(n) || Xt(t);
|
|
257
|
-
return await
|
|
258
|
+
return await In(new Blob([t], { type: e }));
|
|
258
259
|
}, fn = (n) => {
|
|
259
260
|
let t = "";
|
|
260
261
|
const e = n.byteLength;
|
|
261
262
|
for (let A = 0; A < e; A++)
|
|
262
263
|
t += String.fromCharCode(n[A]);
|
|
263
264
|
return t;
|
|
264
|
-
},
|
|
265
|
+
}, pn = async (n) => {
|
|
265
266
|
const t = Xt(n), e = new Uint8Array(n), A = fn(e), a = btoa(A);
|
|
266
267
|
return `data:${t};base64,${a}`;
|
|
267
268
|
}, _A = (n) => `data:image/svg+xml;base64,${btoa(n)}`, ta = (n) => {
|
|
@@ -276,7 +277,7 @@ const qA = /* @__PURE__ */ new Map(), SA = /* @__PURE__ */ new Map(), xA = /* @_
|
|
|
276
277
|
return a ? new Uint8Array(
|
|
277
278
|
atob(i).split("").map((o) => o.charCodeAt(0))
|
|
278
279
|
).buffer : new Uint8Array(i.split("").map((o) => o.charCodeAt(0))).buffer;
|
|
279
|
-
},
|
|
280
|
+
}, In = (n) => new Promise((t, e) => {
|
|
280
281
|
const A = new FileReader();
|
|
281
282
|
A.onload = function(a) {
|
|
282
283
|
const i = a.target;
|
|
@@ -288,26 +289,26 @@ const PA = (n) => {
|
|
|
288
289
|
ea = n;
|
|
289
290
|
};
|
|
290
291
|
let cA;
|
|
291
|
-
const
|
|
292
|
+
const Dn = (n) => {
|
|
292
293
|
cA = n;
|
|
293
|
-
},
|
|
294
|
+
}, Fn = () => cA;
|
|
294
295
|
let Aa;
|
|
295
|
-
const
|
|
296
|
+
const yn = (n) => {
|
|
296
297
|
Aa = n;
|
|
297
|
-
},
|
|
298
|
+
}, Mn = () => new Promise((n) => {
|
|
298
299
|
const t = nt.getHubUrl(), e = (A) => {
|
|
299
300
|
A.origin === t && (window.removeEventListener("message", e), n(A.data));
|
|
300
301
|
};
|
|
301
302
|
window.parent !== window && (window.addEventListener("message", e, !1), window.parent.postMessage("ready", t));
|
|
302
|
-
}),
|
|
303
|
+
}), Sn = async () => {
|
|
303
304
|
const n = {
|
|
304
305
|
applicationKey: cA,
|
|
305
306
|
customerToken: ea,
|
|
306
307
|
bearer: Aa
|
|
307
308
|
};
|
|
308
|
-
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await
|
|
309
|
+
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Mn(), ...n } : n;
|
|
309
310
|
};
|
|
310
|
-
class
|
|
311
|
+
class xn {
|
|
311
312
|
constructor() {
|
|
312
313
|
this.shadowGraphqlClient = this.constructShadowGraphqlClient(), nt.addServerUrlCallback(() => {
|
|
313
314
|
this.shadowGraphqlClient = this.constructShadowGraphqlClient();
|
|
@@ -321,14 +322,14 @@ class Sn {
|
|
|
321
322
|
uri: `${nt.getServerUrl()}/graphql`,
|
|
322
323
|
fetch: rt
|
|
323
324
|
}), e = tn(async (s, o) => {
|
|
324
|
-
const { headers: r } = o, c = r || {}, l = await
|
|
325
|
+
const { headers: r } = o, c = r || {}, l = await Sn(), g = o.bearer ?? l.bearer, d = o.partnerId ?? l.partnerId, B = o.activeIntegration ?? l.activeIntegration, h = o.transactionOwnerId, C = o.customerToken ?? l.customerToken, w = o.applicationKey ?? l.applicationKey, u = o.bundleOwnerId;
|
|
325
326
|
try {
|
|
326
327
|
if (window && window.__SENTRY__) {
|
|
327
328
|
const E = window.__SENTRY__.hub;
|
|
328
329
|
if (E) {
|
|
329
330
|
const m = E.traceHeaders();
|
|
330
|
-
Object.entries(m).forEach(([
|
|
331
|
-
c[
|
|
331
|
+
Object.entries(m).forEach(([f, Q]) => {
|
|
332
|
+
c[f] = Q;
|
|
332
333
|
});
|
|
333
334
|
}
|
|
334
335
|
}
|
|
@@ -392,7 +393,7 @@ class Sn {
|
|
|
392
393
|
});
|
|
393
394
|
}
|
|
394
395
|
}
|
|
395
|
-
const P = new
|
|
396
|
+
const P = new xn();
|
|
396
397
|
let Ze, $e;
|
|
397
398
|
const lt = (n, t, e) => {
|
|
398
399
|
if (Ze !== void 0)
|
|
@@ -441,28 +442,28 @@ function lA() {
|
|
|
441
442
|
return Re === void 0 && (Re = DOMParser), Re;
|
|
442
443
|
}
|
|
443
444
|
let Ae = null;
|
|
444
|
-
const
|
|
445
|
+
const Yn = (n) => new Promise((t) => {
|
|
445
446
|
var a;
|
|
446
447
|
if (Xt(n) !== "image/jpeg")
|
|
447
448
|
return t(1);
|
|
448
449
|
const A = (a = an.load(n).Orientation) == null ? void 0 : a.value;
|
|
449
450
|
return t(A ? Number(A) : 1);
|
|
450
|
-
}),
|
|
451
|
+
}), Pn = async () => {
|
|
451
452
|
if (Ae !== null)
|
|
452
453
|
return !Ae;
|
|
453
454
|
const t = await qt("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/xABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAAAAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQvoP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXwH/9k=");
|
|
454
455
|
return Ae = t.width === 2 && t.height === 3, !Ae;
|
|
455
|
-
},
|
|
456
|
+
}, vn = (n) => {
|
|
456
457
|
const e = n.naturalWidth / n.naturalHeight;
|
|
457
458
|
return n.naturalHeight <= 8192 && n.naturalWidth <= 8192 ? [n.naturalWidth, n.naturalHeight] : n.naturalHeight > n.naturalWidth ? [e * 8192, 8192] : [8192, 8192 / e];
|
|
458
|
-
},
|
|
459
|
+
}, Nn = async (n) => {
|
|
459
460
|
var g;
|
|
460
|
-
const t = await
|
|
461
|
-
if (!await
|
|
461
|
+
const t = await pn(n), e = await qt(t), [A, a] = vn(e);
|
|
462
|
+
if (!await Pn()) {
|
|
462
463
|
const d = lt(A, a);
|
|
463
464
|
return (g = d.getContext("2d")) == null || g.drawImage(e, 0, 0, A, a), d;
|
|
464
465
|
}
|
|
465
|
-
const s = await
|
|
466
|
+
const s = await Yn(n), [o, r] = s > 4 ? [a, A] : [A, a], c = lt(o, r), l = c.getContext("2d");
|
|
466
467
|
switch (s) {
|
|
467
468
|
case 2:
|
|
468
469
|
l.translate(o, 0), l.scale(-1, 1);
|
|
@@ -488,7 +489,7 @@ const xn = (n) => new Promise((t) => {
|
|
|
488
489
|
}
|
|
489
490
|
return l.drawImage(e, 0, 0, o, r), c;
|
|
490
491
|
}, xe = async (n) => {
|
|
491
|
-
const t = await
|
|
492
|
+
const t = await Nn(n);
|
|
492
493
|
return Xt(n) === "image/jpeg" ? {
|
|
493
494
|
dataUrl: t.toDataURL("image/jpeg", 1),
|
|
494
495
|
height: t.height,
|
|
@@ -498,7 +499,7 @@ const xn = (n) => new Promise((t) => {
|
|
|
498
499
|
height: t.height,
|
|
499
500
|
width: t.width
|
|
500
501
|
};
|
|
501
|
-
},
|
|
502
|
+
}, Rn = F`
|
|
502
503
|
fragment AssetMetadataFields on Asset {
|
|
503
504
|
metadata {
|
|
504
505
|
key
|
|
@@ -506,7 +507,7 @@ const xn = (n) => new Promise((t) => {
|
|
|
506
507
|
}
|
|
507
508
|
}
|
|
508
509
|
`, Zt = (n) => F`
|
|
509
|
-
${n &&
|
|
510
|
+
${n && Rn || ""}
|
|
510
511
|
fragment AssetFields on Asset {
|
|
511
512
|
name
|
|
512
513
|
key
|
|
@@ -520,7 +521,7 @@ const xn = (n) => new Promise((t) => {
|
|
|
520
521
|
}
|
|
521
522
|
${n && "...AssetMetadataFields" || ""}
|
|
522
523
|
}
|
|
523
|
-
`,
|
|
524
|
+
`, kn = F`
|
|
524
525
|
${Zt(!1)}
|
|
525
526
|
query GetAssets($keys: [String]!) {
|
|
526
527
|
assets(keys: $keys) {
|
|
@@ -574,14 +575,14 @@ const xn = (n) => new Promise((t) => {
|
|
|
574
575
|
fileLink
|
|
575
576
|
}
|
|
576
577
|
}
|
|
577
|
-
`,
|
|
578
|
+
`, Hn = F`
|
|
578
579
|
${gA}
|
|
579
580
|
query GetMaterials($ids: [String]) {
|
|
580
581
|
materials(id: $ids) {
|
|
581
582
|
...MaterialFields
|
|
582
583
|
}
|
|
583
584
|
}
|
|
584
|
-
`,
|
|
585
|
+
`, bn = F`
|
|
585
586
|
mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
|
|
586
587
|
assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
|
|
587
588
|
uploadUrl
|
|
@@ -595,7 +596,7 @@ const xn = (n) => new Promise((t) => {
|
|
|
595
596
|
}
|
|
596
597
|
}
|
|
597
598
|
}
|
|
598
|
-
`,
|
|
599
|
+
`, Un = F`
|
|
599
600
|
${Zt(!1)}
|
|
600
601
|
mutation RemoveBackgroundFromAsset($key: String!) {
|
|
601
602
|
assetRemoveBackground(key: $key) {
|
|
@@ -603,23 +604,23 @@ const xn = (n) => new Promise((t) => {
|
|
|
603
604
|
}
|
|
604
605
|
}
|
|
605
606
|
`, _e = async (n) => (await P.getShadowGraphqlClient().query({
|
|
606
|
-
query:
|
|
607
|
+
query: kn,
|
|
607
608
|
errorPolicy: "all",
|
|
608
609
|
fetchPolicy: "no-cache",
|
|
609
610
|
variables: {
|
|
610
611
|
keys: n
|
|
611
612
|
}
|
|
612
|
-
})).data.assets,
|
|
613
|
-
query:
|
|
613
|
+
})).data.assets, Gn = async (n) => (await P.getShadowGraphqlClient().query({
|
|
614
|
+
query: Hn,
|
|
614
615
|
errorPolicy: "all",
|
|
615
616
|
fetchPolicy: "no-cache",
|
|
616
617
|
variables: {
|
|
617
618
|
ids: n
|
|
618
619
|
}
|
|
619
|
-
})).data.materials,
|
|
620
|
+
})).data.materials, Jn = async (n, t, e, A, a) => {
|
|
620
621
|
var s;
|
|
621
622
|
return (s = (await P.getShadowGraphqlClient().mutate({
|
|
622
|
-
mutation:
|
|
623
|
+
mutation: bn,
|
|
623
624
|
errorPolicy: "all",
|
|
624
625
|
fetchPolicy: "no-cache",
|
|
625
626
|
variables: {
|
|
@@ -631,7 +632,7 @@ const xn = (n) => new Promise((t) => {
|
|
|
631
632
|
}
|
|
632
633
|
})).data) == null ? void 0 : s.assetCreate;
|
|
633
634
|
};
|
|
634
|
-
class
|
|
635
|
+
class Tn {
|
|
635
636
|
constructor() {
|
|
636
637
|
this.cache = /* @__PURE__ */ new Map(), this.bgrmProcessCache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (t) => {
|
|
637
638
|
const e = await t.arrayBuffer(), A = await xe(e), a = (i, s) => {
|
|
@@ -698,7 +699,7 @@ class Jn {
|
|
|
698
699
|
async getMaterialLocalOrFromServer(t) {
|
|
699
700
|
if (this.materialCache.has(t))
|
|
700
701
|
return this.materialCache.get(t);
|
|
701
|
-
const A = (async () => (await
|
|
702
|
+
const A = (async () => (await Gn([t]))[0])();
|
|
702
703
|
return this.materialCache.set(t, A), A;
|
|
703
704
|
}
|
|
704
705
|
/**
|
|
@@ -747,7 +748,7 @@ class Jn {
|
|
|
747
748
|
const a = (async () => {
|
|
748
749
|
var s, o;
|
|
749
750
|
const i = await P.getShadowGraphqlClient().mutate({
|
|
750
|
-
mutation:
|
|
751
|
+
mutation: Un,
|
|
751
752
|
fetchPolicy: "no-cache",
|
|
752
753
|
errorPolicy: "all",
|
|
753
754
|
variables: {
|
|
@@ -781,7 +782,7 @@ class Jn {
|
|
|
781
782
|
* @param assetType The type of asset we're expecting to upload
|
|
782
783
|
*/
|
|
783
784
|
async dispatchCreateAssetRequest(t, e, A, a) {
|
|
784
|
-
const i = t.blob.type ? t.blob.type : this.guessMIME(t.name), s = await
|
|
785
|
+
const i = t.blob.type ? t.blob.type : this.guessMIME(t.name), s = await Jn(t.name, e, i, A, a);
|
|
785
786
|
if (s)
|
|
786
787
|
return {
|
|
787
788
|
assetResponse: s,
|
|
@@ -888,8 +889,8 @@ class q {
|
|
|
888
889
|
Y.setMap(vA, t);
|
|
889
890
|
}
|
|
890
891
|
}
|
|
891
|
-
const J = new
|
|
892
|
-
class
|
|
892
|
+
const J = new Tn();
|
|
893
|
+
class On {
|
|
893
894
|
constructor() {
|
|
894
895
|
this.cache = {}, this.disabled = !1;
|
|
895
896
|
}
|
|
@@ -920,7 +921,7 @@ class Tn {
|
|
|
920
921
|
this.disabled = t;
|
|
921
922
|
}
|
|
922
923
|
}
|
|
923
|
-
const zt = new
|
|
924
|
+
const zt = new On(), sa = F`
|
|
924
925
|
fragment OptionFields on Option {
|
|
925
926
|
id
|
|
926
927
|
name
|
|
@@ -957,7 +958,7 @@ const zt = new Tn(), sa = F`
|
|
|
957
958
|
...AssetFields
|
|
958
959
|
}
|
|
959
960
|
}
|
|
960
|
-
`,
|
|
961
|
+
`, Ln = F`
|
|
961
962
|
${Zt(!1)}
|
|
962
963
|
${gA}
|
|
963
964
|
${sa}
|
|
@@ -966,9 +967,9 @@ const zt = new Tn(), sa = F`
|
|
|
966
967
|
...OptionFields
|
|
967
968
|
}
|
|
968
969
|
}
|
|
969
|
-
`,
|
|
970
|
+
`, zn = async (n) => {
|
|
970
971
|
const t = await P.getShadowGraphqlClient().query({
|
|
971
|
-
query:
|
|
972
|
+
query: Ln,
|
|
972
973
|
errorPolicy: "all",
|
|
973
974
|
fetchPolicy: "no-cache",
|
|
974
975
|
variables: {
|
|
@@ -981,16 +982,16 @@ const zt = new Tn(), sa = F`
|
|
|
981
982
|
i.asset && J.cacheAsset(i.asset), i.thumbnail && J.cacheAsset(i.thumbnail), i.material && J.cacheMaterial(i.material);
|
|
982
983
|
});
|
|
983
984
|
}), t.data.options;
|
|
984
|
-
},
|
|
985
|
+
}, jn = async (n, t) => (await t).find((A) => A.id === n), Kn = async (n) => {
|
|
985
986
|
const t = n.map((s) => zt.get({ id: s })), e = n.filter((s, o) => t[o] === void 0);
|
|
986
987
|
if (e.length === 0)
|
|
987
988
|
return Promise.all(t);
|
|
988
|
-
const A =
|
|
989
|
-
(s) => zt.set({ id: s },
|
|
989
|
+
const A = zn(e), a = e.map(
|
|
990
|
+
(s) => zt.set({ id: s }, jn(s, A))
|
|
990
991
|
), i = t.filter((s) => s !== void 0);
|
|
991
992
|
return await Promise.all(i.concat(a));
|
|
992
993
|
};
|
|
993
|
-
class
|
|
994
|
+
class Vn {
|
|
994
995
|
constructor() {
|
|
995
996
|
this.getSelectedVariant = (t, e) => {
|
|
996
997
|
var A;
|
|
@@ -1004,7 +1005,7 @@ class Kn {
|
|
|
1004
1005
|
*/
|
|
1005
1006
|
async getOption(t) {
|
|
1006
1007
|
return (async () => {
|
|
1007
|
-
const a = (await
|
|
1008
|
+
const a = (await Kn([t]))[0];
|
|
1008
1009
|
if (a)
|
|
1009
1010
|
return a;
|
|
1010
1011
|
})();
|
|
@@ -1036,7 +1037,7 @@ class Kn {
|
|
|
1036
1037
|
}
|
|
1037
1038
|
}
|
|
1038
1039
|
}
|
|
1039
|
-
const _ = new
|
|
1040
|
+
const _ = new Vn(), oa = F`
|
|
1040
1041
|
fragment ActiveIntegrationFields on Integration {
|
|
1041
1042
|
id
|
|
1042
1043
|
logo
|
|
@@ -1053,7 +1054,7 @@ const _ = new Kn(), oa = F`
|
|
|
1053
1054
|
activeAddons
|
|
1054
1055
|
}
|
|
1055
1056
|
}
|
|
1056
|
-
`,
|
|
1057
|
+
`, Wn = F`
|
|
1057
1058
|
${oa}
|
|
1058
1059
|
query GetCurrentIntegration {
|
|
1059
1060
|
currentIntegration {
|
|
@@ -1174,7 +1175,7 @@ const _ = new Kn(), oa = F`
|
|
|
1174
1175
|
}
|
|
1175
1176
|
}
|
|
1176
1177
|
}
|
|
1177
|
-
`,
|
|
1178
|
+
`, Xn = F`
|
|
1178
1179
|
${Pt}
|
|
1179
1180
|
mutation CreateTransactions(
|
|
1180
1181
|
$inputs: [TransactionCreateInput]!
|
|
@@ -1260,7 +1261,7 @@ const _ = new Kn(), oa = F`
|
|
|
1260
1261
|
}
|
|
1261
1262
|
}
|
|
1262
1263
|
}
|
|
1263
|
-
`,
|
|
1264
|
+
`, qn = F`
|
|
1264
1265
|
${Pt}
|
|
1265
1266
|
mutation ClaimTransaction($id: String!) {
|
|
1266
1267
|
transactionClaim(id: $id) {
|
|
@@ -1495,19 +1496,19 @@ const _ = new Kn(), oa = F`
|
|
|
1495
1496
|
}
|
|
1496
1497
|
}
|
|
1497
1498
|
}
|
|
1498
|
-
`,
|
|
1499
|
+
`, Zn = F`
|
|
1499
1500
|
mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
|
|
1500
1501
|
transactionUpdate(id: $id, workflowState: $workflowState) {
|
|
1501
1502
|
id
|
|
1502
1503
|
}
|
|
1503
1504
|
}
|
|
1504
|
-
`,
|
|
1505
|
+
`, $n = F`
|
|
1505
1506
|
mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
|
|
1506
1507
|
transactionUpdate(id: $id, workflowId: $workflowId) {
|
|
1507
1508
|
id
|
|
1508
1509
|
}
|
|
1509
1510
|
}
|
|
1510
|
-
`,
|
|
1511
|
+
`, _n = F`
|
|
1511
1512
|
mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
|
|
1512
1513
|
transactionUpdate(id: $id, quantity: $quantity) {
|
|
1513
1514
|
id
|
|
@@ -1560,7 +1561,7 @@ F`
|
|
|
1560
1561
|
}
|
|
1561
1562
|
}
|
|
1562
1563
|
`;
|
|
1563
|
-
const
|
|
1564
|
+
const ti = F`
|
|
1564
1565
|
${ca}
|
|
1565
1566
|
query ReadTransactionForShareActions($id: String!) {
|
|
1566
1567
|
transactions(ids: [$id]) {
|
|
@@ -1640,14 +1641,14 @@ const _n = F`
|
|
|
1640
1641
|
}
|
|
1641
1642
|
}
|
|
1642
1643
|
}
|
|
1643
|
-
`,
|
|
1644
|
+
`, ei = F`
|
|
1644
1645
|
${ga}
|
|
1645
1646
|
query GetIntegrationProducts($ids: [String!]!) {
|
|
1646
1647
|
integrationProducts(ids: $ids) {
|
|
1647
1648
|
...IntegrationProductFields
|
|
1648
1649
|
}
|
|
1649
1650
|
}
|
|
1650
|
-
`,
|
|
1651
|
+
`, Ai = F`
|
|
1651
1652
|
${ga}
|
|
1652
1653
|
query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
|
|
1653
1654
|
integrationProductFromExternalIds(
|
|
@@ -1657,7 +1658,7 @@ const _n = F`
|
|
|
1657
1658
|
...IntegrationProductFields
|
|
1658
1659
|
}
|
|
1659
1660
|
}
|
|
1660
|
-
`,
|
|
1661
|
+
`, ai = F`
|
|
1661
1662
|
${ra}
|
|
1662
1663
|
query ReadTransactionForStakeholders($id: String!) {
|
|
1663
1664
|
transactions(ids: [$id]) {
|
|
@@ -1669,7 +1670,7 @@ const _n = F`
|
|
|
1669
1670
|
}
|
|
1670
1671
|
}
|
|
1671
1672
|
}
|
|
1672
|
-
`, Nt = [M.SilentIllustration, M.ProductOverlay],
|
|
1673
|
+
`, Nt = [M.SilentIllustration, M.ProductOverlay], ni = async (n) => {
|
|
1673
1674
|
const t = [];
|
|
1674
1675
|
n.introduction && t.push({
|
|
1675
1676
|
name: "Introduction",
|
|
@@ -1687,7 +1688,7 @@ const _n = F`
|
|
|
1687
1688
|
silentSteps: []
|
|
1688
1689
|
});
|
|
1689
1690
|
for (const A of n.steps) {
|
|
1690
|
-
const a =
|
|
1691
|
+
const a = ii(A.stepName, n.stepGroups);
|
|
1691
1692
|
if (!a)
|
|
1692
1693
|
t.push({
|
|
1693
1694
|
name: A.stepName,
|
|
@@ -1724,7 +1725,7 @@ const _n = F`
|
|
|
1724
1725
|
],
|
|
1725
1726
|
silentSteps: []
|
|
1726
1727
|
}), t;
|
|
1727
|
-
},
|
|
1728
|
+
}, ii = (n, t) => t.find((e) => e.stepNames.includes(n)), Et = (n, t) => (n.conditions || []).every((e) => {
|
|
1728
1729
|
const A = t[e.targetStepName];
|
|
1729
1730
|
if (A && A.selectedVariants) {
|
|
1730
1731
|
const a = A.selectedVariants;
|
|
@@ -1733,7 +1734,7 @@ const _n = F`
|
|
|
1733
1734
|
);
|
|
1734
1735
|
}
|
|
1735
1736
|
return !1;
|
|
1736
|
-
}),
|
|
1737
|
+
}), si = (n, t) => {
|
|
1737
1738
|
const e = {
|
|
1738
1739
|
name: n.name,
|
|
1739
1740
|
title: n.title,
|
|
@@ -1741,7 +1742,7 @@ const _n = F`
|
|
|
1741
1742
|
silentSteps: n.silentSteps.filter((A) => Et(A, t))
|
|
1742
1743
|
};
|
|
1743
1744
|
return e.silentSteps.length === 0 && e.renderableSteps.length === 0 ? null : e;
|
|
1744
|
-
}, yt = (n, t) => n.map((e) =>
|
|
1745
|
+
}, yt = (n, t) => n.map((e) => si(e, t)).filter((e) => e !== null), oi = async (n, t, e = !1) => {
|
|
1745
1746
|
var s;
|
|
1746
1747
|
const A = yt(n, t), a = [];
|
|
1747
1748
|
for (const o of A)
|
|
@@ -1841,25 +1842,7 @@ const $t = (n) => {
|
|
|
1841
1842
|
if (n.defaultVariant !== void 0)
|
|
1842
1843
|
return t.find((e) => e.id === n.defaultVariant);
|
|
1843
1844
|
}
|
|
1844
|
-
}
|
|
1845
|
-
function oi(n) {
|
|
1846
|
-
if (!/^data:/i.test(n))
|
|
1847
|
-
throw new TypeError('`uri` does not appear to be a Data URI (must begin with "data:")');
|
|
1848
|
-
n = n.replace(/\r?\n/g, "");
|
|
1849
|
-
const t = n.indexOf(",");
|
|
1850
|
-
if (t === -1 || t <= 4)
|
|
1851
|
-
throw new TypeError("malformed data: URI");
|
|
1852
|
-
const e = n.substring(5, t).split(";");
|
|
1853
|
-
let A = "", a = !1;
|
|
1854
|
-
const i = e[0] || "text/plain";
|
|
1855
|
-
let s = i;
|
|
1856
|
-
for (let l = 1; l < e.length; l++)
|
|
1857
|
-
e[l] === "base64" ? a = !0 : e[l] && (s += `;${e[l]}`, e[l].indexOf("charset=") === 0 && (A = e[l].substring(8)));
|
|
1858
|
-
!e[0] && !A.length && (s += ";charset=US-ASCII", A = "US-ASCII");
|
|
1859
|
-
const o = a ? "base64" : "ascii", r = unescape(n.substring(t + 1)), c = Buffer.from(r, o);
|
|
1860
|
-
return c.type = i, c.typeFull = s, c.charset = A, c;
|
|
1861
|
-
}
|
|
1862
|
-
const ut = /* @__PURE__ */ new Map(), Ut = /* @__PURE__ */ new Map(), ke = /* @__PURE__ */ new Map(), ha = async (n, t) => {
|
|
1845
|
+
}, ut = /* @__PURE__ */ new Map(), Ut = /* @__PURE__ */ new Map(), ke = /* @__PURE__ */ new Map(), ha = async (n, t) => {
|
|
1863
1846
|
if (!t) {
|
|
1864
1847
|
if (!n)
|
|
1865
1848
|
throw new Error("No region or src supplied. Cannot construct frame!");
|
|
@@ -1936,7 +1919,7 @@ const ut = /* @__PURE__ */ new Map(), Ut = /* @__PURE__ */ new Map(), ke = /* @_
|
|
|
1936
1919
|
if (ut.has(n))
|
|
1937
1920
|
return ut.get(n);
|
|
1938
1921
|
if (n.startsWith("data:image/svg+xml")) {
|
|
1939
|
-
const A =
|
|
1922
|
+
const A = nn(n), a = new TextDecoder().decode(A.buffer), i = wa(a), s = {
|
|
1940
1923
|
src: n,
|
|
1941
1924
|
width: i.width,
|
|
1942
1925
|
height: i.height,
|
|
@@ -4668,7 +4651,7 @@ const ut = /* @__PURE__ */ new Map(), Ut = /* @__PURE__ */ new Map(), ke = /* @_
|
|
|
4668
4651
|
parseInt(n.substring(2, 4), 16),
|
|
4669
4652
|
parseInt(n.substring(4, 6), 16)
|
|
4670
4653
|
]);
|
|
4671
|
-
function
|
|
4654
|
+
function Er(n) {
|
|
4672
4655
|
const t = jt.indexOf(n);
|
|
4673
4656
|
return t >= 0 ? St[t] : "";
|
|
4674
4657
|
}
|
|
@@ -4676,7 +4659,7 @@ function ci(n) {
|
|
|
4676
4659
|
const t = St.indexOf(n);
|
|
4677
4660
|
return t >= 0 ? jt[t] : "";
|
|
4678
4661
|
}
|
|
4679
|
-
function
|
|
4662
|
+
function mr(n, t = 64) {
|
|
4680
4663
|
const e = [], A = [], a = ci(n);
|
|
4681
4664
|
a && e.push({
|
|
4682
4665
|
pms: a,
|
|
@@ -4694,8 +4677,8 @@ function Er(n, t = 64) {
|
|
|
4694
4677
|
A[g] <= t && !e.some((d) => d.pms === jt[g]) && e.push({ pms: jt[g], hex: St[g], distance: A[g] });
|
|
4695
4678
|
return e.sort((g, d) => g.distance - d.distance);
|
|
4696
4679
|
}
|
|
4697
|
-
const li = jt.map((n, t) => ({ pms: n, hex: St[t] })), gi = new
|
|
4698
|
-
function
|
|
4680
|
+
const li = jt.map((n, t) => ({ pms: n, hex: St[t] })), gi = new on(li, { keys: ["pms"] });
|
|
4681
|
+
function Qr(n, t) {
|
|
4699
4682
|
return gi.search(n, t ? { limit: t } : void 0);
|
|
4700
4683
|
}
|
|
4701
4684
|
let Rt = null;
|
|
@@ -4770,7 +4753,7 @@ const ne = (n) => {
|
|
|
4770
4753
|
}
|
|
4771
4754
|
if (A.tagName === "style") {
|
|
4772
4755
|
try {
|
|
4773
|
-
(i =
|
|
4756
|
+
(i = sn(A.innerHTML).stylesheet) == null || i.rules.forEach((c) => {
|
|
4774
4757
|
e.push(c);
|
|
4775
4758
|
}), A.remove();
|
|
4776
4759
|
} catch (r) {
|
|
@@ -4841,16 +4824,16 @@ const ne = (n) => {
|
|
|
4841
4824
|
}
|
|
4842
4825
|
});
|
|
4843
4826
|
});
|
|
4844
|
-
},
|
|
4827
|
+
}, Qa = (n) => Se().serializeToString(n), hA = (n, t, e, A, a) => {
|
|
4845
4828
|
const i = Ea(n);
|
|
4846
4829
|
if (!i)
|
|
4847
4830
|
throw new Error("Failed to read SVG.");
|
|
4848
|
-
return wi(i, t, e), ma(i, A, a),
|
|
4849
|
-
},
|
|
4831
|
+
return wi(i, t, e), ma(i, A, a), Qa(i);
|
|
4832
|
+
}, fa = (n, t, e) => {
|
|
4850
4833
|
const A = Ea(n);
|
|
4851
4834
|
if (!A)
|
|
4852
4835
|
throw new Error("Failed to read SVG.");
|
|
4853
|
-
return ma(A, t, e),
|
|
4836
|
+
return ma(A, t, e), Qa(A);
|
|
4854
4837
|
}, ui = (n) => {
|
|
4855
4838
|
const t = /<svg.*<\/svg>/s, e = n.match(t) || [], A = (e == null ? void 0 : e.length) > 0 ? e[0] : "";
|
|
4856
4839
|
return Bt().parseFromString(A, "image/svg+xml");
|
|
@@ -4900,11 +4883,11 @@ const ne = (n) => {
|
|
|
4900
4883
|
const B = e || 0, h = 2 * ((r == null ? void 0 : r.scale) || 1), C = g || { x: 0, y: 0, width: d, height: i }, w = `${C.x} ${C.y} ${C.width} ${C.height}`, u = k(), E = A.purpose === Ot.FreeDesign && /* @__PURE__ */ v("defs", { children: /* @__PURE__ */ v("clipPath", { id: "viewboxClip", children: /* @__PURE__ */ v("rect", { width: C.width, height: C.height, rx: B }) }) }), m = (p = A.colorProfiles) == null ? void 0 : p.map((I, D) => (
|
|
4901
4884
|
/* @ts-ignore */
|
|
4902
4885
|
/* @__PURE__ */ v("color-profile", { name: I.name, xlinkHref: I.key, children: " " }, D)
|
|
4903
|
-
)),
|
|
4886
|
+
)), f = a.map((I) => ({
|
|
4904
4887
|
...I,
|
|
4905
4888
|
_renderingConfiguration: A,
|
|
4906
4889
|
mask: r ? `url(#viewmask-${u})` : void 0
|
|
4907
|
-
})),
|
|
4890
|
+
})), Q = EA(f);
|
|
4908
4891
|
return /* @__PURE__ */ ot(
|
|
4909
4892
|
"svg",
|
|
4910
4893
|
{
|
|
@@ -4941,7 +4924,7 @@ const ne = (n) => {
|
|
|
4941
4924
|
{
|
|
4942
4925
|
id: "element-group",
|
|
4943
4926
|
clipPath: A.purpose === Ot.FreeDesign ? "url(#viewboxClip)" : void 0,
|
|
4944
|
-
children:
|
|
4927
|
+
children: Q.map((I) => Ma(I)).filter((I) => !!I)
|
|
4945
4928
|
}
|
|
4946
4929
|
),
|
|
4947
4930
|
r && /* @__PURE__ */ v(
|
|
@@ -4983,32 +4966,32 @@ const ne = (n) => {
|
|
|
4983
4966
|
}
|
|
4984
4967
|
);
|
|
4985
4968
|
}, fr = (n, t, e, A, a) => {
|
|
4986
|
-
const i = dt(a), s = e / 2, o = A / 2, r = n + s, c = t + o, l = Math.sin(i), g = Math.cos(i), d = s, B = s, h = -o, C = o, w = d * g - h * l, u = B * g - C * l, E = d * l + h * g, m = B * l + C * g,
|
|
4969
|
+
const i = dt(a), s = e / 2, o = A / 2, r = n + s, c = t + o, l = Math.sin(i), g = Math.cos(i), d = s, B = s, h = -o, C = o, w = d * g - h * l, u = B * g - C * l, E = d * l + h * g, m = B * l + C * g, f = Math.max(Math.abs(w), Math.abs(u)), Q = Math.max(Math.abs(E), Math.abs(m));
|
|
4987
4970
|
return {
|
|
4988
|
-
minX: r -
|
|
4989
|
-
maxX: r +
|
|
4990
|
-
minY: c -
|
|
4991
|
-
maxY: c +
|
|
4971
|
+
minX: r - f,
|
|
4972
|
+
maxX: r + f,
|
|
4973
|
+
minY: c - Q,
|
|
4974
|
+
maxY: c + Q
|
|
4992
4975
|
};
|
|
4993
|
-
},
|
|
4976
|
+
}, pr = (n, t, e) => {
|
|
4994
4977
|
const A = Math.sqrt(Math.pow(t.x - n.x, 2) + Math.pow(t.y - n.y, 2)), a = Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2)), i = Math.sqrt(Math.pow(e.x - n.x, 2) + Math.pow(e.y - n.y, 2));
|
|
4995
4978
|
return Math.acos((a * a + A * A - i * i) / (2 * a * A)) * (180 / Math.PI);
|
|
4996
|
-
}, dt = (n) => n * (Math.PI / 180),
|
|
4979
|
+
}, dt = (n) => n * (Math.PI / 180), Ir = (n, t, e) => Math.abs(n - t) < e, Dr = (n, t, e) => {
|
|
4997
4980
|
const A = Math.sin(dt(e)), a = Math.cos(dt(e));
|
|
4998
4981
|
return {
|
|
4999
4982
|
x: (n.x - t.x) * a - (n.y - t.y) * A + t.x,
|
|
5000
4983
|
y: (n.x - t.x) * A + (n.y - t.y) * a + t.y
|
|
5001
4984
|
};
|
|
5002
|
-
},
|
|
4985
|
+
}, Fr = (n, t) => ({
|
|
5003
4986
|
x: (n.x + t.x) / 2,
|
|
5004
4987
|
y: (n.y + t.y) / 2
|
|
5005
|
-
}),
|
|
4988
|
+
}), yr = (n, t, e, A) => ({
|
|
5006
4989
|
x: n.x + (t == null ? void 0 : t.x) * e,
|
|
5007
4990
|
y: n.y + (t == null ? void 0 : t.y) * A
|
|
5008
|
-
}),
|
|
4991
|
+
}), Mr = (n, t, e, A) => ({
|
|
5009
4992
|
x: n.x + ((t == null ? void 0 : t.x) + (t == null ? void 0 : t.width)) * e,
|
|
5010
4993
|
y: n.y + (t == null ? void 0 : t.y) * A
|
|
5011
|
-
}),
|
|
4994
|
+
}), Sr = (n, t, e, A) => ({
|
|
5012
4995
|
x: n.x + ((t == null ? void 0 : t.x) + (t == null ? void 0 : t.width)) * e,
|
|
5013
4996
|
y: n.y + ((t == null ? void 0 : t.y) + (t == null ? void 0 : t.height)) * A
|
|
5014
4997
|
}), It = (n) => {
|
|
@@ -5030,7 +5013,7 @@ const ne = (n) => {
|
|
|
5030
5013
|
case W.Southwest:
|
|
5031
5014
|
return W.Northwest;
|
|
5032
5015
|
}
|
|
5033
|
-
},
|
|
5016
|
+
}, xr = (n, t) => t > 45 && t <= 135 ? It(n) : t > 135 && t <= 225 ? It(It(n)) : t > 225 && t <= 315 ? It(It(It(n))) : n, Yr = (n, t = { x: 0, y: 0 }, e = { x: 1, y: 1 }) => {
|
|
5034
5017
|
const A = dt(n.rotation), a = {
|
|
5035
5018
|
x: t.x + n.x * e.x,
|
|
5036
5019
|
y: t.x + n.y * e.y
|
|
@@ -5060,7 +5043,7 @@ const ne = (n) => {
|
|
|
5060
5043
|
x: (n.x - t.x) * a - (n.y - t.y) * A + t.x,
|
|
5061
5044
|
y: (n.x - t.x) * A + (n.y - t.y) * a + t.y
|
|
5062
5045
|
};
|
|
5063
|
-
},
|
|
5046
|
+
}, Pr = 0.352778, vr = 0.035277, pa = (n) => {
|
|
5064
5047
|
const t = n.rotation || 0, e = dt(t), A = Math.cos(e), a = -Math.sin(e);
|
|
5065
5048
|
return /* @__PURE__ */ v("g", { mask: n.stepName || n.productOverlay ? void 0 : n.mask, children: /* @__PURE__ */ v(
|
|
5066
5049
|
"g",
|
|
@@ -5119,7 +5102,7 @@ const ne = (n) => {
|
|
|
5119
5102
|
if (!n.pattern)
|
|
5120
5103
|
return "";
|
|
5121
5104
|
if (n.pattern.svg) {
|
|
5122
|
-
const g =
|
|
5105
|
+
const g = fa(n.pattern.svg, n.pattern.colors || {}, !1);
|
|
5123
5106
|
return _A(g);
|
|
5124
5107
|
}
|
|
5125
5108
|
return n.pattern.src;
|
|
@@ -5146,8 +5129,8 @@ const ne = (n) => {
|
|
|
5146
5129
|
/* @__PURE__ */ v("feFuncB", { type: "discrete", tableValues: a() })
|
|
5147
5130
|
] })
|
|
5148
5131
|
] }) }) }), s = n.rotation || 0, o = dt(s), r = Math.cos(o), c = -Math.sin(o), l = () => {
|
|
5149
|
-
var m,
|
|
5150
|
-
const g = ((m = n.pattern) == null ? void 0 : m.x) || 0, d = ((
|
|
5132
|
+
var m, f, Q, p, I, D, y, x, N, S;
|
|
5133
|
+
const g = ((m = n.pattern) == null ? void 0 : m.x) || 0, d = ((f = n.pattern) == null ? void 0 : f.y) || 0, B = ((Q = n.pattern) == null ? void 0 : Q.width) || 0, h = ((p = n.pattern) == null ? void 0 : p.height) || 0, C = ((I = n.pattern) == null ? void 0 : I.scaleX) || 1, w = ((D = n.pattern) == null ? void 0 : D.scaleY) || 1, u = ((y = n.pattern) == null ? void 0 : y.rotation) || 0;
|
|
5151
5134
|
return [(x = n.pattern) != null && x.svg ? {
|
|
5152
5135
|
id: `${t}-contents`,
|
|
5153
5136
|
type: R.Illustration,
|
|
@@ -5207,7 +5190,7 @@ const ne = (n) => {
|
|
|
5207
5190
|
)
|
|
5208
5191
|
] });
|
|
5209
5192
|
}, Da = /* @__PURE__ */ new Map();
|
|
5210
|
-
class
|
|
5193
|
+
class Qi {
|
|
5211
5194
|
constructor(t) {
|
|
5212
5195
|
this.font = t, this.glyphsFromText = /* @__PURE__ */ new Map(), this.kerningValues = /* @__PURE__ */ new Map(), this.height = this.calculateApproximateHeight();
|
|
5213
5196
|
}
|
|
@@ -5257,19 +5240,19 @@ class fi {
|
|
|
5257
5240
|
}), A - a;
|
|
5258
5241
|
}
|
|
5259
5242
|
}
|
|
5260
|
-
const
|
|
5243
|
+
const fi = (n) => n.substring(0, 5).toLowerCase().trim() === "data:", be = /* @__PURE__ */ new Map(), _t = async (n) => {
|
|
5261
5244
|
if (be.has(n))
|
|
5262
5245
|
return be.get(n);
|
|
5263
5246
|
const e = (async () => {
|
|
5264
5247
|
try {
|
|
5265
|
-
return
|
|
5248
|
+
return Qt(n).getFont();
|
|
5266
5249
|
} catch {
|
|
5267
|
-
if (
|
|
5250
|
+
if (fi(n)) {
|
|
5268
5251
|
const A = ta(n), a = Ve.parse(A);
|
|
5269
5252
|
return AA(n, a), a;
|
|
5270
5253
|
} else {
|
|
5271
5254
|
const A = await Me(n, !0), a = Ve.parse(A);
|
|
5272
|
-
return AA(n, a), await
|
|
5255
|
+
return AA(n, a), await Qn(a, n), a;
|
|
5273
5256
|
}
|
|
5274
5257
|
}
|
|
5275
5258
|
})();
|
|
@@ -5277,13 +5260,13 @@ const Qi = (n) => n.substring(0, 5).toLowerCase().trim() === "data:", be = /* @_
|
|
|
5277
5260
|
}, CA = (n) => {
|
|
5278
5261
|
const t = ta(n), e = Ve.parse(t);
|
|
5279
5262
|
return AA(n, e), e;
|
|
5280
|
-
},
|
|
5263
|
+
}, Qt = (n) => {
|
|
5281
5264
|
const t = Da.get(n);
|
|
5282
5265
|
if (t)
|
|
5283
5266
|
return t;
|
|
5284
5267
|
throw new Error("Font metrics unavailable for font");
|
|
5285
5268
|
}, AA = (n, t) => {
|
|
5286
|
-
const e = new
|
|
5269
|
+
const e = new Qi(t);
|
|
5287
5270
|
return Da.set(n, e), e;
|
|
5288
5271
|
}, me = (n, t, e, A) => Math.max(Fi(n.join(`
|
|
5289
5272
|
`), e, A), t), bA = (n, t, e, A, a, i) => {
|
|
@@ -5342,7 +5325,7 @@ const Qi = (n) => n.substring(0, 5).toLowerCase().trim() === "data:", be = /* @_
|
|
|
5342
5325
|
return Math.min(g, l);
|
|
5343
5326
|
}, Ii = (n, t, e, A) => {
|
|
5344
5327
|
var c;
|
|
5345
|
-
const a =
|
|
5328
|
+
const a = Qt(t.fontData.assetUrl), i = a.getFont(), s = t.fontSize / i.unitsPerEm;
|
|
5346
5329
|
if (!e)
|
|
5347
5330
|
return bA(t, n, t.fontSize, s, a, A);
|
|
5348
5331
|
let o;
|
|
@@ -5363,9 +5346,9 @@ const Qi = (n) => n.substring(0, 5).toLowerCase().trim() === "data:", be = /* @_
|
|
|
5363
5346
|
fontSize: pi(o, a, i, t.width, t.height, A)
|
|
5364
5347
|
} : bA(t, n, t.fontSize, s, a, A);
|
|
5365
5348
|
}, Di = (n, t, e, A, a) => {
|
|
5366
|
-
const s =
|
|
5349
|
+
const s = Qt(t.assetUrl).getFont();
|
|
5367
5350
|
let o = { ...n };
|
|
5368
|
-
const r = { ...n }, c = Fa(A, e / s.unitsPerEm,
|
|
5351
|
+
const r = { ...n }, c = Fa(A, e / s.unitsPerEm, Qt(t.assetUrl));
|
|
5369
5352
|
return c && c < o.width && (r.width = c, a === "left" ? (r.left += Math.sin(o.rotation * Math.PI / 360) * (o.width - c), r.top += Math.sin(o.rotation * Math.PI / 180) * (c - o.width) / 2) : a === "right" ? r.left += o.width - c : r.left += (o.width - c) / 2, A && yi(A, A).every(([l, g]) => l === g) && (o = r)), o;
|
|
5370
5353
|
}, Ue = 1, ct = (n, t, e) => {
|
|
5371
5354
|
let A = 0;
|
|
@@ -5394,7 +5377,7 @@ const Qi = (n) => n.substring(0, 5).toLowerCase().trim() === "data:", be = /* @_
|
|
|
5394
5377
|
stripControlCharacters: !0,
|
|
5395
5378
|
vertical: !1,
|
|
5396
5379
|
uppercase: !1
|
|
5397
|
-
},
|
|
5380
|
+
}, Qe = (n, t = UA) => {
|
|
5398
5381
|
const e = { ...UA, ...t };
|
|
5399
5382
|
let A = n || "";
|
|
5400
5383
|
return e.stripControlCharacters && (A = A.replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, "")), e.uppercase && (A = A.toUpperCase()), e.vertical && (A = A.split("").join(`
|
|
@@ -5780,7 +5763,7 @@ class GA extends T {
|
|
|
5780
5763
|
};
|
|
5781
5764
|
}
|
|
5782
5765
|
}
|
|
5783
|
-
class
|
|
5766
|
+
class Nr extends T {
|
|
5784
5767
|
constructor(t, e, A) {
|
|
5785
5768
|
super(), this.id = t, this.x = e, this.y = A;
|
|
5786
5769
|
}
|
|
@@ -5803,7 +5786,7 @@ class vr extends T {
|
|
|
5803
5786
|
};
|
|
5804
5787
|
}
|
|
5805
5788
|
}
|
|
5806
|
-
class
|
|
5789
|
+
class Rr extends T {
|
|
5807
5790
|
constructor(t, e) {
|
|
5808
5791
|
super(), this.id = t, this.angle = e;
|
|
5809
5792
|
}
|
|
@@ -5825,7 +5808,7 @@ class Nr extends T {
|
|
|
5825
5808
|
};
|
|
5826
5809
|
}
|
|
5827
5810
|
}
|
|
5828
|
-
class
|
|
5811
|
+
class kr extends T {
|
|
5829
5812
|
constructor(t, e, A) {
|
|
5830
5813
|
super(), this.id = t, this.width = Math.abs(e), this.height = Math.abs(A);
|
|
5831
5814
|
}
|
|
@@ -5942,7 +5925,7 @@ class V extends T {
|
|
|
5942
5925
|
return A !== void 0 ? A + 1 : 0;
|
|
5943
5926
|
}
|
|
5944
5927
|
}
|
|
5945
|
-
class
|
|
5928
|
+
class ft extends T {
|
|
5946
5929
|
constructor(t) {
|
|
5947
5930
|
super(), this.id = t;
|
|
5948
5931
|
}
|
|
@@ -6137,7 +6120,7 @@ class bi extends T {
|
|
|
6137
6120
|
};
|
|
6138
6121
|
}
|
|
6139
6122
|
}
|
|
6140
|
-
class
|
|
6123
|
+
class Hr extends T {
|
|
6141
6124
|
constructor(t, e) {
|
|
6142
6125
|
super(), this.id = t, this.src = e;
|
|
6143
6126
|
}
|
|
@@ -6228,7 +6211,7 @@ class Gi extends T {
|
|
|
6228
6211
|
};
|
|
6229
6212
|
}
|
|
6230
6213
|
}
|
|
6231
|
-
class
|
|
6214
|
+
class br extends T {
|
|
6232
6215
|
/**
|
|
6233
6216
|
* @param id The targeted element to bring to the front.
|
|
6234
6217
|
*/
|
|
@@ -6257,7 +6240,7 @@ class Hr extends T {
|
|
|
6257
6240
|
};
|
|
6258
6241
|
}
|
|
6259
6242
|
}
|
|
6260
|
-
class
|
|
6243
|
+
class Ur extends T {
|
|
6261
6244
|
/**
|
|
6262
6245
|
* @param id The targeted element to bring to the back.
|
|
6263
6246
|
*/
|
|
@@ -6288,7 +6271,7 @@ class br extends T {
|
|
|
6288
6271
|
};
|
|
6289
6272
|
}
|
|
6290
6273
|
}
|
|
6291
|
-
class
|
|
6274
|
+
class Gr extends T {
|
|
6292
6275
|
/**
|
|
6293
6276
|
* @param id The targeted element to bring to the front.
|
|
6294
6277
|
*/
|
|
@@ -6315,7 +6298,7 @@ class Ur extends T {
|
|
|
6315
6298
|
};
|
|
6316
6299
|
}
|
|
6317
6300
|
}
|
|
6318
|
-
class
|
|
6301
|
+
class Jr extends T {
|
|
6319
6302
|
/**
|
|
6320
6303
|
* @param id The targeted element to bring to the front.
|
|
6321
6304
|
*/
|
|
@@ -6431,7 +6414,7 @@ class Ti {
|
|
|
6431
6414
|
getImageSrc() {
|
|
6432
6415
|
if (this.imageData) {
|
|
6433
6416
|
if (this.imageData.svg) {
|
|
6434
|
-
const t =
|
|
6417
|
+
const t = fa(this.imageData.svg, this.imageData.colors || {}, !1);
|
|
6435
6418
|
return _A(t);
|
|
6436
6419
|
}
|
|
6437
6420
|
return this.imageData.src;
|
|
@@ -6647,12 +6630,12 @@ const kt = (n, t) => {
|
|
|
6647
6630
|
}
|
|
6648
6631
|
if (e && t === R.Textbox && (A != null && A.text) && (A != null && A.fontScale)) {
|
|
6649
6632
|
await _t(e);
|
|
6650
|
-
const r =
|
|
6633
|
+
const r = Qt(e), c = ct(A.text, A == null ? void 0 : A.fontScale, r);
|
|
6651
6634
|
o.width = Math.min(c, a.width * 0.85), o.left = a.x + a.width / 2 - o.width / 2;
|
|
6652
6635
|
}
|
|
6653
6636
|
return o;
|
|
6654
6637
|
};
|
|
6655
|
-
class
|
|
6638
|
+
class Tr {
|
|
6656
6639
|
static async getFrame(t, e) {
|
|
6657
6640
|
const A = await ha(e.region, e.src), a = await Ye(A), i = e.region || await Ht(t, R.Frame);
|
|
6658
6641
|
return {
|
|
@@ -6701,7 +6684,7 @@ class Jr {
|
|
|
6701
6684
|
const { configuration: A, fontSrc: a, designInputStep: i } = e, s = await _t(a), o = {
|
|
6702
6685
|
assetUrl: a,
|
|
6703
6686
|
name: s.names.fullName.en
|
|
6704
|
-
}, r = (i == null ? void 0 : i.text) || A.defaultText || "", c = A.replaceableText ? A.replaceableText.replace("{{}}", r) : r, l =
|
|
6687
|
+
}, r = (i == null ? void 0 : i.text) || A.defaultText || "", c = A.replaceableText ? A.replaceableText.replace("{{}}", r) : r, l = Qe(c, {
|
|
6705
6688
|
vertical: A.vertical,
|
|
6706
6689
|
uppercase: A.uppercase
|
|
6707
6690
|
}), g = e.region || await Ht(t, R.Textbox, a, {
|
|
@@ -6988,7 +6971,7 @@ class Li {
|
|
|
6988
6971
|
40
|
|
6989
6972
|
);
|
|
6990
6973
|
});
|
|
6991
|
-
t.forEach((B) => A.getCommandDispatcher()(new
|
|
6974
|
+
t.forEach((B) => A.getCommandDispatcher()(new ft(B.id)));
|
|
6992
6975
|
const o = a.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", r = new URL(o + a.data.baseUrl);
|
|
6993
6976
|
r.searchParams.append("video", btoa(JSON.stringify([s]))), r.pathname = r.pathname + (r.pathname.slice(-1) === "/" ? "" : "/");
|
|
6994
6977
|
const c = r.toString();
|
|
@@ -7327,12 +7310,12 @@ class zi {
|
|
|
7327
7310
|
i && i(!0);
|
|
7328
7311
|
const c = t.data.initialZoomLevel, l = await Promise.all(
|
|
7329
7312
|
t.data.regions.map(async (h, C) => {
|
|
7330
|
-
const w = await Ye(r[C]), u = o.getImageData(), E = A.map((D) => new
|
|
7313
|
+
const w = await Ye(r[C]), u = o.getImageData(), E = A.map((D) => new ft(D.id)), m = u ? dA(
|
|
7331
7314
|
u,
|
|
7332
7315
|
w,
|
|
7333
7316
|
c && !t.data.forceImageCover ? { scale: c } : void 0,
|
|
7334
7317
|
t.data.forceImageCover
|
|
7335
|
-
) : void 0,
|
|
7318
|
+
) : void 0, f = u ? {
|
|
7336
7319
|
id: k(),
|
|
7337
7320
|
src: u.src,
|
|
7338
7321
|
x: (m == null ? void 0 : m.x) || 0,
|
|
@@ -7342,18 +7325,18 @@ class zi {
|
|
|
7342
7325
|
scaleX: (m == null ? void 0 : m.zoom) || 1,
|
|
7343
7326
|
scaleY: (m == null ? void 0 : m.zoom) || 1,
|
|
7344
7327
|
rotation: 0
|
|
7345
|
-
} : void 0,
|
|
7328
|
+
} : void 0, Q = k(), I = a.getLayouts().find((D) => D.panelId === h.panelId);
|
|
7346
7329
|
if (!I)
|
|
7347
7330
|
throw new X(h);
|
|
7348
7331
|
return {
|
|
7349
|
-
command: this.getCreateElementCommand(
|
|
7332
|
+
command: this.getCreateElementCommand(Q, h, I, {
|
|
7350
7333
|
frameData: w,
|
|
7351
|
-
pattern:
|
|
7334
|
+
pattern: f,
|
|
7352
7335
|
disablePlaceholder: t.data.disablePlaceholder,
|
|
7353
7336
|
stepName: t.stepName
|
|
7354
7337
|
}),
|
|
7355
7338
|
regionEl: {
|
|
7356
|
-
id:
|
|
7339
|
+
id: Q,
|
|
7357
7340
|
region: h
|
|
7358
7341
|
},
|
|
7359
7342
|
removeExistingCommands: E
|
|
@@ -7581,7 +7564,7 @@ class ji {
|
|
|
7581
7564
|
if (!t.data || !t.data.regions)
|
|
7582
7565
|
throw new Ee(t, "Missing regions.");
|
|
7583
7566
|
a(!0);
|
|
7584
|
-
const s = A.map((E) => new
|
|
7567
|
+
const s = A.map((E) => new ft(E.id));
|
|
7585
7568
|
t.mandatory && i.setMandatoryFulfilled(t.stepName, !1);
|
|
7586
7569
|
const o = e.asset;
|
|
7587
7570
|
if (!o)
|
|
@@ -7590,13 +7573,13 @@ class ji {
|
|
|
7590
7573
|
if (!r)
|
|
7591
7574
|
throw new Lt(o);
|
|
7592
7575
|
const c = await gt(await this.getIllustrationBody(r)), l = await Kt(c.svg), g = (E) => {
|
|
7593
|
-
const m = i.getLayouts().find((
|
|
7576
|
+
const m = i.getLayouts().find((Q) => Q.panelId === E.panelId);
|
|
7594
7577
|
if (!m)
|
|
7595
7578
|
throw new X(E);
|
|
7596
|
-
const
|
|
7579
|
+
const f = k();
|
|
7597
7580
|
return {
|
|
7598
|
-
regionElement: { id:
|
|
7599
|
-
command: this.getCreateElementCommand(
|
|
7581
|
+
regionElement: { id: f, region: E },
|
|
7582
|
+
command: this.getCreateElementCommand(f, E, m, {
|
|
7600
7583
|
stepName: t.stepName,
|
|
7601
7584
|
src: r,
|
|
7602
7585
|
objectURL: l,
|
|
@@ -7608,8 +7591,8 @@ class ji {
|
|
|
7608
7591
|
const w = t.data.colorOption;
|
|
7609
7592
|
return w && ((u = w.variants) == null || u.forEach((E) => {
|
|
7610
7593
|
C = C.map((m) => {
|
|
7611
|
-
var
|
|
7612
|
-
return m.toLowerCase() === ((
|
|
7594
|
+
var f;
|
|
7595
|
+
return m.toLowerCase() === ((f = E.color) == null ? void 0 : f.toLowerCase()) ? E.name : m;
|
|
7613
7596
|
});
|
|
7614
7597
|
})), i.updateMetadata(t.stepName, { colors: C }), {
|
|
7615
7598
|
command: new G(h),
|
|
@@ -7617,25 +7600,25 @@ class ji {
|
|
|
7617
7600
|
await i.setSelectionsAndElements(
|
|
7618
7601
|
t.stepName,
|
|
7619
7602
|
[e],
|
|
7620
|
-
d.map((
|
|
7603
|
+
d.map((f) => f.regionElement),
|
|
7621
7604
|
async () => {
|
|
7622
7605
|
i.setMandatoryFulfilled(t.stepName, !0), a(!1);
|
|
7623
7606
|
}
|
|
7624
7607
|
);
|
|
7625
7608
|
const E = await this.availableColors(t, i) || [], m = Object.keys(c.colors);
|
|
7626
7609
|
if (t.data.colorPickerEnabled && E.length === 1 && m.length === 1) {
|
|
7627
|
-
const
|
|
7610
|
+
const f = E[0], Q = m[0];
|
|
7628
7611
|
await this.changeColors(
|
|
7629
7612
|
t,
|
|
7630
7613
|
d.map((p) => p.regionElement),
|
|
7631
7614
|
i,
|
|
7632
7615
|
() => i.getCommandContext().getAllLayouts(),
|
|
7633
|
-
/* @__PURE__ */ new Map([[
|
|
7616
|
+
/* @__PURE__ */ new Map([[Q, f.variant.color]])
|
|
7634
7617
|
);
|
|
7635
7618
|
} else
|
|
7636
7619
|
t.data.colorPickerEnabled && await this.changeColors(
|
|
7637
7620
|
t,
|
|
7638
|
-
d.map((
|
|
7621
|
+
d.map((f) => f.regionElement),
|
|
7639
7622
|
i,
|
|
7640
7623
|
() => i.getCommandContext().getAllLayouts(),
|
|
7641
7624
|
/* @__PURE__ */ new Map()
|
|
@@ -7848,7 +7831,7 @@ class Wi {
|
|
|
7848
7831
|
if (!w)
|
|
7849
7832
|
return console.error(`Can not find layout for region: ${d.panelId}`), null;
|
|
7850
7833
|
const u = [];
|
|
7851
|
-
return B && u.push(new
|
|
7834
|
+
return B && u.push(new ft(h)), u.push(
|
|
7852
7835
|
new V(
|
|
7853
7836
|
{
|
|
7854
7837
|
stepRegion: d,
|
|
@@ -7970,7 +7953,7 @@ class Xi {
|
|
|
7970
7953
|
if (!s)
|
|
7971
7954
|
return console.error("No URL for picture!"), null;
|
|
7972
7955
|
a(!0), t.mandatory && A.setMandatoryFulfilled(t.stepName, !1);
|
|
7973
|
-
const r = A.getRegionElements(t.stepName).map((g) => new
|
|
7956
|
+
const r = A.getRegionElements(t.stepName).map((g) => new ft(g.id)), c = (g) => {
|
|
7974
7957
|
const B = A.getLayouts().find((C) => C.panelId === g.panelId);
|
|
7975
7958
|
if (!B)
|
|
7976
7959
|
throw new X(g);
|
|
@@ -8300,7 +8283,7 @@ const _i = new $i(), Te = (n, t, e, A, a) => {
|
|
|
8300
8283
|
return [null, null];
|
|
8301
8284
|
}, he = (n, t, e, A, a) => {
|
|
8302
8285
|
let i, s;
|
|
8303
|
-
const o =
|
|
8286
|
+
const o = Qt(t.assetUrl), r = o.getFont();
|
|
8304
8287
|
if (a.size) {
|
|
8305
8288
|
const d = n / r.unitsPerEm;
|
|
8306
8289
|
return [i, s] = Te(e, A, n, d, o), [a.size, i, s];
|
|
@@ -8316,9 +8299,9 @@ const _i = new $i(), Te = (n, t, e, A, a) => {
|
|
|
8316
8299
|
const g = l / r.unitsPerEm;
|
|
8317
8300
|
return [i, s] = Te(e, A, l, g, o), [l, i, s];
|
|
8318
8301
|
}, Oe = 30;
|
|
8319
|
-
class
|
|
8302
|
+
class fe extends Error {
|
|
8320
8303
|
constructor(t) {
|
|
8321
|
-
super(t), Object.setPrototypeOf(this, new.target.prototype), this.name =
|
|
8304
|
+
super(t), Object.setPrototypeOf(this, new.target.prototype), this.name = fe.name;
|
|
8322
8305
|
}
|
|
8323
8306
|
}
|
|
8324
8307
|
const ts = ["‘", "’", "“", "”", `
|
|
@@ -8335,7 +8318,7 @@ class es {
|
|
|
8335
8318
|
/(\r\n|\r|(\u2665|\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,
|
|
8336
8319
|
""
|
|
8337
8320
|
);
|
|
8338
|
-
const a = [], i = e ?
|
|
8321
|
+
const a = [], i = e ? Qt(e.assetUrl) : void 0;
|
|
8339
8322
|
if (i) {
|
|
8340
8323
|
const s = A.split("").filter((r) => !ts.includes(r)).join(""), o = s.split("").map((r) => i.getFont().charToGlyph(r));
|
|
8341
8324
|
for (let r = 0; r < o.length; r++)
|
|
@@ -8494,7 +8477,7 @@ class es {
|
|
|
8494
8477
|
}
|
|
8495
8478
|
getProcessedInput(t, e, A) {
|
|
8496
8479
|
const a = A ? t : this.injectReplaceableText(t, e);
|
|
8497
|
-
return
|
|
8480
|
+
return Qe(a, {
|
|
8498
8481
|
vertical: e.vertical,
|
|
8499
8482
|
uppercase: e.uppercase
|
|
8500
8483
|
});
|
|
@@ -8570,8 +8553,8 @@ class es {
|
|
|
8570
8553
|
C,
|
|
8571
8554
|
async () => {
|
|
8572
8555
|
e.updateMetadata(t.stepName, { color: w, text: u }), e.updateStorage(t.stepName, { text: u, inputText: u });
|
|
8573
|
-
const m = o.map((
|
|
8574
|
-
e.getCommandDispatcher()(
|
|
8556
|
+
const m = o.map((Q) => new JA(Q.id, h)), f = new G(m);
|
|
8557
|
+
e.getCommandDispatcher()(f);
|
|
8575
8558
|
}
|
|
8576
8559
|
);
|
|
8577
8560
|
const { command: E } = $.updateInputText(
|
|
@@ -8702,7 +8685,7 @@ class es {
|
|
|
8702
8685
|
colorProfileAssetKey: (C = w.colorProfile) == null ? void 0 : C.key
|
|
8703
8686
|
});
|
|
8704
8687
|
}
|
|
8705
|
-
const E = await this.getDefaultColor(A), m = E || "#000000",
|
|
8688
|
+
const E = await this.getDefaultColor(A), m = E || "#000000", f = {
|
|
8706
8689
|
stepRegion: g,
|
|
8707
8690
|
stepName: t,
|
|
8708
8691
|
align: this.textAlign(A),
|
|
@@ -8726,41 +8709,41 @@ class es {
|
|
|
8726
8709
|
curved: A.curved,
|
|
8727
8710
|
paths: A.paths,
|
|
8728
8711
|
fillSpotColorDefinition: u
|
|
8729
|
-
},
|
|
8730
|
-
if (!
|
|
8712
|
+
}, Q = [], p = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
|
|
8713
|
+
if (!f.fontData)
|
|
8731
8714
|
throw new O("Failed to resolve font data for text.");
|
|
8732
8715
|
const [D, y] = he(
|
|
8733
|
-
|
|
8734
|
-
|
|
8716
|
+
f.fontSize,
|
|
8717
|
+
f.fontData,
|
|
8735
8718
|
{
|
|
8736
|
-
left:
|
|
8737
|
-
top:
|
|
8738
|
-
width:
|
|
8739
|
-
height:
|
|
8740
|
-
rotation:
|
|
8719
|
+
left: f.x,
|
|
8720
|
+
top: f.y,
|
|
8721
|
+
width: f.width,
|
|
8722
|
+
height: f.height,
|
|
8723
|
+
rotation: f.rotation,
|
|
8741
8724
|
panelId: ""
|
|
8742
8725
|
},
|
|
8743
8726
|
[r],
|
|
8744
8727
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
8745
8728
|
);
|
|
8746
|
-
p.set(
|
|
8729
|
+
p.set(f.id, D), I.set(f.id, y);
|
|
8747
8730
|
const x = A.curved || A.vertical ? r : (y || []).join(`
|
|
8748
8731
|
`);
|
|
8749
|
-
|
|
8750
|
-
this.generateTextChangeCommandsForRegion(D, A,
|
|
8732
|
+
Q.push(
|
|
8733
|
+
this.generateTextChangeCommandsForRegion(D, A, f.id, x)
|
|
8751
8734
|
);
|
|
8752
|
-
const N = new V(
|
|
8735
|
+
const N = new V(f, B);
|
|
8753
8736
|
return {
|
|
8754
8737
|
regionElement: { id: h, region: g },
|
|
8755
|
-
commands: [N, ...
|
|
8756
|
-
newElement:
|
|
8738
|
+
commands: [N, ...Q],
|
|
8739
|
+
newElement: f,
|
|
8757
8740
|
fontData: a
|
|
8758
8741
|
};
|
|
8759
8742
|
} catch (w) {
|
|
8760
|
-
throw console.log(w), new
|
|
8743
|
+
throw console.log(w), new fe("Error adding font to region");
|
|
8761
8744
|
}
|
|
8762
8745
|
}, l = await Promise.all(A.regions.map(c)).catch((g) => {
|
|
8763
|
-
throw g instanceof
|
|
8746
|
+
throw g instanceof fe ? (_i.setLatestToast("Failed to load font.", Pe.Error), g) : g instanceof pe ? g : new Error(g);
|
|
8764
8747
|
});
|
|
8765
8748
|
return await s.setSelectionsAndElements(
|
|
8766
8749
|
t,
|
|
@@ -8788,24 +8771,24 @@ class es {
|
|
|
8788
8771
|
*/
|
|
8789
8772
|
async changeInputTextWithRegion(t, e, A, a, i, s, o, r, c, l) {
|
|
8790
8773
|
const g = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), d = this.getProcessedInput(g, t.data, o), B = s.getRegionElements(t.stepName), h = /* @__PURE__ */ new Map(), C = /* @__PURE__ */ new Map();
|
|
8791
|
-
for (const
|
|
8792
|
-
if (
|
|
8793
|
-
const [
|
|
8774
|
+
for (const f of B)
|
|
8775
|
+
if (f.region) {
|
|
8776
|
+
const [Q, p] = he(
|
|
8794
8777
|
e,
|
|
8795
8778
|
A,
|
|
8796
|
-
|
|
8779
|
+
f.region,
|
|
8797
8780
|
[d],
|
|
8798
8781
|
{ size: t.data.size, minSize: t.data.minSize, maxSize: t.data.maxSize }
|
|
8799
8782
|
);
|
|
8800
|
-
h.set(
|
|
8783
|
+
h.set(f.id, Q), C.set(f.id, p);
|
|
8801
8784
|
}
|
|
8802
8785
|
const u = (() => {
|
|
8803
8786
|
if (t.data && t.data.maxLength && d.length > t.data.maxLength)
|
|
8804
8787
|
return l && l(!0), { info: "0" };
|
|
8805
|
-
const
|
|
8806
|
-
for (const p of
|
|
8807
|
-
for (const I in
|
|
8808
|
-
const D =
|
|
8788
|
+
const f = s.getProfanities(), Q = We(d.toLowerCase());
|
|
8789
|
+
for (const p of Q)
|
|
8790
|
+
for (const I in f) {
|
|
8791
|
+
const D = f[I].toLowerCase().replace(/\s/g, "");
|
|
8809
8792
|
if (p === D)
|
|
8810
8793
|
return r(!0), { error: "Blocked profanity." };
|
|
8811
8794
|
}
|
|
@@ -8822,15 +8805,15 @@ class es {
|
|
|
8822
8805
|
text: this.injectReplaceableText(g, t.data)
|
|
8823
8806
|
}), (i.defaultCleared || !t.data.deleteDefaultOnFocus) && s.setMandatoryFulfilled(t.stepName, !0);
|
|
8824
8807
|
const E = [];
|
|
8825
|
-
for (const
|
|
8826
|
-
const
|
|
8808
|
+
for (const f of B) {
|
|
8809
|
+
const Q = t.data.curved ? d : (C.get(f.id) || []).join(`
|
|
8827
8810
|
`);
|
|
8828
8811
|
E.push(
|
|
8829
8812
|
this.generateTextChangeCommandsForRegion(
|
|
8830
|
-
h.get(
|
|
8813
|
+
h.get(f.id) || 1,
|
|
8831
8814
|
t.data,
|
|
8832
|
-
|
|
8833
|
-
|
|
8815
|
+
f.id,
|
|
8816
|
+
Q
|
|
8834
8817
|
)
|
|
8835
8818
|
);
|
|
8836
8819
|
}
|
|
@@ -10101,7 +10084,7 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
10101
10084
|
</g>
|
|
10102
10085
|
</svg>
|
|
10103
10086
|
|
|
10104
|
-
`, H = (n) =>
|
|
10087
|
+
`, H = (n) => mn("http://www.w3.org/2000/svg", n), QA = (n, t) => {
|
|
10105
10088
|
const e = H("rect");
|
|
10106
10089
|
return e.setAttribute("height", `${n}`), e.setAttribute("width", `${t}`), e;
|
|
10107
10090
|
}, ns = () => {
|
|
@@ -10136,7 +10119,7 @@ const Ga = (n, t, e, A) => {
|
|
|
10136
10119
|
let t = n;
|
|
10137
10120
|
return t = t.replace(/feoffset/gi, "feOffset"), t = t.replace(/fegaussianblur/gi, "feGaussianBlur"), t = t.replace(/feblend/gi, "feBlend"), t = t.replace(/lineargradient/gi, "linearGradient"), t = t.replace(/stddeviation/gi, "stdDeviation"), t;
|
|
10138
10121
|
};
|
|
10139
|
-
function
|
|
10122
|
+
function fA(n, t, e, A, a, i) {
|
|
10140
10123
|
const s = a || 1, o = i || 1, r = {
|
|
10141
10124
|
x: t[0],
|
|
10142
10125
|
y: t[1],
|
|
@@ -10278,16 +10261,16 @@ class rs extends mA {
|
|
|
10278
10261
|
}
|
|
10279
10262
|
brandSvg(t, e) {
|
|
10280
10263
|
const A = t.toSVG(2), a = t.getBoundingBox(), i = a.x2 - a.x1, s = t.toPathData(3), o = () => {
|
|
10281
|
-
const
|
|
10282
|
-
|
|
10264
|
+
const Q = H("g"), p = H("defs");
|
|
10265
|
+
Q.appendChild(p), p.appendChild(Ga(3, 7, 4, "shadow"));
|
|
10283
10266
|
const I = H("g");
|
|
10284
|
-
|
|
10267
|
+
Q.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
10285
10268
|
const D = H("g");
|
|
10286
|
-
|
|
10269
|
+
Q.appendChild(D), D.setAttribute("fill", "red"), D.setAttribute("stroke", "red"), D.setAttribute("stroke-width", "9"), D.innerHTML = A;
|
|
10287
10270
|
const y = H("g");
|
|
10288
|
-
|
|
10271
|
+
Q.appendChild(y), y.setAttribute("fill", "#9d2621"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = A;
|
|
10289
10272
|
const x = H("g");
|
|
10290
|
-
return
|
|
10273
|
+
return Q.appendChild(x), x.setAttribute("fill", "yellow"), x.innerHTML = A, new pA(Q).transform(([S, z]) => [S, z + (i / 2 - S) ** 2 / (i * 2.9)]), Q;
|
|
10291
10274
|
}, [r, c, l] = ba(e);
|
|
10292
10275
|
if (!r)
|
|
10293
10276
|
return "";
|
|
@@ -10295,14 +10278,14 @@ class rs extends mA {
|
|
|
10295
10278
|
r.appendChild(g), Ua(r, g, e);
|
|
10296
10279
|
const d = c * 0.23, B = l * 0.94, h = l * 0.04, C = c * 0.53, w = H("g");
|
|
10297
10280
|
r.appendChild(w), w.setAttribute("transform", `translate(${h} ${C}) rotate(-21)`);
|
|
10298
|
-
const u =
|
|
10281
|
+
const u = QA(d, B);
|
|
10299
10282
|
u.setAttribute("opacity", "0"), w.appendChild(u);
|
|
10300
10283
|
const E = H("g");
|
|
10301
10284
|
w.appendChild(E);
|
|
10302
10285
|
const m = o();
|
|
10303
10286
|
E.appendChild(m);
|
|
10304
|
-
const
|
|
10305
|
-
return
|
|
10287
|
+
const f = oA(s);
|
|
10288
|
+
return fA(E, f, d, B), Ja(r.outerHTML);
|
|
10306
10289
|
}
|
|
10307
10290
|
}
|
|
10308
10291
|
const cs = "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==";
|
|
@@ -10342,14 +10325,14 @@ class ls extends mA {
|
|
|
10342
10325
|
A ? (h = g * 0.25 * (1 + 0.1), C = d / 2 * (1 + 0.1), w = d * 0.22, u = g * 0.32) : (h = g * 0.22 * (1 + 0.1), C = d * 0.8, w = d * 0.067, u = g * 0.33);
|
|
10343
10326
|
const E = H("g");
|
|
10344
10327
|
l.appendChild(E), E.setAttribute("transform", `translate(${w} ${u}) rotate(-10)`);
|
|
10345
|
-
const m =
|
|
10328
|
+
const m = QA(h, C);
|
|
10346
10329
|
m.setAttribute("opacity", "0"), E.appendChild(m);
|
|
10347
|
-
const
|
|
10348
|
-
E.appendChild(
|
|
10349
|
-
const
|
|
10350
|
-
|
|
10330
|
+
const f = H("g");
|
|
10331
|
+
E.appendChild(f);
|
|
10332
|
+
const Q = c();
|
|
10333
|
+
f.appendChild(Q);
|
|
10351
10334
|
const p = oA(r);
|
|
10352
|
-
return
|
|
10335
|
+
return fA(f, p, h, C), l.outerHTML;
|
|
10353
10336
|
}
|
|
10354
10337
|
// 1 if true, 0 if false.
|
|
10355
10338
|
}
|
|
@@ -10368,12 +10351,12 @@ class ds extends mA {
|
|
|
10368
10351
|
const A = CA(gs), i = t !== "" ? ((m) => m.charAt(0).toUpperCase() + m.substr(1).toLowerCase())(t) : "", s = A.getPath(i, 0, 72, 72), o = s.toSVG(2), r = s.getBoundingBox(), c = r.x2 - r.x1, l = s.toPathData(3), g = () => {
|
|
10369
10352
|
const m = H("g");
|
|
10370
10353
|
m.classList.add("module-text-group");
|
|
10371
|
-
const
|
|
10372
|
-
m.appendChild(
|
|
10373
|
-
const
|
|
10374
|
-
|
|
10354
|
+
const f = H("defs");
|
|
10355
|
+
m.appendChild(f), f.appendChild(Ga(0, 2, 2, "shadow"));
|
|
10356
|
+
const Q = H("path");
|
|
10357
|
+
Q.setAttribute("d", l), Q.setAttribute("stroke", "black"), Q.setAttribute("stroke-width", "3"), f.appendChild(Q);
|
|
10375
10358
|
const p = H("g");
|
|
10376
|
-
p.classList.add("module-layer0"), m.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML =
|
|
10359
|
+
p.classList.add("module-layer0"), m.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = Q.outerHTML;
|
|
10377
10360
|
const I = H("g");
|
|
10378
10361
|
I.classList.add("module-layer1"), m.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 = o;
|
|
10379
10362
|
const D = H("g");
|
|
@@ -10386,14 +10369,14 @@ class ds extends mA {
|
|
|
10386
10369
|
d.appendChild(B);
|
|
10387
10370
|
const h = H("g");
|
|
10388
10371
|
h.classList.add("module-bounds"), d.appendChild(h);
|
|
10389
|
-
const C =
|
|
10372
|
+
const C = QA(e.height, e.width);
|
|
10390
10373
|
C.setAttribute("opacity", "0"), h.appendChild(C);
|
|
10391
10374
|
const w = H("g");
|
|
10392
10375
|
w.classList.add("module-text-enclosure"), d.appendChild(w);
|
|
10393
10376
|
const u = g();
|
|
10394
10377
|
w.appendChild(u);
|
|
10395
10378
|
const E = oA(l);
|
|
10396
|
-
return
|
|
10379
|
+
return fA(w, E, e.height, e.width, 0.35, 0.65), Ja(d.outerHTML);
|
|
10397
10380
|
}
|
|
10398
10381
|
}
|
|
10399
10382
|
async function Ta(n) {
|
|
@@ -10424,12 +10407,12 @@ class LA extends da {
|
|
|
10424
10407
|
class hs {
|
|
10425
10408
|
constructor(t, e, A, a, i, s, o, r, c, l, g, d, B, h = !1, C, w = !1, u = !1, E = !1) {
|
|
10426
10409
|
this.workflowStatePromiseQueue = new Ba(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
|
|
10427
|
-
var
|
|
10410
|
+
var Q;
|
|
10428
10411
|
if (!this.previewService)
|
|
10429
10412
|
return;
|
|
10430
|
-
const m = this.getCommandContext().getAllLayouts(),
|
|
10431
|
-
if (
|
|
10432
|
-
for (const [, p] of
|
|
10413
|
+
const m = this.getCommandContext().getAllLayouts(), f = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
|
|
10414
|
+
if (f)
|
|
10415
|
+
for (const [, p] of f)
|
|
10433
10416
|
p.render(m);
|
|
10434
10417
|
}, this.experience = t, this.client = e, this.updateTransaction = o, this.commandContext = s, this.reloadedState = B, this.transaction = r, this.readOnly = h, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = i, this.product = c, this.previewService = g, this.modelContainer = C, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = d, this.isReloadedTransaction = w, this.stepTags = l, E && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
|
|
10435
10418
|
this.initialized = !0;
|
|
@@ -10452,7 +10435,7 @@ class hs {
|
|
|
10452
10435
|
};
|
|
10453
10436
|
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((o) => {
|
|
10454
10437
|
this.storage[o.stepName] = o.storage || {};
|
|
10455
|
-
}), this.allScenes = await
|
|
10438
|
+
}), this.allScenes = await ni(t);
|
|
10456
10439
|
const a = yt(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: i, commands: s } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
|
|
10457
10440
|
this.commandContext.apply(new G(s), !0), this.stepElements = { ...this.stepElements, ...i }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && e();
|
|
10458
10441
|
}
|
|
@@ -10855,7 +10838,7 @@ class hs {
|
|
|
10855
10838
|
async updateTransactionStakeholders() {
|
|
10856
10839
|
var e;
|
|
10857
10840
|
const t = await P.getShadowGraphqlClient().query({
|
|
10858
|
-
query:
|
|
10841
|
+
query: ai,
|
|
10859
10842
|
errorPolicy: "all",
|
|
10860
10843
|
fetchPolicy: "no-cache",
|
|
10861
10844
|
variables: {
|
|
@@ -10867,12 +10850,12 @@ class hs {
|
|
|
10867
10850
|
async reset() {
|
|
10868
10851
|
this.commandContext.getAllLayouts().forEach(
|
|
10869
10852
|
(e) => e.layoutState.elements.forEach((A) => {
|
|
10870
|
-
this.getCommandDispatcher()(new
|
|
10853
|
+
this.getCommandDispatcher()(new ft(A.id));
|
|
10871
10854
|
})
|
|
10872
10855
|
), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, await this.ensureStepsAreLoaded();
|
|
10873
10856
|
}
|
|
10874
10857
|
async setSelectionsAndElements(t, e, A, a) {
|
|
10875
|
-
var
|
|
10858
|
+
var Q;
|
|
10876
10859
|
const i = this.stepSelections;
|
|
10877
10860
|
this.stepSelections = {
|
|
10878
10861
|
...this.stepSelections,
|
|
@@ -10895,14 +10878,14 @@ class hs {
|
|
|
10895
10878
|
const C = this.workflow.steps.find((p) => p.stepName === t);
|
|
10896
10879
|
if ((C == null ? void 0 : C.type) === M.Frame) {
|
|
10897
10880
|
const p = this.getStepSpecificServices(t);
|
|
10898
|
-
(
|
|
10881
|
+
(Q = p == null ? void 0 : p.frameService) == null || Q.setTargetElements(A.map((I) => I.id));
|
|
10899
10882
|
}
|
|
10900
|
-
const w = d.map((p) => new
|
|
10883
|
+
const w = d.map((p) => new ft(p.id)), u = new GA(this.constructSerializableWorkflow()), E = [...h, ...w, u];
|
|
10901
10884
|
E.length > 0 && this.commandContext.apply(new G(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
10902
|
-
const m = this.getInvalidModelVariants(),
|
|
10903
|
-
if (
|
|
10885
|
+
const m = this.getInvalidModelVariants(), f = this.modelContainer;
|
|
10886
|
+
if (f) {
|
|
10904
10887
|
const p = m.map(
|
|
10905
|
-
(I) =>
|
|
10888
|
+
(I) => f.applyModelVariant(
|
|
10906
10889
|
I,
|
|
10907
10890
|
{
|
|
10908
10891
|
contextService: this.getLayoutPreviewService()
|
|
@@ -11035,7 +11018,7 @@ class hs {
|
|
|
11035
11018
|
this.validationCallbacks.forEach((t) => t(this.validationErrors));
|
|
11036
11019
|
}
|
|
11037
11020
|
traversableScenes() {
|
|
11038
|
-
return
|
|
11021
|
+
return oi(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
|
|
11039
11022
|
}
|
|
11040
11023
|
}
|
|
11041
11024
|
class it {
|
|
@@ -11370,7 +11353,7 @@ class ms extends at {
|
|
|
11370
11353
|
return this.step.data.displayType || ((t = this.step.option) == null ? void 0 : t.displayType);
|
|
11371
11354
|
}
|
|
11372
11355
|
}
|
|
11373
|
-
class
|
|
11356
|
+
class Qs extends at {
|
|
11374
11357
|
constructor(t, e, A) {
|
|
11375
11358
|
super(t, e, A);
|
|
11376
11359
|
}
|
|
@@ -11425,7 +11408,7 @@ class fs extends at {
|
|
|
11425
11408
|
return t;
|
|
11426
11409
|
}
|
|
11427
11410
|
}
|
|
11428
|
-
class
|
|
11411
|
+
class fs extends at {
|
|
11429
11412
|
constructor(t, e, A) {
|
|
11430
11413
|
super(t, e, A);
|
|
11431
11414
|
}
|
|
@@ -11694,13 +11677,13 @@ class oe {
|
|
|
11694
11677
|
case M.Question:
|
|
11695
11678
|
return new ms(t, e, t.getStepTags(e.stepName));
|
|
11696
11679
|
case M.Text:
|
|
11697
|
-
return new
|
|
11680
|
+
return new fs(t, e, t.getStepTags(e.stepName));
|
|
11698
11681
|
case M.Illustration:
|
|
11699
11682
|
return new Cs(t, e, t.getStepTags(e.stepName));
|
|
11700
11683
|
case M.Picture:
|
|
11701
11684
|
return new Es(t, e, t.getStepTags(e.stepName));
|
|
11702
11685
|
case M.Shape:
|
|
11703
|
-
return new
|
|
11686
|
+
return new Qs(t, e, t.getStepTags(e.stepName));
|
|
11704
11687
|
case M.Material:
|
|
11705
11688
|
return new ws(t, e, t.getStepTags(e.stepName));
|
|
11706
11689
|
case M.Model:
|
|
@@ -11962,10 +11945,10 @@ const Ms = async (n) => {
|
|
|
11962
11945
|
return [x, N];
|
|
11963
11946
|
}, [E] = await u(!0), m = Object.fromEntries(
|
|
11964
11947
|
Object.keys(E).map((y) => [y, E[y].map((x) => x.id)])
|
|
11965
|
-
), [
|
|
11966
|
-
Object.keys(
|
|
11948
|
+
), [f] = await u(!1), Q = Object.fromEntries(
|
|
11949
|
+
Object.keys(f).map((y) => [
|
|
11967
11950
|
y,
|
|
11968
|
-
|
|
11951
|
+
f[y].map((x) => x.id)
|
|
11969
11952
|
])
|
|
11970
11953
|
);
|
|
11971
11954
|
let p = await o(h, a.id);
|
|
@@ -11999,7 +11982,7 @@ const Ms = async (n) => {
|
|
|
11999
11982
|
}
|
|
12000
11983
|
if (m) {
|
|
12001
11984
|
const x = [];
|
|
12002
|
-
for (const [N, S] of Object.entries(
|
|
11985
|
+
for (const [N, S] of Object.entries(Q))
|
|
12003
11986
|
x.push({ key: N, ids: S });
|
|
12004
11987
|
y.selectedVariants = x;
|
|
12005
11988
|
}
|
|
@@ -12261,9 +12244,9 @@ class re {
|
|
|
12261
12244
|
}
|
|
12262
12245
|
let i = 2048;
|
|
12263
12246
|
e && e <= 2048 && (i = e);
|
|
12264
|
-
const s = lt(i, i), o = this.commandContext.getAllLayouts(), r = A.defaultPreviewPanelIndex || 0, c = A.panels[r], l = o.find((
|
|
12265
|
-
var
|
|
12266
|
-
return ((
|
|
12247
|
+
const s = lt(i, i), o = this.commandContext.getAllLayouts(), r = A.defaultPreviewPanelIndex || 0, c = A.panels[r], l = o.find((f) => {
|
|
12248
|
+
var Q;
|
|
12249
|
+
return ((Q = f.layoutState) == null ? void 0 : Q.layout.panelId) === (c == null ? void 0 : c.name);
|
|
12267
12250
|
}) || o[0], g = l.layoutState.layout.previewRegion ? {
|
|
12268
12251
|
x: l.layoutState.layout.previewRegion.left,
|
|
12269
12252
|
y: l.layoutState.layout.previewRegion.top,
|
|
@@ -12538,7 +12521,7 @@ class re {
|
|
|
12538
12521
|
), this.checkForPriceBreakChanges();
|
|
12539
12522
|
const e = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), A = this.getWorkflowManager().getTransaction(), a = e.get(A.id) || void 0;
|
|
12540
12523
|
await P.getShadowGraphqlClient().mutate({
|
|
12541
|
-
mutation:
|
|
12524
|
+
mutation: _n,
|
|
12542
12525
|
variables: {
|
|
12543
12526
|
id: A.id,
|
|
12544
12527
|
quantity: t
|
|
@@ -12661,11 +12644,11 @@ const ks = [
|
|
|
12661
12644
|
return console.error(o), [];
|
|
12662
12645
|
}
|
|
12663
12646
|
}, Us = async (n, t, e, A) => {
|
|
12664
|
-
var
|
|
12647
|
+
var Q, p;
|
|
12665
12648
|
const a = e.data, i = A.option;
|
|
12666
12649
|
if (!i)
|
|
12667
12650
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
12668
|
-
const s = ((
|
|
12651
|
+
const s = ((Q = i.variants) == null ? void 0 : Q.find((I) => I.id === a.illustrationVariantId)) || $t(i);
|
|
12669
12652
|
if (!s)
|
|
12670
12653
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
12671
12654
|
if (!s.asset)
|
|
@@ -12723,9 +12706,9 @@ const ks = [
|
|
|
12723
12706
|
},
|
|
12724
12707
|
D
|
|
12725
12708
|
);
|
|
12726
|
-
},
|
|
12709
|
+
}, f = A.data.regions;
|
|
12727
12710
|
try {
|
|
12728
|
-
return
|
|
12711
|
+
return f.map(m);
|
|
12729
12712
|
} catch (I) {
|
|
12730
12713
|
return console.error(I), [];
|
|
12731
12714
|
}
|
|
@@ -12931,7 +12914,7 @@ const ks = [
|
|
|
12931
12914
|
const w = A.option;
|
|
12932
12915
|
if (!w)
|
|
12933
12916
|
return;
|
|
12934
|
-
const u = ((m = w.variants) == null ? void 0 : m.find((
|
|
12917
|
+
const u = ((m = w.variants) == null ? void 0 : m.find((f) => f.id === i.fontVariantId)) || $t(w);
|
|
12935
12918
|
if (!u || !u.asset)
|
|
12936
12919
|
return;
|
|
12937
12920
|
t[A.stepName] = { selectedVariants: [u] };
|
|
@@ -12947,7 +12930,7 @@ const ks = [
|
|
|
12947
12930
|
assetUrl: w,
|
|
12948
12931
|
name: u.names.fullName.en
|
|
12949
12932
|
};
|
|
12950
|
-
})(), g = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", i.text) : i.text) || "", d =
|
|
12933
|
+
})(), g = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", i.text) : i.text) || "", d = Qe(g, {
|
|
12951
12934
|
vertical: A.data.vertical,
|
|
12952
12935
|
uppercase: A.data.uppercase
|
|
12953
12936
|
}), B = async (w) => {
|
|
@@ -12983,12 +12966,12 @@ const ks = [
|
|
|
12983
12966
|
y: w.top
|
|
12984
12967
|
};
|
|
12985
12968
|
if (l) {
|
|
12986
|
-
const [m,
|
|
12969
|
+
const [m, f] = he(
|
|
12987
12970
|
A.data.size || s,
|
|
12988
12971
|
l,
|
|
12989
12972
|
w,
|
|
12990
12973
|
[
|
|
12991
|
-
|
|
12974
|
+
Qe(d, {
|
|
12992
12975
|
vertical: A.data.vertical,
|
|
12993
12976
|
uppercase: A.data.uppercase
|
|
12994
12977
|
})
|
|
@@ -13004,7 +12987,7 @@ const ks = [
|
|
|
13004
12987
|
{
|
|
13005
12988
|
...E,
|
|
13006
12989
|
fontSize: m,
|
|
13007
|
-
text: E.curved ? E.text : (
|
|
12990
|
+
text: E.curved ? E.text : (f || []).join(`
|
|
13008
12991
|
`)
|
|
13009
12992
|
},
|
|
13010
12993
|
u
|
|
@@ -13241,7 +13224,7 @@ class Xs extends da {
|
|
|
13241
13224
|
d.resize(r, c), await d.render(), this.onRender();
|
|
13242
13225
|
}
|
|
13243
13226
|
}
|
|
13244
|
-
const
|
|
13227
|
+
const Or = (n, t) => {
|
|
13245
13228
|
const e = [];
|
|
13246
13229
|
return n.forEach((A) => {
|
|
13247
13230
|
const a = t.steps.find((i) => i.stepName === A.stepName);
|
|
@@ -13252,7 +13235,7 @@ const Tr = (n, t) => {
|
|
|
13252
13235
|
}
|
|
13253
13236
|
});
|
|
13254
13237
|
}), e;
|
|
13255
|
-
},
|
|
13238
|
+
}, Lr = async (n, t, e, A) => {
|
|
13256
13239
|
let a = {
|
|
13257
13240
|
serializableWorkflow: { steps: [] },
|
|
13258
13241
|
layouts: {}
|
|
@@ -14076,7 +14059,7 @@ const DA = F`
|
|
|
14076
14059
|
}
|
|
14077
14060
|
}
|
|
14078
14061
|
}
|
|
14079
|
-
`,
|
|
14062
|
+
`, Qo = F`
|
|
14080
14063
|
${DA}
|
|
14081
14064
|
query GetGlobalPropertyState($bundleId: String!) {
|
|
14082
14065
|
globalPropertyState(bundleId: $bundleId) {
|
|
@@ -14087,7 +14070,7 @@ const DA = F`
|
|
|
14087
14070
|
}
|
|
14088
14071
|
}
|
|
14089
14072
|
`;
|
|
14090
|
-
class
|
|
14073
|
+
class fo {
|
|
14091
14074
|
constructor(t, e, A, a, i) {
|
|
14092
14075
|
this.bundleId = t, this.bundleOwnerId = e, this.configuration = A, this.bundleOptions = i, this.initPromise = this.getOrCreateGlobalPropertyState().then((s) => {
|
|
14093
14076
|
this.globalPropertyState = s;
|
|
@@ -14206,7 +14189,7 @@ class Qo {
|
|
|
14206
14189
|
async getOrCreateGlobalPropertyState() {
|
|
14207
14190
|
var A, a, i;
|
|
14208
14191
|
const t = await P.getShadowGraphqlClient().query({
|
|
14209
|
-
query:
|
|
14192
|
+
query: Qo,
|
|
14210
14193
|
errorPolicy: "all",
|
|
14211
14194
|
fetchPolicy: "no-cache",
|
|
14212
14195
|
variables: {
|
|
@@ -14590,7 +14573,7 @@ class Fo {
|
|
|
14590
14573
|
class je {
|
|
14591
14574
|
constructor(t, e, A, a, i, s) {
|
|
14592
14575
|
var o, r, c;
|
|
14593
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = t, this.id = e.id, this.name = e.name || "", this.ownerId = i, this.metadata = new Map(((o = e.metadata) == null ? void 0 : o.map((l) => [l.key, l.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new po(e.bundleStateData), this.globalPropertyStateManager = new
|
|
14576
|
+
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = t, this.id = e.id, this.name = e.name || "", this.ownerId = i, this.metadata = new Map(((o = e.metadata) == null ? void 0 : o.map((l) => [l.key, l.value])) || []), this.productCollection = e.productCollection, this.bundleStateManager = new po(e.bundleStateData), this.globalPropertyStateManager = new fo(
|
|
14594
14577
|
this.id,
|
|
14595
14578
|
this.ownerId,
|
|
14596
14579
|
(r = this.productCollection) == null ? void 0 : r.globalPropertyConfiguration,
|
|
@@ -15222,7 +15205,7 @@ class FA {
|
|
|
15222
15205
|
}
|
|
15223
15206
|
}
|
|
15224
15207
|
var xo = /* @__PURE__ */ ((n) => (n.Transaction = "Transaction", n.Bundle = "Bundle", n.Product = "Product", n.Variant = "Variant", n.Option = "Option", n.LineItem = "LineItem", n.Asset = "Asset", n))(xo || {});
|
|
15225
|
-
class
|
|
15208
|
+
class zr extends FA {
|
|
15226
15209
|
constructor(t) {
|
|
15227
15210
|
super(`"${t}"`);
|
|
15228
15211
|
}
|
|
@@ -15237,7 +15220,7 @@ class Wa extends FA {
|
|
|
15237
15220
|
return t.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
|
|
15238
15221
|
}
|
|
15239
15222
|
}
|
|
15240
|
-
class
|
|
15223
|
+
class jr extends FA {
|
|
15241
15224
|
constructor(t) {
|
|
15242
15225
|
super(`[${t.map((e) => e.getRaw()).join(",")}]`);
|
|
15243
15226
|
}
|
|
@@ -16022,19 +16005,19 @@ class Wo {
|
|
|
16022
16005
|
try {
|
|
16023
16006
|
return P.getShadowGraphqlClient().mutate({
|
|
16024
16007
|
...e,
|
|
16025
|
-
mutation:
|
|
16008
|
+
mutation: Zn
|
|
16026
16009
|
});
|
|
16027
16010
|
} catch (A) {
|
|
16028
16011
|
throw console.error(A), new b("Critical - Unable to synchronize workflow state with server.");
|
|
16029
16012
|
}
|
|
16030
|
-
}, this.initialized = !1, this.options = t, this.options.applicationKey &&
|
|
16013
|
+
}, this.initialized = !1, this.options = t, this.options.applicationKey && Dn(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 24.0.2"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
|
|
16031
16014
|
}
|
|
16032
16015
|
/** @deprecated Use `configure` instead */
|
|
16033
16016
|
configureUrls(t, e, A) {
|
|
16034
16017
|
nt.setHubUrl(t), nt.setServerUrl(e), nt.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
|
|
16035
16018
|
}
|
|
16036
16019
|
configure(t) {
|
|
16037
|
-
nt.setHubUrl(t.hubUrl), nt.setServerUrl(t.serverUrl), nt.setServicesApiUrl(t.servicesApiUrl), this.marketplaceThemeInstallId = t.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = t.marketplaceThemeInstallConfigurationId, t.bearerAuthenticationToken &&
|
|
16020
|
+
nt.setHubUrl(t.hubUrl), nt.setServerUrl(t.serverUrl), nt.setServicesApiUrl(t.servicesApiUrl), this.marketplaceThemeInstallId = t.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = t.marketplaceThemeInstallConfigurationId, t.bearerAuthenticationToken && yn(t.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
|
|
16038
16021
|
}
|
|
16039
16022
|
/**
|
|
16040
16023
|
* @returns The asset manager allows for common operations related to assets
|
|
@@ -16049,7 +16032,7 @@ class Wo {
|
|
|
16049
16032
|
return this.currencyCode;
|
|
16050
16033
|
}
|
|
16051
16034
|
getFlowService() {
|
|
16052
|
-
if (!
|
|
16035
|
+
if (!Fn())
|
|
16053
16036
|
throw new Error("Application key required to use Flow Service.");
|
|
16054
16037
|
return new Mo();
|
|
16055
16038
|
}
|
|
@@ -16059,7 +16042,7 @@ class Wo {
|
|
|
16059
16042
|
if (!this.options.applicationKey)
|
|
16060
16043
|
throw new Error("Cannot get current Integration without specifying an Application Key.");
|
|
16061
16044
|
const t = async () => (await P.getShadowGraphqlClient().query({
|
|
16062
|
-
query:
|
|
16045
|
+
query: Wn,
|
|
16063
16046
|
errorPolicy: "all",
|
|
16064
16047
|
fetchPolicy: "no-cache"
|
|
16065
16048
|
})).data.currentIntegration;
|
|
@@ -16139,13 +16122,13 @@ class Wo {
|
|
|
16139
16122
|
if (w && await this.authenticateCustomerId(w)) {
|
|
16140
16123
|
const E = ((B = (d = this.customer) == null ? void 0 : d.bundleStakeholders) == null ? void 0 : B.find(
|
|
16141
16124
|
(m) => {
|
|
16142
|
-
var
|
|
16143
|
-
return (
|
|
16125
|
+
var f, Q;
|
|
16126
|
+
return (Q = (f = m.bundle) == null ? void 0 : f.transactions) == null ? void 0 : Q.some((p) => p.id === t);
|
|
16144
16127
|
}
|
|
16145
16128
|
)) || ((C = (h = this.customer) == null ? void 0 : h.stakeholders) == null ? void 0 : C.find(
|
|
16146
16129
|
(m) => {
|
|
16147
|
-
var
|
|
16148
|
-
return ((
|
|
16130
|
+
var f;
|
|
16131
|
+
return ((f = m.transaction) == null ? void 0 : f.id) === t;
|
|
16149
16132
|
}
|
|
16150
16133
|
));
|
|
16151
16134
|
if (E)
|
|
@@ -16332,7 +16315,7 @@ class Wo {
|
|
|
16332
16315
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
16333
16316
|
*/
|
|
16334
16317
|
async getExistingBundle(t, e, A, a) {
|
|
16335
|
-
var w, u, E, m,
|
|
16318
|
+
var w, u, E, m, f, Q, p, I, D, y, x;
|
|
16336
16319
|
const i = Y.getMap("bundleOwnerIds"), s = i == null ? void 0 : i.get(t), r = ((w = Object.entries(localStorage).find(([N, S]) => N.startsWith("CognitoIdentityServiceProvider") && N.endsWith("idToken"))) == null ? void 0 : w[0]) || "", c = localStorage.getItem(r), l = {};
|
|
16337
16320
|
c && !Ie(c) && (l.Authorization = `Bearer ${c}`);
|
|
16338
16321
|
const g = {
|
|
@@ -16349,7 +16332,7 @@ class Wo {
|
|
|
16349
16332
|
headers: g
|
|
16350
16333
|
}
|
|
16351
16334
|
});
|
|
16352
|
-
if (!((
|
|
16335
|
+
if (!((f = d.data) != null && f.bundles) || ((Q = d.data) == null ? void 0 : Q.bundles.length) === 0 || !((p = d.data) != null && p.bundles[0]))
|
|
16353
16336
|
throw new Error(`Unable to find bundle: ${t}`);
|
|
16354
16337
|
const B = (I = d.data) == null ? void 0 : I.bundles[0], h = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
16355
16338
|
h.set(B.id, B.partner.id), Y.setMap("bundlePartnerIds", h);
|
|
@@ -16366,15 +16349,15 @@ class Wo {
|
|
|
16366
16349
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
16367
16350
|
*/
|
|
16368
16351
|
async duplicateBundle(t, e, A, a) {
|
|
16369
|
-
var w, u, E, m,
|
|
16352
|
+
var w, u, E, m, f, Q, p, I;
|
|
16370
16353
|
const i = (w = Y.getMap("bundleOwnerIds")) == null ? void 0 : w.get(t), o = ((u = Object.entries(localStorage).find(([D, y]) => D.startsWith("CognitoIdentityServiceProvider") && D.endsWith("idToken"))) == null ? void 0 : u[0]) || "", r = localStorage.getItem(o), c = {};
|
|
16371
16354
|
r && !Ie(r) && (c.Authorization = `Bearer ${r}`);
|
|
16372
16355
|
const l = {
|
|
16373
16356
|
bundleOwnerId: i,
|
|
16374
16357
|
...c,
|
|
16375
16358
|
...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
|
|
16376
|
-
}, d = (
|
|
16377
|
-
mutation: Ao(((
|
|
16359
|
+
}, d = (Q = (await P.getShadowGraphqlClient().mutate({
|
|
16360
|
+
mutation: Ao(((f = (m = a == null ? void 0 : a.graphql) == null ? void 0 : m.productCollection) == null ? void 0 : f.eagerFetchProducts) || !1),
|
|
16378
16361
|
variables: {
|
|
16379
16362
|
id: t,
|
|
16380
16363
|
template: e,
|
|
@@ -16386,7 +16369,7 @@ class Wo {
|
|
|
16386
16369
|
headers: l
|
|
16387
16370
|
},
|
|
16388
16371
|
fetchPolicy: "no-cache"
|
|
16389
|
-
})).data) == null ? void 0 :
|
|
16372
|
+
})).data) == null ? void 0 : Q.bundleDuplicate;
|
|
16390
16373
|
if (!(d != null && d.id))
|
|
16391
16374
|
throw new Error("Unable to duplicate bundle");
|
|
16392
16375
|
const B = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
@@ -16474,13 +16457,13 @@ class Wo {
|
|
|
16474
16457
|
if (!a)
|
|
16475
16458
|
return await this.getWorkflowExperienceDeprecated(t, e, A);
|
|
16476
16459
|
const i = async () => {
|
|
16477
|
-
var E, m,
|
|
16460
|
+
var E, m, f;
|
|
16478
16461
|
const u = P.getShadowGraphqlClient();
|
|
16479
16462
|
if (a.type === "transaction") {
|
|
16480
|
-
const { transactionId:
|
|
16463
|
+
const { transactionId: Q, readOnly: p } = a, I = await u.query({
|
|
16481
16464
|
query: ae,
|
|
16482
16465
|
variables: {
|
|
16483
|
-
ids: [
|
|
16466
|
+
ids: [Q]
|
|
16484
16467
|
},
|
|
16485
16468
|
errorPolicy: "all",
|
|
16486
16469
|
fetchPolicy: "no-cache"
|
|
@@ -16493,12 +16476,12 @@ class Wo {
|
|
|
16493
16476
|
const y = await ge(D.workflowId);
|
|
16494
16477
|
if (!D.product)
|
|
16495
16478
|
throw new b("Failed to load transaction, product not available.");
|
|
16496
|
-
!this.activeIntegration && ((
|
|
16479
|
+
!this.activeIntegration && ((f = D.integrationProduct) != null && f.integration) && (this.activeIntegration = Promise.resolve(D.integrationProduct.integration));
|
|
16497
16480
|
const x = await this.getStepTags(y);
|
|
16498
16481
|
return { transaction: D, workflow: y, stepTags: x, readOnly: p };
|
|
16499
16482
|
}
|
|
16500
16483
|
if (a.type === "integration" || a.type === "external") {
|
|
16501
|
-
const
|
|
16484
|
+
const Q = async () => {
|
|
16502
16485
|
const x = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
16503
16486
|
externalIntegrationId: a.externalIntegrationId,
|
|
16504
16487
|
externalProductId: a.externalProductId
|
|
@@ -16523,7 +16506,7 @@ class Wo {
|
|
|
16523
16506
|
if (!S.product)
|
|
16524
16507
|
throw new b("Failed to create transaction, product not available.");
|
|
16525
16508
|
return S;
|
|
16526
|
-
}, p = ge(a.workflowId, a == null ? void 0 : a.graphql), [I, D] = await Promise.all([
|
|
16509
|
+
}, p = ge(a.workflowId, a == null ? void 0 : a.graphql), [I, D] = await Promise.all([Q(), p]), y = await this.getStepTags(D);
|
|
16527
16510
|
return { transaction: I, workflow: D, stepTags: y };
|
|
16528
16511
|
}
|
|
16529
16512
|
throw new b("No workflow ID provided.");
|
|
@@ -16582,11 +16565,11 @@ class Wo {
|
|
|
16582
16565
|
async getWorkflowExperiences(t, e) {
|
|
16583
16566
|
if (t.length === 0)
|
|
16584
16567
|
throw new b("No options provided!");
|
|
16585
|
-
const A = P.getShadowGraphqlClient(), a = async (
|
|
16568
|
+
const A = P.getShadowGraphqlClient(), a = async (Q) => {
|
|
16586
16569
|
var y, x, N;
|
|
16587
|
-
if (
|
|
16570
|
+
if (Q.length === 0)
|
|
16588
16571
|
return [];
|
|
16589
|
-
const p =
|
|
16572
|
+
const p = Q.map((S) => S.option.transactionId), I = await A.query({
|
|
16590
16573
|
query: ae,
|
|
16591
16574
|
variables: {
|
|
16592
16575
|
ids: p
|
|
@@ -16594,7 +16577,7 @@ class Wo {
|
|
|
16594
16577
|
errorPolicy: "all",
|
|
16595
16578
|
fetchPolicy: "no-cache"
|
|
16596
16579
|
}), D = I.data.transactions;
|
|
16597
|
-
if (D.length !==
|
|
16580
|
+
if (D.length !== Q.length) {
|
|
16598
16581
|
const S = ((x = (y = I.errors) == null ? void 0 : y[0]) == null ? void 0 : x.message) || "Unknown error";
|
|
16599
16582
|
throw new b(`Not all transactions were found: ${S}`);
|
|
16600
16583
|
}
|
|
@@ -16603,18 +16586,18 @@ class Wo {
|
|
|
16603
16586
|
return {
|
|
16604
16587
|
transaction: S,
|
|
16605
16588
|
workflowId: S.workflowId,
|
|
16606
|
-
readOnly: ((U =
|
|
16607
|
-
index:
|
|
16589
|
+
readOnly: ((U = Q.find((At) => At.option.transactionId === S.id)) == null ? void 0 : U.option.readOnly) ?? !1,
|
|
16590
|
+
index: Q[z].index
|
|
16608
16591
|
};
|
|
16609
16592
|
});
|
|
16610
|
-
}, i = async (
|
|
16593
|
+
}, i = async (Q) => {
|
|
16611
16594
|
var D, y, x;
|
|
16612
|
-
if (
|
|
16595
|
+
if (Q.length === 0)
|
|
16613
16596
|
return [];
|
|
16614
16597
|
const p = await A.mutate({
|
|
16615
|
-
mutation:
|
|
16598
|
+
mutation: Xn,
|
|
16616
16599
|
variables: {
|
|
16617
|
-
inputs:
|
|
16600
|
+
inputs: Q.map((N) => ({
|
|
16618
16601
|
integrationProductId: N.option.type === "integration" ? N.option.integrationProductId : void 0,
|
|
16619
16602
|
externalIntegrationId: N.option.type === "external" ? N.option.externalIntegrationId : void 0,
|
|
16620
16603
|
externalProductId: N.option.type === "external" ? N.option.externalProductId : void 0,
|
|
@@ -16636,16 +16619,16 @@ class Wo {
|
|
|
16636
16619
|
transaction: N,
|
|
16637
16620
|
workflowId: N.workflowId,
|
|
16638
16621
|
readOnly: !1,
|
|
16639
|
-
index:
|
|
16622
|
+
index: Q[S].index
|
|
16640
16623
|
}));
|
|
16641
|
-
}, s = t.map((
|
|
16642
|
-
(
|
|
16624
|
+
}, s = t.map((Q, p) => ({ option: Q, index: p })), o = s.filter((Q) => Q.option.type === "transaction"), r = s.filter(
|
|
16625
|
+
(Q) => Q.option.type === "integration" || Q.option.type === "external"
|
|
16643
16626
|
), c = yA(o, 10), l = yA(r, 10), g = (await Promise.all([
|
|
16644
16627
|
...c.map(a),
|
|
16645
16628
|
...l.map(i)
|
|
16646
|
-
])).flat(), d = [...new Set(g.map((
|
|
16629
|
+
])).flat(), d = [...new Set(g.map((Q) => Q.workflowId))], B = await Xa(d, e), h = new Map(B.map((Q) => [Q.id, Q])), C = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = g.map(async (Q) => {
|
|
16647
16630
|
var At;
|
|
16648
|
-
const { transaction: p, workflowId: I, readOnly: D, index: y } =
|
|
16631
|
+
const { transaction: p, workflowId: I, readOnly: D, index: y } = Q, x = h.get(I), N = await this.getStepTags(x), S = t[y];
|
|
16649
16632
|
!C.get(p.id) && p.transactionOwnerId && C.set(p.id, p.transactionOwnerId);
|
|
16650
16633
|
const z = C.get(p.id) || void 0, U = {
|
|
16651
16634
|
product: p.product,
|
|
@@ -16676,11 +16659,11 @@ class Wo {
|
|
|
16676
16659
|
), U.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = U, { experienceOptions: U, index: y, options: S };
|
|
16677
16660
|
}), u = await Promise.all(w);
|
|
16678
16661
|
Y.setMap("transactionOwnerIds", C);
|
|
16679
|
-
const m = u.sort((
|
|
16680
|
-
const { experienceOptions: p, options: I } =
|
|
16662
|
+
const m = u.sort((Q, p) => Q.index - p.index).map(async (Q) => {
|
|
16663
|
+
const { experienceOptions: p, options: I } = Q, D = new re(this, p);
|
|
16681
16664
|
return await D.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await D.attachCustomerDetails({ email: this.customer.emailAddress }), D;
|
|
16682
|
-
}),
|
|
16683
|
-
return
|
|
16665
|
+
}), f = await Promise.all(m);
|
|
16666
|
+
return f.forEach((Q) => Q.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), f;
|
|
16684
16667
|
}
|
|
16685
16668
|
/**
|
|
16686
16669
|
* Initialize the client from an integration product.
|
|
@@ -16779,7 +16762,7 @@ class Wo {
|
|
|
16779
16762
|
}
|
|
16780
16763
|
try {
|
|
16781
16764
|
const d = (c = (await A.mutate({
|
|
16782
|
-
mutation:
|
|
16765
|
+
mutation: qn,
|
|
16783
16766
|
variables: { id: t },
|
|
16784
16767
|
errorPolicy: "all"
|
|
16785
16768
|
})).data) == null ? void 0 : c.transactionClaim;
|
|
@@ -16823,7 +16806,7 @@ class Wo {
|
|
|
16823
16806
|
}
|
|
16824
16807
|
if (t) {
|
|
16825
16808
|
const c = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.experienceOptions.transaction.id), l = P.getShadowGraphqlClient().mutate({
|
|
16826
|
-
mutation:
|
|
16809
|
+
mutation: $n,
|
|
16827
16810
|
variables: {
|
|
16828
16811
|
workflowId: t,
|
|
16829
16812
|
id: this.experienceOptions.transaction.id
|
|
@@ -16882,7 +16865,7 @@ class Wo {
|
|
|
16882
16865
|
async getIntegrationProductById(t) {
|
|
16883
16866
|
var i, s;
|
|
16884
16867
|
const a = (i = (await P.getShadowGraphqlClient().query({
|
|
16885
|
-
query:
|
|
16868
|
+
query: ei,
|
|
16886
16869
|
variables: {
|
|
16887
16870
|
ids: [t]
|
|
16888
16871
|
},
|
|
@@ -16896,7 +16879,7 @@ class Wo {
|
|
|
16896
16879
|
async getIntegrationProductFromExternalIds(t, e) {
|
|
16897
16880
|
var s;
|
|
16898
16881
|
const i = (s = (await P.getShadowGraphqlClient().query({
|
|
16899
|
-
query:
|
|
16882
|
+
query: Ai,
|
|
16900
16883
|
variables: {
|
|
16901
16884
|
externalProductId: e,
|
|
16902
16885
|
externalIntegrationId: t
|
|
@@ -16913,7 +16896,7 @@ class Wo {
|
|
|
16913
16896
|
}
|
|
16914
16897
|
async getShareActionsForTransaction(t) {
|
|
16915
16898
|
const A = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(t) || void 0, a = await P.getShadowGraphqlClient().query({
|
|
16916
|
-
query:
|
|
16899
|
+
query: ti,
|
|
16917
16900
|
errorPolicy: "all",
|
|
16918
16901
|
fetchPolicy: "no-cache",
|
|
16919
16902
|
variables: {
|
|
@@ -16928,7 +16911,7 @@ class Wo {
|
|
|
16928
16911
|
return a.data.transactions[0].transactionShareActions;
|
|
16929
16912
|
}
|
|
16930
16913
|
}
|
|
16931
|
-
class
|
|
16914
|
+
class Kr {
|
|
16932
16915
|
getClient() {
|
|
16933
16916
|
return this.client ?? {};
|
|
16934
16917
|
}
|
|
@@ -17256,22 +17239,22 @@ class qo extends at {
|
|
|
17256
17239
|
}
|
|
17257
17240
|
export {
|
|
17258
17241
|
rA as AddonHandle,
|
|
17259
|
-
|
|
17242
|
+
jr as ArrayInput,
|
|
17260
17243
|
st as AspectType,
|
|
17261
17244
|
mt as AssetNotFoundError,
|
|
17262
17245
|
Ce as AssetType,
|
|
17263
|
-
|
|
17264
|
-
|
|
17265
|
-
|
|
17246
|
+
Gr as BringForwardCommand,
|
|
17247
|
+
Ur as BringToBackCommand,
|
|
17248
|
+
br as BringToFrontCommand,
|
|
17266
17249
|
T as CanvasCommand,
|
|
17267
17250
|
ze as CollectionProduct,
|
|
17268
17251
|
zA as ColorOptionGlobalPropertyHandle,
|
|
17269
17252
|
vi as CommandContext,
|
|
17270
|
-
|
|
17271
|
-
|
|
17253
|
+
Bn as ConversionDataType,
|
|
17254
|
+
dn as ConversionLocation,
|
|
17272
17255
|
V as CreateElementCommand,
|
|
17273
17256
|
Sa as CreateLayoutCommand,
|
|
17274
|
-
|
|
17257
|
+
ft as DeleteElementCommand,
|
|
17275
17258
|
Is as DigitalContentStepHandle,
|
|
17276
17259
|
wo as FileUploadGlobalPropertyHandle,
|
|
17277
17260
|
le as FlowExecutionNodeResult,
|
|
@@ -17290,114 +17273,114 @@ export {
|
|
|
17290
17273
|
Pe as InformationMessageType,
|
|
17291
17274
|
ps as InformationStepHandle,
|
|
17292
17275
|
jA as IntegrationProduct,
|
|
17293
|
-
|
|
17294
|
-
|
|
17276
|
+
ln as IntegrationType,
|
|
17277
|
+
Tr as LayoutElementFactory,
|
|
17295
17278
|
R as LayoutElementType,
|
|
17296
17279
|
X as LayoutNotFoundError,
|
|
17297
17280
|
Ot as LayoutRenderingPurpose,
|
|
17298
17281
|
ws as MaterialStepHandle,
|
|
17299
17282
|
Ee as MisconfigurationError,
|
|
17300
|
-
|
|
17283
|
+
Kr as MockWorkflowManager,
|
|
17301
17284
|
us as ModelStepHandle,
|
|
17302
17285
|
Ds as ModuleStepHandle,
|
|
17303
|
-
|
|
17286
|
+
Nr as MoveCommand,
|
|
17304
17287
|
Wa as ObjectInput,
|
|
17305
17288
|
xo as ObjectInputType,
|
|
17306
17289
|
Va as OptionGlobalPropertyHandle,
|
|
17307
17290
|
ue as OptionNotFoundError,
|
|
17308
17291
|
bt as ParseError,
|
|
17309
17292
|
Es as PictureStepHandle,
|
|
17310
|
-
|
|
17293
|
+
gn as ProductCameraRig,
|
|
17311
17294
|
Io as ProductCollection,
|
|
17312
17295
|
Tt as ProductWorkflow,
|
|
17313
17296
|
zt as PromiseCache,
|
|
17314
17297
|
Ba as PromiseQueue,
|
|
17315
17298
|
ms as QuestionStepHandle,
|
|
17316
17299
|
da as QueueablePromise,
|
|
17317
|
-
|
|
17300
|
+
kr as ResizeCommand,
|
|
17318
17301
|
Lt as ResourceNotFoundError,
|
|
17319
|
-
|
|
17302
|
+
Rr as RotateCommand,
|
|
17320
17303
|
W as ScaleAxis,
|
|
17321
|
-
|
|
17322
|
-
|
|
17304
|
+
Jr as SendBackwardsCommand,
|
|
17305
|
+
Qs as ShapeStepHandle,
|
|
17323
17306
|
Wo as SpiffCommerceClient,
|
|
17324
17307
|
we as StakeholderType,
|
|
17325
|
-
|
|
17308
|
+
rn as StepAspectType,
|
|
17326
17309
|
at as StepHandle,
|
|
17327
17310
|
M as StepType,
|
|
17328
17311
|
Yt as TextAlgorithm,
|
|
17329
17312
|
Ui as TextChangeCommand,
|
|
17330
17313
|
uo as TextGlobalPropertyHandle,
|
|
17331
|
-
|
|
17332
|
-
|
|
17333
|
-
|
|
17314
|
+
zr as TextInput,
|
|
17315
|
+
fs as TextStepHandle,
|
|
17316
|
+
cn as TransactionShareActionType,
|
|
17334
17317
|
Fo as Transform,
|
|
17335
17318
|
Do as TransformCollection,
|
|
17336
17319
|
O as UnhandledBehaviorError,
|
|
17337
|
-
|
|
17338
|
-
|
|
17320
|
+
hn as UnitOfMeasurement,
|
|
17321
|
+
Hr as UpdateImageSourceCommand,
|
|
17339
17322
|
it as Variant,
|
|
17340
17323
|
Rs as WorkflowExperienceEventType,
|
|
17341
17324
|
re as WorkflowExperienceImpl,
|
|
17342
17325
|
J as assetService,
|
|
17343
17326
|
di as browserColorToHex,
|
|
17344
|
-
|
|
17327
|
+
vr as cmPerPixel,
|
|
17345
17328
|
Ys as createDesign,
|
|
17346
|
-
|
|
17347
|
-
|
|
17329
|
+
xr as currentDirection,
|
|
17330
|
+
ur as dataUrlFromExternalUrl,
|
|
17348
17331
|
Le as designService,
|
|
17349
17332
|
he as determineCorrectFontSizeAndLines,
|
|
17350
17333
|
Pa as digitalContentStepService,
|
|
17351
17334
|
tt as fetchAsString,
|
|
17352
|
-
|
|
17335
|
+
pr as findAngle,
|
|
17353
17336
|
L as findElement,
|
|
17354
|
-
|
|
17337
|
+
Qr as findPmsColors,
|
|
17355
17338
|
Ut as frameDataCache,
|
|
17356
17339
|
wt as frameStepService,
|
|
17357
17340
|
k as generate,
|
|
17358
17341
|
js as generateCommands,
|
|
17359
17342
|
gt as generateSVGWithUnknownColors,
|
|
17360
|
-
|
|
17343
|
+
Lr as generateStateFromDesignInputSteps,
|
|
17361
17344
|
xe as getAttributesFromArrayBuffer,
|
|
17362
17345
|
fr as getAxisAlignedBoundingBox,
|
|
17363
17346
|
Ji as getBoundedOffsets,
|
|
17364
|
-
|
|
17347
|
+
Yr as getElementVertices,
|
|
17365
17348
|
Ye as getFrameData,
|
|
17366
|
-
|
|
17367
|
-
|
|
17368
|
-
|
|
17369
|
-
|
|
17349
|
+
Mr as getNEPoint,
|
|
17350
|
+
yr as getNWPoint,
|
|
17351
|
+
Fr as getPointOfRotation,
|
|
17352
|
+
Sr as getSEPoint,
|
|
17370
17353
|
uA as getSvgElement,
|
|
17371
|
-
|
|
17354
|
+
Dr as getTrueCoordinates,
|
|
17372
17355
|
ge as getWorkflow,
|
|
17373
17356
|
Xa as getWorkflows,
|
|
17374
17357
|
P as graphQlManager,
|
|
17375
17358
|
Be as illustrationStepService,
|
|
17376
|
-
|
|
17359
|
+
Ir as isCloseToValue,
|
|
17377
17360
|
_t as loadFont,
|
|
17378
|
-
|
|
17361
|
+
mr as matchHexToPms,
|
|
17379
17362
|
va as materialStepService,
|
|
17380
|
-
|
|
17363
|
+
Pr as mmPerPixel,
|
|
17381
17364
|
Na as modelStepService,
|
|
17382
17365
|
Ra as moduleStepService,
|
|
17383
17366
|
_ as optionService,
|
|
17384
17367
|
ut as patternImageDataCache,
|
|
17385
17368
|
Y as persistenceService,
|
|
17386
17369
|
ka as pictureStepService,
|
|
17387
|
-
|
|
17370
|
+
Er as pmsToRgb,
|
|
17388
17371
|
Ha as questionStepService,
|
|
17389
|
-
|
|
17390
|
-
|
|
17372
|
+
wr as registerFetchImplementation,
|
|
17373
|
+
Cr as registerWindowImplementation,
|
|
17391
17374
|
Dt as rehydrateSerializedLayout,
|
|
17392
17375
|
ci as rgbToPms,
|
|
17393
17376
|
ie as rotateAroundPoint,
|
|
17394
17377
|
BA as sanitizeSvgTree,
|
|
17395
|
-
|
|
17378
|
+
yn as setBearerAuthenticationToken,
|
|
17396
17379
|
aa as setCanvasModule,
|
|
17397
17380
|
Gt as shapeStepService,
|
|
17398
17381
|
Oi as shortenUrl,
|
|
17399
17382
|
nt as spiffCoreConfiguration,
|
|
17400
|
-
|
|
17383
|
+
Or as stepAspectValuesToDesignInputSteps,
|
|
17401
17384
|
HA as svgColorValueToDefinition,
|
|
17402
17385
|
wa as svgStringDimensions,
|
|
17403
17386
|
_A as svgToDataUrl,
|