@sprig-technologies/sprig-browser 2.33.3 → 2.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{core-DLrmR9wp.js → core-DE6rbUl1.js} +420 -408
- package/dist/core-i4jnjCfb.cjs +12 -0
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +20 -0
- package/dist/core.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +20 -0
- package/dist/index.js +2 -2
- package/dist/{metricsReporter-qetrFwEv.js → metricsReporter-CEzz54S2.js} +2 -2
- package/dist/{metricsReporter-DNdFkQ0C.cjs → metricsReporter-Cc-ZSIZD.cjs} +1 -1
- package/dist/replay.cjs +1 -1
- package/dist/replay.js +342 -338
- package/dist/{view-Bd-x6oh5.cjs → view-Bze4Vd-1.cjs} +2 -2
- package/dist/{view-Bml35A_s.js → view-C3KUMRoa.js} +3 -3
- package/package.json +1 -1
- package/dist/core-nhbrlHf1.cjs +0 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var It = Object.defineProperty;
|
|
2
|
-
var kt = (
|
|
3
|
-
var W = (
|
|
4
|
-
import { l as
|
|
2
|
+
var kt = (r, t, n) => t in r ? It(r, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[t] = n;
|
|
3
|
+
var W = (r, t, n) => kt(r, typeof t != "symbol" ? t + "" : t, n);
|
|
4
|
+
import { l as x, g as P, s as et, e as y, S as w, v as tt, m as L, b as q, h as rt, E as re, D as M, c as Et, r as $, i as _t, j as Rt, k as xt, n as He, o as Ve, d as Dt, a as At, p as it, q as nt } from "./metricsReporter-CEzz54S2.js";
|
|
5
5
|
const nr = 360, or = "ul-app", sr = "#e6e6e6", ar = "#bd282a", dr = 1030, We = () => {
|
|
6
6
|
try {
|
|
7
7
|
return window.parent.Intercom;
|
|
@@ -9,149 +9,149 @@ const nr = 360, or = "ul-app", sr = "#e6e6e6", ar = "#bd282a", dr = 1030, We = (
|
|
|
9
9
|
return null;
|
|
10
10
|
}
|
|
11
11
|
}, Be = [Object.freeze(Object.defineProperty({ __proto__: null, disable: () => {
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const r = We();
|
|
13
|
+
r && (r.ul_wasVisible = !!document.querySelector("iframe.intercom-launcher-frame"), r.ul_wasVisible && r("update", { hide_default_launcher: !0 }));
|
|
14
14
|
}, enable: () => {
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const r = We();
|
|
16
|
+
r && (r.ul_wasVisible && r("update", { hide_default_launcher: !1 }), delete r.ul_wasVisible);
|
|
17
17
|
} }, Symbol.toStringTag, { value: "Module" }))];
|
|
18
18
|
class Ot {
|
|
19
19
|
static disable() {
|
|
20
|
-
Be.forEach((
|
|
20
|
+
Be.forEach((t) => t.disable());
|
|
21
21
|
}
|
|
22
22
|
static enable() {
|
|
23
|
-
Be.forEach((
|
|
23
|
+
Be.forEach((t) => t.enable());
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
const Ne = "ul-view-sdk-script", Ct = ["ios", "android"], F = "visitors", z = "environments";
|
|
27
|
-
async function O(
|
|
27
|
+
async function O(r, t) {
|
|
28
28
|
var i, o, a;
|
|
29
|
-
const { shouldDropOnRateLimit: n, ...s } =
|
|
29
|
+
const { shouldDropOnRateLimit: n, ...s } = t;
|
|
30
30
|
s.headers = Object.assign(P(window.UserLeap), s.headers);
|
|
31
|
-
const
|
|
32
|
-
if (
|
|
33
|
-
const l = (i =
|
|
31
|
+
const e = await et(r, { ...s, shouldDropOnRateLimit: n });
|
|
32
|
+
if (e.ok) {
|
|
33
|
+
const l = (i = e.headers) == null ? void 0 : i.get("Authorization"), p = l ? l.split(" ") : void 0, d = p && p.length === 2 ? p[1] : void 0, c = (o = e.headers) == null ? void 0 : o.get("x-ul-visitor-id");
|
|
34
34
|
if (window.UserLeap.userId && c === window.UserLeap.visitorId) {
|
|
35
|
-
const g =
|
|
36
|
-
g && g[window.UserLeap.envId] === c && (delete g[window.UserLeap.envId],
|
|
35
|
+
const g = x.getItemObject("sprig.anon.env.vid.map");
|
|
36
|
+
g && g[window.UserLeap.envId] === c && (delete g[window.UserLeap.envId], x.setItemObject("sprig.anon.env.vid.map", g));
|
|
37
37
|
}
|
|
38
|
-
d && c && (c !== window.UserLeap.visitorId || window.UserLeap.token !== d) && (
|
|
38
|
+
d && c && (c !== window.UserLeap.visitorId || window.UserLeap.token !== d) && (R("token", d), R("vid", c), y.emit(w.VisitorIDUpdated, { visitorId: c }), window.UserLeap.token = d, window.UserLeap.visitorId = c);
|
|
39
39
|
}
|
|
40
|
-
return (a =
|
|
40
|
+
return (a = e.json) != null && a.logMessage && console.warn(`[Sprig] ${e.json.logMessage}`), e;
|
|
41
41
|
}
|
|
42
|
-
function
|
|
43
|
-
const n =
|
|
42
|
+
function R(r, t) {
|
|
43
|
+
const n = x.getItemObject("userleap.ids");
|
|
44
44
|
let s = n[window.UserLeap.envId];
|
|
45
|
-
s ? s[
|
|
45
|
+
s ? s[r] = t : s = { [r]: t }, n[window.UserLeap.envId] = s, x.setItemObject("userleap.ids", n);
|
|
46
46
|
}
|
|
47
|
-
function
|
|
47
|
+
function xe() {
|
|
48
48
|
return window.previewMode ? "0" : window.UserLeap.visitorId ?? "";
|
|
49
49
|
}
|
|
50
|
-
function A(
|
|
51
|
-
const s = [window.UserLeap._API_URL, "sdk",
|
|
52
|
-
return
|
|
53
|
-
s.push(
|
|
50
|
+
function A(r, t, n) {
|
|
51
|
+
const s = [window.UserLeap._API_URL, "sdk", r];
|
|
52
|
+
return t && t.forEach((e) => {
|
|
53
|
+
s.push(e), e === z ? s.push(window.UserLeap.envId) : e === F && s.push(xe());
|
|
54
54
|
}), n && s.push(n), s.join("/");
|
|
55
55
|
}
|
|
56
|
-
const X = async (
|
|
56
|
+
const X = async (r, t, n) => {
|
|
57
57
|
var Me, qe, Fe;
|
|
58
|
-
const { context: s, delay:
|
|
58
|
+
const { context: s, delay: e, forceBrandedLogo: i, endCard: o, isFeedback: a = !1, heatmap: l, locale: p, previewMode: d, productConfig: c, questions: g, responseGroupUid: f, surveyId: u, uuid: E, vid: _, sessionReplay: m, studyType: S } = r, b = P(window.UserLeap), I = ie(b), T = ge(b);
|
|
59
59
|
if (m) if (I) y.emit(w.ReplayCapture, { responseGroupUid: f, hasQuestions: !!(g != null && g.length), surveyId: u, uploadId: m.uploadId, replayType: m.replayDurationType ?? "before", seconds: m.replayDurationSeconds, generateVideoUploadUrlPayload: { mediaRecordingUid: tt(), mediaType: "screen", questionId: 1, responseGroupUid: f, surveyId: u, updatedAt: (/* @__PURE__ */ new Date()).toISOString(), visitorId: window.UserLeap.visitorId, isReplay: !0 } });
|
|
60
60
|
else {
|
|
61
|
-
if (!
|
|
62
|
-
|
|
61
|
+
if (!L.replay) return window.UserLeap.reportError("displayQuestions", new Error("Replay module not registered")), { success: !1, message: "Replay module not registered", surveyState: "no survey" };
|
|
62
|
+
L.replay.scheduleOrCaptureReplay({ responseGroupId: f, surveyId: u, visitorId: _, replayParams: m, completeUploadHeaders: b, apiUrl: window.UserLeap._API_URL, triggerTimestamp: Date.now(), isStandalone: g.length === 0 });
|
|
63
63
|
}
|
|
64
64
|
if (l) {
|
|
65
|
-
if (!
|
|
66
|
-
const { eventId:
|
|
67
|
-
await
|
|
65
|
+
if (!L.replay) return window.UserLeap.reportError("displayQuestions", new Error("Replay module not registered")), { success: !1, message: "Replay module not registered", surveyState: "no survey" };
|
|
66
|
+
const { eventId: U, replayParams: J, responseGroupUid: fe, surveyId: ve } = l;
|
|
67
|
+
await L.replay.initializeReplay({ maxReplayDurationSeconds: 300, maxInflightRequests: window.UserLeap.maxInflightReplayRequests, teardownAfter: !0, apiUrl: window.UserLeap._API_URL, replaySettings: n }), L.replay.tryReplayAction(() => {
|
|
68
68
|
var ze;
|
|
69
|
-
return (ze =
|
|
69
|
+
return (ze = L.replay) == null ? void 0 : ze.scheduleCapture({ apiUrl: window.UserLeap._API_URL, completeUploadHeaders: b, eventId: U, isHeatmap: !0, replayParams: J, responseGroupId: fe, surveyId: ve, triggerTimestamp: Date.now(), visitorId: _ });
|
|
70
70
|
}, "Error in scheduling/capturing replay");
|
|
71
71
|
}
|
|
72
72
|
if (_ == null || !(g != null && g.length)) return q.info("CannotDisplaySurvey", { vid: _ }), { success: !1, message: "[Sprig] no survey found", surveyState: "no survey" };
|
|
73
73
|
if (window.UserLeap.container) {
|
|
74
74
|
q.info("AlreadyDisplayingSurvey");
|
|
75
|
-
const
|
|
76
|
-
return console.warn(
|
|
75
|
+
const U = "[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";
|
|
76
|
+
return console.warn(U), { success: !1, message: U, surveyState: "no survey" };
|
|
77
77
|
}
|
|
78
78
|
if (_ !== window.UserLeap.visitorId && E !== window.UserLeap.visitorId && !window.previewMode) {
|
|
79
|
-
const
|
|
80
|
-
return window.UserLeap.reportError("DisplaySurvey", new Error(
|
|
79
|
+
const U = "Attempted to display survey to a different visitor";
|
|
80
|
+
return window.UserLeap.reportError("DisplaySurvey", new Error(U)), { success: !1, message: U, surveyState: "no survey" };
|
|
81
81
|
}
|
|
82
|
-
q.info("ShowingSurvey", { surveyId: u }), (Me =
|
|
82
|
+
q.info("ShowingSurvey", { surveyId: u }), (Me = L.replay) == null || Me.RecordSurveyShown({ id: u, userAgent: window.navigator.userAgent }), Ot.disable(), y.emit(w.SurveyWillPresent, { name: w.SurveyWillPresent, "survey.id": u });
|
|
83
83
|
let v, D, k, H, V = document.createElement("div");
|
|
84
|
-
const Ce = (
|
|
85
|
-
const { "view.version": J } =
|
|
84
|
+
const Ce = (U) => {
|
|
85
|
+
const { "view.version": J } = U;
|
|
86
86
|
J !== b["x-ul-sdk-version"] && st(), y.removeListener("verify.view.version", Ce);
|
|
87
87
|
};
|
|
88
88
|
y.on("verify.view.version", Ce), window.UserLeap.useMobileStyling = T, rt(b) ? (v = "ul-direct-embeded-frame", D = document.head, k = window, H = !1, (() => {
|
|
89
|
-
const
|
|
89
|
+
const U = P(window.UserLeap), J = ie(U), fe = window.UserLeap.forceDirectEmbed, ve = U["userleap-platform"] === "web";
|
|
90
90
|
return J || fe && ve;
|
|
91
91
|
})() && (ot(u, a), V.id = v, window.UserLeap.container.appendChild(V), at(), y.emit(w.SurveyLifeCycle, { state: "presented" }), y.emit(w.SurveyPresented, { name: w.SurveyPresented, "survey.id": u }))) : { frameId: v, contentWinDocHead: D, contentWindow: k, hasOverlay: H, iframe: V } = Tt({ productConfig: c, useMobileStyling: T, surveyId: u, isFeedback: a }), window.UserLeap.frameId = v;
|
|
92
|
-
const G = { apiURL: window.UserLeap._API_URL, cards: g, configureExitOnOverlayClick: (
|
|
93
|
-
y.once(w.CloseSurveyOnOverlayClick,
|
|
94
|
-
}, context: s, endCard: o, envId: window.UserLeap.envId, eventEmitFn: y.emit.bind(y), fontFamily: window.UserLeap.fontFamily, fontFamilyURL: window.UserLeap.fontFamilyURL, forceBrandedLogo: i, frame: V, headers: b, locale: p, mobileSDKVersion: window.UserLeap.mobileSDKVersion, previewKey:
|
|
92
|
+
const G = { apiURL: window.UserLeap._API_URL, cards: g, configureExitOnOverlayClick: (U) => {
|
|
93
|
+
y.once(w.CloseSurveyOnOverlayClick, U);
|
|
94
|
+
}, context: s, endCard: o, envId: window.UserLeap.envId, eventEmitFn: y.emit.bind(y), fontFamily: window.UserLeap.fontFamily, fontFamilyURL: window.UserLeap.fontFamilyURL, forceBrandedLogo: i, frame: V, headers: b, locale: p, mobileSDKVersion: window.UserLeap.mobileSDKVersion, previewKey: x.getItem("sprig.previewKey"), previewMode: d, productConfig: { framePosition: c == null ? void 0 : c.framePosition, desktopDisplay: c == null ? void 0 : c.desktopDisplay, placement: c == null ? void 0 : c.placement }, responseGroupUid: f, startingQuestionIdx: (qe = window.UserLeap.config) == null ? void 0 : qe.startingQuestionIdx, studyType: S, styleNonce: window.UserLeap.styleNonce, surveyId: u, tabTitle: document.title, trackPageViewUrl: t, ulEvents: re, upchunkLibraryURL: window.UserLeap.upchunkLibraryURL, useMobileStyling: T, userId: E, viewDocument: k == null ? void 0 : k.document, viewWindow: k, visitorAttributes: { externalUserId: window.UserLeap.userId, email: window.UserLeap.email }, ...window.UserLeap._config };
|
|
95
95
|
(Fe = window.UserLeap._config) != null && Fe.startingQuestionIdx && (window.UserLeap._config = { ...window.UserLeap._config, startingQuestionIdx: null });
|
|
96
96
|
const St = (a ? window.UserLeap.feedbackCustomStyles : window.UserLeap.customStyles) ?? c.customStyles;
|
|
97
97
|
G.customStyles = St, k && (k.__cfg = G);
|
|
98
98
|
const ye = window.UserLeap.viewSDKURL ? window.UserLeap.viewSDKURL : G.path, Pe = document.getElementById(Ne);
|
|
99
99
|
Pe && Pe.remove();
|
|
100
100
|
const me = function() {
|
|
101
|
-
const
|
|
102
|
-
return window.UserLeap.nonce &&
|
|
101
|
+
const U = document.createElement("script");
|
|
102
|
+
return window.UserLeap.nonce && U.setAttribute("nonce", window.UserLeap.nonce), U.id = Ne, U;
|
|
103
103
|
}(), Te = () => {
|
|
104
104
|
window.UserLeap.container && Object.assign(window.UserLeap.container.style, { display: "flex" });
|
|
105
105
|
};
|
|
106
106
|
if (G.installationMethod === "web-npm" || G.installationMethod === "web-npm-bundled") {
|
|
107
|
-
const { default:
|
|
108
|
-
|
|
107
|
+
const { default: U } = await import("./view-C3KUMRoa.js");
|
|
108
|
+
U.configure(G), H && window.UserLeap.container && Te();
|
|
109
109
|
} else ye && (me.src = ye, H && me.addEventListener("load", () => {
|
|
110
110
|
window.UserLeap.container && Te();
|
|
111
|
-
}), k == null || k.addEventListener("error", (
|
|
112
|
-
|
|
111
|
+
}), k == null || k.addEventListener("error", (U) => {
|
|
112
|
+
U.target instanceof HTMLScriptElement && U.target.src === ye && window.UserLeap.reportError("loadFrameScript", new Error("Frame script failed to load"));
|
|
113
113
|
}, { capture: !0, once: !0 }));
|
|
114
114
|
D == null || D.appendChild(me);
|
|
115
115
|
const je = { success: !0, surveyState: "ready", surveyId: u, responseGroupUid: f };
|
|
116
|
-
return window.UserLeap.isMobileSDK &&
|
|
116
|
+
return window.UserLeap.isMobileSDK && e && (je.delay = e), je;
|
|
117
117
|
};
|
|
118
|
-
function ge(
|
|
118
|
+
function ge(r) {
|
|
119
119
|
var n;
|
|
120
120
|
if (window.UserLeap.useMobileStyling !== void 0) return window.UserLeap.useMobileStyling;
|
|
121
|
-
const
|
|
122
|
-
return ie(
|
|
121
|
+
const t = ((n = window.UserLeap.windowDimensions) == null ? void 0 : n.width) ?? document.body.clientWidth;
|
|
122
|
+
return ie(r) || t > 10 && t < 500;
|
|
123
123
|
}
|
|
124
|
-
function ie(
|
|
125
|
-
return Ct.includes(
|
|
124
|
+
function ie(r) {
|
|
125
|
+
return Ct.includes(r["userleap-platform"]);
|
|
126
126
|
}
|
|
127
127
|
const De = "ul-frame";
|
|
128
128
|
window.UserLeap && window.Sprig && (window.Sprig._gtm ? window.Sprig = window.UserLeap : window.UserLeap = window.Sprig), window.UserLeap || (window.UserLeap = window.Sprig), window.Sprig || (window.Sprig = window.UserLeap);
|
|
129
|
-
const he = "0px", ot = (
|
|
130
|
-
window.UserLeap.container = document.createElement("div"), window.UserLeap.container.className = "ul-container" + (
|
|
129
|
+
const he = "0px", ot = (r, t, n) => {
|
|
130
|
+
window.UserLeap.container = document.createElement("div"), window.UserLeap.container.className = "ul-container" + (t ? " ul-container-feedback" : ""), r && (window.UserLeap.container.dataset.studyId = r.toString());
|
|
131
131
|
const s = lt();
|
|
132
132
|
n && s && !window.UserLeap.useMobileStyling ? s.appendChild(window.UserLeap.container) : document.body.appendChild(window.UserLeap.container);
|
|
133
|
-
}, st = (
|
|
133
|
+
}, st = (r, t) => {
|
|
134
134
|
var s;
|
|
135
135
|
Mt();
|
|
136
136
|
const n = window.UserLeap.container;
|
|
137
137
|
if (n) try {
|
|
138
|
-
(s = n.parentNode) == null || s.removeChild(n), window.UserLeap.container = null,
|
|
139
|
-
} catch (
|
|
140
|
-
console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${
|
|
138
|
+
(s = n.parentNode) == null || s.removeChild(n), window.UserLeap.container = null, R("trackStartUrl", null), y.emit(w.SurveyLifeCycle, { state: "dismissed" }), y.emit(w.SurveyClosed, { name: w.SurveyClosed, initiator: r, "survey.id": parseInt(n.dataset.studyId), ...t && { studyType: t } });
|
|
139
|
+
} catch (e) {
|
|
140
|
+
console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${r} ` + n), e instanceof Error && window.UserLeap.reportError("dismissActiveSurvey", e);
|
|
141
141
|
}
|
|
142
142
|
}, at = () => {
|
|
143
|
-
y.once(w.SurveyWillClose, ({ initiator:
|
|
144
|
-
y.removeAllListeners(w.CloseSurveyOnOverlayClick), st(
|
|
143
|
+
y.once(w.SurveyWillClose, ({ initiator: r, studyType: t }) => {
|
|
144
|
+
y.removeAllListeners(w.CloseSurveyOnOverlayClick), st(r, t);
|
|
145
145
|
});
|
|
146
|
-
}, Pt = (
|
|
146
|
+
}, Pt = (r, t, n, s) => {
|
|
147
147
|
var d, c;
|
|
148
|
-
const
|
|
148
|
+
const e = { position: "fixed", bottom: "0px", right: he, border: 0, backgroundColor: "rgba(0,0,0,0)", zIndex: 2147483646, transition: "height 0.2s ease-in-out", maxWidth: "100%" }, i = Object.assign({}, t, window.UserLeap), { desktopDisplay: o } = t || {}, a = o === "center-modal";
|
|
149
149
|
let l;
|
|
150
150
|
a && (i.framePosition = "center");
|
|
151
151
|
let p = !1;
|
|
152
|
-
if (n) (d = window.UserLeap.windowDimensions) != null && d.width ?
|
|
152
|
+
if (n) (d = window.UserLeap.windowDimensions) != null && d.width ? e.width = `${window.UserLeap.windowDimensions.width}px` : e.width = "100%", (c = window.UserLeap.windowDimensions) != null && c.height ? e.maxHeight = window.UserLeap.windowDimensions.height - 20 + "px" : window.UserLeap.maxHeight ? e.maxHeight = window.UserLeap.maxHeight : e.maxHeight = document.body.clientHeight - 20 + "px", ["light", "dark"].includes(i.overlayStyleMobile) && (p = !0);
|
|
153
153
|
else {
|
|
154
|
-
|
|
154
|
+
e.width = "360px", e.maxHeight = window.UserLeap.maxHeight || "66vh";
|
|
155
155
|
const g = () => {
|
|
156
156
|
p = !0, l = { margin: "auto", position: "static" };
|
|
157
157
|
};
|
|
@@ -173,14 +173,14 @@ const he = "0px", ot = (t, e, n) => {
|
|
|
173
173
|
return p && ((g, f) => {
|
|
174
174
|
const u = { position: "fixed", overflow: "auto", top: "0px", left: "0px", display: "none", height: "100%", width: "100%", transition: "background-color 0.3s ease-out", zIndex: 2147483646 }, E = f ? g.overlayStyleMobile : g.overlayStyle;
|
|
175
175
|
u["background-color"] = E === "light" ? "rgba(255,255,255, 0.95)" : "rgba(0,0,0,0.9)", f || (u.margin = "auto"), window.UserLeap.container && Object.assign(window.UserLeap.container.style, u);
|
|
176
|
-
})(i, n), Object.assign(
|
|
177
|
-
}, Tt = ({ productConfig:
|
|
176
|
+
})(i, n), Object.assign(r.style, e, l), p;
|
|
177
|
+
}, Tt = ({ productConfig: r, useMobileStyling: t, surveyId: n, isFeedback: s }) => {
|
|
178
178
|
var g, f;
|
|
179
|
-
const
|
|
179
|
+
const e = De, i = s && r.desktopDisplay === "slider";
|
|
180
180
|
ot(n, s, i), jt();
|
|
181
181
|
const o = document.createElement("iframe");
|
|
182
|
-
o.id =
|
|
183
|
-
const a = Pt(o,
|
|
182
|
+
o.id = e, o.setAttribute("title", "Sprig User Feedback Dialog");
|
|
183
|
+
const a = Pt(o, r, t, s);
|
|
184
184
|
at();
|
|
185
185
|
let l = !1;
|
|
186
186
|
o.setHeight = (u) => {
|
|
@@ -189,120 +189,120 @@ const he = "0px", ot = (t, e, n) => {
|
|
|
189
189
|
let p = !1;
|
|
190
190
|
o.setWidth = (u) => {
|
|
191
191
|
parseInt(o.style.width) == u && p || (p = !0, o.style.width = `${u}px`, y.emit(w.SurveyWidth, { name: w.SurveyWidth, contentFrameWidth: u, "survey.id": n }));
|
|
192
|
-
}, (g = window.UserLeap.container) == null || g.appendChild(o),
|
|
192
|
+
}, (g = window.UserLeap.container) == null || g.appendChild(o), r && (t ? r.exitOnOverlayClickMobile : r.exitOnOverlayClick) && window.UserLeap.container && (window.UserLeap.container.onclick = () => {
|
|
193
193
|
y.emit(w.CloseSurveyOnOverlayClick);
|
|
194
194
|
}), y.emit(w.SurveyLifeCycle, { state: "presented" }), y.emit(w.SurveyPresented, { name: w.SurveyPresented, "survey.id": n });
|
|
195
195
|
const d = (f = o.contentWindow) == null ? void 0 : f.document;
|
|
196
|
-
if (d && (d.open("text/html", "replace"), d.write("<!doctype html><head></head><body></body></html>"), d.close(), !
|
|
196
|
+
if (d && (d.open("text/html", "replace"), d.write("<!doctype html><head></head><body></body></html>"), d.close(), !t)) {
|
|
197
197
|
const u = d.body;
|
|
198
198
|
u.style.display = "flex", u.style.alignItems = "center";
|
|
199
199
|
}
|
|
200
200
|
const c = d == null ? void 0 : d.head;
|
|
201
|
-
return { frameId:
|
|
201
|
+
return { frameId: e, contentWinDocHead: c, contentWindow: o.contentWindow, hasOverlay: a, iframe: o };
|
|
202
202
|
}, dt = { [w.SurveyFadingOut]: () => {
|
|
203
203
|
window.UserLeap.container && Object.assign(window.UserLeap.container.style, { "background-color": "rgba(0,0,0,0)" });
|
|
204
204
|
} }, jt = () => {
|
|
205
|
-
Object.entries(dt).forEach(([
|
|
206
|
-
y.on(
|
|
205
|
+
Object.entries(dt).forEach(([r, t]) => {
|
|
206
|
+
y.on(r, t);
|
|
207
207
|
});
|
|
208
208
|
}, Mt = () => {
|
|
209
|
-
Object.entries(dt).forEach(([
|
|
210
|
-
y.off(
|
|
209
|
+
Object.entries(dt).forEach(([r, t]) => {
|
|
210
|
+
y.off(r, t);
|
|
211
211
|
});
|
|
212
|
-
}, j = (
|
|
213
|
-
const
|
|
214
|
-
if (
|
|
215
|
-
const i =
|
|
216
|
-
s && (i.nonce = s), i.textContent = n, i.id =
|
|
217
|
-
}, qt = (
|
|
218
|
-
const n =
|
|
219
|
-
if (!j(n)) return
|
|
212
|
+
}, j = (r) => !!r && r.nodeType === Node.ELEMENT_NODE, $e = (r) => r instanceof HTMLElement || r instanceof SVGElement, se = ({ document: r, elementId: t, styleString: n, nonce: s }) => {
|
|
213
|
+
const e = r.getElementById(t);
|
|
214
|
+
if (e) return void (e.textContent = n);
|
|
215
|
+
const i = r.createElement("style");
|
|
216
|
+
s && (i.nonce = s), i.textContent = n, i.id = t, r.head.appendChild(i);
|
|
217
|
+
}, qt = (r, t) => {
|
|
218
|
+
const n = t.querySelector(".sprig-question-body");
|
|
219
|
+
if (!j(n)) return r;
|
|
220
220
|
const s = n.scrollHeight;
|
|
221
|
-
return s < 100 ?
|
|
222
|
-
}, Ge = (
|
|
223
|
-
const n =
|
|
221
|
+
return s < 100 ? r : r - (s - 100);
|
|
222
|
+
}, Ge = (r, t) => {
|
|
223
|
+
const n = t.querySelector(r);
|
|
224
224
|
if (!j(n)) return 0;
|
|
225
225
|
const s = getComputedStyle(n);
|
|
226
226
|
return parseFloat(s.paddingLeft) + parseFloat(s.paddingRight) + (parseFloat(s.marginLeft) + parseFloat(s.marginRight)) + (parseFloat(s.borderLeftWidth) + parseFloat(s.borderRightWidth));
|
|
227
|
-
}, Ft = (
|
|
228
|
-
const s =
|
|
227
|
+
}, Ft = (r, t, n) => {
|
|
228
|
+
const s = r.querySelector(".ul-card__container"), e = r.querySelector(".ul-app");
|
|
229
229
|
let i = 600, o = 360, a = 0;
|
|
230
|
-
if (j(s) && j(
|
|
231
|
-
const l = s.querySelector(".ul-card--matrix_grid"), p = !l &&
|
|
230
|
+
if (j(s) && j(e)) {
|
|
231
|
+
const l = s.querySelector(".ul-card--matrix_grid"), p = !l && t && n;
|
|
232
232
|
try {
|
|
233
|
-
p && (
|
|
233
|
+
p && (e.style.width = "360px"), i = s.clientHeight, i += ((g) => {
|
|
234
234
|
const f = g.querySelector(".sprig-question-body"), u = g.querySelector(".ul-card"), E = g.querySelector(".ul-card-main-content"), _ = g.querySelector(".ul-footer"), m = g.querySelector(".sprig-container");
|
|
235
|
-
let
|
|
236
|
-
return j(u) && (
|
|
237
|
-
})(
|
|
235
|
+
let S = 0;
|
|
236
|
+
return j(u) && (S += u.scrollHeight - u.clientHeight), j(E) && (S += E.scrollHeight - E.clientHeight), j(f) && (S += f.scrollHeight - f.clientHeight), j(_) && j(m) && m.clientHeight === 0 && (S += _.clientHeight), S;
|
|
237
|
+
})(r);
|
|
238
238
|
const d = getComputedStyle(s);
|
|
239
239
|
a = i;
|
|
240
240
|
const c = parseFloat(d.marginTop) + parseFloat(d.marginBottom);
|
|
241
|
-
i += c + (parseFloat(d.borderTopWidth) + parseFloat(d.borderBottomWidth)), l && (o = l.scrollWidth, o += Ge(".ul-card__container",
|
|
241
|
+
i += c + (parseFloat(d.borderTopWidth) + parseFloat(d.borderBottomWidth)), l && (o = l.scrollWidth, o += Ge(".ul-card__container", r), o += Ge(".sprig-question-body", r));
|
|
242
242
|
} finally {
|
|
243
|
-
p &&
|
|
243
|
+
p && e.style.removeProperty("width");
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
|
-
return [i + 1, o, qt(a,
|
|
247
|
-
}, lr = (
|
|
248
|
-
const
|
|
249
|
-
|
|
246
|
+
return [i + 1, o, qt(a, r)];
|
|
247
|
+
}, lr = (r) => {
|
|
248
|
+
const t = r.querySelector(".ul-card__container");
|
|
249
|
+
t && (t.scrollTop = 0);
|
|
250
250
|
}, lt = () => h, K = () => document.getElementById("sprig-feedback-container"), Se = () => document.getElementById("sprig-feedback-loading-animation"), ct = () => !!document.getElementById(De);
|
|
251
251
|
let Ke = !1, h = null, C = null, Ae = !1, Z = null, B = null;
|
|
252
252
|
const zt = ["bottom-left", "bottom-right", "center-left", "center-right"], ae = () => {
|
|
253
|
-
var
|
|
254
|
-
const
|
|
255
|
-
return ((
|
|
253
|
+
var t;
|
|
254
|
+
const r = window.UserLeap.container;
|
|
255
|
+
return ((t = r == null ? void 0 : r.parentElement) == null ? void 0 : t.id) === "sprig-feedback-loading-container";
|
|
256
256
|
}, pt = () => document.getElementById("sprig-feedback-error-container"), ut = () => {
|
|
257
257
|
if (!h) return 0;
|
|
258
|
-
const
|
|
259
|
-
return
|
|
260
|
-
}, de = (
|
|
261
|
-
const
|
|
262
|
-
|
|
258
|
+
const r = h == null ? void 0 : h.clientWidth, t = window.getComputedStyle(h);
|
|
259
|
+
return r + parseInt(t.borderRightWidth || "0") + parseInt(t.borderLeftWidth || "0");
|
|
260
|
+
}, de = (r) => {
|
|
261
|
+
const t = K();
|
|
262
|
+
t && (B != null && B.endsWith("right") ? t.style.right = `${r}px` : B != null && B.endsWith("left") && (t.style.left = `${r}px`));
|
|
263
263
|
}, be = () => {
|
|
264
264
|
if (h && (ae() || pt())) {
|
|
265
265
|
y.off(w.SurveyAppeared, Y), Ie();
|
|
266
|
-
const
|
|
267
|
-
return de(-
|
|
266
|
+
const r = ut();
|
|
267
|
+
return de(-r), !0;
|
|
268
268
|
}
|
|
269
269
|
return !1;
|
|
270
270
|
}, Y = () => {
|
|
271
271
|
if (!h || !C) return;
|
|
272
|
-
const
|
|
273
|
-
|
|
272
|
+
const r = Se();
|
|
273
|
+
r && r.remove(), h.style.height = "auto", h.style.width = "auto", C.disabled = !1, Ae = !1;
|
|
274
274
|
}, Ie = () => {
|
|
275
275
|
if (h && !Se()) {
|
|
276
|
-
const
|
|
276
|
+
const r = (() => {
|
|
277
277
|
if (Se()) return;
|
|
278
|
-
const
|
|
279
|
-
return
|
|
278
|
+
const t = document.createElement("div");
|
|
279
|
+
return t.className = "ul-loading-spinner-container", t.id = "sprig-feedback-loading-animation", t.role = "progressbar", t.setAttribute("aria-live", "polite"), t.setAttribute("aria-busy", "true"), t.setAttribute("aria-label", "Processing..."), t.innerHTML = `
|
|
280
280
|
<div class="ul-loading-spinner">
|
|
281
281
|
<div class="first"></div>
|
|
282
282
|
<div class="second"></div>
|
|
283
283
|
<div class="third"></div>
|
|
284
284
|
<div class="fourth"></div>
|
|
285
285
|
</div>
|
|
286
|
-
`,
|
|
286
|
+
`, t;
|
|
287
287
|
})();
|
|
288
|
-
|
|
288
|
+
r && (h.style.height = "300px", h.style.width = "360px", h.appendChild(r));
|
|
289
289
|
}
|
|
290
290
|
}, Je = () => {
|
|
291
291
|
h && C && (de(0), C.disabled = !0, Ae = !0);
|
|
292
|
-
}, wt = async (
|
|
293
|
-
const { buttonTheme: s, customStyles:
|
|
292
|
+
}, wt = async (r, t, n) => {
|
|
293
|
+
const { buttonTheme: s, customStyles: e, eventId: i, placement: o, desktopDisplay: a, feedbackLabel: l, surveyUuid: p, surveyId: d } = r;
|
|
294
294
|
window.UserLeap.feedbackCustomStyles = void 0;
|
|
295
295
|
let c = K();
|
|
296
296
|
if (c) {
|
|
297
|
-
if (!
|
|
297
|
+
if (!t && i === Z) return;
|
|
298
298
|
c.remove(), y.off(re.SURVEY_FADING_OUT, be);
|
|
299
299
|
}
|
|
300
|
-
Z = i, se({ document, elementId: "sprig-feedback-style", styleString: '.ul-loading-spinner-container{font-size:1.8rem;flex-grow:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ul-loading-spinner{display:inline-block;position:relative;width:6rem;height:6rem}.ul-loading-spinner div{box-sizing:border-box;display:block;position:absolute;width:80%;height:80%;margin:5px;border:5px solid #152e3e;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#152e3e transparent transparent transparent}.ul-loading-spinner .first{animation-delay:-.45s}.ul-loading-spinner .second{animation-delay:-.3s}.ul-loading-spinner .third{animation-delay:-.15s}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in-transition{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#sprig-feedback-button{border-left:0;border-radius:0 8px 8px 0;display:grid;padding:8px;text-align:center;transition:all ease-in-out 1s;z-index:inherit}#sprig-feedback-button:hover{cursor:pointer}.sprig-feedback-button-label{writing-mode:vertical-lr;text-orientation:sideways}.sprig-feedback-button-right{transform:rotate(180deg)}.sprig-feedback-button-bottom{align-self:flex-end;margin-bottom:20px}.sprig-feedback-button-light{background:#efefee;color:#000;border:1px solid #e2e3e1}.sprig-feedback-button-dark{background:#000;color:#fff;border:1px solid #000000}#sprig-feedback-container{display:flex;align-items:center;position:fixed;transition:right .2s linear,left .2s linear;z-index:2147483646}.sprig-feedback-container-left{flex-flow:row-reverse}.sprig-feedback-container-center{top:50%;transform:translateY(-50%)}.sprig-feedback-container-bottom{bottom:0%;margin-bottom:15px}.sprig-feedback-loading-container{align-items:center;background-color:#fff;border:2px solid var(--feedback-border);display:flex;max-height:90vh;max-width:90vw;min-width:0px}.sprig-feedback-loading-container-left{border-left:none;border-radius:0 8px 8px 0}.sprig-feedback-loading-container-right{border-right:none;border-radius:8px 0 0 8px}#sprig-feedback-error-container{margin:auto;text-align:center;width:360px}.sprig-feedback-error-text{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}#sprig-feedback-loading-container .ul-container{position:relative;max-height:inherit}#sprig-feedback-loading-animation{position:absolute}.sprig-feedback-loading-container-previews iframe{max-height:inherit!important}', nonce: window.UserLeap.styleNonce }), se({ document, elementId: "ul-custom-style", styleString:
|
|
300
|
+
Z = i, se({ document, elementId: "sprig-feedback-style", styleString: '.ul-loading-spinner-container{font-size:1.8rem;flex-grow:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ul-loading-spinner{display:inline-block;position:relative;width:6rem;height:6rem}.ul-loading-spinner div{box-sizing:border-box;display:block;position:absolute;width:80%;height:80%;margin:5px;border:5px solid #152e3e;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#152e3e transparent transparent transparent}.ul-loading-spinner .first{animation-delay:-.45s}.ul-loading-spinner .second{animation-delay:-.3s}.ul-loading-spinner .third{animation-delay:-.15s}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in-transition{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#sprig-feedback-button{border-left:0;border-radius:0 8px 8px 0;display:grid;padding:8px;text-align:center;transition:all ease-in-out 1s;z-index:inherit}#sprig-feedback-button:hover{cursor:pointer}.sprig-feedback-button-label{writing-mode:vertical-lr;text-orientation:sideways}.sprig-feedback-button-right{transform:rotate(180deg)}.sprig-feedback-button-bottom{align-self:flex-end;margin-bottom:20px}.sprig-feedback-button-light{background:#efefee;color:#000;border:1px solid #e2e3e1}.sprig-feedback-button-dark{background:#000;color:#fff;border:1px solid #000000}#sprig-feedback-container{display:flex;align-items:center;position:fixed;transition:right .2s linear,left .2s linear;z-index:2147483646}.sprig-feedback-container-left{flex-flow:row-reverse}.sprig-feedback-container-center{top:50%;transform:translateY(-50%)}.sprig-feedback-container-bottom{bottom:0%;margin-bottom:15px}.sprig-feedback-loading-container{align-items:center;background-color:#fff;border:2px solid var(--feedback-border);display:flex;max-height:90vh;max-width:90vw;min-width:0px}.sprig-feedback-loading-container-left{border-left:none;border-radius:0 8px 8px 0}.sprig-feedback-loading-container-right{border-right:none;border-radius:8px 0 0 8px}#sprig-feedback-error-container{margin:auto;text-align:center;width:360px}.sprig-feedback-error-text{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}#sprig-feedback-loading-container .ul-container{position:relative;max-height:inherit}#sprig-feedback-loading-animation{position:absolute}.sprig-feedback-loading-container-previews iframe{max-height:inherit!important}', nonce: window.UserLeap.styleNonce }), se({ document, elementId: "ul-custom-style", styleString: e ?? "", nonce: window.UserLeap.styleNonce }), Ke = a === "center-modal", B = o;
|
|
301
301
|
const [g, f] = o.split("-");
|
|
302
302
|
((m) => {
|
|
303
303
|
if (K() || !zt.includes(m)) return;
|
|
304
|
-
const [
|
|
305
|
-
I.id = "sprig-feedback-container", I.classList.add(`sprig-feedback-container-${b}`, `sprig-feedback-container-${
|
|
304
|
+
const [S, b] = m.split("-"), I = document.createElement("div");
|
|
305
|
+
I.id = "sprig-feedback-container", I.classList.add(`sprig-feedback-container-${b}`, `sprig-feedback-container-${S}`), document.body.appendChild(I);
|
|
306
306
|
})(o), c = K(), C = document.createElement("button");
|
|
307
307
|
const u = document.createElement("div");
|
|
308
308
|
u.className = "sprig-feedback-button-label", u.innerText = l, C.appendChild(u), C.id = "sprig-feedback-button", C.classList.add(`sprig-feedback-button-${f}`, `sprig-feedback-button-${g}`, `sprig-feedback-button-${s}`, "fade-in-transition"), y.on(re.SURVEY_FADING_OUT, be), C.addEventListener("click", async () => {
|
|
@@ -315,12 +315,12 @@ const zt = ["bottom-left", "bottom-right", "center-left", "center-right"], ae =
|
|
|
315
315
|
}
|
|
316
316
|
return;
|
|
317
317
|
}
|
|
318
|
-
if (ge(P(window.UserLeap)) || Ae || Je(),
|
|
319
|
-
const
|
|
318
|
+
if (ge(P(window.UserLeap)) || Ae || Je(), t) return h && h.classList.add("sprig-feedback-loading-container-previews"), await X(t), void Y();
|
|
319
|
+
const S = await (async (b) => {
|
|
320
320
|
const I = await O(A("1", [F], "startFeedbackStudy"), { body: JSON.stringify({ surveyUuid: b }), method: "POST" });
|
|
321
321
|
return I.ok ? I.json : null;
|
|
322
322
|
})(p);
|
|
323
|
-
if (
|
|
323
|
+
if (S) y.once(w.SurveyAppeared, Y), X({ ...S, studyType: "feedbackButton" }, n);
|
|
324
324
|
else if (h) {
|
|
325
325
|
const b = Ht();
|
|
326
326
|
h.appendChild(b), Y(), h.style.height = "300px", h.style.width = "360px";
|
|
@@ -331,19 +331,19 @@ const zt = ["bottom-left", "bottom-right", "center-left", "center-right"], ae =
|
|
|
331
331
|
else {
|
|
332
332
|
const m = document.createElement("div");
|
|
333
333
|
m.id = "sprig-feedback-loading-container", m.className = `sprig-feedback-loading-container sprig-feedback-loading-container-${f}`, m.style.setProperty("--feedback-border", _), h = m, Ie(), c == null || c.appendChild(m);
|
|
334
|
-
const
|
|
335
|
-
de(-
|
|
334
|
+
const S = ut();
|
|
335
|
+
de(-S);
|
|
336
336
|
}
|
|
337
|
-
window.UserLeap._config.isOnQuestionsTab &&
|
|
337
|
+
window.UserLeap._config.isOnQuestionsTab && t && !ae() && h && (Je(), Ie(), h && h.classList.add("sprig-feedback-loading-container-previews"), X(t), Y());
|
|
338
338
|
}, Ht = () => {
|
|
339
|
-
const
|
|
340
|
-
|
|
339
|
+
const r = document.createElement("div");
|
|
340
|
+
r.id = "sprig-feedback-error-container", r.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
|
|
341
341
|
<circle cx="20" cy="20" r="14.5" stroke="#B0B5B7" stroke-width="3"/>
|
|
342
342
|
<path d="M20 12L20 21.6" stroke="#B0B5B7" stroke-width="3" stroke-linecap="round"/>
|
|
343
343
|
<circle cx="19.9984" cy="27.6" r="1.6" fill="#B0B5B7"/>
|
|
344
344
|
</svg>`;
|
|
345
|
-
const
|
|
346
|
-
return
|
|
345
|
+
const t = document.createElement("h3");
|
|
346
|
+
return t.className = "sprig-feedback-error-text", t.innerText = "There was an error while loading the survey", r.appendChild(t), r;
|
|
347
347
|
}, ke = new class {
|
|
348
348
|
constructor() {
|
|
349
349
|
W(this, "_ldData", {});
|
|
@@ -351,13 +351,13 @@ const zt = ["bottom-left", "bottom-right", "center-left", "center-right"], ae =
|
|
|
351
351
|
getAllLaunchDarklyVariations() {
|
|
352
352
|
return this._ldData;
|
|
353
353
|
}
|
|
354
|
-
setLDFlagsVariations(
|
|
354
|
+
setLDFlagsVariations(r) {
|
|
355
355
|
try {
|
|
356
|
-
return !(!
|
|
357
|
-
delete this._ldData[
|
|
358
|
-
}), Object.keys(
|
|
359
|
-
} catch (
|
|
360
|
-
return
|
|
356
|
+
return !(!r || typeof r != "object" || Array.isArray(r)) && (Object.keys(this._ldData).forEach((t) => {
|
|
357
|
+
delete this._ldData[t];
|
|
358
|
+
}), Object.keys(r).forEach((t) => this._ldData[`!launch_darkly_${t}`] = (r[t] ?? 0) + 1), !0);
|
|
359
|
+
} catch (t) {
|
|
360
|
+
return t instanceof Error && window.UserLeap.reportError("setAllLDFlagsVariations", t), console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."), !1;
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
363
|
}();
|
|
@@ -366,14 +366,14 @@ const oe = new class {
|
|
|
366
366
|
constructor() {
|
|
367
367
|
W(this, "_optimizelyData", {});
|
|
368
368
|
}
|
|
369
|
-
setOptimizelyExperiment(
|
|
370
|
-
if (!
|
|
371
|
-
const { experiments: n } =
|
|
369
|
+
setOptimizelyExperiment(r, t = !0) {
|
|
370
|
+
if (!r || typeof r != "object") return !1;
|
|
371
|
+
const { experiments: n } = r;
|
|
372
372
|
try {
|
|
373
|
-
return
|
|
373
|
+
return t && Object.keys(this._optimizelyData).map((s) => {
|
|
374
374
|
delete this._optimizelyData[s];
|
|
375
375
|
}), n && n.map((s) => {
|
|
376
|
-
const { id:
|
|
376
|
+
const { id: e, variation: i } = s, o = this.transformExperimentId(e);
|
|
377
377
|
i && typeof i == "string" && (this._optimizelyData[o] = i);
|
|
378
378
|
}), !0;
|
|
379
379
|
} catch (s) {
|
|
@@ -383,43 +383,43 @@ const oe = new class {
|
|
|
383
383
|
getAllOptimizelyExperiments() {
|
|
384
384
|
return this._optimizelyData;
|
|
385
385
|
}
|
|
386
|
-
getOptimizelyVariationName(
|
|
387
|
-
return this._optimizelyData[this.transformExperimentId(
|
|
386
|
+
getOptimizelyVariationName(r) {
|
|
387
|
+
return this._optimizelyData[this.transformExperimentId(r)];
|
|
388
388
|
}
|
|
389
|
-
transformExperimentId(
|
|
390
|
-
return "!optimizely_experiments_" +
|
|
389
|
+
transformExperimentId(r) {
|
|
390
|
+
return "!optimizely_experiments_" + r;
|
|
391
391
|
}
|
|
392
392
|
getAndSetWebOptimizelyExperiments() {
|
|
393
|
-
var
|
|
393
|
+
var r;
|
|
394
394
|
try {
|
|
395
395
|
if (window && window.optimizely && typeof window.optimizely.get == "function") {
|
|
396
|
-
const
|
|
397
|
-
if (
|
|
398
|
-
const n = Object.keys(
|
|
399
|
-
var
|
|
400
|
-
return (
|
|
396
|
+
const t = (r = window.optimizely.get("state")) == null ? void 0 : r.getExperimentStates({ isActive: !0 });
|
|
397
|
+
if (t) {
|
|
398
|
+
const n = Object.keys(t).map((s) => {
|
|
399
|
+
var e, i;
|
|
400
|
+
return (e = t[s].variation) != null && e.name ? { id: s, variation: (i = t[s].variation) == null ? void 0 : i.name } : { id: s, variation: "Original" };
|
|
401
401
|
});
|
|
402
402
|
return this.setOptimizelyExperiment({ experiments: n }, !1), !0;
|
|
403
403
|
}
|
|
404
404
|
return !1;
|
|
405
405
|
}
|
|
406
406
|
return !1;
|
|
407
|
-
} catch (
|
|
408
|
-
return
|
|
407
|
+
} catch (t) {
|
|
408
|
+
return t instanceof Error && window.UserLeap.reportError("getAndSetWebOptimizely", t), !1;
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
411
|
}();
|
|
412
412
|
Object.freeze(oe);
|
|
413
413
|
class Vt {
|
|
414
|
-
constructor(
|
|
414
|
+
constructor(t, n) {
|
|
415
415
|
W(this, "paused");
|
|
416
416
|
W(this, "queue");
|
|
417
417
|
W(this, "ul");
|
|
418
|
-
this.ul =
|
|
418
|
+
this.ul = t, this.paused = !1, this.queue = [], this.flush(n);
|
|
419
419
|
}
|
|
420
|
-
flush(
|
|
421
|
-
const n =
|
|
422
|
-
if (n) for (let s = 0; s < n; s++) this.push(
|
|
420
|
+
flush(t) {
|
|
421
|
+
const n = t.length;
|
|
422
|
+
if (n) for (let s = 0; s < n; s++) this.push(t[s]);
|
|
423
423
|
}
|
|
424
424
|
isPaused() {
|
|
425
425
|
return this.paused;
|
|
@@ -429,110 +429,110 @@ class Vt {
|
|
|
429
429
|
}
|
|
430
430
|
unpause() {
|
|
431
431
|
this.paused = !1;
|
|
432
|
-
const
|
|
433
|
-
this.empty(), this.flush(
|
|
432
|
+
const t = this.queue.slice();
|
|
433
|
+
this.empty(), this.flush(t);
|
|
434
434
|
}
|
|
435
|
-
push(
|
|
436
|
-
if (this.paused) this.queue.push(
|
|
437
|
-
else if (
|
|
435
|
+
push(t) {
|
|
436
|
+
if (this.paused) this.queue.push(t);
|
|
437
|
+
else if (t instanceof Function) t();
|
|
438
438
|
else {
|
|
439
|
-
const n = Array.prototype.slice.call(
|
|
440
|
-
|
|
439
|
+
const n = Array.prototype.slice.call(t, 1), s = t[0], e = this.ul[s];
|
|
440
|
+
e instanceof Function ? e.apply(this.ul, n) : s && console.warn("[Sprig] (ERR-100) No valid UserLeap action called", s);
|
|
441
441
|
}
|
|
442
442
|
}
|
|
443
|
-
perform(
|
|
443
|
+
perform(t) {
|
|
444
444
|
if (this.paused) {
|
|
445
445
|
let n = () => {
|
|
446
446
|
};
|
|
447
|
-
const s = new Promise(function(
|
|
447
|
+
const s = new Promise(function(e) {
|
|
448
448
|
n = function() {
|
|
449
|
-
|
|
449
|
+
e(t());
|
|
450
450
|
};
|
|
451
451
|
});
|
|
452
452
|
return this.queue.push(n), s;
|
|
453
453
|
}
|
|
454
|
-
return
|
|
454
|
+
return t();
|
|
455
455
|
}
|
|
456
456
|
empty() {
|
|
457
457
|
this.queue.length = 0;
|
|
458
458
|
}
|
|
459
459
|
}
|
|
460
460
|
let gt, yt;
|
|
461
|
-
const Ee = (
|
|
462
|
-
let
|
|
463
|
-
for (; n; )
|
|
464
|
-
return
|
|
461
|
+
const Ee = (r) => {
|
|
462
|
+
let t = 0, n = r.firstElementChild;
|
|
463
|
+
for (; n; ) t += Ee(n), n.shadowRoot && (t += Ee(n.shadowRoot)), n = n.nextElementSibling, t++;
|
|
464
|
+
return t;
|
|
465
465
|
}, Qe = () => {
|
|
466
466
|
gt.report(Ee(document.body)), yt.report(document.documentElement.innerHTML.length);
|
|
467
|
-
}, _e = (
|
|
467
|
+
}, _e = (r, t) => {
|
|
468
468
|
const n = performance.now();
|
|
469
|
-
document.hidden ? setTimeout(() => _e(
|
|
469
|
+
document.hidden ? setTimeout(() => _e(r, t), r) : setTimeout(() => {
|
|
470
470
|
const s = performance.now() - n;
|
|
471
|
-
|
|
471
|
+
t.report(s / 1e3), setTimeout(() => _e(r, t), r);
|
|
472
472
|
}, 0);
|
|
473
473
|
};
|
|
474
474
|
let le, ce, pe, ue, Ye, N = {};
|
|
475
|
-
const ne = (
|
|
476
|
-
const { name: n } =
|
|
477
|
-
N[n] = (N[n] || 0) +
|
|
478
|
-
}, mt = (
|
|
479
|
-
let
|
|
480
|
-
return
|
|
481
|
-
|
|
482
|
-
}),
|
|
483
|
-
}, Xe = (
|
|
484
|
-
let
|
|
485
|
-
return
|
|
486
|
-
|
|
487
|
-
}),
|
|
488
|
-
}, Wt = (
|
|
489
|
-
switch (
|
|
475
|
+
const ne = (r, t = 1) => {
|
|
476
|
+
const { name: n } = r;
|
|
477
|
+
N[n] = (N[n] || 0) + t;
|
|
478
|
+
}, mt = (r) => {
|
|
479
|
+
let t = 1;
|
|
480
|
+
return r.childNodes.forEach((n) => {
|
|
481
|
+
t += mt(n);
|
|
482
|
+
}), t;
|
|
483
|
+
}, Xe = (r) => {
|
|
484
|
+
let t = 0;
|
|
485
|
+
return r.forEach((n) => {
|
|
486
|
+
t += mt(n);
|
|
487
|
+
}), t;
|
|
488
|
+
}, Wt = (r) => {
|
|
489
|
+
switch (r.type) {
|
|
490
490
|
case "childList":
|
|
491
|
-
return ne(le, Xe(
|
|
491
|
+
return ne(le, Xe(r.addedNodes)), void ne(ce, Xe(r.removedNodes));
|
|
492
492
|
case "attributes":
|
|
493
493
|
return void ne(pe);
|
|
494
494
|
case "characterData":
|
|
495
495
|
return void ne(ue);
|
|
496
496
|
}
|
|
497
|
-
}, Bt = (
|
|
497
|
+
}, Bt = (r) => r.forEach(Wt), Nt = () => {
|
|
498
498
|
le.report(N[le.name] || 0), ce.report(N[ce.name] || 0), pe.report(N[pe.name] || 0), ue.report(N[ue.name] || 0), N = {};
|
|
499
|
-
}, $t = (
|
|
500
|
-
le = $("sdk_mutations_nodes_added"), ce = $("sdk_mutations_nodes_removed"), pe = $("sdk_mutations_attributes_changed"), ue = $("sdk_mutations_character_data"), Ye = new MutationObserver(Bt), Ye.observe(document, { attributes: !0, attributeOldValue: !0, characterData: !0, characterDataOldValue: !0, childList: !0, subtree: !0 }), setInterval(Nt,
|
|
501
|
-
}, Gt = ({ isWeb:
|
|
502
|
-
_t(n, (
|
|
499
|
+
}, $t = (r = 1e3) => {
|
|
500
|
+
le = $("sdk_mutations_nodes_added"), ce = $("sdk_mutations_nodes_removed"), pe = $("sdk_mutations_attributes_changed"), ue = $("sdk_mutations_character_data"), Ye = new MutationObserver(Bt), Ye.observe(document, { attributes: !0, attributeOldValue: !0, characterData: !0, characterDataOldValue: !0, childList: !0, subtree: !0 }), setInterval(Nt, r);
|
|
501
|
+
}, Gt = ({ isWeb: r, reportingIntervalSeconds: t, thresholds: n, postMetrics: s }) => {
|
|
502
|
+
_t(n, (e, i) => {
|
|
503
503
|
var o, a;
|
|
504
|
-
if ((o =
|
|
505
|
-
const l = `Value: ${
|
|
506
|
-
(a =
|
|
504
|
+
if ((o = L.replay) != null && o.isReplayRecording()) {
|
|
505
|
+
const l = `Value: ${e} on ${i.metric} violated threshold of ${i.type} ${i.value}`;
|
|
506
|
+
(a = L.replay) == null || a.disableRecording("Threshold violated", new Error(l), { reportError: !1 }), window.UserLeap.reportError("Sdk Performance Metric threshold violated", new Error("Sdk Performance Metric threshold violated"), { metricName: i.metric, type: i.type, value: i.value }, { metricName: i.metric }), xt();
|
|
507
507
|
}
|
|
508
|
-
}),
|
|
508
|
+
}), Rt({ reportingIntervalSeconds: t, postMetrics: s }), r && (((e = 1e3) => {
|
|
509
509
|
const i = $("sdk_event_queue_latency_seconds");
|
|
510
|
-
_e(
|
|
511
|
-
})(), ((
|
|
512
|
-
gt = $("sdk_dom_nodes_count"), yt = $("sdk_page_html_characters"), Qe(), setInterval(Qe,
|
|
510
|
+
_e(e, i);
|
|
511
|
+
})(), ((e = 1e4) => {
|
|
512
|
+
gt = $("sdk_dom_nodes_count"), yt = $("sdk_page_html_characters"), Qe(), setInterval(Qe, e);
|
|
513
513
|
})(), $t());
|
|
514
514
|
}, Kt = "test", Jt = ["popState", "pushState", "replaceState"];
|
|
515
515
|
let Oe, ee;
|
|
516
516
|
const we = {}, Q = "!email", ft = "pageUrl";
|
|
517
517
|
let Le = window.location.href;
|
|
518
|
-
function te(
|
|
518
|
+
function te(r) {
|
|
519
519
|
var a, l;
|
|
520
|
-
const { pageUrlEvents:
|
|
521
|
-
if (
|
|
520
|
+
const { pageUrlEvents: t, interactiveEvents: n, dismissOnPageChange: s, platform: e } = window.UserLeap._config;
|
|
521
|
+
if (e && e !== "web") return;
|
|
522
522
|
Le !== window.location.href && q.navigation("LocationChange", { from: Le, to: window.location.href }), Le = window.location.href;
|
|
523
523
|
const i = bt().trackStartUrl, o = i ? String(i) : null;
|
|
524
|
-
|
|
524
|
+
t && Ut(window.location.href), n && (ht(), Qt()), lt() && (() => {
|
|
525
525
|
if (ae()) return;
|
|
526
526
|
const p = K();
|
|
527
527
|
p && (Et(Z) || (p.remove(), Z = null, h = null));
|
|
528
|
-
})(), At.getItem("sprig.isCapturingHeatmap") && ((l = (a =
|
|
528
|
+
})(), At.getItem("sprig.isCapturingHeatmap") && ((l = (a = L.replay) == null ? void 0 : a.checkPendingHeatmapsUrl()) == null || l.then((p) => {
|
|
529
529
|
var d;
|
|
530
|
-
p && ((d =
|
|
531
|
-
})), !ae() && s && o && o !== window.location.href &&
|
|
530
|
+
p && ((d = L.replay) == null || d.uploadReadyPendingCaptures(!0));
|
|
531
|
+
})), !ae() && s && o && o !== window.location.href && r && Jt.includes(r.type) && window.UserLeap("dismissActiveSurvey", M.PageChange);
|
|
532
532
|
}
|
|
533
533
|
const vt = { capture: !0 }, Qt = () => {
|
|
534
|
-
const
|
|
535
|
-
const { name: s, properties:
|
|
534
|
+
const r = window.UserLeap._config.interactiveEvents.filter((n) => it(n, window.location.href)).map((n) => {
|
|
535
|
+
const { name: s, properties: e } = n, { selector: i, innerText: o } = e;
|
|
536
536
|
return i ? (a) => {
|
|
537
537
|
if ($e(a.target)) try {
|
|
538
538
|
a.target.closest(i) && window.UserLeap("track", s);
|
|
@@ -540,87 +540,87 @@ const vt = { capture: !0 }, Qt = () => {
|
|
|
540
540
|
}
|
|
541
541
|
return !1;
|
|
542
542
|
} : (a) => ($e(a.target) && a.target.innerText === o && window.UserLeap("track", s), !1);
|
|
543
|
-
}),
|
|
544
|
-
window.UserLeap._config.interactiveEventsHandler =
|
|
543
|
+
}), t = (n) => r.forEach((s) => s(n));
|
|
544
|
+
window.UserLeap._config.interactiveEventsHandler = t, window.addEventListener("click", t, vt);
|
|
545
545
|
}, ht = () => {
|
|
546
546
|
window.UserLeap._config.interactiveEventsHandler && window.removeEventListener("click", window.UserLeap._config.interactiveEventsHandler, vt), delete window.UserLeap._config.interactiveEventsHandler;
|
|
547
547
|
};
|
|
548
548
|
function bt() {
|
|
549
|
-
const
|
|
550
|
-
return
|
|
549
|
+
const r = x.getItemObject("userleap.ids");
|
|
550
|
+
return r && r[window.UserLeap.envId] || {};
|
|
551
551
|
}
|
|
552
552
|
function Lt() {
|
|
553
553
|
if (window.previewMode) return;
|
|
554
|
-
const
|
|
555
|
-
window.UserLeap.visitorId =
|
|
554
|
+
const r = x.getItemObject("sprig.anon.env.vid.map") || {}, t = r[window.UserLeap.envId];
|
|
555
|
+
window.UserLeap.visitorId = t || tt(), q.info("NewVid", { vid: window.UserLeap.visitorId }), R("vid", window.UserLeap.visitorId), t || (r[window.UserLeap.envId] = window.UserLeap.visitorId, x.setItemObject("sprig.anon.env.vid.map", r)), y.emit(w.VisitorIDUpdated, { visitorId: window.UserLeap.visitorId });
|
|
556
556
|
}
|
|
557
|
-
function Ut(
|
|
558
|
-
var
|
|
557
|
+
function Ut(r, t, n, s) {
|
|
558
|
+
var e, i;
|
|
559
559
|
try {
|
|
560
|
-
if (
|
|
561
|
-
q.info("PageView", { url:
|
|
562
|
-
const o = (
|
|
563
|
-
(i =
|
|
560
|
+
if (r.endsWith("mock_snippet.html")) return;
|
|
561
|
+
q.info("PageView", { url: r });
|
|
562
|
+
const o = (e = document == null ? void 0 : document.querySelector('meta[name="description"]')) == null ? void 0 : e.getAttribute("content");
|
|
563
|
+
(i = L.replay) == null || i.RecordPageView({ ...o && { description: o }, url: r, referrer: document.referrer, pageTitle: document.title });
|
|
564
564
|
const a = window.UserLeap._config.pageUrlEvents;
|
|
565
565
|
let l = !1;
|
|
566
|
-
if (a && a.length) for (let d = 0; d < a.length && (l = it(a[d],
|
|
566
|
+
if (a && a.length) for (let d = 0; d < a.length && (l = it(a[d], r), !l); d++) ;
|
|
567
567
|
if (!l) return;
|
|
568
|
-
window.UserLeap.debugMode && console.info("[DEBUG] Sprig trackPageView",
|
|
569
|
-
const p = { url:
|
|
570
|
-
s && (p.trackPageView = !0), window.UserLeap._queue.push(["track", ft,
|
|
568
|
+
window.UserLeap.debugMode && console.info("[DEBUG] Sprig trackPageView", r);
|
|
569
|
+
const p = { url: r };
|
|
570
|
+
s && (p.trackPageView = !0), window.UserLeap._queue.push(["track", ft, t, p, n]);
|
|
571
571
|
} catch (o) {
|
|
572
|
-
o instanceof Error && (o.stack =
|
|
572
|
+
o instanceof Error && (o.stack = r, window.UserLeap.reportError("trackPageView", o)), console.warn("[Sprig] (ERR-428) Failed to track page view", o);
|
|
573
573
|
}
|
|
574
574
|
}
|
|
575
575
|
function Yt() {
|
|
576
|
-
const
|
|
577
|
-
"pushState" in
|
|
578
|
-
const s =
|
|
579
|
-
return window.dispatchEvent(
|
|
580
|
-
})(
|
|
581
|
-
const s =
|
|
582
|
-
return window.dispatchEvent(
|
|
583
|
-
})(
|
|
576
|
+
const r = "Backbone" in window && window.Backbone && window.Backbone.history ? window.Backbone.history : window.history;
|
|
577
|
+
"pushState" in r && (r.pushState = /* @__PURE__ */ ((t) => function(...n) {
|
|
578
|
+
const s = t.apply(this, n), e = new Event("pushState");
|
|
579
|
+
return window.dispatchEvent(e), te(e), s;
|
|
580
|
+
})(r.pushState)), "replaceState" in r && (r.replaceState = /* @__PURE__ */ ((t) => function(...n) {
|
|
581
|
+
const s = t.apply(this, n), e = new Event("replaceState");
|
|
582
|
+
return window.dispatchEvent(e), te(e), s;
|
|
583
|
+
})(r.replaceState)), ["hashchange", "popstate"].forEach((t) => window.addEventListener(t, te, !0));
|
|
584
584
|
}
|
|
585
|
-
async function Ue(
|
|
586
|
-
const n =
|
|
587
|
-
|
|
588
|
-
const s = ge(P(window.UserLeap)),
|
|
585
|
+
async function Ue(r, t) {
|
|
586
|
+
const n = xe();
|
|
587
|
+
r && !t && (window.UserLeap._config.mode = Kt);
|
|
588
|
+
const s = ge(P(window.UserLeap)), e = await O(function(i) {
|
|
589
589
|
const o = new URL(A("1", [z], "questions"));
|
|
590
590
|
return Object.entries(i || {}).forEach(([a, l]) => {
|
|
591
591
|
l && o.searchParams.append(a, String(l));
|
|
592
592
|
}), o.toString();
|
|
593
|
-
}({ desktopDisplay: window.UserLeap._config.desktopDisplay, isMobile: s, previewLanguage: window.UserLeap._config.previewLanguage, surveyid:
|
|
594
|
-
if (!
|
|
595
|
-
if (
|
|
593
|
+
}({ desktopDisplay: window.UserLeap._config.desktopDisplay, isMobile: s, previewLanguage: window.UserLeap._config.previewLanguage, surveyid: r == null ? void 0 : r.surveyId, surveytemplateid: r == null ? void 0 : r.surveyTemplateId, vid: n }), { shouldDropOnRateLimit: !0 });
|
|
594
|
+
if (!e.ok) return e.reportError && e.error && (console.warn("[Sprig] (ERR-414) Failed to request questions from the server", e.error), window.UserLeap.reportError("getQuestions", e.error)), { success: !1, surveyState: "no survey" };
|
|
595
|
+
if (e.json.delay && await nt(e.json.delay), !e.json.isFeedback) return X(e.json, ee, Oe);
|
|
596
596
|
{
|
|
597
|
-
const { feedbackLabel: i, productConfig: o, surveyUuid: a, feedbackCustomStyles: l } =
|
|
598
|
-
wt({ customStyles: l, buttonTheme: p, desktopDisplay: c, eventId: 0, feedbackLabel: i, placement: d, surveyUuid: a, surveyId:
|
|
597
|
+
const { feedbackLabel: i, productConfig: o, surveyUuid: a, feedbackCustomStyles: l } = e.json, { buttonTheme: p, placement: d, desktopDisplay: c } = o;
|
|
598
|
+
wt({ customStyles: l, buttonTheme: p, desktopDisplay: c, eventId: 0, feedbackLabel: i, placement: d, surveyUuid: a, surveyId: r == null ? void 0 : r.surveyId }, e.json);
|
|
599
599
|
}
|
|
600
600
|
}
|
|
601
|
-
function Xt(
|
|
602
|
-
if (!
|
|
603
|
-
window.UserLeap._config =
|
|
604
|
-
const { interactiveEvents:
|
|
605
|
-
|
|
606
|
-
let i =
|
|
601
|
+
function Xt(r) {
|
|
602
|
+
if (!r) return;
|
|
603
|
+
window.UserLeap._config = r, r.mute && window.UserLeap._queue.pause();
|
|
604
|
+
const { interactiveEvents: t, pageUrlEvents: n, dismissOnPageChange: s } = r;
|
|
605
|
+
t && function(e) {
|
|
606
|
+
let i = e.length;
|
|
607
607
|
for (; i; ) {
|
|
608
608
|
const o = Math.floor(Math.random() * i);
|
|
609
609
|
i -= 1;
|
|
610
|
-
const a =
|
|
611
|
-
|
|
610
|
+
const a = e[i];
|
|
611
|
+
e[i] = e[o], e[o] = a;
|
|
612
612
|
}
|
|
613
|
-
}(
|
|
613
|
+
}(t), (t || n || s) && (Yt(), te());
|
|
614
614
|
}
|
|
615
|
-
const Zt = function(
|
|
615
|
+
const Zt = function(r) {
|
|
616
616
|
if (!window.UserLeap) return;
|
|
617
|
-
const
|
|
618
|
-
var m,
|
|
619
|
-
const { userId: i, anonymousId: o, metadata: a = {}, properties: l, showSurveyCallback: p } =
|
|
620
|
-
let { eventName: d } =
|
|
621
|
-
if (window.UserLeap.debugMode && d !== ft && console.info("[DEBUG] Sprig track",
|
|
622
|
-
const c =
|
|
623
|
-
if (
|
|
617
|
+
const t = async (e = {}) => {
|
|
618
|
+
var m, S, b, I, T;
|
|
619
|
+
const { userId: i, anonymousId: o, metadata: a = {}, properties: l, showSurveyCallback: p } = e;
|
|
620
|
+
let { eventName: d } = e;
|
|
621
|
+
if (window.UserLeap.debugMode && d !== ft && console.info("[DEBUG] Sprig track", e), r.mode === "test") return;
|
|
622
|
+
const c = x.getItem("sprig.previewKey") ?? void 0;
|
|
623
|
+
if (r.requireUserIdForTracking && !window.UserLeap.userId && !i) {
|
|
624
624
|
const v = "[Sprig] - Skipping tracking without userId";
|
|
625
625
|
return console.warn(v), { success: !1, message: v, surveyState: "no survey" };
|
|
626
626
|
}
|
|
@@ -630,15 +630,15 @@ const Zt = function(t) {
|
|
|
630
630
|
return console.warn(v), { success: !1, message: v, surveyState: "no survey" };
|
|
631
631
|
}
|
|
632
632
|
const g = ee ?? window.location.href;
|
|
633
|
-
a.url || (a.url = g),
|
|
633
|
+
a.url || (a.url = g), R("trackStartUrl", g), (S = (m = window.UserLeap) == null ? void 0 : m._config) != null && S.optimizelyEnabled && (ie(P(window.UserLeap)) || oe.getAndSetWebOptimizelyExperiments(), a.optimizelyExperiments = Object.assign({}, oe.getAllOptimizelyExperiments())), (I = (b = window.UserLeap) == null ? void 0 : b._config) != null && I.launchDarklyEnabled && (a.launchDarklyFlags = ke.getAllLaunchDarklyVariations()), i && (window.UserLeap.userId = i), o && (window.UserLeap.partnerAnonymousId = o), l && (a.eventProperties = l), (T = L.replay) == null || T.RecordEvent({ name: d, url: a.url }), q.info("TrackEvent", { eventName: d });
|
|
634
634
|
const f = window.UserLeap.delayingSurvey || ct() ? await O(A("1", [F], "events/batch"), { body: JSON.stringify({ events: [{ event: d, metadata: a }], previewKey: c }), method: "POST", shouldDropOnRateLimit: !0 }) : await O(A("1", [F], "events"), { body: JSON.stringify({ event: d, metadata: a, previewKey: c }), method: "POST", shouldDropOnRateLimit: !0 });
|
|
635
635
|
if (!f.ok) {
|
|
636
636
|
const v = "[Sprig] (ERR-421) Failed to track event";
|
|
637
637
|
return f.reportError && (console.warn(v, f.error), f.error && window.UserLeap.reportError("track", f.error)), { success: !1, message: v, error: f.error, surveyState: "no survey" };
|
|
638
638
|
}
|
|
639
|
-
i &&
|
|
639
|
+
i && R("uid", i), o && R("aid", o);
|
|
640
640
|
const u = f.json;
|
|
641
|
-
u.invalidPreviewKey &&
|
|
641
|
+
u.invalidPreviewKey && x.removeItem("sprig.previewKey");
|
|
642
642
|
const E = a.trackPageView ? a.url : void 0;
|
|
643
643
|
return u != null && u.feedbackButton && wt(u.feedbackButton, void 0, E), await async function(v, D) {
|
|
644
644
|
var H, V;
|
|
@@ -649,46 +649,46 @@ const Zt = function(t) {
|
|
|
649
649
|
const D = new URL(v), k = new URL(ee ?? window.location.href);
|
|
650
650
|
return D.hostname === k.hostname && D.pathname === k.pathname;
|
|
651
651
|
}(g) ? X(u, E, Oe) : { success: !1, message: "Study should not be displayed after page navigation", surveyState: "no survey" } : { success: !1, message: "[Sprig] Callback returned false, aborting rendering of survey", surveyState: "no survey" };
|
|
652
|
-
}, n = (
|
|
652
|
+
}, n = (e, i) => {
|
|
653
653
|
var a;
|
|
654
|
-
const o = (a =
|
|
654
|
+
const o = (a = e == null ? void 0 : e.querySelector(`[id="${De}"]`)) == null ? void 0 : a.contentDocument;
|
|
655
655
|
o && se({ document: o, elementId: "ul-custom-style", styleString: i });
|
|
656
|
-
}, s = { displaySurvey: async (
|
|
657
|
-
window.UserLeap("dismissActiveSurvey", M.Override), Ue({ surveyTemplateId:
|
|
658
|
-
}, _reviewSurvey(
|
|
659
|
-
window.UserLeap("dismissActiveSurvey", M.Override), Ue({ surveyId:
|
|
660
|
-
}, previewSurvey(
|
|
661
|
-
s._previewSurvey(
|
|
662
|
-
}, reviewSurvey(
|
|
663
|
-
s._reviewSurvey(
|
|
656
|
+
}, s = { displaySurvey: async (e) => (console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."), window.UserLeap("dismissActiveSurvey", M.Override), Ue({ surveyId: e }, !0)), _previewSurvey(e) {
|
|
657
|
+
window.UserLeap("dismissActiveSurvey", M.Override), Ue({ surveyTemplateId: e }, !1);
|
|
658
|
+
}, _reviewSurvey(e) {
|
|
659
|
+
window.UserLeap("dismissActiveSurvey", M.Override), Ue({ surveyId: e }, !1);
|
|
660
|
+
}, previewSurvey(e) {
|
|
661
|
+
s._previewSurvey(e);
|
|
662
|
+
}, reviewSurvey(e) {
|
|
663
|
+
s._reviewSurvey(e);
|
|
664
664
|
}, mute() {
|
|
665
665
|
window.UserLeap._queue.pause();
|
|
666
666
|
}, unmute() {
|
|
667
667
|
window.UserLeap._queue.unpause();
|
|
668
668
|
}, setVisitorToken() {
|
|
669
669
|
console.warn("[Sprig] setVisitorToken is deprecated.");
|
|
670
|
-
}, dismissActiveSurvey(
|
|
671
|
-
window.UserLeap.container && (
|
|
672
|
-
}, async setAttribute(
|
|
673
|
-
if (!
|
|
670
|
+
}, dismissActiveSurvey(e = M.API) {
|
|
671
|
+
window.UserLeap.container && (e === M.Closed && window.Sprig.trackHistory && window.Sprig.trackHistory({ event: "closed" }), y.emit(w.SurveyCloseRequested, { name: w.SurveyCloseRequested, initiator: e, "survey.id": parseInt(window.UserLeap.container.dataset.studyId) }), y.emit(w.SurveyWillClose, { name: w.SurveyWillClose, initiator: e, "survey.id": parseInt(window.UserLeap.container.dataset.studyId) }));
|
|
672
|
+
}, async setAttribute(e, i) {
|
|
673
|
+
if (!e || !i && i !== 0 && i !== !1) {
|
|
674
674
|
const o = "[Sprig] - Disregarding empty attribute / value provided";
|
|
675
675
|
return console.warn(o), { success: !1, message: o };
|
|
676
676
|
}
|
|
677
|
-
return this.setAttributes({ [
|
|
678
|
-
}, async setAttributes(
|
|
679
|
-
if (
|
|
677
|
+
return this.setAttributes({ [e]: i });
|
|
678
|
+
}, async setAttributes(e) {
|
|
679
|
+
if (e == null || Object.keys(e).length === 0) {
|
|
680
680
|
const i = "[Sprig] - Disregarding empty attributes provided";
|
|
681
681
|
return console.warn(i), { success: !1, message: i };
|
|
682
682
|
}
|
|
683
|
-
return this.identifyAndSetAttributes({ attributes:
|
|
684
|
-
}, async identifyAndSetAttributes(
|
|
685
|
-
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig identifyAndSetAttributes",
|
|
686
|
-
if (
|
|
683
|
+
return this.identifyAndSetAttributes({ attributes: e });
|
|
684
|
+
}, async identifyAndSetAttributes(e) {
|
|
685
|
+
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig identifyAndSetAttributes", e), r.mode === "test") return;
|
|
686
|
+
if (e === null || typeof e != "object" || !(e.userId || e.anonymousId || e.attributes)) {
|
|
687
687
|
const d = "[Sprig] - Disregarding empty payload provided";
|
|
688
688
|
return console.warn(d), { success: !1, message: d };
|
|
689
689
|
}
|
|
690
|
-
const { userId: i, anonymousId: o, attributes: a } =
|
|
691
|
-
if (
|
|
690
|
+
const { userId: i, anonymousId: o, attributes: a } = e;
|
|
691
|
+
if (r.requireUserIdForTracking && !window.UserLeap.userId && !i) {
|
|
692
692
|
const d = "[Sprig] - Skipping tracking without userId";
|
|
693
693
|
return console.warn(d), { success: !1, message: d };
|
|
694
694
|
}
|
|
@@ -700,86 +700,86 @@ const Zt = function(t) {
|
|
|
700
700
|
if (!(a && Object.keys(a).length !== 0 || i && window.UserLeap.userId !== i || o && window.UserLeap.partnerAnonymousId !== o)) return { success: !0 };
|
|
701
701
|
const l = {};
|
|
702
702
|
let p;
|
|
703
|
-
return i && (l.userId = window.UserLeap.userId = i), o && (l.partnerAnonymousId = window.UserLeap.partnerAnonymousId = o), a && Object.keys(a).length > 0 ? (p = await O(A("1", [z, F], "attributes"), { body: JSON.stringify(a), method: "PUT" }), p.ok ? Object.assign(we, a) : p.reportError && (console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed", p.error), p.error && window.UserLeap.reportError("identifyAndSetAttributes", p.error))) : p = await O(A("1", [z, F]), { body: JSON.stringify(l), method: "PUT" }), a && a[Q] && (window.UserLeap.email = a[Q]), p.ok && (i &&
|
|
704
|
-
}, async removeAttributes(
|
|
705
|
-
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig removeAttributes",
|
|
706
|
-
if (
|
|
703
|
+
return i && (l.userId = window.UserLeap.userId = i), o && (l.partnerAnonymousId = window.UserLeap.partnerAnonymousId = o), a && Object.keys(a).length > 0 ? (p = await O(A("1", [z, F], "attributes"), { body: JSON.stringify(a), method: "PUT" }), p.ok ? Object.assign(we, a) : p.reportError && (console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed", p.error), p.error && window.UserLeap.reportError("identifyAndSetAttributes", p.error))) : p = await O(A("1", [z, F]), { body: JSON.stringify(l), method: "PUT" }), a && a[Q] && (window.UserLeap.email = a[Q]), p.ok && (i && R("uid", i), o && R("aid", o)), { success: !!p.ok };
|
|
704
|
+
}, async removeAttributes(e) {
|
|
705
|
+
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig removeAttributes", e), r.mode === "test") return;
|
|
706
|
+
if (e == null || e.length === 0) {
|
|
707
707
|
const o = "[Sprig] - Disregarding empty attributes provided";
|
|
708
708
|
return console.warn(o), { success: !1, message: o };
|
|
709
709
|
}
|
|
710
|
-
if (
|
|
710
|
+
if (r.requireUserIdForTracking && !window.UserLeap.userId) {
|
|
711
711
|
const o = "[Sprig] - Skipping tracking without userId";
|
|
712
712
|
return console.warn(o), { success: !1, message: o };
|
|
713
713
|
}
|
|
714
|
-
const i = await O(A("1", [z, F], "attributes"), { body: JSON.stringify({ delete:
|
|
714
|
+
const i = await O(A("1", [z, F], "attributes"), { body: JSON.stringify({ delete: e }), method: "DELETE" });
|
|
715
715
|
return !i.ok && i.reportError && (console.warn("[Sprig] (ERR-433) Remove attributes failed", i.error), i.error && window.UserLeap.reportError("removeAttributes", i.error)), { success: !!i.ok };
|
|
716
|
-
}, async addSurveyListener(
|
|
717
|
-
y.on(w.SurveyLifeCycle,
|
|
718
|
-
}, async removeSurveyListener(
|
|
719
|
-
y.removeListener(w.SurveyLifeCycle,
|
|
720
|
-
}, async addListener(
|
|
721
|
-
y.on(
|
|
722
|
-
}, async removeListener(
|
|
723
|
-
y.removeListener(
|
|
716
|
+
}, async addSurveyListener(e) {
|
|
717
|
+
y.on(w.SurveyLifeCycle, e);
|
|
718
|
+
}, async removeSurveyListener(e) {
|
|
719
|
+
y.removeListener(w.SurveyLifeCycle, e);
|
|
720
|
+
}, async addListener(e, i) {
|
|
721
|
+
y.on(e, i);
|
|
722
|
+
}, async removeListener(e, i) {
|
|
723
|
+
y.removeListener(e, i);
|
|
724
724
|
}, async removeAllListeners() {
|
|
725
725
|
y.removeAllListeners();
|
|
726
|
-
}, setPreviewKey(
|
|
727
|
-
|
|
728
|
-
}, async setUserId(
|
|
726
|
+
}, setPreviewKey(e) {
|
|
727
|
+
e && typeof e == "string" && x.isStorageAvailable && e && x.setItem("sprig.previewKey", e);
|
|
728
|
+
}, async setUserId(e) {
|
|
729
729
|
var a;
|
|
730
|
-
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig setUserId",
|
|
731
|
-
const l = `[Sprig] - Invalid userId ${
|
|
730
|
+
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig setUserId", e), e == null) {
|
|
731
|
+
const l = `[Sprig] - Invalid userId ${e}`;
|
|
732
732
|
return console.warn(l), { success: !1, message: l };
|
|
733
733
|
}
|
|
734
|
-
if (
|
|
735
|
-
window.UserLeap.userId =
|
|
736
|
-
const i = window.UserLeap.visitorId, o = await O(A("1", [z, F]), { body: JSON.stringify({ userId:
|
|
737
|
-
o.ok ? (i !== window.UserLeap.visitorId && ((a =
|
|
738
|
-
}, async setPartnerAnonymousId(
|
|
739
|
-
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig setPartnerAnonymousId",
|
|
740
|
-
const i = `[Sprig] - Invalid partnerAnonymousId ${
|
|
734
|
+
if (r.mode === "test" || e === window.UserLeap.userId) return;
|
|
735
|
+
window.UserLeap.userId = e;
|
|
736
|
+
const i = window.UserLeap.visitorId, o = await O(A("1", [z, F]), { body: JSON.stringify({ userId: e }), method: "PUT" });
|
|
737
|
+
o.ok ? (i !== window.UserLeap.visitorId && ((a = L.replay) == null || a.clearUserReplayData()), R("uid", e)) : o.reportError && (console.warn("[Sprig] (ERR-420) Failed to set user id", o.error), o.error && window.UserLeap.reportError("setUserId", o.error));
|
|
738
|
+
}, async setPartnerAnonymousId(e) {
|
|
739
|
+
if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig setPartnerAnonymousId", e), e == null) {
|
|
740
|
+
const i = `[Sprig] - Invalid partnerAnonymousId ${e}`;
|
|
741
741
|
return console.warn(i), { success: !1, message: i };
|
|
742
742
|
}
|
|
743
|
-
return window.UserLeap.partnerAnonymousId =
|
|
744
|
-
}, track: async (
|
|
745
|
-
ee =
|
|
746
|
-
}, applyFeedbackStyles({ button:
|
|
747
|
-
window.UserLeap.feedbackCustomStyles = i, document.getElementById("sprig-feedback-style") && se({ document, elementId: "ul-custom-style", styleString:
|
|
748
|
-
}, applyStyles(
|
|
749
|
-
window.UserLeap.customStyles =
|
|
750
|
-
}, setWindowDimensions(
|
|
743
|
+
return window.UserLeap.partnerAnonymousId = e, R("aid", e), { success: !0 };
|
|
744
|
+
}, track: async (e, i, o = {}, a = void 0) => t({ eventName: e, properties: i, metadata: o, showSurveyCallback: a }), identifyAndTrack: async (e) => await t(e), trackPageView(e, i = void 0, o = void 0, a = !0) {
|
|
745
|
+
ee = e, Ut(e, i, o, a);
|
|
746
|
+
}, applyFeedbackStyles({ button: e = "", view: i = "" }) {
|
|
747
|
+
window.UserLeap.feedbackCustomStyles = i, document.getElementById("sprig-feedback-style") && se({ document, elementId: "ul-custom-style", styleString: e, nonce: window.UserLeap.styleNonce }), n(document.querySelector(".ul-container-feedback"), i);
|
|
748
|
+
}, applyStyles(e) {
|
|
749
|
+
window.UserLeap.customStyles = e, n(window.UserLeap.container, e);
|
|
750
|
+
}, setWindowDimensions(e, i) {
|
|
751
751
|
var g, f;
|
|
752
|
-
const o = typeof
|
|
752
|
+
const o = typeof e == "string" ? parseInt(e, 10) : e, a = typeof i == "string" ? parseInt(i, 10) : i;
|
|
753
753
|
isNaN(o) || isNaN(a) || (window.UserLeap.windowDimensions = { width: o, height: a });
|
|
754
754
|
const l = P(window.UserLeap), p = ge(l), d = l["userleap-platform"] === "web";
|
|
755
755
|
if (!window.UserLeap.frameId) return;
|
|
756
756
|
const c = document.getElementById(window.UserLeap.frameId);
|
|
757
757
|
c && (window.UserLeap.useMobileStyling && ((g = window.UserLeap.windowDimensions) != null && g.width && (c.style.width = `${window.UserLeap.windowDimensions.width}px`), (f = window.UserLeap.windowDimensions) != null && f.height && (c.style.maxHeight = window.UserLeap.windowDimensions.height - 20 + "px"), c.contentDocument && (c.style.height = String(Ft(c.contentDocument, d && !p, rt(l))[0]) + "px")), y.emit(w.SurveyDimensions, { name: w.SurveyDimensions, contentFrameWidth: c.clientWidth, contentFrameHeight: c.clientHeight, "survey.id": parseInt(window.UserLeap.container.dataset.studyId) }));
|
|
758
758
|
}, logoutUser() {
|
|
759
|
-
var
|
|
760
|
-
window.UserLeap.debugMode && console.info("[DEBUG] Sprig logout"), q.info("LogOut", { vid: window.UserLeap.visitorId, userId: window.UserLeap.userId }), window.UserLeap.visitorId = null, window.UserLeap.userId = null, window.UserLeap.partnerAnonymousId = null, window.UserLeap.token = null, window.UserLeap.email = null,
|
|
759
|
+
var e;
|
|
760
|
+
window.UserLeap.debugMode && console.info("[DEBUG] Sprig logout"), q.info("LogOut", { vid: window.UserLeap.visitorId, userId: window.UserLeap.userId }), window.UserLeap.visitorId = null, window.UserLeap.userId = null, window.UserLeap.partnerAnonymousId = null, window.UserLeap.token = null, window.UserLeap.email = null, x.removeItem("userleap.ids"), window.UserLeap._queue.isPaused() && window.UserLeap._queue.empty(), Lt(), (e = L.replay) == null || e.clearUserReplayData(), window.UserLeap._queue.unpause();
|
|
761
761
|
}, teardown() {
|
|
762
|
-
["hashchange", "popstate"].forEach((
|
|
763
|
-
}, integrateOptimizely(
|
|
762
|
+
["hashchange", "popstate"].forEach((e) => window.removeEventListener(e, te, !0)), window.UserLeap._config.interactiveEvents && ht(), window.UserLeap("dismissActiveSurvey", M.API), delete window.UserLeap, delete window.Sprig, delete window._Sprig;
|
|
763
|
+
}, integrateOptimizely(e, i = !0) {
|
|
764
764
|
var o, a;
|
|
765
765
|
if ((a = (o = window.UserLeap) == null ? void 0 : o._config) != null && a.optimizelyEnabled) try {
|
|
766
|
-
const l = typeof
|
|
766
|
+
const l = typeof e == "string" ? JSON.parse(e) : e;
|
|
767
767
|
oe.setOptimizelyExperiment(l, i);
|
|
768
768
|
} catch (l) {
|
|
769
769
|
console.warn("[Sprig] Error with integrating Optimizely data"), l instanceof Error && window.UserLeap.reportError("integrateOptimizely", l);
|
|
770
770
|
}
|
|
771
771
|
else console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");
|
|
772
|
-
}, integrateOptimizelyClient(
|
|
772
|
+
}, integrateOptimizelyClient(e) {
|
|
773
773
|
var i, o;
|
|
774
774
|
if (!((o = (i = window.UserLeap) == null ? void 0 : i._config) != null && o.optimizelyEnabled)) return void console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");
|
|
775
|
-
|
|
775
|
+
e.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event", ({ experiment: a, variation: l }) => {
|
|
776
776
|
const p = { experiments: [{ id: a.id, variation: l.key }] };
|
|
777
777
|
window.UserLeap("integrateOptimizely", p, !1);
|
|
778
778
|
});
|
|
779
|
-
}, importLaunchDarklyData(
|
|
779
|
+
}, importLaunchDarklyData(e) {
|
|
780
780
|
var i, o;
|
|
781
|
-
(o = (i = window.UserLeap) == null ? void 0 : i._config) != null && o.launchDarklyEnabled ? ke.setLDFlagsVariations(
|
|
782
|
-
}, setVisitorAttribute: (
|
|
781
|
+
(o = (i = window.UserLeap) == null ? void 0 : i._config) != null && o.launchDarklyEnabled ? ke.setLDFlagsVariations(e) : console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.");
|
|
782
|
+
}, setVisitorAttribute: (e, i) => (console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"), s.setAttribute(e, i)), setEmail: async (e) => s.setAttribute(Q, e), setVisitorEmail: async (e) => (console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"), s.setEmail(e)), _generateVideoUploadUrl: async (e) => async function(i) {
|
|
783
783
|
var a;
|
|
784
784
|
if (!i) return;
|
|
785
785
|
const o = `${window.UserLeap._API_URL}/2/environments/integrations/upload`;
|
|
@@ -793,72 +793,78 @@ const Zt = function(t) {
|
|
|
793
793
|
} catch (l) {
|
|
794
794
|
console.warn("[Sprig] Error with generating video upload url"), l instanceof Error && window.UserLeap.reportError("generateVideoUploadUrl", l);
|
|
795
795
|
}
|
|
796
|
-
}(
|
|
797
|
-
Dt(
|
|
798
|
-
}, _completeSessionReplay: async ({ surveyId:
|
|
796
|
+
}(e), _reportMetric(e, i) {
|
|
797
|
+
Dt(e, i);
|
|
798
|
+
}, _completeSessionReplay: async ({ surveyId: e, responseGroupUuid: i, eventDigest: o }) => {
|
|
799
799
|
var a;
|
|
800
|
-
return
|
|
800
|
+
return L.replay ? (a = L.replay) == null ? void 0 : a._completeSessionReplay({ surveyId: e, responseGroupUuid: i, eventDigest: o, headers: P(window.UserLeap) }) : (window.UserLeap.reportError("_completeSessionReplay", new Error("Replay module not registered")), !1);
|
|
801
|
+
}, pauseReplayRecording() {
|
|
802
|
+
var e, i, o, a;
|
|
803
|
+
(i = (e = L.replay) == null ? void 0 : e.isReplayPaused) != null && i.call(e) || ((a = (o = L.replay) == null ? void 0 : o.recordReplayPaused) == null || a.call(o));
|
|
804
|
+
}, resumeReplayRecording() {
|
|
805
|
+
var e, i, o, a, l, p;
|
|
806
|
+
(i = (e = L.replay) == null ? void 0 : e.isReplayPaused) != null && i.call(e) && ((a = (o = L.replay) == null ? void 0 : o.recordReplayResumed) == null || a.call(o), (p = (l = L.replay) == null ? void 0 : l.recordFullSnapshot) == null || p.call(l));
|
|
801
807
|
} };
|
|
802
808
|
Object.assign(window.UserLeap, s);
|
|
803
809
|
};
|
|
804
|
-
async function er(
|
|
805
|
-
const
|
|
806
|
-
(await O(A("1", null, "errors"), { method: "POST", headers: { "x-ul-error": window.btoa(`userleap-${Date.now()}-error`) }, body: JSON.stringify(p), shouldDropOnRateLimit: !0 })).ok || console.warn("[Sprig] (ERR-444) Failed to report error to API",
|
|
810
|
+
async function er(r, t, n = {}, s = {}) {
|
|
811
|
+
const e = window.__cfg && window.__cfg.mode, i = xe(), o = window.UserLeap.envId, a = window.document.documentElement, l = { mode: e, screenWidth: window.screen.width, screenHeight: window.screen.height, clientWidth: a.clientWidth, clientHeight: a.clientHeight, location: ee ?? window.location.href, language: window.navigator.language, ...n }, p = { action: r, breadcrumbs: q.breadcrumbs, err: { message: `${t == null ? void 0 : t.name} - ${t == null ? void 0 : t.message}`, stack: t == null ? void 0 : t.stack }, meta: l, vid: i, envId: o, ...s };
|
|
812
|
+
(await O(A("1", null, "errors"), { method: "POST", headers: { "x-ul-error": window.btoa(`userleap-${Date.now()}-error`) }, body: JSON.stringify(p), shouldDropOnRateLimit: !0 })).ok || console.warn("[Sprig] (ERR-444) Failed to report error to API", t);
|
|
807
813
|
}
|
|
808
|
-
function tr(
|
|
814
|
+
function tr(r = {}) {
|
|
809
815
|
var s;
|
|
810
816
|
(s = window.SprigLoggerCallback) == null || s.call(window, "Initializing Sprig");
|
|
811
|
-
const
|
|
817
|
+
const t = new URLSearchParams(window.location.search).get("sprigPreviewKey") ?? "";
|
|
812
818
|
async function n() {
|
|
813
819
|
var g, f, u, E, _;
|
|
814
820
|
if (window.UserLeap.loaded) return;
|
|
815
|
-
if ((g = window.SprigLoggerCallback) == null || g.call(window, "Loading Sprig"), window.UserLeap.reportError = er, window.UserLeap.loaded = !0, window.UserLeap._config = Object.assign({},
|
|
821
|
+
if ((g = window.SprigLoggerCallback) == null || g.call(window, "Loading Sprig"), window.UserLeap.reportError = er, window.UserLeap.loaded = !0, window.UserLeap._config = Object.assign({}, r, window.UserLeap.config), window.UserLeap.delayingSurvey = !1, window.UserLeap._config && typeof window.UserLeap._config == "object") for (const m in window.UserLeap._config) window.UserLeap[m] = window.UserLeap._config[m];
|
|
816
822
|
if (!window.UserLeap.envId) {
|
|
817
823
|
if (!window.UserLeap.appId) throw new Error("Missing Environment id");
|
|
818
824
|
window.UserLeap.envId = window.UserLeap.appId;
|
|
819
825
|
}
|
|
820
826
|
window.UserLeap.debugMode && console.info("[DEBUG] Sprig debug mode enabled");
|
|
821
|
-
const
|
|
822
|
-
let o =
|
|
827
|
+
const e = bt(), i = window.UserLeap.sampleRate;
|
|
828
|
+
let o = e.sampled;
|
|
823
829
|
if (i) {
|
|
824
|
-
if (o === null && (o = Math.random() < i,
|
|
825
|
-
} else o !== null &&
|
|
830
|
+
if (o === null && (o = Math.random() < i, R("sampled", o)), !o) return;
|
|
831
|
+
} else o !== null && R("sampled", null);
|
|
826
832
|
window.UserLeap._API_URL || (window.UserLeap._API_URL = "https://api.sprig.com");
|
|
827
833
|
const a = [...window.UserLeap._queue];
|
|
828
834
|
window.UserLeap._queue = new Vt(window.UserLeap, []), window.UserLeap._queue.pause();
|
|
829
835
|
for (let m = 0; m < a.length; m++) window.UserLeap._queue.push(a[m]);
|
|
830
|
-
const l =
|
|
831
|
-
l ? (window.UserLeap.token = l, window.UserLeap.visitorId =
|
|
836
|
+
const l = e.token;
|
|
837
|
+
l ? (window.UserLeap.token = l, window.UserLeap.visitorId = e.vid ?? null, window.UserLeap.userId = e.uid ?? null, window.UserLeap.partnerAnonymousId = e.aid ?? null) : Lt();
|
|
832
838
|
const p = ie(P(window.UserLeap));
|
|
833
839
|
(f = window.SprigLoggerCallback) == null || f.call(window, "Sprig fetching config");
|
|
834
840
|
const d = await async function(m) {
|
|
835
841
|
var T, v;
|
|
836
|
-
const
|
|
842
|
+
const S = P(window.UserLeap);
|
|
837
843
|
document.addEventListener("securitypolicyviolation", He);
|
|
838
|
-
const b = await et(A("1", [z], "config"), { headers:
|
|
844
|
+
const b = await et(A("1", [z], "config"), { headers: S });
|
|
839
845
|
if (document.removeEventListener("securitypolicyviolation", He), !b.ok) return (T = window.SprigLoggerCallback) == null || T.call(window, "Sprig config fetch failed"), b.reportError && (console.warn("[Sprig] (ERR-422) Failed to load configuration", b.error), b.error && window.UserLeap.reportError("applyRemoteConfig", b.error)), Ve("Disabled: failed to fetch configuration"), m;
|
|
840
846
|
const I = b.json;
|
|
841
847
|
return I != null && I.disabled ? ((v = window.SprigLoggerCallback) == null || v.call(window, "Sprig config fetch disabled"), Ve(`Disabled: ${I.disabled}`), { disabled: I.disabled }) : Object.assign({}, I, m);
|
|
842
|
-
}(
|
|
848
|
+
}(r);
|
|
843
849
|
(u = window.SprigLoggerCallback) == null || u.call(window, "Sprig fetched config"), Gt({ isWeb: !p, reportingIntervalSeconds: d.metricsReportingEnabled || d.mobileMetricsReportingEnabled ? d.metricsReportingIntervalSeconds : 0, thresholds: d.metricThresholds, postMetrics: async (m) => {
|
|
844
|
-
var
|
|
845
|
-
await O(A("1", [z], "metrics"), { body: m, method: "POST", headers: { "x-ul-replay-enabled": `${!!((
|
|
850
|
+
var S;
|
|
851
|
+
await O(A("1", [z], "metrics"), { body: m, method: "POST", headers: { "x-ul-replay-enabled": `${!!((S = L.replay) != null && S.isReplayRecording())}` }, shouldDropOnRateLimit: !0 });
|
|
846
852
|
} });
|
|
847
|
-
const c = d.alwaysOnReplay ? { userAgent: window.navigator.userAgent, surveyId: d.alwaysOnReplay.surveyId, responseGroupUuid: d.alwaysOnReplay.responseGroupUuid, sdkVersion: "2.
|
|
848
|
-
await ((E =
|
|
853
|
+
const c = d.alwaysOnReplay ? { userAgent: window.navigator.userAgent, surveyId: d.alwaysOnReplay.surveyId, responseGroupUuid: d.alwaysOnReplay.responseGroupUuid, sdkVersion: "2.34.0", maxDurationSeconds: d.alwaysOnReplay.maxDurationSeconds } : void 0;
|
|
854
|
+
await ((E = L.replay) == null ? void 0 : E.initializeReplay({ maxReplayDurationSeconds: d.maxReplayDurationSeconds, maxInflightRequests: window.UserLeap.maxInflightReplayRequests ?? 2, replaySettings: d.replaySettings, apiUrl: window.UserLeap._API_URL, alwaysOnConfig: c })), Oe = d.replaySettings, Zt(d), await Xt(d), window.UserLeap._queue.unpause(), (_ = window.SprigLoggerCallback) == null || _.call(window, "SdkReady"), y.emit(w.SDKReady, { mobileMetricsReportingEnabled: !!d.mobileMetricsReportingEnabled, metricsReportingInterval: d.metricsReportingIntervalSeconds || 0, metricsThresholds: d.metricThresholds || [], maxMobileReplayDurationSeconds: d.maxMobileReplayDurationSeconds, mobileReplaySettings: d.mobileReplaySettings }), y.emit(w.VisitorIDUpdated, { visitorId: window.UserLeap.visitorId }), y.on(w.VisitorIDUpdated, () => {
|
|
849
855
|
for (const m in we) delete we[m];
|
|
850
856
|
});
|
|
851
857
|
}
|
|
852
|
-
window.UserLeap.UPDATES = re, window.UserLeap("setPreviewKey",
|
|
858
|
+
window.UserLeap.UPDATES = re, window.UserLeap("setPreviewKey", t), document.readyState === "complete" ? n() : window.attachEvent ? window.attachEvent("onload", n) : window.addEventListener("load", () => {
|
|
853
859
|
n();
|
|
854
860
|
}, !1);
|
|
855
861
|
}
|
|
856
|
-
class
|
|
862
|
+
class Re {
|
|
857
863
|
constructor() {
|
|
858
864
|
W(this, "UPDATES", re);
|
|
859
865
|
}
|
|
860
|
-
displaySurvey(
|
|
861
|
-
window.Sprig("displaySurvey",
|
|
866
|
+
displaySurvey(t) {
|
|
867
|
+
window.Sprig("displaySurvey", t);
|
|
862
868
|
}
|
|
863
869
|
mute() {
|
|
864
870
|
window.Sprig("mute");
|
|
@@ -869,50 +875,50 @@ class xe {
|
|
|
869
875
|
dismissActiveSurvey() {
|
|
870
876
|
window.Sprig("dismissActiveSurvey");
|
|
871
877
|
}
|
|
872
|
-
setAttribute(
|
|
873
|
-
window.Sprig("setAttribute",
|
|
878
|
+
setAttribute(t, n) {
|
|
879
|
+
window.Sprig("setAttribute", t, n);
|
|
874
880
|
}
|
|
875
|
-
setAttributes(
|
|
876
|
-
window.Sprig("setAttributes",
|
|
881
|
+
setAttributes(t) {
|
|
882
|
+
window.Sprig("setAttributes", t);
|
|
877
883
|
}
|
|
878
|
-
identifyAndSetAttributes(
|
|
879
|
-
window.Sprig("identifyAndSetAttributes",
|
|
884
|
+
identifyAndSetAttributes(t) {
|
|
885
|
+
window.Sprig("identifyAndSetAttributes", t);
|
|
880
886
|
}
|
|
881
|
-
removeAttributes(
|
|
882
|
-
window.Sprig("removeAttributes",
|
|
887
|
+
removeAttributes(t) {
|
|
888
|
+
window.Sprig("removeAttributes", t);
|
|
883
889
|
}
|
|
884
|
-
addListener(
|
|
885
|
-
window.Sprig("addListener",
|
|
890
|
+
addListener(t, n) {
|
|
891
|
+
window.Sprig("addListener", t, n);
|
|
886
892
|
}
|
|
887
|
-
removeListener(
|
|
888
|
-
window.Sprig("removeListener",
|
|
893
|
+
removeListener(t, n) {
|
|
894
|
+
window.Sprig("removeListener", t, n);
|
|
889
895
|
}
|
|
890
896
|
removeAllListeners() {
|
|
891
897
|
window.Sprig("removeAllListeners");
|
|
892
898
|
}
|
|
893
|
-
setEmail(
|
|
894
|
-
window.Sprig("setAttribute", "!email",
|
|
899
|
+
setEmail(t) {
|
|
900
|
+
window.Sprig("setAttribute", "!email", t);
|
|
895
901
|
}
|
|
896
|
-
setUserId(
|
|
897
|
-
window.Sprig("setUserId",
|
|
902
|
+
setUserId(t) {
|
|
903
|
+
window.Sprig("setUserId", t);
|
|
898
904
|
}
|
|
899
|
-
setPartnerAnonymousId(
|
|
900
|
-
window.Sprig("setPartnerAnonymousId",
|
|
905
|
+
setPartnerAnonymousId(t) {
|
|
906
|
+
window.Sprig("setPartnerAnonymousId", t);
|
|
901
907
|
}
|
|
902
|
-
track(
|
|
903
|
-
window.Sprig("track",
|
|
908
|
+
track(t, n = {}, s = {}) {
|
|
909
|
+
window.Sprig("track", t, n, s);
|
|
904
910
|
}
|
|
905
|
-
identifyAndTrack(
|
|
906
|
-
window.Sprig("identifyAndTrack",
|
|
911
|
+
identifyAndTrack(t) {
|
|
912
|
+
window.Sprig("identifyAndTrack", t);
|
|
907
913
|
}
|
|
908
|
-
trackPageView(
|
|
909
|
-
window.Sprig("trackPageView",
|
|
914
|
+
trackPageView(t, n, s) {
|
|
915
|
+
window.Sprig("trackPageView", t, n, s);
|
|
910
916
|
}
|
|
911
|
-
applyStyles(
|
|
912
|
-
window.Sprig("applyStyles",
|
|
917
|
+
applyStyles(t) {
|
|
918
|
+
window.Sprig("applyStyles", t);
|
|
913
919
|
}
|
|
914
|
-
setWindowDimensions(
|
|
915
|
-
window.Sprig("setWindowDimensions",
|
|
920
|
+
setWindowDimensions(t, n) {
|
|
921
|
+
window.Sprig("setWindowDimensions", t, n);
|
|
916
922
|
}
|
|
917
923
|
logoutUser() {
|
|
918
924
|
window.Sprig("logoutUser");
|
|
@@ -920,24 +926,30 @@ class xe {
|
|
|
920
926
|
teardown() {
|
|
921
927
|
window.Sprig("teardown");
|
|
922
928
|
}
|
|
929
|
+
pauseReplayRecording() {
|
|
930
|
+
window.Sprig("pauseReplayRecording");
|
|
931
|
+
}
|
|
932
|
+
resumeReplayRecording() {
|
|
933
|
+
window.Sprig("resumeReplayRecording");
|
|
934
|
+
}
|
|
923
935
|
}
|
|
924
|
-
const Ze = { configure: (
|
|
925
|
-
if (!
|
|
926
|
-
if (
|
|
936
|
+
const Ze = { configure: (r) => {
|
|
937
|
+
if (!r.envId && !r.environmentId) throw new Error("Initialization Error: Sprig configure requires an environmentId");
|
|
938
|
+
if (r.envId || (r.envId = r.environmentId ?? ""), r.installationMethod = "web-npm", window.Sprig) return window.Sprig;
|
|
927
939
|
window.Sprig = function() {
|
|
928
940
|
window.Sprig._queue.push(arguments);
|
|
929
|
-
}, Object.getOwnPropertyNames(
|
|
930
|
-
n !== "constructor" && (window.Sprig[n] =
|
|
941
|
+
}, Object.getOwnPropertyNames(Re.prototype).map((n) => {
|
|
942
|
+
n !== "constructor" && (window.Sprig[n] = Re.prototype[n]);
|
|
931
943
|
});
|
|
932
|
-
const
|
|
933
|
-
return
|
|
934
|
-
} }, cr = { sprig: Ze, SprigAPI:
|
|
944
|
+
const t = window.Sprig;
|
|
945
|
+
return t.appId = r.envId, t._queue = [], window.UserLeap = t, tr(r), window.Sprig;
|
|
946
|
+
} }, cr = { sprig: Ze, SprigAPI: Re, configure: Ze.configure };
|
|
935
947
|
export {
|
|
936
948
|
or as A,
|
|
937
949
|
Ot as C,
|
|
938
950
|
nr as D,
|
|
939
951
|
dr as E,
|
|
940
|
-
|
|
952
|
+
Re as S,
|
|
941
953
|
Ft as a,
|
|
942
954
|
ar as b,
|
|
943
955
|
cr as c,
|