@sprig-technologies/sprig-browser 2.34.0 → 2.35.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.
@@ -1,7 +1,7 @@
1
1
  var It = Object.defineProperty;
2
2
  var kt = (r, t, n) => t in r ? It(r, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[t] = n;
3
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";
4
+ import { l as x, g as P, s as et, e as y, S as w, v as tt, m as S, 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-BJVpNufn.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;
@@ -55,64 +55,64 @@ function A(r, t, n) {
55
55
  }
56
56
  const X = async (r, t, n) => {
57
57
  var Me, qe, Fe;
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
- 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 } });
58
+ const { context: s, delay: e, forceBrandedLogo: i, endCard: o, isFeedback: a = !1, heatmap: l, locale: p, previewMode: d, productConfig: c, questions: g, responseGroupUid: m, surveyId: u, uuid: E, vid: f, sessionReplay: v, studyType: L } = r, b = P(window.UserLeap), _ = ie(b), T = ge(b);
59
+ if (v) if (_) y.emit(w.ReplayCapture, { responseGroupUid: m, hasQuestions: !!(g != null && g.length), surveyId: u, uploadId: v.uploadId, replayType: v.replayDurationType ?? "before", seconds: v.replayDurationSeconds, generateVideoUploadUrlPayload: { mediaRecordingUid: tt(), mediaType: "screen", questionId: 1, responseGroupUid: m, surveyId: u, updatedAt: (/* @__PURE__ */ new Date()).toISOString(), visitorId: window.UserLeap.visitorId, isReplay: !0 } });
60
60
  else {
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 });
61
+ if (!S.replay) return window.UserLeap.reportError("displayQuestions", new Error("Replay module not registered")), { success: !1, message: "Replay module not registered", surveyState: "no survey" };
62
+ S.replay.scheduleOrCaptureReplay({ responseGroupId: m, surveyId: u, visitorId: f, replayParams: v, completeUploadHeaders: b, apiUrl: window.UserLeap._API_URL, triggerTimestamp: Date.now(), isStandalone: g.length === 0 });
63
63
  }
64
64
  if (l) {
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(() => {
65
+ if (!S.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: I, replayParams: J, responseGroupUid: fe, surveyId: ve } = l;
67
+ await S.replay.initializeReplay({ maxReplayDurationSeconds: 300, maxInflightRequests: window.UserLeap.maxInflightReplayRequests, teardownAfter: !0, apiUrl: window.UserLeap._API_URL, replaySettings: n }), S.replay.tryReplayAction(() => {
68
68
  var 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: _ });
69
+ return (ze = S.replay) == null ? void 0 : ze.scheduleCapture({ apiUrl: window.UserLeap._API_URL, completeUploadHeaders: b, eventId: I, isHeatmap: !0, replayParams: J, responseGroupId: fe, surveyId: ve, triggerTimestamp: Date.now(), visitorId: f });
70
70
  }, "Error in scheduling/capturing replay");
71
71
  }
72
- if (_ == null || !(g != null && g.length)) return q.info("CannotDisplaySurvey", { vid: _ }), { success: !1, message: "[Sprig] no survey found", surveyState: "no survey" };
72
+ if (f == null || !(g != null && g.length)) return q.info("CannotDisplaySurvey", { vid: f }), { success: !1, message: "[Sprig] no survey found", surveyState: "no survey" };
73
73
  if (window.UserLeap.container) {
74
74
  q.info("AlreadyDisplayingSurvey");
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" };
75
+ const I = "[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";
76
+ return console.warn(I), { success: !1, message: I, surveyState: "no survey" };
77
77
  }
78
- if (_ !== window.UserLeap.visitorId && E !== window.UserLeap.visitorId && !window.previewMode) {
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" };
78
+ if (f !== window.UserLeap.visitorId && E !== window.UserLeap.visitorId && !window.previewMode) {
79
+ const I = "Attempted to display survey to a different visitor";
80
+ return window.UserLeap.reportError("DisplaySurvey", new Error(I)), { success: !1, message: I, surveyState: "no survey" };
81
81
  }
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
- let v, D, k, H, V = document.createElement("div");
84
- const Ce = (U) => {
85
- const { "view.version": J } = U;
82
+ q.info("ShowingSurvey", { surveyId: u }), (Me = S.replay) == null || Me.RecordSurveyShown({ id: u, userAgent: window.navigator.userAgent }), Ot.disable(), y.emit(w.SurveyWillPresent, { name: w.SurveyWillPresent, "survey.id": u });
83
+ let U, D, k, H, V = document.createElement("div");
84
+ const Ce = (I) => {
85
+ const { "view.version": J } = I;
86
86
  J !== b["x-ul-sdk-version"] && st(), y.removeListener("verify.view.version", Ce);
87
87
  };
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 U = P(window.UserLeap), J = ie(U), fe = window.UserLeap.forceDirectEmbed, ve = U["userleap-platform"] === "web";
88
+ y.on("verify.view.version", Ce), window.UserLeap.useMobileStyling = T, rt(b) ? (U = "ul-direct-embeded-frame", D = document.head, k = window, H = !1, (() => {
89
+ const I = P(window.UserLeap), J = ie(I), fe = window.UserLeap.forceDirectEmbed, ve = I["userleap-platform"] === "web";
90
90
  return J || fe && ve;
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: (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 };
91
+ })() && (ot(u, a), V.id = U, window.UserLeap.container.appendChild(V), at(), y.emit(w.SurveyLifeCycle, { state: "presented" }), y.emit(w.SurveyPresented, { name: w.SurveyPresented, "survey.id": u }))) : { frameId: U, contentWinDocHead: D, contentWindow: k, hasOverlay: H, iframe: V } = Tt({ productConfig: c, useMobileStyling: T, surveyId: u, isFeedback: a }), window.UserLeap.frameId = U;
92
+ const G = { apiURL: window.UserLeap._API_URL, cards: g, configureExitOnOverlayClick: (I) => {
93
+ y.once(w.CloseSurveyOnOverlayClick, I);
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: m, startingQuestionIdx: (qe = window.UserLeap.config) == null ? void 0 : qe.startingQuestionIdx, studyType: L, 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 U = document.createElement("script");
102
- return window.UserLeap.nonce && U.setAttribute("nonce", window.UserLeap.nonce), U.id = Ne, U;
101
+ const I = document.createElement("script");
102
+ return window.UserLeap.nonce && I.setAttribute("nonce", window.UserLeap.nonce), I.id = Ne, I;
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: U } = await import("./view-C3KUMRoa.js");
108
- U.configure(G), H && window.UserLeap.container && Te();
107
+ const { default: I } = await import("./view-kh2hxG3p.js");
108
+ I.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", (U) => {
112
- U.target instanceof HTMLScriptElement && U.target.src === ye && window.UserLeap.reportError("loadFrameScript", new Error("Frame script failed to load"));
111
+ }), k == null || k.addEventListener("error", (I) => {
112
+ I.target instanceof HTMLScriptElement && I.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
- const je = { success: !0, surveyState: "ready", surveyId: u, responseGroupUid: f };
115
+ const je = { success: !0, surveyState: "ready", surveyId: u, responseGroupUid: m };
116
116
  return window.UserLeap.isMobileSDK && e && (je.delay = e), je;
117
117
  };
118
118
  function ge(r) {
@@ -170,12 +170,12 @@ const he = "0px", ot = (r, t, n) => {
170
170
  g();
171
171
  }
172
172
  }
173
- return p && ((g, f) => {
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
- 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);
173
+ return p && ((g, m) => {
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 = m ? g.overlayStyleMobile : g.overlayStyle;
175
+ u["background-color"] = E === "light" ? "rgba(255,255,255, 0.95)" : "rgba(0,0,0,0.9)", m || (u.margin = "auto"), window.UserLeap.container && Object.assign(window.UserLeap.container.style, u);
176
176
  })(i, n), Object.assign(r.style, e, l), p;
177
177
  }, Tt = ({ productConfig: r, useMobileStyling: t, surveyId: n, isFeedback: s }) => {
178
- var g, f;
178
+ var g, m;
179
179
  const e = De, i = s && r.desktopDisplay === "slider";
180
180
  ot(n, s, i), jt();
181
181
  const o = document.createElement("iframe");
@@ -192,7 +192,7 @@ const he = "0px", ot = (r, t, n) => {
192
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
- const d = (f = o.contentWindow) == null ? void 0 : f.document;
195
+ const d = (m = o.contentWindow) == null ? void 0 : m.document;
196
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";
@@ -231,9 +231,9 @@ const he = "0px", ot = (r, t, n) => {
231
231
  const l = s.querySelector(".ul-card--matrix_grid"), p = !l && t && n;
232
232
  try {
233
233
  p && (e.style.width = "360px"), i = s.clientHeight, i += ((g) => {
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 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;
234
+ const m = g.querySelector(".sprig-question-body"), u = g.querySelector(".ul-card"), E = g.querySelector(".ul-card-main-content"), f = g.querySelector(".ul-footer"), v = g.querySelector(".sprig-container");
235
+ let L = 0;
236
+ return j(u) && (L += u.scrollHeight - u.clientHeight), j(E) && (L += E.scrollHeight - E.clientHeight), j(m) && (L += m.scrollHeight - m.clientHeight), j(f) && j(v) && v.clientHeight === 0 && (L += f.clientHeight), L;
237
237
  })(r);
238
238
  const d = getComputedStyle(s);
239
239
  a = i;
@@ -298,41 +298,41 @@ const zt = ["bottom-left", "bottom-right", "center-left", "center-right"], ae =
298
298
  c.remove(), y.off(re.SURVEY_FADING_OUT, be);
299
299
  }
300
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
- const [g, f] = o.split("-");
302
- ((m) => {
303
- if (K() || !zt.includes(m)) return;
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);
301
+ const [g, m] = o.split("-");
302
+ ((v) => {
303
+ if (K() || !zt.includes(v)) return;
304
+ const [L, b] = v.split("-"), _ = document.createElement("div");
305
+ _.id = "sprig-feedback-container", _.classList.add(`sprig-feedback-container-${b}`, `sprig-feedback-container-${L}`), document.body.appendChild(_);
306
306
  })(o), c = K(), C = document.createElement("button");
307
307
  const u = document.createElement("div");
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 () => {
309
- const m = document.getElementById("sprig-feedback-error-container");
308
+ u.className = "sprig-feedback-button-label", u.innerText = l, C.appendChild(u), C.id = "sprig-feedback-button", C.classList.add(`sprig-feedback-button-${m}`, `sprig-feedback-button-${g}`, `sprig-feedback-button-${s}`, "fade-in-transition"), y.on(re.SURVEY_FADING_OUT, be), C.addEventListener("click", async () => {
309
+ const v = document.getElementById("sprig-feedback-error-container");
310
310
  if (ct() || pt()) {
311
311
  if (be()) {
312
312
  y.emit(w.SurveyCloseRequested, { name: w.SurveyCloseRequested, initiator: M.FeedbackClosed, studyType: "feedbackButton", "survey.id": d }), y.emit(w.SurveyWillClose, { name: w.SurveyWillClose, initiator: M.FeedbackClosed, studyType: "feedbackButton", "survey.id": d });
313
313
  const b = K();
314
- m && b && (b.remove(), Z = null, h = null);
314
+ v && b && (b.remove(), Z = null, h = null);
315
315
  }
316
316
  return;
317
317
  }
318
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
- const I = await O(A("1", [F], "startFeedbackStudy"), { body: JSON.stringify({ surveyUuid: b }), method: "POST" });
321
- return I.ok ? I.json : null;
319
+ const L = await (async (b) => {
320
+ const _ = await O(A("1", [F], "startFeedbackStudy"), { body: JSON.stringify({ surveyUuid: b }), method: "POST" });
321
+ return _.ok ? _.json : null;
322
322
  })(p);
323
- if (S) y.once(w.SurveyAppeared, Y), X({ ...S, studyType: "feedbackButton" }, n);
323
+ if (L) y.once(w.SurveyAppeared, Y), X({ ...L, 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";
327
327
  }
328
328
  }), c == null || c.appendChild(C), y.emit(w.FeedbackButtonLoaded, { name: w.FeedbackButtonLoaded, "survey.id": d });
329
- const { useMobileStyling: E, _config: { border: _ } } = window.UserLeap;
329
+ const { useMobileStyling: E, _config: { border: f } } = window.UserLeap;
330
330
  if (Ke || E) de(0);
331
331
  else {
332
- const m = document.createElement("div");
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 S = ut();
335
- de(-S);
332
+ const v = document.createElement("div");
333
+ v.id = "sprig-feedback-loading-container", v.className = `sprig-feedback-loading-container sprig-feedback-loading-container-${m}`, v.style.setProperty("--feedback-border", f), h = v, Ie(), c == null || c.appendChild(v);
334
+ const L = ut();
335
+ de(-L);
336
336
  }
337
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 = () => {
@@ -501,9 +501,9 @@ const ne = (r, t = 1) => {
501
501
  }, Gt = ({ isWeb: r, reportingIntervalSeconds: t, thresholds: n, postMetrics: s }) => {
502
502
  _t(n, (e, i) => {
503
503
  var o, a;
504
- if ((o = L.replay) != null && o.isReplayRecording()) {
504
+ if ((o = S.replay) != null && o.isReplayRecording()) {
505
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();
506
+ (a = S.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");
@@ -525,9 +525,9 @@ function te(r) {
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 = L.replay) == null ? void 0 : a.checkPendingHeatmapsUrl()) == null || l.then((p) => {
528
+ })(), At.getItem("sprig.isCapturingHeatmap") && ((l = (a = S.replay) == null ? void 0 : a.checkPendingHeatmapsUrl()) == null || l.then((p) => {
529
529
  var d;
530
- p && ((d = L.replay) == null || d.uploadReadyPendingCaptures(!0));
530
+ p && ((d = S.replay) == null || d.uploadReadyPendingCaptures(!0));
531
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 = () => {
@@ -560,7 +560,7 @@ function Ut(r, t, n, s) {
560
560
  if (r.endsWith("mock_snippet.html")) return;
561
561
  q.info("PageView", { url: r });
562
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 });
563
+ (i = S.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
566
  if (a && a.length) for (let d = 0; d < a.length && (l = it(a[d], r), !l); d++) ;
@@ -615,38 +615,38 @@ function Xt(r) {
615
615
  const Zt = function(r) {
616
616
  if (!window.UserLeap) return;
617
617
  const t = async (e = {}) => {
618
- var m, S, b, I, T;
618
+ var v, L, b, _, T;
619
619
  const { userId: i, anonymousId: o, metadata: a = {}, properties: l, showSurveyCallback: p } = e;
620
620
  let { eventName: d } = e;
621
621
  if (window.UserLeap.debugMode && d !== ft && console.info("[DEBUG] Sprig track", e), r.mode === "test") return;
622
622
  const c = x.getItem("sprig.previewKey") ?? void 0;
623
623
  if (r.requireUserIdForTracking && !window.UserLeap.userId && !i) {
624
- const v = "[Sprig] - Skipping tracking without userId";
625
- return console.warn(v), { success: !1, message: v, surveyState: "no survey" };
624
+ const U = "[Sprig] - Skipping tracking without userId";
625
+ return console.warn(U), { success: !1, message: U, surveyState: "no survey" };
626
626
  }
627
627
  if (!d || d.trim().length === 0) {
628
628
  d = d ? String(d) : "";
629
- const v = "[Sprig] - Invalid event name " + d;
630
- return console.warn(v), { success: !1, message: v, surveyState: "no survey" };
629
+ const U = "[Sprig] - Invalid event name " + d;
630
+ return console.warn(U), { success: !1, message: U, surveyState: "no survey" };
631
631
  }
632
632
  const g = ee ?? window.location.href;
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
- 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
- if (!f.ok) {
636
- const v = "[Sprig] (ERR-421) Failed to track event";
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" };
633
+ a.url || (a.url = g), R("trackStartUrl", g), (L = (v = window.UserLeap) == null ? void 0 : v._config) != null && L.optimizelyEnabled && (ie(P(window.UserLeap)) || oe.getAndSetWebOptimizelyExperiments(), a.optimizelyExperiments = Object.assign({}, oe.getAllOptimizelyExperiments())), (_ = (b = window.UserLeap) == null ? void 0 : b._config) != null && _.launchDarklyEnabled && (a.launchDarklyFlags = ke.getAllLaunchDarklyVariations()), i && (window.UserLeap.userId = i), o && (window.UserLeap.partnerAnonymousId = o), l && (a.eventProperties = l), (T = S.replay) == null || T.RecordEvent({ name: d, url: a.url }), q.info("TrackEvent", { eventName: d });
634
+ const m = 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
+ if (!m.ok) {
636
+ const U = "[Sprig] (ERR-421) Failed to track event";
637
+ return m.reportError && (console.warn(U, m.error), m.error && window.UserLeap.reportError("track", m.error)), { success: !1, message: U, error: m.error, surveyState: "no survey" };
638
638
  }
639
639
  i && R("uid", i), o && R("aid", o);
640
- const u = f.json;
640
+ const u = m.json;
641
641
  u.invalidPreviewKey && x.removeItem("sprig.previewKey");
642
642
  const E = a.trackPageView ? a.url : void 0;
643
- return u != null && u.feedbackButton && wt(u.feedbackButton, void 0, E), await async function(v, D) {
643
+ return u != null && u.feedbackButton && wt(u.feedbackButton, void 0, E), await async function(U, D) {
644
644
  var H, V;
645
645
  let k = !0;
646
- return !(D && ((H = v == null ? void 0 : v.json) != null && H.surveyId) && (window.UserLeap.delayingSurvey = !0, k = await D(v.json.surveyId), window.UserLeap.delayingSurvey = !1, !k)) && ((V = v == null ? void 0 : v.json) != null && V.delay && !window.UserLeap.isMobileSDK && (window.UserLeap.delayingSurvey = !0, await nt(v.json.delay), window.UserLeap.delayingSurvey = !1), k);
647
- }(f, p) ? function(v) {
646
+ return !(D && ((H = U == null ? void 0 : U.json) != null && H.surveyId) && (window.UserLeap.delayingSurvey = !0, k = await D(U.json.surveyId), window.UserLeap.delayingSurvey = !1, !k)) && ((V = U == null ? void 0 : U.json) != null && V.delay && !window.UserLeap.isMobileSDK && (window.UserLeap.delayingSurvey = !0, await nt(U.json.delay), window.UserLeap.delayingSurvey = !1), k);
647
+ }(m, p) ? function(U) {
648
648
  if (!window.UserLeap._config.dismissOnPageChange) return !0;
649
- const D = new URL(v), k = new URL(ee ?? window.location.href);
649
+ const D = new URL(U), 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
652
  }, n = (e, i) => {
@@ -734,7 +734,7 @@ const Zt = function(r) {
734
734
  if (r.mode === "test" || e === window.UserLeap.userId) return;
735
735
  window.UserLeap.userId = e;
736
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));
737
+ o.ok ? (i !== window.UserLeap.visitorId && ((a = S.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
738
  }, async setPartnerAnonymousId(e) {
739
739
  if (window.UserLeap.debugMode && console.info("[DEBUG] Sprig setPartnerAnonymousId", e), e == null) {
740
740
  const i = `[Sprig] - Invalid partnerAnonymousId ${e}`;
@@ -748,16 +748,16 @@ const Zt = function(r) {
748
748
  }, applyStyles(e) {
749
749
  window.UserLeap.customStyles = e, n(window.UserLeap.container, e);
750
750
  }, setWindowDimensions(e, i) {
751
- var g, f;
751
+ var g, m;
752
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
- 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) }));
757
+ c && (window.UserLeap.useMobileStyling && ((g = window.UserLeap.windowDimensions) != null && g.width && (c.style.width = `${window.UserLeap.windowDimensions.width}px`), (m = window.UserLeap.windowDimensions) != null && m.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
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();
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 = S.replay) == null || e.clearUserReplayData(), window.UserLeap._queue.unpause();
761
761
  }, teardown() {
762
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
763
  }, integrateOptimizely(e, i = !0) {
@@ -797,13 +797,13 @@ const Zt = function(r) {
797
797
  Dt(e, i);
798
798
  }, _completeSessionReplay: async ({ surveyId: e, responseGroupUuid: i, eventDigest: o }) => {
799
799
  var a;
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);
800
+ return S.replay ? (a = S.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
801
  }, pauseReplayRecording() {
802
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));
803
+ (i = (e = S.replay) == null ? void 0 : e.isReplayPaused) != null && i.call(e) || ((a = (o = S.replay) == null ? void 0 : o.recordReplayPaused) == null || a.call(o));
804
804
  }, resumeReplayRecording() {
805
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));
806
+ (i = (e = S.replay) == null ? void 0 : e.isReplayPaused) != null && i.call(e) && ((a = (o = S.replay) == null ? void 0 : o.recordReplayResumed) == null || a.call(o), (p = (l = S.replay) == null ? void 0 : l.recordFullSnapshot) == null || p.call(l));
807
807
  } };
808
808
  Object.assign(window.UserLeap, s);
809
809
  };
@@ -816,10 +816,10 @@ function tr(r = {}) {
816
816
  (s = window.SprigLoggerCallback) == null || s.call(window, "Initializing Sprig");
817
817
  const t = new URLSearchParams(window.location.search).get("sprigPreviewKey") ?? "";
818
818
  async function n() {
819
- var g, f, u, E, _;
819
+ var c, g, m, u, E;
820
820
  if (window.UserLeap.loaded) return;
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];
822
- if (!window.UserLeap.envId) {
821
+ if ((c = window.SprigLoggerCallback) == null || c.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 f in window.UserLeap._config) window.UserLeap[f] = window.UserLeap._config[f];
822
+ if (window.Sprig.outstandingTransactionLimit !== void 0 && (r.outstandingTransactionLimit = window.Sprig.outstandingTransactionLimit), !window.UserLeap.envId) {
823
823
  if (!window.UserLeap.appId) throw new Error("Missing Environment id");
824
824
  window.UserLeap.envId = window.UserLeap.appId;
825
825
  }
@@ -832,27 +832,29 @@ function tr(r = {}) {
832
832
  window.UserLeap._API_URL || (window.UserLeap._API_URL = "https://api.sprig.com");
833
833
  const a = [...window.UserLeap._queue];
834
834
  window.UserLeap._queue = new Vt(window.UserLeap, []), window.UserLeap._queue.pause();
835
- for (let m = 0; m < a.length; m++) window.UserLeap._queue.push(a[m]);
835
+ for (let f = 0; f < a.length; f++) window.UserLeap._queue.push(a[f]);
836
836
  const l = e.token;
837
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();
838
838
  const p = ie(P(window.UserLeap));
839
- (f = window.SprigLoggerCallback) == null || f.call(window, "Sprig fetching config");
840
- const d = await async function(m) {
841
- var T, v;
842
- const S = P(window.UserLeap);
839
+ (g = window.SprigLoggerCallback) == null || g.call(window, "Sprig fetching config");
840
+ const d = await async function(f) {
841
+ var _, T;
842
+ const v = P(window.UserLeap);
843
843
  document.addEventListener("securitypolicyviolation", He);
844
- const b = await et(A("1", [z], "config"), { headers: S });
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;
846
- const I = b.json;
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);
844
+ const L = await et(A("1", [z], "config"), { headers: v });
845
+ if (document.removeEventListener("securitypolicyviolation", He), !L.ok) return (_ = window.SprigLoggerCallback) == null || _.call(window, "Sprig config fetch failed"), L.reportError && (console.warn("[Sprig] (ERR-422) Failed to load configuration", L.error), L.error && window.UserLeap.reportError("applyRemoteConfig", L.error)), Ve("Disabled: failed to fetch configuration"), f;
846
+ const b = L.json;
847
+ return b != null && b.disabled ? ((T = window.SprigLoggerCallback) == null || T.call(window, "Sprig config fetch disabled"), Ve(`Disabled: ${b.disabled}`), { disabled: b.disabled }) : Object.assign({}, b, f);
848
848
  }(r);
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) => {
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 });
852
- } });
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, () => {
855
- for (const m in we) delete we[m];
849
+ if ((m = window.SprigLoggerCallback) == null || m.call(window, "Sprig fetched config"), Gt({ isWeb: !p, reportingIntervalSeconds: d.metricsReportingEnabled || d.mobileMetricsReportingEnabled ? d.metricsReportingIntervalSeconds : 0, thresholds: d.metricThresholds, postMetrics: async (f) => {
850
+ var v;
851
+ await O(A("1", [z], "metrics"), { body: f, method: "POST", headers: { "x-ul-replay-enabled": `${!!((v = S.replay) != null && v.isReplayRecording())}` }, shouldDropOnRateLimit: !0 });
852
+ } }), !p) {
853
+ const f = d.alwaysOnReplay ? { userAgent: window.navigator.userAgent, surveyId: d.alwaysOnReplay.surveyId, responseGroupUuid: d.alwaysOnReplay.responseGroupUuid, sdkVersion: "2.35.0", maxDurationSeconds: d.alwaysOnReplay.maxDurationSeconds } : void 0;
854
+ await ((u = S.replay) == null ? void 0 : u.initializeReplay({ maxReplayDurationSeconds: d.maxReplayDurationSeconds, maxInflightRequests: window.UserLeap.maxInflightReplayRequests ?? 2, replaySettings: d.replaySettings, apiUrl: window.UserLeap._API_URL, alwaysOnConfig: f })), Oe = d.replaySettings;
855
+ }
856
+ Zt(d), await Xt(d), window.UserLeap._queue.unpause(), (E = window.SprigLoggerCallback) == null || E.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, () => {
857
+ for (const f in we) delete we[f];
856
858
  });
857
859
  }
858
860
  window.UserLeap.UPDATES = re, window.UserLeap("setPreviewKey", t), document.readyState === "complete" ? n() : window.attachEvent ? window.attachEvent("onload", n) : window.addEventListener("load", () => {
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-Cc-ZSIZD.cjs"),e=require("./core-i4jnjCfb.cjs");exports.DismissReason=i.DismissReason,exports.SprigEvent=i.SprigEvent,exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-BvLxSPGb.cjs"),e=require("./core-CGgKmpNf.cjs");exports.DismissReason=i.DismissReason,exports.SprigEvent=i.SprigEvent,exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig;
package/dist/core.d.ts CHANGED
@@ -1020,7 +1020,7 @@ declare const BOOLEAN_OPERATOR: {
1020
1020
  };
1021
1021
  type BooleanOperator = (typeof BOOLEAN_OPERATOR)[keyof typeof BOOLEAN_OPERATOR];
1022
1022
 
1023
- type CardType = "consentlegal" | "likert" | "matrix" | "multiplechoice" | "multipleselect" | "nps" | "open" | "recordedtask" | "texturlprompt" | "thanks" | "uploading" | "videovoice";
1023
+ type CardType = "consentlegal" | "likert" | "matrix" | "multiplechoice" | "multipleselect" | "nps" | "open" | "rankorder" | "recordedtask" | "texturlprompt" | "thanks" | "uploading" | "videovoice";
1024
1024
  type ConceptUrl = string | null;
1025
1025
  interface BaseCard {
1026
1026
  name: number;
@@ -1028,8 +1028,10 @@ interface BaseCard {
1028
1028
  updatedAt: string;
1029
1029
  value?: unknown;
1030
1030
  type: CardType;
1031
+ groupId?: number;
1031
1032
  }
1032
1033
  type Comparator = "answered" | "contains" | "notcontains" | "list_dni" | "eq" | "given_up" | "gt" | "gte" | "lt" | "lte" | "list_all" | "list_alo" | "list_exact" | "neq" | "partial" | "skipped";
1034
+ type Randomize = "none" | "all";
1033
1035
  type DefaultComparator = Extract<Comparator, "answered" | "skipped">;
1034
1036
  type RoutingOption<C extends Comparator = DefaultComparator> = OldRoutingOption<C> | GroupRoutingOption;
1035
1037
  type OldRoutingOption<C extends Comparator = DefaultComparator> = {
@@ -1052,7 +1054,12 @@ type RoutingGroupOption = {
1052
1054
  type RoutingOptions<C extends Comparator = DefaultComparator> = RoutingOption<C | DefaultComparator>[] | null;
1053
1055
  /** @example <p>Body</p> */
1054
1056
  type RichTextBody = string;
1055
- type PromptActionType = "CONTINUE" | "EXTERNAL";
1057
+ declare enum PromptActionTypeEnum {
1058
+ CONTINUE = "CONTINUE",
1059
+ EXTERNAL = "EXTERNAL",
1060
+ NO_BUTTON = "NO_BUTTON"
1061
+ }
1062
+ type PromptActionType = keyof typeof PromptActionTypeEnum;
1056
1063
  interface TextUrlPromptCard extends BaseCard {
1057
1064
  props: {
1058
1065
  message: string;
@@ -1235,7 +1242,7 @@ interface CommonMultipleChoiceProps {
1235
1242
  * Text when multiple items are selected, such as "2 items selected" / "3 items selected"
1236
1243
  */
1237
1244
  dropdownMultiselectedText?: string;
1238
- randomize: "none" | "all";
1245
+ randomize: Randomize;
1239
1246
  required: boolean;
1240
1247
  };
1241
1248
  }
@@ -1264,7 +1271,7 @@ interface MatrixCard extends BaseCard {
1264
1271
  label: string;
1265
1272
  value: string;
1266
1273
  }[];
1267
- randomize: "none" | "all";
1274
+ randomize: Randomize;
1268
1275
  required: boolean;
1269
1276
  };
1270
1277
  };
@@ -1272,26 +1279,49 @@ interface MatrixCard extends BaseCard {
1272
1279
  }
1273
1280
  interface NPSCard extends BaseCard {
1274
1281
  props: {
1275
- labels: {
1276
- left: string;
1277
- right: string;
1278
- };
1282
+ labels: Labels;
1279
1283
  message: string;
1280
1284
  options: [];
1281
1285
  properties: {
1282
1286
  buttonText?: string;
1283
1287
  captionText: string;
1284
1288
  conceptUrl: null;
1285
- labels: {
1286
- left: string;
1287
- right: string;
1288
- };
1289
+ labels: Labels;
1289
1290
  required: boolean;
1290
1291
  };
1291
1292
  routingOptions: RoutingOptions<"eq" | "gt" | "gte" | "lt" | "lte" | "neq">;
1292
1293
  };
1293
1294
  type: "nps";
1294
1295
  }
1296
+ interface RankOrderOption {
1297
+ createdAt: string;
1298
+ deletedAt: null;
1299
+ id: number;
1300
+ label: string;
1301
+ order: number;
1302
+ productId: number;
1303
+ surveyId: number;
1304
+ surveyQuestionId: number;
1305
+ updatedAt: string;
1306
+ value: string;
1307
+ }
1308
+ interface RankOderType extends BaseCard {
1309
+ props: {
1310
+ labels: Labels;
1311
+ message: string;
1312
+ options: RankOrderOption[];
1313
+ properties: {
1314
+ captionText: string;
1315
+ buttonText?: string;
1316
+ conceptUrl: ConceptUrl;
1317
+ labels: Labels;
1318
+ required: boolean;
1319
+ randomize: Randomize;
1320
+ };
1321
+ routingOptions: RoutingOptions<"eq" | "gt" | "gte" | "lt" | "lte" | "neq">;
1322
+ };
1323
+ type: "rankorder";
1324
+ }
1295
1325
  interface VideoVoiceCard extends BaseCard {
1296
1326
  props: {
1297
1327
  message: string;
@@ -1311,7 +1341,7 @@ interface VideoVoiceCard extends BaseCard {
1311
1341
  };
1312
1342
  type: "videovoice";
1313
1343
  }
1314
- type Card = TextUrlPromptCard | ConsentLegalCard | RecordedTaskCard | LikertCard | OpenTextCard | MatrixCard | MultipleChoiceSingleSelectCard | MultipleChoiceMultiSelectCard | NPSCard | VideoVoiceCard;
1344
+ type Card = TextUrlPromptCard | ConsentLegalCard | RecordedTaskCard | LikertCard | OpenTextCard | MatrixCard | MultipleChoiceSingleSelectCard | MultipleChoiceMultiSelectCard | NPSCard | RankOderType | VideoVoiceCard;
1315
1345
 
1316
1346
  type InteractiveMatchType = "exactly" | "legacy";
1317
1347
  type PageUrlMatchType = "contains" | "exactly" | "legacy" | "notContains" | "regex" | "startsWith";
@@ -1340,7 +1370,7 @@ declare enum DismissReason {
1340
1370
  API = "api",// JS called Sprig('dismissActiveSurvey')
1341
1371
  Override = "override"
1342
1372
  }
1343
- type StudyType = "feedbackButton" | "inProductSurvey";
1373
+ type StudyType = "feedbackButton" | "inProductSurvey" | "longFormSurvey";
1344
1374
  declare enum SprigEvent {
1345
1375
  ReplayCapture = "replay.capture",
1346
1376
  ReplayPaused = "replay.paused",
@@ -1676,6 +1706,7 @@ interface Config extends MobileReplayConfig {
1676
1706
  mode?: string;
1677
1707
  mute?: boolean;
1678
1708
  optimizelyEnabled?: boolean;
1709
+ outstandingTransactionLimit?: number | null;
1679
1710
  overlayStyle: "light";
1680
1711
  overlayStyleMobile: "none";
1681
1712
  pageUrlEvents: PageUrlEvent[];
@@ -1946,6 +1977,7 @@ declare namespace sprigConfig {
1946
1977
  locale?: string;
1947
1978
  maxHeight?: number | string;
1948
1979
  maxInflightReplayRequests?: number;
1980
+ outstandingTransactionLimit?: number | null;
1949
1981
  mobileHeadersJSON?: string;
1950
1982
  nonce?: string;
1951
1983
  partnerAnonymousId: string | null;
@@ -2032,12 +2064,17 @@ declare class SprigAPI {
2032
2064
  SURVEY_WILL_PRESENT: SprigEvent;
2033
2065
  QUESTION_ANSWERED: SprigEvent;
2034
2066
  REPLAY_CAPTURE: SprigEvent;
2035
- CLOSE_SURVEY_ON_OVERLAY_CLICK: SprigEvent;
2067
+ CLOSE_SURVEY_ON_OVERLAY_CLICK: SprigEvent; /**
2068
+ * Tracks a page view with the provided URL and additional event properties.
2069
+ */
2036
2070
  VISITOR_ID_UPDATED: SprigEvent;
2037
2071
  DATA: {
2038
2072
  DISMISS_REASONS: {
2039
2073
  API: DismissReason;
2040
2074
  CLOSED: DismissReason;
2075
+ /**
2076
+ * Apply a css string representing the customized styles
2077
+ */
2041
2078
  COMPLETE: DismissReason;
2042
2079
  PAGE_CHANGE: DismissReason;
2043
2080
  OVERRIDE: DismissReason;
package/dist/core.js CHANGED
@@ -1,5 +1,5 @@
1
- import { D as r, S as e } from "./metricsReporter-CEzz54S2.js";
2
- import { S as o, c as p, s as t } from "./core-DE6rbUl1.js";
1
+ import { D as r, S as e } from "./metricsReporter-BJVpNufn.js";
2
+ import { S as o, c as p, s as t } from "./core-De2JxeSJ.js";
3
3
  export {
4
4
  r as DismissReason,
5
5
  o as SprigAPI,
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-i4jnjCfb.cjs");require("./replay.cjs");const r=require("./metricsReporter-Cc-ZSIZD.cjs");exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig,exports.DismissReason=r.DismissReason,exports.SprigEvent=r.SprigEvent;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-CGgKmpNf.cjs");require("./replay.cjs");const r=require("./metricsReporter-BvLxSPGb.cjs");exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig,exports.DismissReason=r.DismissReason,exports.SprigEvent=r.SprigEvent;