@stacksee/analytics 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4198 @@
1
+ var g = typeof window < "u" ? window : void 0, K = typeof globalThis < "u" ? globalThis : g, Er = Array.prototype, ys = Er.forEach, bs = Er.indexOf, ie = K == null ? void 0 : K.navigator, y = K == null ? void 0 : K.document, Z = K == null ? void 0 : K.location, Ii = K == null ? void 0 : K.fetch, Fi = K != null && K.XMLHttpRequest && "withCredentials" in new K.XMLHttpRequest() ? K.XMLHttpRequest : void 0, ws = K == null ? void 0 : K.AbortController, J = ie == null ? void 0 : ie.userAgent, x = g ?? {}, xe = { DEBUG: !1, LIB_VERSION: "1.248.0" }, hi = "$copy_autocapture", Ln = ["$snapshot", "$pageview", "$pageleave", "$set", "survey dismissed", "survey sent", "survey shown", "$identify", "$groupidentify", "$create_alias", "$$client_ingestion_warning", "$web_experiment_applied", "$feature_enrollment_update", "$feature_flag_called"], Se = function(s) {
2
+ return s.GZipJS = "gzip-js", s.Base64 = "base64", s;
3
+ }({}), Dn = ["fatal", "error", "warning", "log", "info", "debug"];
4
+ function I(s, e) {
5
+ return s.indexOf(e) !== -1;
6
+ }
7
+ var ii = function(s) {
8
+ return s.trim();
9
+ }, $i = function(s) {
10
+ return s.replace(/^\$/, "");
11
+ }, Nn = Array.isArray, kr = Object.prototype, xr = kr.hasOwnProperty, si = kr.toString, C = Nn || function(s) {
12
+ return si.call(s) === "[object Array]";
13
+ }, ae = (s) => typeof s == "function", O = (s) => s === Object(s) && !C(s), tt = (s) => {
14
+ if (O(s)) {
15
+ for (var e in s) if (xr.call(s, e)) return !1;
16
+ return !0;
17
+ }
18
+ return !1;
19
+ }, _ = (s) => s === void 0, A = (s) => si.call(s) == "[object String]", Pi = (s) => A(s) && s.trim().length === 0, Ne = (s) => s === null, P = (s) => _(s) || Ne(s), z = (s) => si.call(s) == "[object Number]", ve = (s) => si.call(s) === "[object Boolean]", qn = (s) => s instanceof FormData, Bn = (s) => I(Ln, s), Sr = (s) => {
20
+ var e = { t: function(t) {
21
+ if (g && (xe.DEBUG || x.POSTHOG_DEBUG) && !_(g.console) && g.console) {
22
+ for (var i = ("__rrweb_original__" in g.console[t]) ? g.console[t].__rrweb_original__ : g.console[t], r = arguments.length, n = new Array(r > 1 ? r - 1 : 0), a = 1; a < r; a++) n[a - 1] = arguments[a];
23
+ i(s, ...n);
24
+ }
25
+ }, info: function() {
26
+ for (var t = arguments.length, i = new Array(t), r = 0; r < t; r++) i[r] = arguments[r];
27
+ e.t("log", ...i);
28
+ }, warn: function() {
29
+ for (var t = arguments.length, i = new Array(t), r = 0; r < t; r++) i[r] = arguments[r];
30
+ e.t("warn", ...i);
31
+ }, error: function() {
32
+ for (var t = arguments.length, i = new Array(t), r = 0; r < t; r++) i[r] = arguments[r];
33
+ e.t("error", ...i);
34
+ }, critical: function() {
35
+ for (var t = arguments.length, i = new Array(t), r = 0; r < t; r++) i[r] = arguments[r];
36
+ console.error(s, ...i);
37
+ }, uninitializedWarning: (t) => {
38
+ e.error("You must initialize PostHog before calling " + t);
39
+ }, createLogger: (t) => Sr(s + " " + t) };
40
+ return e;
41
+ }, w = Sr("[PostHog.js]"), j = w.createLogger, Hn = j("[ExternalScriptsLoader]"), Es = (s, e, t) => {
42
+ if (s.config.disable_external_dependency_loading) return Hn.warn(e + " was requested but loading of external scripts is disabled."), t("Loading of external scripts is disabled");
43
+ var i = y == null ? void 0 : y.querySelectorAll("script");
44
+ if (i) {
45
+ for (var r = 0; r < i.length; r++) if (i[r].src === e) return t();
46
+ }
47
+ var n = () => {
48
+ if (!y) return t("document not found");
49
+ var a = y.createElement("script");
50
+ if (a.type = "text/javascript", a.crossOrigin = "anonymous", a.src = e, a.onload = (u) => t(void 0, u), a.onerror = (u) => t(u), s.config.prepare_external_dependency_script && (a = s.config.prepare_external_dependency_script(a)), !a) return t("prepare_external_dependency_script returned null");
51
+ var o, l = y.querySelectorAll("body > script");
52
+ l.length > 0 ? (o = l[0].parentNode) == null || o.insertBefore(a, l[0]) : y.body.appendChild(a);
53
+ };
54
+ y != null && y.body ? n() : y == null || y.addEventListener("DOMContentLoaded", n);
55
+ };
56
+ function m() {
57
+ return m = Object.assign ? Object.assign.bind() : function(s) {
58
+ for (var e = 1; e < arguments.length; e++) {
59
+ var t = arguments[e];
60
+ for (var i in t) ({}).hasOwnProperty.call(t, i) && (s[i] = t[i]);
61
+ }
62
+ return s;
63
+ }, m.apply(null, arguments);
64
+ }
65
+ function Ir(s, e) {
66
+ if (s == null) return {};
67
+ var t = {};
68
+ for (var i in s) if ({}.hasOwnProperty.call(s, i)) {
69
+ if (e.indexOf(i) !== -1) continue;
70
+ t[i] = s[i];
71
+ }
72
+ return t;
73
+ }
74
+ x.__PosthogExtensions__ = x.__PosthogExtensions__ || {}, x.__PosthogExtensions__.loadExternalDependency = (s, e, t) => {
75
+ var i = "/static/" + e + ".js?v=" + s.version;
76
+ if (e === "remote-config" && (i = "/array/" + s.config.token + "/config.js"), e === "toolbar") {
77
+ var r = 3e5;
78
+ i = i + "&t=" + Math.floor(Date.now() / r) * r;
79
+ }
80
+ var n = s.requestRouter.endpointFor("assets", i);
81
+ Es(s, n, t);
82
+ }, x.__PosthogExtensions__.loadSiteApp = (s, e, t) => {
83
+ var i = s.requestRouter.endpointFor("api", e);
84
+ Es(s, i, t);
85
+ };
86
+ var jt = {};
87
+ function Ae(s, e, t) {
88
+ if (C(s)) {
89
+ if (ys && s.forEach === ys) s.forEach(e, t);
90
+ else if ("length" in s && s.length === +s.length) {
91
+ for (var i = 0, r = s.length; i < r; i++) if (i in s && e.call(t, s[i], i) === jt) return;
92
+ }
93
+ }
94
+ }
95
+ function R(s, e, t) {
96
+ if (!P(s)) {
97
+ if (C(s)) return Ae(s, e, t);
98
+ if (qn(s)) {
99
+ for (var i of s.entries()) if (e.call(t, i[1], i[0]) === jt) return;
100
+ } else for (var r in s) if (xr.call(s, r) && e.call(t, s[r], r) === jt) return;
101
+ }
102
+ }
103
+ var D = function(s) {
104
+ for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++) t[i - 1] = arguments[i];
105
+ return Ae(t, function(r) {
106
+ for (var n in r) r[n] !== void 0 && (s[n] = r[n]);
107
+ }), s;
108
+ }, ri = function(s) {
109
+ for (var e = arguments.length, t = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++) t[i - 1] = arguments[i];
110
+ return Ae(t, function(r) {
111
+ Ae(r, function(n) {
112
+ s.push(n);
113
+ });
114
+ }), s;
115
+ };
116
+ function qt(s) {
117
+ for (var e = Object.keys(s), t = e.length, i = new Array(t); t--; ) i[t] = [e[t], s[e[t]]];
118
+ return i;
119
+ }
120
+ var ks = function(s) {
121
+ try {
122
+ return s();
123
+ } catch {
124
+ return;
125
+ }
126
+ }, jn = function(s) {
127
+ return function() {
128
+ try {
129
+ for (var e = arguments.length, t = new Array(e), i = 0; i < e; i++) t[i] = arguments[i];
130
+ return s.apply(this, t);
131
+ } catch (r) {
132
+ w.critical("Implementation error. Please turn on debug mode and open a ticket on https://app.posthog.com/home#panel=support%3Asupport%3A."), w.critical(r);
133
+ }
134
+ };
135
+ }, ts = function(s) {
136
+ var e = {};
137
+ return R(s, function(t, i) {
138
+ (A(t) && t.length > 0 || z(t)) && (e[i] = t);
139
+ }), e;
140
+ };
141
+ function Un(s, e) {
142
+ return t = s, i = (n) => A(n) && !Ne(e) ? n.slice(0, e) : n, r = /* @__PURE__ */ new Set(), function n(a, o) {
143
+ return a !== Object(a) ? i ? i(a, o) : a : r.has(a) ? void 0 : (r.add(a), C(a) ? (l = [], Ae(a, (u) => {
144
+ l.push(n(u));
145
+ })) : (l = {}, R(a, (u, c) => {
146
+ r.has(u) || (l[c] = n(u, c));
147
+ })), l);
148
+ var l;
149
+ }(t);
150
+ var t, i, r;
151
+ }
152
+ var Wn = ["herokuapp.com", "vercel.app", "netlify.app"];
153
+ function zn(s) {
154
+ var e = s == null ? void 0 : s.hostname;
155
+ if (!A(e)) return !1;
156
+ var t = e.split(".").slice(-2).join(".");
157
+ for (var i of Wn) if (t === i) return !1;
158
+ return !0;
159
+ }
160
+ function Fr(s, e) {
161
+ for (var t = 0; t < s.length; t++) if (e(s[t])) return s[t];
162
+ }
163
+ function T(s, e, t, i) {
164
+ var { capture: r = !1, passive: n = !0 } = i ?? {};
165
+ s == null || s.addEventListener(e, t, { capture: r, passive: n });
166
+ }
167
+ var $r = "$people_distinct_id", ft = "__alias", vt = "__timers", xs = "$autocapture_disabled_server_side", Ri = "$heatmaps_enabled_server_side", Ss = "$exception_capture_enabled_server_side", Mi = "$error_tracking_suppression_rules", Is = "$web_vitals_enabled_server_side", Pr = "$dead_clicks_enabled_server_side", Fs = "$web_vitals_allowed_metrics", Ci = "$session_recording_enabled_server_side", $s = "$console_log_recording_enabled_server_side", Ps = "$session_recording_network_payload_capture", Rs = "$session_recording_masking", Ms = "$session_recording_canvas_recording", Cs = "$replay_sample_rate", Ts = "$replay_minimum_duration", Os = "$replay_script_config", Ut = "$sesid", _t = "$session_is_sampled", Ti = "$session_recording_url_trigger_activated_session", Oi = "$session_recording_event_trigger_activated_session", it = "$enabled_feature_flags", Bt = "$early_access_features", Ai = "$feature_flag_details", mt = "$stored_person_properties", We = "$stored_group_properties", Li = "$surveys", Rt = "$surveys_activated", Wt = "$flag_call_reported", Ee = "$user_state", Di = "$client_session_props", Ni = "$capture_rate_limit", qi = "$initial_campaign_params", Bi = "$initial_referrer_info", zt = "$initial_person_info", Gt = "$epp", Rr = "__POSTHOG_TOOLBAR__", As = "$posthog_cookieless", Gn = [$r, ft, "__cmpns", vt, Ci, Ri, Ut, it, Mi, Ee, Bt, Ai, We, mt, Li, Wt, Di, Ni, qi, Bi, Gt, zt];
168
+ function Ls(s) {
169
+ return s instanceof Element && (s.id === Rr || !(s.closest == null || !s.closest(".toolbar-global-fade-container")));
170
+ }
171
+ function ni(s) {
172
+ return !!s && s.nodeType === 1;
173
+ }
174
+ function Le(s, e) {
175
+ return !!s && !!s.tagName && s.tagName.toLowerCase() === e.toLowerCase();
176
+ }
177
+ function Mr(s) {
178
+ return !!s && s.nodeType === 3;
179
+ }
180
+ function Cr(s) {
181
+ return !!s && s.nodeType === 11;
182
+ }
183
+ function is(s) {
184
+ return s ? ii(s).split(/\s+/) : [];
185
+ }
186
+ function Ds(s) {
187
+ var e = g == null ? void 0 : g.location.href;
188
+ return !!(e && s && s.some((t) => e.match(t)));
189
+ }
190
+ function Vt(s) {
191
+ var e = "";
192
+ switch (typeof s.className) {
193
+ case "string":
194
+ e = s.className;
195
+ break;
196
+ case "object":
197
+ e = (s.className && "baseVal" in s.className ? s.className.baseVal : null) || s.getAttribute("class") || "";
198
+ break;
199
+ default:
200
+ e = "";
201
+ }
202
+ return is(e);
203
+ }
204
+ function Tr(s) {
205
+ return P(s) ? null : ii(s).split(/(\s+)/).filter((e) => at(e)).join("").replace(/[\r\n]/g, " ").replace(/[ ]+/g, " ").substring(0, 255);
206
+ }
207
+ function ai(s) {
208
+ var e = "";
209
+ return ji(s) && !Lr(s) && s.childNodes && s.childNodes.length && R(s.childNodes, function(t) {
210
+ var i;
211
+ Mr(t) && t.textContent && (e += (i = Tr(t.textContent)) !== null && i !== void 0 ? i : "");
212
+ }), ii(e);
213
+ }
214
+ function Or(s) {
215
+ return _(s.target) ? s.srcElement || null : (e = s.target) != null && e.shadowRoot ? s.composedPath()[0] || null : s.target || null;
216
+ var e;
217
+ }
218
+ var Hi = ["a", "button", "form", "input", "select", "textarea", "label"];
219
+ function Ar(s) {
220
+ var e = s.parentNode;
221
+ return !(!e || !ni(e)) && e;
222
+ }
223
+ function Vn(s, e, t, i, r) {
224
+ var n, a, o;
225
+ if (t === void 0 && (t = void 0), !g || !s || Le(s, "html") || !ni(s) || (n = t) != null && n.url_allowlist && !Ds(t.url_allowlist) || (a = t) != null && a.url_ignorelist && Ds(t.url_ignorelist)) return !1;
226
+ if ((o = t) != null && o.dom_event_allowlist) {
227
+ var l = t.dom_event_allowlist;
228
+ if (l && !l.some((b) => e.type === b)) return !1;
229
+ }
230
+ for (var u = !1, c = [s], p = !0, h = s; h.parentNode && !Le(h, "body"); ) if (Cr(h.parentNode)) c.push(h.parentNode.host), h = h.parentNode.host;
231
+ else {
232
+ if (!(p = Ar(h))) break;
233
+ if (i || Hi.indexOf(p.tagName.toLowerCase()) > -1) u = !0;
234
+ else {
235
+ var d = g.getComputedStyle(p);
236
+ d && d.getPropertyValue("cursor") === "pointer" && (u = !0);
237
+ }
238
+ c.push(p), h = p;
239
+ }
240
+ if (!function(b, E) {
241
+ var k = E == null ? void 0 : E.element_allowlist;
242
+ if (_(k)) return !0;
243
+ var S, $ = function(V) {
244
+ if (k.some((B) => V.tagName.toLowerCase() === B)) return { v: !0 };
245
+ };
246
+ for (var L of b) if (S = $(L)) return S.v;
247
+ return !1;
248
+ }(c, t) || !function(b, E) {
249
+ var k = E == null ? void 0 : E.css_selector_allowlist;
250
+ if (_(k)) return !0;
251
+ var S, $ = function(V) {
252
+ if (k.some((B) => V.matches(B))) return { v: !0 };
253
+ };
254
+ for (var L of b) if (S = $(L)) return S.v;
255
+ return !1;
256
+ }(c, t)) return !1;
257
+ var v = g.getComputedStyle(s);
258
+ if (v && v.getPropertyValue("cursor") === "pointer" && e.type === "click") return !0;
259
+ var f = s.tagName.toLowerCase();
260
+ switch (f) {
261
+ case "html":
262
+ return !1;
263
+ case "form":
264
+ return (r || ["submit"]).indexOf(e.type) >= 0;
265
+ case "input":
266
+ case "select":
267
+ case "textarea":
268
+ return (r || ["change", "click"]).indexOf(e.type) >= 0;
269
+ default:
270
+ return u ? (r || ["click"]).indexOf(e.type) >= 0 : (r || ["click"]).indexOf(e.type) >= 0 && (Hi.indexOf(f) > -1 || s.getAttribute("contenteditable") === "true");
271
+ }
272
+ }
273
+ function ji(s) {
274
+ for (var e = s; e.parentNode && !Le(e, "body"); e = e.parentNode) {
275
+ var t = Vt(e);
276
+ if (I(t, "ph-sensitive") || I(t, "ph-no-capture")) return !1;
277
+ }
278
+ if (I(Vt(s), "ph-include")) return !0;
279
+ var i = s.type || "";
280
+ if (A(i)) switch (i.toLowerCase()) {
281
+ case "hidden":
282
+ case "password":
283
+ return !1;
284
+ }
285
+ var r = s.name || s.id || "";
286
+ return !(A(r) && /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(r.replace(/[^a-zA-Z0-9]/g, "")));
287
+ }
288
+ function Lr(s) {
289
+ return !!(Le(s, "input") && !["button", "checkbox", "submit", "reset"].includes(s.type) || Le(s, "select") || Le(s, "textarea") || s.getAttribute("contenteditable") === "true");
290
+ }
291
+ var Dr = "(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})", Xn = new RegExp("^(?:" + Dr + ")$"), Yn = new RegExp(Dr), Nr = "\\d{3}-?\\d{2}-?\\d{4}", Jn = new RegExp("^(" + Nr + ")$"), Zn = new RegExp("(" + Nr + ")");
292
+ function at(s, e) {
293
+ return e === void 0 && (e = !0), !(P(s) || A(s) && (s = ii(s), (e ? Xn : Yn).test((s || "").replace(/[- ]/g, "")) || (e ? Jn : Zn).test(s)));
294
+ }
295
+ function qr(s) {
296
+ var e = ai(s);
297
+ return at(e = (e + " " + Br(s)).trim()) ? e : "";
298
+ }
299
+ function Br(s) {
300
+ var e = "";
301
+ return s && s.childNodes && s.childNodes.length && R(s.childNodes, function(t) {
302
+ var i;
303
+ if (t && ((i = t.tagName) == null ? void 0 : i.toLowerCase()) === "span") try {
304
+ var r = ai(t);
305
+ e = (e + " " + r).trim(), t.childNodes && t.childNodes.length && (e = (e + " " + Br(t)).trim());
306
+ } catch (n) {
307
+ w.error("[AutoCapture]", n);
308
+ }
309
+ }), e;
310
+ }
311
+ function Kn(s) {
312
+ return function(e) {
313
+ var t = e.map((i) => {
314
+ var r, n, a = "";
315
+ if (i.tag_name && (a += i.tag_name), i.attr_class) for (var o of (i.attr_class.sort(), i.attr_class)) a += "." + o.replace(/"/g, "");
316
+ var l = m({}, i.text ? { text: i.text } : {}, { "nth-child": (r = i.nth_child) !== null && r !== void 0 ? r : 0, "nth-of-type": (n = i.nth_of_type) !== null && n !== void 0 ? n : 0 }, i.href ? { href: i.href } : {}, i.attr_id ? { attr_id: i.attr_id } : {}, i.attributes), u = {};
317
+ return qt(l).sort((c, p) => {
318
+ var [h] = c, [d] = p;
319
+ return h.localeCompare(d);
320
+ }).forEach((c) => {
321
+ var [p, h] = c;
322
+ return u[Ns(p.toString())] = Ns(h.toString());
323
+ }), a += ":", a += qt(u).map((c) => {
324
+ var [p, h] = c;
325
+ return p + '="' + h + '"';
326
+ }).join("");
327
+ });
328
+ return t.join(";");
329
+ }(function(e) {
330
+ return e.map((t) => {
331
+ var i, r, n = { text: (i = t.$el_text) == null ? void 0 : i.slice(0, 400), tag_name: t.tag_name, href: (r = t.attr__href) == null ? void 0 : r.slice(0, 2048), attr_class: Qn(t), attr_id: t.attr__id, nth_child: t.nth_child, nth_of_type: t.nth_of_type, attributes: {} };
332
+ return qt(t).filter((a) => {
333
+ var [o] = a;
334
+ return o.indexOf("attr__") === 0;
335
+ }).forEach((a) => {
336
+ var [o, l] = a;
337
+ return n.attributes[o] = l;
338
+ }), n;
339
+ });
340
+ }(s));
341
+ }
342
+ function Ns(s) {
343
+ return s.replace(/"|\\"/g, '\\"');
344
+ }
345
+ function Qn(s) {
346
+ var e = s.attr__class;
347
+ return e ? C(e) ? e : is(e) : void 0;
348
+ }
349
+ class Hr {
350
+ constructor() {
351
+ this.clicks = [];
352
+ }
353
+ isRageClick(e, t, i) {
354
+ var r = this.clicks[this.clicks.length - 1];
355
+ if (r && Math.abs(e - r.x) + Math.abs(t - r.y) < 30 && i - r.timestamp < 1e3) {
356
+ if (this.clicks.push({ x: e, y: t, timestamp: i }), this.clicks.length === 3) return !0;
357
+ } else this.clicks = [{ x: e, y: t, timestamp: i }];
358
+ return !1;
359
+ }
360
+ }
361
+ var ea = ["localhost", "127.0.0.1"], ot = (s) => {
362
+ var e = y == null ? void 0 : y.createElement("a");
363
+ return _(e) ? null : (e.href = s, e);
364
+ }, ta = function(s, e) {
365
+ var t, i;
366
+ e === void 0 && (e = "&");
367
+ var r = [];
368
+ return R(s, function(n, a) {
369
+ _(n) || _(a) || a === "undefined" || (t = encodeURIComponent(((o) => o instanceof File)(n) ? n.name : n.toString()), i = encodeURIComponent(a), r[r.length] = i + "=" + t);
370
+ }), r.join(e);
371
+ }, Xt = function(s, e) {
372
+ for (var t, i = ((s.split("#")[0] || "").split(/\?(.*)/)[1] || "").replace(/^\?+/g, "").split("&"), r = 0; r < i.length; r++) {
373
+ var n = i[r].split("=");
374
+ if (n[0] === e) {
375
+ t = n;
376
+ break;
377
+ }
378
+ }
379
+ if (!C(t) || t.length < 2) return "";
380
+ var a = t[1];
381
+ try {
382
+ a = decodeURIComponent(a);
383
+ } catch {
384
+ w.error("Skipping decoding for malformed query param: " + a);
385
+ }
386
+ return a.replace(/\+/g, " ");
387
+ }, ss = function(s, e, t) {
388
+ if (!s || !e || !e.length) return s;
389
+ for (var i = s.split("#"), r = i[0] || "", n = i[1], a = r.split("?"), o = a[1], l = a[0], u = (o || "").split("&"), c = [], p = 0; p < u.length; p++) {
390
+ var h = u[p].split("=");
391
+ C(h) && (e.includes(h[0]) ? c.push(h[0] + "=" + t) : c.push(u[p]));
392
+ }
393
+ var d = l;
394
+ return o != null && (d += "?" + c.join("&")), n != null && (d += "#" + n), d;
395
+ }, Yt = function(s, e) {
396
+ var t = s.match(new RegExp(e + "=([^&]*)"));
397
+ return t ? t[1] : null;
398
+ }, qs = j("[AutoCapture]");
399
+ function di(s, e) {
400
+ return e.length > s ? e.slice(0, s) + "..." : e;
401
+ }
402
+ function ia(s) {
403
+ if (s.previousElementSibling) return s.previousElementSibling;
404
+ var e = s;
405
+ do
406
+ e = e.previousSibling;
407
+ while (e && !ni(e));
408
+ return e;
409
+ }
410
+ function sa(s, e, t, i) {
411
+ var r = s.tagName.toLowerCase(), n = { tag_name: r };
412
+ Hi.indexOf(r) > -1 && !t && (r.toLowerCase() === "a" || r.toLowerCase() === "button" ? n.$el_text = di(1024, qr(s)) : n.$el_text = di(1024, ai(s)));
413
+ var a = Vt(s);
414
+ a.length > 0 && (n.classes = a.filter(function(c) {
415
+ return c !== "";
416
+ })), R(s.attributes, function(c) {
417
+ var p;
418
+ if ((!Lr(s) || ["name", "id", "class", "aria-label"].indexOf(c.name) !== -1) && (i == null || !i.includes(c.name)) && !e && at(c.value) && (p = c.name, !A(p) || p.substring(0, 10) !== "_ngcontent" && p.substring(0, 7) !== "_nghost")) {
419
+ var h = c.value;
420
+ c.name === "class" && (h = is(h).join(" ")), n["attr__" + c.name] = di(1024, h);
421
+ }
422
+ });
423
+ for (var o = 1, l = 1, u = s; u = ia(u); ) o++, u.tagName === s.tagName && l++;
424
+ return n.nth_child = o, n.nth_of_type = l, n;
425
+ }
426
+ function ra(s, e) {
427
+ for (var t, i, { e: r, maskAllElementAttributes: n, maskAllText: a, elementAttributeIgnoreList: o, elementsChainAsString: l } = e, u = [s], c = s; c.parentNode && !Le(c, "body"); ) Cr(c.parentNode) ? (u.push(c.parentNode.host), c = c.parentNode.host) : (u.push(c.parentNode), c = c.parentNode);
428
+ var p, h = [], d = {}, v = !1, f = !1;
429
+ if (R(u, ($) => {
430
+ var L = ji($);
431
+ $.tagName.toLowerCase() === "a" && (v = $.getAttribute("href"), v = L && v && at(v) && v), I(Vt($), "ph-no-capture") && (f = !0), h.push(sa($, n, a, o));
432
+ var V = function(B) {
433
+ if (!ji(B)) return {};
434
+ var F = {};
435
+ return R(B.attributes, function(he) {
436
+ if (he.name && he.name.indexOf("data-ph-capture-attribute") === 0) {
437
+ var ee = he.name.replace("data-ph-capture-attribute-", ""), ue = he.value;
438
+ ee && ue && at(ue) && (F[ee] = ue);
439
+ }
440
+ }), F;
441
+ }($);
442
+ D(d, V);
443
+ }), f) return { props: {}, explicitNoCapture: f };
444
+ if (a || (s.tagName.toLowerCase() === "a" || s.tagName.toLowerCase() === "button" ? h[0].$el_text = qr(s) : h[0].$el_text = ai(s)), v) {
445
+ var b, E;
446
+ h[0].attr__href = v;
447
+ var k = (b = ot(v)) == null ? void 0 : b.host, S = g == null || (E = g.location) == null ? void 0 : E.host;
448
+ k && S && k !== S && (p = v);
449
+ }
450
+ return { props: D({ $event_type: r.type, $ce_version: 1 }, l ? {} : { $elements: h }, { $elements_chain: Kn(h) }, (t = h[0]) != null && t.$el_text ? { $el_text: (i = h[0]) == null ? void 0 : i.$el_text } : {}, p && r.type === "click" ? { $external_click_url: p } : {}, d) };
451
+ }
452
+ class na {
453
+ constructor(e) {
454
+ this.i = !1, this.o = null, this.rageclicks = new Hr(), this.h = !1, this.instance = e, this.m = null;
455
+ }
456
+ get S() {
457
+ var e, t, i = O(this.instance.config.autocapture) ? this.instance.config.autocapture : {};
458
+ return i.url_allowlist = (e = i.url_allowlist) == null ? void 0 : e.map((r) => new RegExp(r)), i.url_ignorelist = (t = i.url_ignorelist) == null ? void 0 : t.map((r) => new RegExp(r)), i;
459
+ }
460
+ $() {
461
+ if (this.isBrowserSupported()) {
462
+ if (g && y) {
463
+ var e = (i) => {
464
+ i = i || (g == null ? void 0 : g.event);
465
+ try {
466
+ this.k(i);
467
+ } catch (r) {
468
+ qs.error("Failed to capture event", r);
469
+ }
470
+ };
471
+ if (T(y, "submit", e, { capture: !0 }), T(y, "change", e, { capture: !0 }), T(y, "click", e, { capture: !0 }), this.S.capture_copied_text) {
472
+ var t = (i) => {
473
+ i = i || (g == null ? void 0 : g.event), this.k(i, hi);
474
+ };
475
+ T(y, "copy", t, { capture: !0 }), T(y, "cut", t, { capture: !0 });
476
+ }
477
+ }
478
+ } else qs.info("Disabling Automatic Event Collection because this browser is not supported");
479
+ }
480
+ startIfEnabled() {
481
+ this.isEnabled && !this.i && (this.$(), this.i = !0);
482
+ }
483
+ onRemoteConfig(e) {
484
+ e.elementsChainAsString && (this.h = e.elementsChainAsString), this.instance.persistence && this.instance.persistence.register({ [xs]: !!e.autocapture_opt_out }), this.o = !!e.autocapture_opt_out, this.startIfEnabled();
485
+ }
486
+ setElementSelectors(e) {
487
+ this.m = e;
488
+ }
489
+ getElementSelectors(e) {
490
+ var t, i = [];
491
+ return (t = this.m) == null || t.forEach((r) => {
492
+ var n = y == null ? void 0 : y.querySelectorAll(r);
493
+ n == null || n.forEach((a) => {
494
+ e === a && i.push(r);
495
+ });
496
+ }), i;
497
+ }
498
+ get isEnabled() {
499
+ var e, t, i = (e = this.instance.persistence) == null ? void 0 : e.props[xs], r = this.o;
500
+ if (Ne(r) && !ve(i) && !this.instance.config.advanced_disable_decide) return !1;
501
+ var n = (t = this.o) !== null && t !== void 0 ? t : !!i;
502
+ return !!this.instance.config.autocapture && !n;
503
+ }
504
+ k(e, t) {
505
+ if (t === void 0 && (t = "$autocapture"), this.isEnabled) {
506
+ var i, r = Or(e);
507
+ Mr(r) && (r = r.parentNode || null), t === "$autocapture" && e.type === "click" && e instanceof MouseEvent && this.instance.config.rageclick && (i = this.rageclicks) != null && i.isRageClick(e.clientX, e.clientY, (/* @__PURE__ */ new Date()).getTime()) && this.k(e, "$rageclick");
508
+ var n = t === hi;
509
+ if (r && Vn(r, e, this.S, n, n ? ["copy", "cut"] : void 0)) {
510
+ var { props: a, explicitNoCapture: o } = ra(r, { e, maskAllElementAttributes: this.instance.config.mask_all_element_attributes, maskAllText: this.instance.config.mask_all_text, elementAttributeIgnoreList: this.S.element_attribute_ignorelist, elementsChainAsString: this.h });
511
+ if (o) return !1;
512
+ var l = this.getElementSelectors(r);
513
+ if (l && l.length > 0 && (a.$element_selectors = l), t === hi) {
514
+ var u, c = Tr(g == null || (u = g.getSelection()) == null ? void 0 : u.toString()), p = e.type || "clipboard";
515
+ if (!c) return !1;
516
+ a.$selected_content = c, a.$copy_type = p;
517
+ }
518
+ return this.instance.capture(t, a), !0;
519
+ }
520
+ }
521
+ }
522
+ isBrowserSupported() {
523
+ return ae(y == null ? void 0 : y.querySelectorAll);
524
+ }
525
+ }
526
+ Math.trunc || (Math.trunc = function(s) {
527
+ return s < 0 ? Math.ceil(s) : Math.floor(s);
528
+ }), Number.isInteger || (Number.isInteger = function(s) {
529
+ return z(s) && isFinite(s) && Math.floor(s) === s;
530
+ });
531
+ var Bs = "0123456789abcdef";
532
+ class Jt {
533
+ constructor(e) {
534
+ if (this.bytes = e, e.length !== 16) throw new TypeError("not 128-bit length");
535
+ }
536
+ static fromFieldsV7(e, t, i, r) {
537
+ if (!Number.isInteger(e) || !Number.isInteger(t) || !Number.isInteger(i) || !Number.isInteger(r) || e < 0 || t < 0 || i < 0 || r < 0 || e > 281474976710655 || t > 4095 || i > 1073741823 || r > 4294967295) throw new RangeError("invalid field value");
538
+ var n = new Uint8Array(16);
539
+ return n[0] = e / Math.pow(2, 40), n[1] = e / Math.pow(2, 32), n[2] = e / Math.pow(2, 24), n[3] = e / Math.pow(2, 16), n[4] = e / Math.pow(2, 8), n[5] = e, n[6] = 112 | t >>> 8, n[7] = t, n[8] = 128 | i >>> 24, n[9] = i >>> 16, n[10] = i >>> 8, n[11] = i, n[12] = r >>> 24, n[13] = r >>> 16, n[14] = r >>> 8, n[15] = r, new Jt(n);
540
+ }
541
+ toString() {
542
+ for (var e = "", t = 0; t < this.bytes.length; t++) e = e + Bs.charAt(this.bytes[t] >>> 4) + Bs.charAt(15 & this.bytes[t]), t !== 3 && t !== 5 && t !== 7 && t !== 9 || (e += "-");
543
+ if (e.length !== 36) throw new Error("Invalid UUIDv7 was generated");
544
+ return e;
545
+ }
546
+ clone() {
547
+ return new Jt(this.bytes.slice(0));
548
+ }
549
+ equals(e) {
550
+ return this.compareTo(e) === 0;
551
+ }
552
+ compareTo(e) {
553
+ for (var t = 0; t < 16; t++) {
554
+ var i = this.bytes[t] - e.bytes[t];
555
+ if (i !== 0) return Math.sign(i);
556
+ }
557
+ return 0;
558
+ }
559
+ }
560
+ class aa {
561
+ constructor() {
562
+ this.I = 0, this.P = 0, this.R = new oa();
563
+ }
564
+ generate() {
565
+ var e = this.generateOrAbort();
566
+ if (_(e)) {
567
+ this.I = 0;
568
+ var t = this.generateOrAbort();
569
+ if (_(t)) throw new Error("Could not generate UUID after timestamp reset");
570
+ return t;
571
+ }
572
+ return e;
573
+ }
574
+ generateOrAbort() {
575
+ var e = Date.now();
576
+ if (e > this.I) this.I = e, this.T();
577
+ else {
578
+ if (!(e + 1e4 > this.I)) return;
579
+ this.P++, this.P > 4398046511103 && (this.I++, this.T());
580
+ }
581
+ return Jt.fromFieldsV7(this.I, Math.trunc(this.P / Math.pow(2, 30)), this.P & Math.pow(2, 30) - 1, this.R.nextUint32());
582
+ }
583
+ T() {
584
+ this.P = 1024 * this.R.nextUint32() + (1023 & this.R.nextUint32());
585
+ }
586
+ }
587
+ var Hs, jr = (s) => {
588
+ if (typeof UUIDV7_DENY_WEAK_RNG < "u" && UUIDV7_DENY_WEAK_RNG) throw new Error("no cryptographically strong RNG available");
589
+ for (var e = 0; e < s.length; e++) s[e] = 65536 * Math.trunc(65536 * Math.random()) + Math.trunc(65536 * Math.random());
590
+ return s;
591
+ };
592
+ g && !_(g.crypto) && crypto.getRandomValues && (jr = (s) => crypto.getRandomValues(s));
593
+ class oa {
594
+ constructor() {
595
+ this.M = new Uint32Array(8), this.C = 1 / 0;
596
+ }
597
+ nextUint32() {
598
+ return this.C >= this.M.length && (jr(this.M), this.C = 0), this.M[this.C++];
599
+ }
600
+ }
601
+ var Oe = () => la().toString(), la = () => (Hs || (Hs = new aa())).generate(), ht = "", ua = /[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;
602
+ function ca(s, e) {
603
+ if (e) {
604
+ var t = function(r, n) {
605
+ if (n === void 0 && (n = y), ht) return ht;
606
+ if (!n || ["localhost", "127.0.0.1"].includes(r)) return "";
607
+ for (var a = r.split("."), o = Math.min(a.length, 8), l = "dmn_chk_" + Oe(); !ht && o--; ) {
608
+ var u = a.slice(o).join("."), c = l + "=1;domain=." + u + ";path=/";
609
+ n.cookie = c + ";max-age=3", n.cookie.includes(l) && (n.cookie = c + ";max-age=0", ht = u);
610
+ }
611
+ return ht;
612
+ }(s);
613
+ if (!t) {
614
+ var i = ((r) => {
615
+ var n = r.match(ua);
616
+ return n ? n[0] : "";
617
+ })(s);
618
+ i !== t && w.info("Warning: cookie subdomain discovery mismatch", i, t), t = i;
619
+ }
620
+ return t ? "; domain=." + t : "";
621
+ }
622
+ return "";
623
+ }
624
+ var Ie = { O: () => !!y, F: function(s) {
625
+ w.error("cookieStore error: " + s);
626
+ }, A: function(s) {
627
+ if (y) {
628
+ try {
629
+ for (var e = s + "=", t = y.cookie.split(";").filter((n) => n.length), i = 0; i < t.length; i++) {
630
+ for (var r = t[i]; r.charAt(0) == " "; ) r = r.substring(1, r.length);
631
+ if (r.indexOf(e) === 0) return decodeURIComponent(r.substring(e.length, r.length));
632
+ }
633
+ } catch {
634
+ }
635
+ return null;
636
+ }
637
+ }, D: function(s) {
638
+ var e;
639
+ try {
640
+ e = JSON.parse(Ie.A(s)) || {};
641
+ } catch {
642
+ }
643
+ return e;
644
+ }, L: function(s, e, t, i, r) {
645
+ if (y) try {
646
+ var n = "", a = "", o = ca(y.location.hostname, i);
647
+ if (t) {
648
+ var l = /* @__PURE__ */ new Date();
649
+ l.setTime(l.getTime() + 24 * t * 60 * 60 * 1e3), n = "; expires=" + l.toUTCString();
650
+ }
651
+ r && (a = "; secure");
652
+ var u = s + "=" + encodeURIComponent(JSON.stringify(e)) + n + "; SameSite=Lax; path=/" + o + a;
653
+ return u.length > 3686.4 && w.warn("cookieStore warning: large cookie, len=" + u.length), y.cookie = u, u;
654
+ } catch {
655
+ return;
656
+ }
657
+ }, N: function(s, e) {
658
+ try {
659
+ Ie.L(s, "", -1, e);
660
+ } catch {
661
+ return;
662
+ }
663
+ } }, pi = null, q = { O: function() {
664
+ if (!Ne(pi)) return pi;
665
+ var s = !0;
666
+ if (_(g)) s = !1;
667
+ else try {
668
+ var e = "__mplssupport__";
669
+ q.L(e, "xyz"), q.A(e) !== '"xyz"' && (s = !1), q.N(e);
670
+ } catch {
671
+ s = !1;
672
+ }
673
+ return s || w.error("localStorage unsupported; falling back to cookie store"), pi = s, s;
674
+ }, F: function(s) {
675
+ w.error("localStorage error: " + s);
676
+ }, A: function(s) {
677
+ try {
678
+ return g == null ? void 0 : g.localStorage.getItem(s);
679
+ } catch (e) {
680
+ q.F(e);
681
+ }
682
+ return null;
683
+ }, D: function(s) {
684
+ try {
685
+ return JSON.parse(q.A(s)) || {};
686
+ } catch {
687
+ }
688
+ return null;
689
+ }, L: function(s, e) {
690
+ try {
691
+ g == null || g.localStorage.setItem(s, JSON.stringify(e));
692
+ } catch (t) {
693
+ q.F(t);
694
+ }
695
+ }, N: function(s) {
696
+ try {
697
+ g == null || g.localStorage.removeItem(s);
698
+ } catch (e) {
699
+ q.F(e);
700
+ }
701
+ } }, ha = ["distinct_id", Ut, _t, Gt, zt], Mt = m({}, q, { D: function(s) {
702
+ try {
703
+ var e = {};
704
+ try {
705
+ e = Ie.D(s) || {};
706
+ } catch {
707
+ }
708
+ var t = D(e, JSON.parse(q.A(s) || "{}"));
709
+ return q.L(s, t), t;
710
+ } catch {
711
+ }
712
+ return null;
713
+ }, L: function(s, e, t, i, r, n) {
714
+ try {
715
+ q.L(s, e, void 0, void 0, n);
716
+ var a = {};
717
+ ha.forEach((o) => {
718
+ e[o] && (a[o] = e[o]);
719
+ }), Object.keys(a).length && Ie.L(s, a, t, i, r, n);
720
+ } catch (o) {
721
+ q.F(o);
722
+ }
723
+ }, N: function(s, e) {
724
+ try {
725
+ g == null || g.localStorage.removeItem(s), Ie.N(s, e);
726
+ } catch (t) {
727
+ q.F(t);
728
+ }
729
+ } }), Ct = {}, da = { O: function() {
730
+ return !0;
731
+ }, F: function(s) {
732
+ w.error("memoryStorage error: " + s);
733
+ }, A: function(s) {
734
+ return Ct[s] || null;
735
+ }, D: function(s) {
736
+ return Ct[s] || null;
737
+ }, L: function(s, e) {
738
+ Ct[s] = e;
739
+ }, N: function(s) {
740
+ delete Ct[s];
741
+ } }, Be = null, H = { O: function() {
742
+ if (!Ne(Be)) return Be;
743
+ if (Be = !0, _(g)) Be = !1;
744
+ else try {
745
+ var s = "__support__";
746
+ H.L(s, "xyz"), H.A(s) !== '"xyz"' && (Be = !1), H.N(s);
747
+ } catch {
748
+ Be = !1;
749
+ }
750
+ return Be;
751
+ }, F: function(s) {
752
+ w.error("sessionStorage error: ", s);
753
+ }, A: function(s) {
754
+ try {
755
+ return g == null ? void 0 : g.sessionStorage.getItem(s);
756
+ } catch (e) {
757
+ H.F(e);
758
+ }
759
+ return null;
760
+ }, D: function(s) {
761
+ try {
762
+ return JSON.parse(H.A(s)) || null;
763
+ } catch {
764
+ }
765
+ return null;
766
+ }, L: function(s, e) {
767
+ try {
768
+ g == null || g.sessionStorage.setItem(s, JSON.stringify(e));
769
+ } catch (t) {
770
+ H.F(t);
771
+ }
772
+ }, N: function(s) {
773
+ try {
774
+ g == null || g.sessionStorage.removeItem(s);
775
+ } catch (e) {
776
+ H.F(e);
777
+ }
778
+ } }, Ke = function(s) {
779
+ return s[s.PENDING = -1] = "PENDING", s[s.DENIED = 0] = "DENIED", s[s.GRANTED = 1] = "GRANTED", s;
780
+ }({});
781
+ class pa {
782
+ constructor(e) {
783
+ this._instance = e;
784
+ }
785
+ get S() {
786
+ return this._instance.config;
787
+ }
788
+ get consent() {
789
+ return this.j() ? Ke.DENIED : this.U;
790
+ }
791
+ isOptedOut() {
792
+ return this.consent === Ke.DENIED || this.consent === Ke.PENDING && this.S.opt_out_capturing_by_default;
793
+ }
794
+ isOptedIn() {
795
+ return !this.isOptedOut();
796
+ }
797
+ optInOut(e) {
798
+ this.q.L(this.B, e ? 1 : 0, this.S.cookie_expiration, this.S.cross_subdomain_cookie, this.S.secure_cookie);
799
+ }
800
+ reset() {
801
+ this.q.N(this.B, this.S.cross_subdomain_cookie);
802
+ }
803
+ get B() {
804
+ var { token: e, opt_out_capturing_cookie_prefix: t } = this._instance.config;
805
+ return (t || "__ph_opt_in_out_") + e;
806
+ }
807
+ get U() {
808
+ var e = this.q.A(this.B);
809
+ return e === "1" ? Ke.GRANTED : e === "0" ? Ke.DENIED : Ke.PENDING;
810
+ }
811
+ get q() {
812
+ if (!this.H) {
813
+ var e = this.S.opt_out_capturing_persistence_type;
814
+ this.H = e === "localStorage" ? q : Ie;
815
+ var t = e === "localStorage" ? Ie : q;
816
+ t.A(this.B) && (this.H.A(this.B) || this.optInOut(t.A(this.B) === "1"), t.N(this.B, this.S.cross_subdomain_cookie));
817
+ }
818
+ return this.H;
819
+ }
820
+ j() {
821
+ return !!this.S.respect_dnt && !!Fr([ie == null ? void 0 : ie.doNotTrack, ie == null ? void 0 : ie.msDoNotTrack, x.doNotTrack], (e) => I([!0, 1, "1", "yes"], e));
822
+ }
823
+ }
824
+ var Tt = j("[Dead Clicks]"), ga = () => !0, fa = (s) => {
825
+ var e, t = !((e = s.instance.persistence) == null || !e.get_property(Pr)), i = s.instance.config.capture_dead_clicks;
826
+ return ve(i) ? i : t;
827
+ };
828
+ class Ur {
829
+ get lazyLoadedDeadClicksAutocapture() {
830
+ return this.W;
831
+ }
832
+ constructor(e, t, i) {
833
+ this.instance = e, this.isEnabled = t, this.onCapture = i, this.startIfEnabled();
834
+ }
835
+ onRemoteConfig(e) {
836
+ this.instance.persistence && this.instance.persistence.register({ [Pr]: e == null ? void 0 : e.captureDeadClicks }), this.startIfEnabled();
837
+ }
838
+ startIfEnabled() {
839
+ this.isEnabled(this) && this.G(() => {
840
+ this.J();
841
+ });
842
+ }
843
+ G(e) {
844
+ var t, i;
845
+ (t = x.__PosthogExtensions__) != null && t.initDeadClicksAutocapture && e(), (i = x.__PosthogExtensions__) == null || i.loadExternalDependency == null || i.loadExternalDependency(this.instance, "dead-clicks-autocapture", (r) => {
846
+ r ? Tt.error("failed to load script", r) : e();
847
+ });
848
+ }
849
+ J() {
850
+ var e;
851
+ if (y) {
852
+ if (!this.W && (e = x.__PosthogExtensions__) != null && e.initDeadClicksAutocapture) {
853
+ var t = O(this.instance.config.capture_dead_clicks) ? this.instance.config.capture_dead_clicks : {};
854
+ t.__onCapture = this.onCapture, this.W = x.__PosthogExtensions__.initDeadClicksAutocapture(this.instance, t), this.W.start(y), Tt.info("starting...");
855
+ }
856
+ } else Tt.error("`document` not found. Cannot start.");
857
+ }
858
+ stop() {
859
+ this.W && (this.W.stop(), this.W = void 0, Tt.info("stopping..."));
860
+ }
861
+ }
862
+ var gi = j("[ExceptionAutocapture]");
863
+ class va {
864
+ constructor(e) {
865
+ var t;
866
+ this.V = () => {
867
+ var i;
868
+ if (g && this.isEnabled && (i = x.__PosthogExtensions__) != null && i.errorWrappingFunctions) {
869
+ var r = x.__PosthogExtensions__.errorWrappingFunctions.wrapOnError, n = x.__PosthogExtensions__.errorWrappingFunctions.wrapUnhandledRejection, a = x.__PosthogExtensions__.errorWrappingFunctions.wrapConsoleError;
870
+ try {
871
+ !this.K && this.S.capture_unhandled_errors && (this.K = r(this.captureException.bind(this))), !this.Y && this.S.capture_unhandled_rejections && (this.Y = n(this.captureException.bind(this))), !this.X && this.S.capture_console_errors && (this.X = a(this.captureException.bind(this)));
872
+ } catch (o) {
873
+ gi.error("failed to start", o), this.Z();
874
+ }
875
+ }
876
+ }, this._instance = e, this.tt = !((t = this._instance.persistence) == null || !t.props[Ss]), this.S = this.it(), this.startIfEnabled();
877
+ }
878
+ it() {
879
+ var e = this._instance.config.capture_exceptions, t = { capture_unhandled_errors: !1, capture_unhandled_rejections: !1, capture_console_errors: !1 };
880
+ return O(e) ? t = m({}, t, e) : (_(e) ? this.tt : e) && (t = m({}, t, { capture_unhandled_errors: !0, capture_unhandled_rejections: !0 })), t;
881
+ }
882
+ get isEnabled() {
883
+ return this.S.capture_console_errors || this.S.capture_unhandled_errors || this.S.capture_unhandled_rejections;
884
+ }
885
+ startIfEnabled() {
886
+ this.isEnabled && (gi.info("enabled"), this.G(this.V));
887
+ }
888
+ G(e) {
889
+ var t, i;
890
+ (t = x.__PosthogExtensions__) != null && t.errorWrappingFunctions && e(), (i = x.__PosthogExtensions__) == null || i.loadExternalDependency == null || i.loadExternalDependency(this._instance, "exception-autocapture", (r) => {
891
+ if (r) return gi.error("failed to load script", r);
892
+ e();
893
+ });
894
+ }
895
+ Z() {
896
+ var e, t, i;
897
+ (e = this.K) == null || e.call(this), this.K = void 0, (t = this.Y) == null || t.call(this), this.Y = void 0, (i = this.X) == null || i.call(this), this.X = void 0;
898
+ }
899
+ onRemoteConfig(e) {
900
+ var t = e.autocaptureExceptions;
901
+ this.tt = !!t || !1, this.S = this.it(), this._instance.persistence && this._instance.persistence.register({ [Ss]: this.tt }), this.startIfEnabled();
902
+ }
903
+ captureException(e) {
904
+ var t = this._instance.requestRouter.endpointFor("ui");
905
+ e.$exception_personURL = t + "/project/" + this._instance.config.token + "/person/" + this._instance.get_distinct_id(), this._instance.exceptions.sendExceptionEvent(e);
906
+ }
907
+ }
908
+ function Wr(s) {
909
+ return !_(Event) && zr(s, Event);
910
+ }
911
+ function zr(s, e) {
912
+ try {
913
+ return s instanceof e;
914
+ } catch {
915
+ return !1;
916
+ }
917
+ }
918
+ function Gr(s) {
919
+ switch (Object.prototype.toString.call(s)) {
920
+ case "[object Error]":
921
+ case "[object Exception]":
922
+ case "[object DOMException]":
923
+ case "[object DOMError]":
924
+ return !0;
925
+ default:
926
+ return zr(s, Error);
927
+ }
928
+ }
929
+ function Ht(s, e) {
930
+ return Object.prototype.toString.call(s) === "[object " + e + "]";
931
+ }
932
+ function fi(s) {
933
+ return Ht(s, "DOMError");
934
+ }
935
+ var js = /\(error: (.*)\)/, Us = 50, st = "?";
936
+ function vi(s, e, t, i) {
937
+ var r = { platform: "web:javascript", filename: s, function: e === "<anonymous>" ? st : e, in_app: !0 };
938
+ return _(t) || (r.lineno = t), _(i) || (r.colno = i), r;
939
+ }
940
+ var _a = /^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i, ma = /^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i, ya = /\((\S*)(?::(\d+))(?::(\d+))\)/, ba = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i, wa = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i, Ea = function() {
941
+ for (var s = arguments.length, e = new Array(s), t = 0; t < s; t++) e[t] = arguments[t];
942
+ var i = e.sort((r, n) => r[0] - n[0]).map((r) => r[1]);
943
+ return function(r, n) {
944
+ n === void 0 && (n = 0);
945
+ for (var a = [], o = r.split(`
946
+ `), l = n; l < o.length; l++) {
947
+ var u = o[l];
948
+ if (!(u.length > 1024)) {
949
+ var c = js.test(u) ? u.replace(js, "$1") : u;
950
+ if (!c.match(/\S*Error: /)) {
951
+ for (var p of i) {
952
+ var h = p(c);
953
+ if (h) {
954
+ a.push(h);
955
+ break;
956
+ }
957
+ }
958
+ if (a.length >= Us) break;
959
+ }
960
+ }
961
+ }
962
+ return function(d) {
963
+ if (!d.length) return [];
964
+ var v = Array.from(d);
965
+ return v.reverse(), v.slice(0, Us).map((f) => m({}, f, { filename: f.filename || ka(v).filename, function: f.function || st }));
966
+ }(a);
967
+ };
968
+ }([30, (s) => {
969
+ var e = _a.exec(s);
970
+ if (e) {
971
+ var [, t, i, r] = e;
972
+ return vi(t, st, +i, +r);
973
+ }
974
+ var n = ma.exec(s);
975
+ if (n) {
976
+ if (n[2] && n[2].indexOf("eval") === 0) {
977
+ var a = ya.exec(n[2]);
978
+ a && (n[2] = a[1], n[3] = a[2], n[4] = a[3]);
979
+ }
980
+ var [o, l] = zs(n[1] || st, n[2]);
981
+ return vi(l, o, n[3] ? +n[3] : void 0, n[4] ? +n[4] : void 0);
982
+ }
983
+ }], [50, (s) => {
984
+ var e = ba.exec(s);
985
+ if (e) {
986
+ if (e[3] && e[3].indexOf(" > eval") > -1) {
987
+ var t = wa.exec(e[3]);
988
+ t && (e[1] = e[1] || "eval", e[3] = t[1], e[4] = t[2], e[5] = "");
989
+ }
990
+ var i = e[3], r = e[1] || st;
991
+ return [r, i] = zs(r, i), vi(i, r, e[4] ? +e[4] : void 0, e[5] ? +e[5] : void 0);
992
+ }
993
+ }]);
994
+ function ka(s) {
995
+ return s[s.length - 1] || {};
996
+ }
997
+ var Ot, Ws, _i, zs = (s, e) => {
998
+ var t = s.indexOf("safari-extension") !== -1, i = s.indexOf("safari-web-extension") !== -1;
999
+ return t || i ? [s.indexOf("@") !== -1 ? s.split("@")[0] : st, t ? "safari-extension:" + e : "safari-web-extension:" + e] : [s, e];
1000
+ }, xa = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;
1001
+ function rs(s, e) {
1002
+ e === void 0 && (e = 0);
1003
+ var t = s.stacktrace || s.stack || "", i = function(a) {
1004
+ return a && Sa.test(a.message) ? 1 : 0;
1005
+ }(s);
1006
+ try {
1007
+ var r = Ea, n = function(a, o) {
1008
+ var l = function(u) {
1009
+ var c = globalThis._posthogChunkIds;
1010
+ if (!c) return {};
1011
+ var p = Object.keys(c);
1012
+ return _i && p.length === Ws || (Ws = p.length, _i = p.reduce((h, d) => {
1013
+ Ot || (Ot = {});
1014
+ var v = Ot[d];
1015
+ if (v) h[v[0]] = v[1];
1016
+ else for (var f = u(d), b = f.length - 1; b >= 0; b--) {
1017
+ var E = f[b], k = E == null ? void 0 : E.filename, S = c[d];
1018
+ if (k && S) {
1019
+ h[k] = S, Ot[d] = [k, S];
1020
+ break;
1021
+ }
1022
+ }
1023
+ return h;
1024
+ }, {})), _i;
1025
+ }(o);
1026
+ return a.forEach((u) => {
1027
+ u.filename && (u.chunk_id = l[u.filename]);
1028
+ }), a;
1029
+ }(r(t, i), r);
1030
+ return n.slice(0, n.length - e);
1031
+ } catch {
1032
+ }
1033
+ return [];
1034
+ }
1035
+ var Sa = /Minified React error #\d+;/i;
1036
+ function Ia(s, e) {
1037
+ var t, i, r = rs(s), n = (t = e == null ? void 0 : e.handled) === null || t === void 0 || t, a = (i = e == null ? void 0 : e.synthetic) !== null && i !== void 0 && i;
1038
+ return { type: e != null && e.overrideExceptionType ? e.overrideExceptionType : s.name, value: function(o) {
1039
+ var l = o.message;
1040
+ return l.error && typeof l.error.message == "string" ? String(l.error.message) : String(l);
1041
+ }(s), stacktrace: { frames: r, type: "raw" }, mechanism: { handled: n, synthetic: a } };
1042
+ }
1043
+ function Vr(s, e) {
1044
+ var t = Ia(s, e);
1045
+ return s.cause && Gr(s.cause) && s.cause !== s ? [t, ...Vr(s.cause, { handled: e == null ? void 0 : e.handled, synthetic: e == null ? void 0 : e.synthetic })] : [t];
1046
+ }
1047
+ function mi(s, e) {
1048
+ return { $exception_list: Vr(s, e), $exception_level: "error" };
1049
+ }
1050
+ function yi(s, e) {
1051
+ var t, i, r, n = (t = e == null ? void 0 : e.handled) === null || t === void 0 || t, a = (i = e == null ? void 0 : e.synthetic) === null || i === void 0 || i, o = { type: e != null && e.overrideExceptionType ? e.overrideExceptionType : (r = e == null ? void 0 : e.defaultExceptionType) !== null && r !== void 0 ? r : "Error", value: s || (e == null ? void 0 : e.defaultExceptionMessage), mechanism: { handled: n, synthetic: a } };
1052
+ if (e != null && e.syntheticException) {
1053
+ var l = rs(e.syntheticException, 1);
1054
+ l.length && (o.stacktrace = { frames: l, type: "raw" });
1055
+ }
1056
+ return { $exception_list: [o], $exception_level: "error" };
1057
+ }
1058
+ function Fa(s) {
1059
+ return A(s) && !Pi(s) && Dn.indexOf(s) >= 0;
1060
+ }
1061
+ function $a(s, e) {
1062
+ var t, i, r = (t = e == null ? void 0 : e.handled) === null || t === void 0 || t, n = (i = e == null ? void 0 : e.synthetic) === null || i === void 0 || i, a = e != null && e.overrideExceptionType ? e.overrideExceptionType : Wr(s) ? s.constructor.name : "Error", o = "Non-Error 'exception' captured with keys: " + function(c, p) {
1063
+ p === void 0 && (p = 40);
1064
+ var h = Object.keys(c);
1065
+ if (h.sort(), !h.length) return "[object has no keys]";
1066
+ for (var d = h.length; d > 0; d--) {
1067
+ var v = h.slice(0, d).join(", ");
1068
+ if (!(v.length > p)) return d === h.length || v.length <= p ? v : v.slice(0, p) + "...";
1069
+ }
1070
+ return "";
1071
+ }(s), l = { type: a, value: o, mechanism: { handled: r, synthetic: n } };
1072
+ if (e != null && e.syntheticException) {
1073
+ var u = rs(e == null ? void 0 : e.syntheticException, 1);
1074
+ u.length && (l.stacktrace = { frames: u, type: "raw" });
1075
+ }
1076
+ return { $exception_list: [l], $exception_level: Fa(s.level) ? s.level : "error" };
1077
+ }
1078
+ function Pa(s, e) {
1079
+ var { error: t, event: i } = s, r = { $exception_list: [] }, n = t || i;
1080
+ if (fi(n) || function(h) {
1081
+ return Ht(h, "DOMException");
1082
+ }(n)) {
1083
+ var a = n;
1084
+ if (function(h) {
1085
+ return "stack" in h;
1086
+ }(n)) r = mi(n, e);
1087
+ else {
1088
+ var o = a.name || (fi(a) ? "DOMError" : "DOMException"), l = a.message ? o + ": " + a.message : o;
1089
+ r = yi(l, m({}, e, { overrideExceptionType: fi(a) ? "DOMError" : "DOMException", defaultExceptionMessage: l }));
1090
+ }
1091
+ return "code" in a && (r.$exception_DOMException_code = "" + a.code), r;
1092
+ }
1093
+ if (function(h) {
1094
+ return Ht(h, "ErrorEvent");
1095
+ }(n) && n.error) return mi(n.error, e);
1096
+ if (Gr(n)) return mi(n, e);
1097
+ if (function(h) {
1098
+ return Ht(h, "Object");
1099
+ }(n) || Wr(n)) return $a(n, e);
1100
+ if (_(t) && A(i)) {
1101
+ var u = "Error", c = i, p = i.match(xa);
1102
+ return p && (u = p[1], c = p[2]), yi(c, m({}, e, { overrideExceptionType: u, defaultExceptionMessage: c }));
1103
+ }
1104
+ return yi(n, e);
1105
+ }
1106
+ function Gs(s, e, t) {
1107
+ try {
1108
+ if (!(e in s)) return () => {
1109
+ };
1110
+ var i = s[e], r = t(i);
1111
+ return ae(r) && (r.prototype = r.prototype || {}, Object.defineProperties(r, { __posthog_wrapped__: { enumerable: !1, value: !0 } })), s[e] = r, () => {
1112
+ s[e] = i;
1113
+ };
1114
+ } catch {
1115
+ return () => {
1116
+ };
1117
+ }
1118
+ }
1119
+ class Ra {
1120
+ constructor(e) {
1121
+ var t;
1122
+ this._instance = e, this.et = (g == null || (t = g.location) == null ? void 0 : t.pathname) || "";
1123
+ }
1124
+ get isEnabled() {
1125
+ return this._instance.config.capture_pageview === "history_change";
1126
+ }
1127
+ startIfEnabled() {
1128
+ this.isEnabled && (w.info("History API monitoring enabled, starting..."), this.monitorHistoryChanges());
1129
+ }
1130
+ stop() {
1131
+ this.rt && this.rt(), this.rt = void 0, w.info("History API monitoring stopped");
1132
+ }
1133
+ monitorHistoryChanges() {
1134
+ var e, t;
1135
+ if (g && g.history) {
1136
+ var i = this;
1137
+ (e = g.history.pushState) != null && e.__posthog_wrapped__ || Gs(g.history, "pushState", (r) => function(n, a, o) {
1138
+ r.call(this, n, a, o), i.st("pushState");
1139
+ }), (t = g.history.replaceState) != null && t.__posthog_wrapped__ || Gs(g.history, "replaceState", (r) => function(n, a, o) {
1140
+ r.call(this, n, a, o), i.st("replaceState");
1141
+ }), this.nt();
1142
+ }
1143
+ }
1144
+ st(e) {
1145
+ try {
1146
+ var t, i = g == null || (t = g.location) == null ? void 0 : t.pathname;
1147
+ if (!i) return;
1148
+ i !== this.et && this.isEnabled && this._instance.capture("$pageview", { navigation_type: e }), this.et = i;
1149
+ } catch (r) {
1150
+ w.error("Error capturing " + e + " pageview", r);
1151
+ }
1152
+ }
1153
+ nt() {
1154
+ if (!this.rt) {
1155
+ var e = () => {
1156
+ this.st("popstate");
1157
+ };
1158
+ T(g, "popstate", e), this.rt = () => {
1159
+ g && g.removeEventListener("popstate", e);
1160
+ };
1161
+ }
1162
+ }
1163
+ }
1164
+ function Zt(s) {
1165
+ var e, t;
1166
+ return ((e = JSON.stringify(s, (t = [], function(i, r) {
1167
+ if (O(r)) {
1168
+ for (; t.length > 0 && t[t.length - 1] !== this; ) t.pop();
1169
+ return t.includes(r) ? "[Circular]" : (t.push(r), r);
1170
+ }
1171
+ return r;
1172
+ }))) == null ? void 0 : e.length) || 0;
1173
+ }
1174
+ function Ui(s, e) {
1175
+ if (e === void 0 && (e = 66060288e-1), s.size >= e && s.data.length > 1) {
1176
+ var t = Math.floor(s.data.length / 2), i = s.data.slice(0, t), r = s.data.slice(t);
1177
+ return [Ui({ size: Zt(i), data: i, sessionId: s.sessionId, windowId: s.windowId }), Ui({ size: Zt(r), data: r, sessionId: s.sessionId, windowId: s.windowId })].flatMap((n) => n);
1178
+ }
1179
+ return [s];
1180
+ }
1181
+ var ke = ((s) => (s[s.DomContentLoaded = 0] = "DomContentLoaded", s[s.Load = 1] = "Load", s[s.FullSnapshot = 2] = "FullSnapshot", s[s.IncrementalSnapshot = 3] = "IncrementalSnapshot", s[s.Meta = 4] = "Meta", s[s.Custom = 5] = "Custom", s[s.Plugin = 6] = "Plugin", s))(ke || {}), ce = ((s) => (s[s.Mutation = 0] = "Mutation", s[s.MouseMove = 1] = "MouseMove", s[s.MouseInteraction = 2] = "MouseInteraction", s[s.Scroll = 3] = "Scroll", s[s.ViewportResize = 4] = "ViewportResize", s[s.Input = 5] = "Input", s[s.TouchMove = 6] = "TouchMove", s[s.MediaInteraction = 7] = "MediaInteraction", s[s.StyleSheetRule = 8] = "StyleSheetRule", s[s.CanvasMutation = 9] = "CanvasMutation", s[s.Font = 10] = "Font", s[s.Log = 11] = "Log", s[s.Drag = 12] = "Drag", s[s.StyleDeclaration = 13] = "StyleDeclaration", s[s.Selection = 14] = "Selection", s[s.AdoptedStyleSheet = 15] = "AdoptedStyleSheet", s[s.CustomElement = 16] = "CustomElement", s))(ce || {}), Wi = "[SessionRecording]", zi = "redacted", At = { initiatorTypes: ["audio", "beacon", "body", "css", "early-hint", "embed", "fetch", "frame", "iframe", "icon", "image", "img", "input", "link", "navigation", "object", "ping", "script", "track", "video", "xmlhttprequest"], maskRequestFn: (s) => s, recordHeaders: !1, recordBody: !1, recordInitialRequests: !1, recordPerformance: !1, performanceEntryTypeToObserve: ["first-input", "navigation", "paint", "resource"], payloadSizeLimitBytes: 1e6, payloadHostDenyList: [".lr-ingest.io", ".ingest.sentry.io", ".clarity.ms", "analytics.google.com", "bam.nr-data.net"] }, Ma = ["authorization", "x-forwarded-for", "authorization", "cookie", "set-cookie", "x-api-key", "x-real-ip", "remote-addr", "forwarded", "proxy-authorization", "x-csrf-token", "x-csrftoken", "x-xsrf-token"], Ca = ["password", "secret", "passwd", "api_key", "apikey", "auth", "credentials", "mysql_pwd", "privatekey", "private_key", "token"], Ta = ["/s/", "/e/", "/i/"];
1182
+ function Vs(s, e, t, i) {
1183
+ if (P(s)) return s;
1184
+ var r = (e == null ? void 0 : e["content-length"]) || function(n) {
1185
+ return new Blob([n]).size;
1186
+ }(s);
1187
+ return A(r) && (r = parseInt(r)), r > t ? Wi + " " + i + " body too large to record (" + r + " bytes)" : s;
1188
+ }
1189
+ function Xs(s, e) {
1190
+ if (P(s)) return s;
1191
+ var t = s;
1192
+ return at(t, !1) || (t = Wi + " " + e + " body " + zi), R(Ca, (i) => {
1193
+ var r, n;
1194
+ (r = t) != null && r.length && ((n = t) == null ? void 0 : n.indexOf(i)) !== -1 && (t = Wi + " " + e + " body " + zi + " as might contain: " + i);
1195
+ }), t;
1196
+ }
1197
+ var Oa = (s, e) => {
1198
+ var t, i, r, n = { payloadSizeLimitBytes: At.payloadSizeLimitBytes, performanceEntryTypeToObserve: [...At.performanceEntryTypeToObserve], payloadHostDenyList: [...e.payloadHostDenyList || [], ...At.payloadHostDenyList] }, a = s.session_recording.recordHeaders !== !1 && e.recordHeaders, o = s.session_recording.recordBody !== !1 && e.recordBody, l = s.capture_performance !== !1 && e.recordPerformance, u = (t = n, r = Math.min(1e6, (i = t.payloadSizeLimitBytes) !== null && i !== void 0 ? i : 1e6), (h) => (h != null && h.requestBody && (h.requestBody = Vs(h.requestBody, h.requestHeaders, r, "Request")), h != null && h.responseBody && (h.responseBody = Vs(h.responseBody, h.responseHeaders, r, "Response")), h)), c = (h) => {
1199
+ return u(((f, b) => {
1200
+ var E, k = ot(f.name), S = b.indexOf("http") === 0 ? (E = ot(b)) == null ? void 0 : E.pathname : b;
1201
+ S === "/" && (S = "");
1202
+ var $ = k == null ? void 0 : k.pathname.replace(S || "", "");
1203
+ if (!(k && $ && Ta.some((L) => $.indexOf(L) === 0))) return f;
1204
+ })((v = (d = h).requestHeaders, P(v) || R(Object.keys(v ?? {}), (f) => {
1205
+ Ma.includes(f.toLowerCase()) && (v[f] = zi);
1206
+ }), d), s.api_host));
1207
+ var d, v;
1208
+ }, p = ae(s.session_recording.maskNetworkRequestFn);
1209
+ return p && ae(s.session_recording.maskCapturedNetworkRequestFn) && w.warn("Both `maskNetworkRequestFn` and `maskCapturedNetworkRequestFn` are defined. `maskNetworkRequestFn` will be ignored."), p && (s.session_recording.maskCapturedNetworkRequestFn = (h) => {
1210
+ var d = s.session_recording.maskNetworkRequestFn({ url: h.name });
1211
+ return m({}, h, { name: d == null ? void 0 : d.url });
1212
+ }), n.maskRequestFn = ae(s.session_recording.maskCapturedNetworkRequestFn) ? (h) => {
1213
+ var d, v = c(h);
1214
+ return v && (d = s.session_recording.maskCapturedNetworkRequestFn == null ? void 0 : s.session_recording.maskCapturedNetworkRequestFn(v)) !== null && d !== void 0 ? d : void 0;
1215
+ } : (h) => function(d) {
1216
+ if (!_(d)) return d.requestBody = Xs(d.requestBody, "Request"), d.responseBody = Xs(d.responseBody, "Response"), d;
1217
+ }(c(h)), m({}, At, n, { recordHeaders: a, recordBody: o, recordPerformance: l, recordInitialRequests: l });
1218
+ };
1219
+ function ne(s, e, t, i, r) {
1220
+ return e > t && (w.warn("min cannot be greater than max."), e = t), z(s) ? s > t ? (i && w.warn(i + " cannot be greater than max: " + t + ". Using max value instead."), t) : s < e ? (i && w.warn(i + " cannot be less than min: " + e + ". Using min value instead."), e) : s : (i && w.warn(i + " must be a number. using max or fallback. max: " + t + ", fallback: " + r), ne(r || t, e, t, i));
1221
+ }
1222
+ class Aa {
1223
+ constructor(e, t) {
1224
+ var i, r;
1225
+ t === void 0 && (t = {}), this.ot = 100, this.lt = 10, this.ut = {}, this.ht = {}, this.dt = () => {
1226
+ Object.keys(this.ut).forEach((n) => {
1227
+ this.ut[n] = this.ut[n] + this.lt, this.ut[n] >= this.ot && delete this.ut[n];
1228
+ });
1229
+ }, this.vt = (n) => {
1230
+ var a = this._rrweb.mirror.getNode(n);
1231
+ if ((a == null ? void 0 : a.nodeName) !== "svg" && a instanceof Element) {
1232
+ var o = a.closest("svg");
1233
+ if (o) return [this._rrweb.mirror.getId(o), o];
1234
+ }
1235
+ return [n, a];
1236
+ }, this.ct = (n) => {
1237
+ var a, o, l, u, c, p, h, d;
1238
+ return ((a = (o = n.removes) == null ? void 0 : o.length) !== null && a !== void 0 ? a : 0) + ((l = (u = n.attributes) == null ? void 0 : u.length) !== null && l !== void 0 ? l : 0) + ((c = (p = n.texts) == null ? void 0 : p.length) !== null && c !== void 0 ? c : 0) + ((h = (d = n.adds) == null ? void 0 : d.length) !== null && h !== void 0 ? h : 0);
1239
+ }, this.throttleMutations = (n) => {
1240
+ if (n.type !== 3 || n.data.source !== 0) return n;
1241
+ var a = n.data, o = this.ct(a);
1242
+ a.attributes && (a.attributes = a.attributes.filter((u) => {
1243
+ var c, p, h, [d, v] = this.vt(u.id);
1244
+ return this.ut[d] === 0 ? !1 : (this.ut[d] = (c = this.ut[d]) !== null && c !== void 0 ? c : this.ot, this.ut[d] = Math.max(this.ut[d] - 1, 0), this.ut[d] === 0 && (this.ht[d] || (this.ht[d] = !0, (p = (h = this.ft).onBlockedNode) == null || p.call(h, d, v))), u);
1245
+ }));
1246
+ var l = this.ct(a);
1247
+ return l !== 0 || o === l ? n : void 0;
1248
+ }, this._rrweb = e, this.ft = t, this.lt = ne((i = this.ft.refillRate) !== null && i !== void 0 ? i : this.lt, 0, 100, "mutation throttling refill rate"), this.ot = ne((r = this.ft.bucketSize) !== null && r !== void 0 ? r : this.ot, 0, 100, "mutation throttling bucket size"), setInterval(() => {
1249
+ this.dt();
1250
+ }, 1e3);
1251
+ }
1252
+ }
1253
+ var oe = Uint8Array, Q = Uint16Array, lt = Uint32Array, ns = new oe([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]), as = new oe([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]), Ys = new oe([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Xr = function(s, e) {
1254
+ for (var t = new Q(31), i = 0; i < 31; ++i) t[i] = e += 1 << s[i - 1];
1255
+ var r = new lt(t[30]);
1256
+ for (i = 1; i < 30; ++i) for (var n = t[i]; n < t[i + 1]; ++n) r[n] = n - t[i] << 5 | i;
1257
+ return [t, r];
1258
+ }, Yr = Xr(ns, 2), La = Yr[0], Gi = Yr[1];
1259
+ La[28] = 258, Gi[258] = 28;
1260
+ for (var Js = Xr(as, 0)[1], Jr = new Q(32768), M = 0; M < 32768; ++M) {
1261
+ var He = (43690 & M) >>> 1 | (21845 & M) << 1;
1262
+ He = (61680 & (He = (52428 & He) >>> 2 | (13107 & He) << 2)) >>> 4 | (3855 & He) << 4, Jr[M] = ((65280 & He) >>> 8 | (255 & He) << 8) >>> 1;
1263
+ }
1264
+ var kt = function(s, e, t) {
1265
+ for (var i = s.length, r = 0, n = new Q(e); r < i; ++r) ++n[s[r] - 1];
1266
+ var a, o = new Q(e);
1267
+ for (r = 0; r < e; ++r) o[r] = o[r - 1] + n[r - 1] << 1;
1268
+ for (a = new Q(i), r = 0; r < i; ++r) a[r] = Jr[o[s[r] - 1]++] >>> 15 - s[r];
1269
+ return a;
1270
+ }, Ge = new oe(288);
1271
+ for (M = 0; M < 144; ++M) Ge[M] = 8;
1272
+ for (M = 144; M < 256; ++M) Ge[M] = 9;
1273
+ for (M = 256; M < 280; ++M) Ge[M] = 7;
1274
+ for (M = 280; M < 288; ++M) Ge[M] = 8;
1275
+ var Kt = new oe(32);
1276
+ for (M = 0; M < 32; ++M) Kt[M] = 5;
1277
+ var Da = kt(Ge, 9), Na = kt(Kt, 5), Zr = function(s) {
1278
+ return (s / 8 >> 0) + (7 & s && 1);
1279
+ }, Kr = function(s, e, t) {
1280
+ (t == null || t > s.length) && (t = s.length);
1281
+ var i = new (s instanceof Q ? Q : s instanceof lt ? lt : oe)(t - e);
1282
+ return i.set(s.subarray(e, t)), i;
1283
+ }, we = function(s, e, t) {
1284
+ t <<= 7 & e;
1285
+ var i = e / 8 >> 0;
1286
+ s[i] |= t, s[i + 1] |= t >>> 8;
1287
+ }, dt = function(s, e, t) {
1288
+ t <<= 7 & e;
1289
+ var i = e / 8 >> 0;
1290
+ s[i] |= t, s[i + 1] |= t >>> 8, s[i + 2] |= t >>> 16;
1291
+ }, bi = function(s, e) {
1292
+ for (var t = [], i = 0; i < s.length; ++i) s[i] && t.push({ s: i, f: s[i] });
1293
+ var r = t.length, n = t.slice();
1294
+ if (!r) return [new oe(0), 0];
1295
+ if (r == 1) {
1296
+ var a = new oe(t[0].s + 1);
1297
+ return a[t[0].s] = 1, [a, 1];
1298
+ }
1299
+ t.sort(function(L, V) {
1300
+ return L.f - V.f;
1301
+ }), t.push({ s: -1, f: 25001 });
1302
+ var o = t[0], l = t[1], u = 0, c = 1, p = 2;
1303
+ for (t[0] = { s: -1, f: o.f + l.f, l: o, r: l }; c != r - 1; ) o = t[t[u].f < t[p].f ? u++ : p++], l = t[u != c && t[u].f < t[p].f ? u++ : p++], t[c++] = { s: -1, f: o.f + l.f, l: o, r: l };
1304
+ var h = n[0].s;
1305
+ for (i = 1; i < r; ++i) n[i].s > h && (h = n[i].s);
1306
+ var d = new Q(h + 1), v = Vi(t[c - 1], d, 0);
1307
+ if (v > e) {
1308
+ i = 0;
1309
+ var f = 0, b = v - e, E = 1 << b;
1310
+ for (n.sort(function(L, V) {
1311
+ return d[V.s] - d[L.s] || L.f - V.f;
1312
+ }); i < r; ++i) {
1313
+ var k = n[i].s;
1314
+ if (!(d[k] > e)) break;
1315
+ f += E - (1 << v - d[k]), d[k] = e;
1316
+ }
1317
+ for (f >>>= b; f > 0; ) {
1318
+ var S = n[i].s;
1319
+ d[S] < e ? f -= 1 << e - d[S]++ - 1 : ++i;
1320
+ }
1321
+ for (; i >= 0 && f; --i) {
1322
+ var $ = n[i].s;
1323
+ d[$] == e && (--d[$], ++f);
1324
+ }
1325
+ v = e;
1326
+ }
1327
+ return [new oe(d), v];
1328
+ }, Vi = function(s, e, t) {
1329
+ return s.s == -1 ? Math.max(Vi(s.l, e, t + 1), Vi(s.r, e, t + 1)) : e[s.s] = t;
1330
+ }, Zs = function(s) {
1331
+ for (var e = s.length; e && !s[--e]; ) ;
1332
+ for (var t = new Q(++e), i = 0, r = s[0], n = 1, a = function(l) {
1333
+ t[i++] = l;
1334
+ }, o = 1; o <= e; ++o) if (s[o] == r && o != e) ++n;
1335
+ else {
1336
+ if (!r && n > 2) {
1337
+ for (; n > 138; n -= 138) a(32754);
1338
+ n > 2 && (a(n > 10 ? n - 11 << 5 | 28690 : n - 3 << 5 | 12305), n = 0);
1339
+ } else if (n > 3) {
1340
+ for (a(r), --n; n > 6; n -= 6) a(8304);
1341
+ n > 2 && (a(n - 3 << 5 | 8208), n = 0);
1342
+ }
1343
+ for (; n--; ) a(r);
1344
+ n = 1, r = s[o];
1345
+ }
1346
+ return [t.subarray(0, i), e];
1347
+ }, pt = function(s, e) {
1348
+ for (var t = 0, i = 0; i < e.length; ++i) t += s[i] * e[i];
1349
+ return t;
1350
+ }, Xi = function(s, e, t) {
1351
+ var i = t.length, r = Zr(e + 2);
1352
+ s[r] = 255 & i, s[r + 1] = i >>> 8, s[r + 2] = 255 ^ s[r], s[r + 3] = 255 ^ s[r + 1];
1353
+ for (var n = 0; n < i; ++n) s[r + n + 4] = t[n];
1354
+ return 8 * (r + 4 + i);
1355
+ }, Ks = function(s, e, t, i, r, n, a, o, l, u, c) {
1356
+ we(e, c++, t), ++r[256];
1357
+ for (var p = bi(r, 15), h = p[0], d = p[1], v = bi(n, 15), f = v[0], b = v[1], E = Zs(h), k = E[0], S = E[1], $ = Zs(f), L = $[0], V = $[1], B = new Q(19), F = 0; F < k.length; ++F) B[31 & k[F]]++;
1358
+ for (F = 0; F < L.length; ++F) B[31 & L[F]]++;
1359
+ for (var he = bi(B, 7), ee = he[0], ue = he[1], se = 19; se > 4 && !ee[Ys[se - 1]]; --se) ;
1360
+ var be, de, pe, Ye, Fe = u + 5 << 3, qe = pt(r, Ge) + pt(n, Kt) + a, ge = pt(r, h) + pt(n, f) + a + 14 + 3 * se + pt(B, ee) + (2 * B[16] + 3 * B[17] + 7 * B[18]);
1361
+ if (Fe <= qe && Fe <= ge) return Xi(e, c, s.subarray(l, l + u));
1362
+ if (we(e, c, 1 + (ge < qe)), c += 2, ge < qe) {
1363
+ be = kt(h, d), de = h, pe = kt(f, b), Ye = f;
1364
+ var $e = kt(ee, ue);
1365
+ for (we(e, c, S - 257), we(e, c + 5, V - 1), we(e, c + 10, se - 4), c += 14, F = 0; F < se; ++F) we(e, c + 3 * F, ee[Ys[F]]);
1366
+ c += 3 * se;
1367
+ for (var Je = [k, L], X = 0; X < 2; ++X) {
1368
+ var re = Je[X];
1369
+ for (F = 0; F < re.length; ++F) {
1370
+ var te = 31 & re[F];
1371
+ we(e, c, $e[te]), c += ee[te], te > 15 && (we(e, c, re[F] >>> 5 & 127), c += re[F] >>> 12);
1372
+ }
1373
+ }
1374
+ } else be = Da, de = Ge, pe = Na, Ye = Kt;
1375
+ for (F = 0; F < o; ++F) if (i[F] > 255) {
1376
+ te = i[F] >>> 18 & 31, dt(e, c, be[te + 257]), c += de[te + 257], te > 7 && (we(e, c, i[F] >>> 23 & 31), c += ns[te]);
1377
+ var Ze = 31 & i[F];
1378
+ dt(e, c, pe[Ze]), c += Ye[Ze], Ze > 3 && (dt(e, c, i[F] >>> 5 & 8191), c += as[Ze]);
1379
+ } else dt(e, c, be[i[F]]), c += de[i[F]];
1380
+ return dt(e, c, be[256]), c + de[256];
1381
+ }, qa = new lt([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]), Ba = function() {
1382
+ for (var s = new lt(256), e = 0; e < 256; ++e) {
1383
+ for (var t = e, i = 9; --i; ) t = (1 & t && 3988292384) ^ t >>> 1;
1384
+ s[e] = t;
1385
+ }
1386
+ return s;
1387
+ }(), Ha = function() {
1388
+ var s = 4294967295;
1389
+ return { p: function(e) {
1390
+ for (var t = s, i = 0; i < e.length; ++i) t = Ba[255 & t ^ e[i]] ^ t >>> 8;
1391
+ s = t;
1392
+ }, d: function() {
1393
+ return 4294967295 ^ s;
1394
+ } };
1395
+ }, ja = function(s, e, t, i, r) {
1396
+ return function(n, a, o, l, u, c) {
1397
+ var p = n.length, h = new oe(l + p + 5 * (1 + Math.floor(p / 7e3)) + u), d = h.subarray(l, h.length - u), v = 0;
1398
+ if (!a || p < 8) for (var f = 0; f <= p; f += 65535) {
1399
+ var b = f + 65535;
1400
+ b < p ? v = Xi(d, v, n.subarray(f, b)) : (d[f] = c, v = Xi(d, v, n.subarray(f, p)));
1401
+ }
1402
+ else {
1403
+ for (var E = qa[a - 1], k = E >>> 13, S = 8191 & E, $ = (1 << o) - 1, L = new Q(32768), V = new Q($ + 1), B = Math.ceil(o / 3), F = 2 * B, he = function(ci) {
1404
+ return (n[ci] ^ n[ci + 1] << B ^ n[ci + 2] << F) & $;
1405
+ }, ee = new lt(25e3), ue = new Q(288), se = new Q(32), be = 0, de = 0, pe = (f = 0, 0), Ye = 0, Fe = 0; f < p; ++f) {
1406
+ var qe = he(f), ge = 32767 & f, $e = V[qe];
1407
+ if (L[ge] = $e, V[qe] = ge, Ye <= f) {
1408
+ var Je = p - f;
1409
+ if ((be > 7e3 || pe > 24576) && Je > 423) {
1410
+ v = Ks(n, d, 0, ee, ue, se, de, pe, Fe, f - Fe, v), pe = be = de = 0, Fe = f;
1411
+ for (var X = 0; X < 286; ++X) ue[X] = 0;
1412
+ for (X = 0; X < 30; ++X) se[X] = 0;
1413
+ }
1414
+ var re = 2, te = 0, Ze = S, Pe = ge - $e & 32767;
1415
+ if (Je > 2 && qe == he(f - Pe)) for (var Cn = Math.min(k, Je) - 1, Tn = Math.min(32767, f), On = Math.min(258, Je); Pe <= Tn && --Ze && ge != $e; ) {
1416
+ if (n[f + re] == n[f + re - Pe]) {
1417
+ for (var Re = 0; Re < On && n[f + Re] == n[f + Re - Pe]; ++Re) ;
1418
+ if (Re > re) {
1419
+ if (re = Re, te = Pe, Re > Cn) break;
1420
+ var An = Math.min(Pe, Re - 2), fs = 0;
1421
+ for (X = 0; X < An; ++X) {
1422
+ var ui = f - Pe + X + 32768 & 32767, vs = ui - L[ui] + 32768 & 32767;
1423
+ vs > fs && (fs = vs, $e = ui);
1424
+ }
1425
+ }
1426
+ }
1427
+ Pe += (ge = $e) - ($e = L[ge]) + 32768 & 32767;
1428
+ }
1429
+ if (te) {
1430
+ ee[pe++] = 268435456 | Gi[re] << 18 | Js[te];
1431
+ var _s = 31 & Gi[re], ms = 31 & Js[te];
1432
+ de += ns[_s] + as[ms], ++ue[257 + _s], ++se[ms], Ye = f + re, ++be;
1433
+ } else ee[pe++] = n[f], ++ue[n[f]];
1434
+ }
1435
+ }
1436
+ v = Ks(n, d, c, ee, ue, se, de, pe, Fe, f - Fe, v);
1437
+ }
1438
+ return Kr(h, 0, l + Zr(v) + u);
1439
+ }(s, e.level == null ? 6 : e.level, e.mem == null ? Math.ceil(1.5 * Math.max(8, Math.min(13, Math.log(s.length)))) : 12 + e.mem, t, i, !0);
1440
+ }, Yi = function(s, e, t) {
1441
+ for (; t; ++e) s[e] = t, t >>>= 8;
1442
+ }, Ua = function(s, e) {
1443
+ var t = e.filename;
1444
+ if (s[0] = 31, s[1] = 139, s[2] = 8, s[8] = e.level < 2 ? 4 : e.level == 9 ? 2 : 0, s[9] = 3, e.mtime != 0 && Yi(s, 4, Math.floor(new Date(e.mtime || Date.now()) / 1e3)), t) {
1445
+ s[3] = 8;
1446
+ for (var i = 0; i <= t.length; ++i) s[i + 10] = t.charCodeAt(i);
1447
+ }
1448
+ }, Wa = function(s) {
1449
+ return 10 + (s.filename && s.filename.length + 1 || 0);
1450
+ };
1451
+ function Qr(s, e) {
1452
+ e === void 0 && (e = {});
1453
+ var t = Ha(), i = s.length;
1454
+ t.p(s);
1455
+ var r = ja(s, e, Wa(e), 8), n = r.length;
1456
+ return Ua(r, e), Yi(r, n - 8, t.d()), Yi(r, n - 4, i), r;
1457
+ }
1458
+ function en(s, e) {
1459
+ var t = s.length;
1460
+ if (typeof TextEncoder < "u") return new TextEncoder().encode(s);
1461
+ for (var i = new oe(s.length + (s.length >>> 1)), r = 0, n = function(u) {
1462
+ i[r++] = u;
1463
+ }, a = 0; a < t; ++a) {
1464
+ if (r + 5 > i.length) {
1465
+ var o = new oe(r + 8 + (t - a << 1));
1466
+ o.set(i), i = o;
1467
+ }
1468
+ var l = s.charCodeAt(a);
1469
+ l < 128 || e ? n(l) : l < 2048 ? (n(192 | l >>> 6), n(128 | 63 & l)) : l > 55295 && l < 57344 ? (n(240 | (l = 65536 + (1047552 & l) | 1023 & s.charCodeAt(++a)) >>> 18), n(128 | l >>> 12 & 63), n(128 | l >>> 6 & 63), n(128 | 63 & l)) : (n(224 | l >>> 12), n(128 | l >>> 6 & 63), n(128 | 63 & l));
1470
+ }
1471
+ return Kr(i, 0, r);
1472
+ }
1473
+ function za(s, e) {
1474
+ return function(t) {
1475
+ for (var i = 0, r = 0; r < t.length; r++) i = (i << 5) - i + t.charCodeAt(r), i |= 0;
1476
+ return Math.abs(i);
1477
+ }(s) % 100 < ne(100 * e, 0, 100);
1478
+ }
1479
+ var De = "disabled", os = "sampled", Qt = "active", Ve = "buffering", ls = "paused", us = "trigger", me = us + "_activated", G = us + "_pending", ye = us + "_" + De;
1480
+ function Qs(s, e) {
1481
+ return e.some((t) => t.matching === "regex" && new RegExp(t.url).test(s));
1482
+ }
1483
+ class tn {
1484
+ constructor(e) {
1485
+ this.gt = e;
1486
+ }
1487
+ triggerStatus(e) {
1488
+ var t = this.gt.map((i) => i.triggerStatus(e));
1489
+ return t.includes(me) ? me : t.includes(G) ? G : ye;
1490
+ }
1491
+ stop() {
1492
+ this.gt.forEach((e) => e.stop());
1493
+ }
1494
+ }
1495
+ class sn {
1496
+ constructor(e) {
1497
+ this.gt = e;
1498
+ }
1499
+ triggerStatus(e) {
1500
+ var t = /* @__PURE__ */ new Set();
1501
+ for (var i of this.gt) t.add(i.triggerStatus(e));
1502
+ switch (t.delete(ye), t.size) {
1503
+ case 0:
1504
+ return ye;
1505
+ case 1:
1506
+ return Array.from(t)[0];
1507
+ default:
1508
+ return G;
1509
+ }
1510
+ }
1511
+ stop() {
1512
+ this.gt.forEach((e) => e.stop());
1513
+ }
1514
+ }
1515
+ class Ga {
1516
+ triggerStatus() {
1517
+ return G;
1518
+ }
1519
+ stop() {
1520
+ }
1521
+ }
1522
+ class Va {
1523
+ constructor(e) {
1524
+ this._t = [], this.bt = [], this.urlBlocked = !1, this._instance = e;
1525
+ }
1526
+ onRemoteConfig(e) {
1527
+ var t, i;
1528
+ this._t = ((t = e.sessionRecording) == null ? void 0 : t.urlTriggers) || [], this.bt = ((i = e.sessionRecording) == null ? void 0 : i.urlBlocklist) || [];
1529
+ }
1530
+ wt(e) {
1531
+ var t;
1532
+ return this._t.length === 0 ? ye : ((t = this._instance) == null ? void 0 : t.get_property(Ti)) === e ? me : G;
1533
+ }
1534
+ triggerStatus(e) {
1535
+ var t = this.wt(e), i = t === me ? me : t === G ? G : ye;
1536
+ return this._instance.register_for_session({ $sdk_debug_replay_url_trigger_status: i }), i;
1537
+ }
1538
+ checkUrlTriggerConditions(e, t, i) {
1539
+ if (g !== void 0 && g.location.href) {
1540
+ var r = g.location.href, n = this.urlBlocked, a = Qs(r, this.bt);
1541
+ n && a || (a && !n ? e() : !a && n && t(), Qs(r, this._t) && i("url"));
1542
+ }
1543
+ }
1544
+ stop() {
1545
+ }
1546
+ }
1547
+ class Xa {
1548
+ constructor(e) {
1549
+ this.linkedFlag = null, this.linkedFlagSeen = !1, this.yt = () => {
1550
+ }, this._instance = e;
1551
+ }
1552
+ triggerStatus() {
1553
+ var e = G;
1554
+ return P(this.linkedFlag) && (e = ye), this.linkedFlagSeen && (e = me), this._instance.register_for_session({ $sdk_debug_replay_linked_flag_trigger_status: e }), e;
1555
+ }
1556
+ onRemoteConfig(e, t) {
1557
+ var i;
1558
+ if (this.linkedFlag = ((i = e.sessionRecording) == null ? void 0 : i.linkedFlag) || null, !P(this.linkedFlag) && !this.linkedFlagSeen) {
1559
+ var r = A(this.linkedFlag) ? this.linkedFlag : this.linkedFlag.flag, n = A(this.linkedFlag) ? null : this.linkedFlag.variant;
1560
+ this.yt = this._instance.onFeatureFlags((a, o) => {
1561
+ var l = !1;
1562
+ if (O(o) && r in o) {
1563
+ var u = o[r];
1564
+ l = ve(u) ? u === !0 : n ? u === n : !!u;
1565
+ }
1566
+ this.linkedFlagSeen = l, l && t(r, n);
1567
+ });
1568
+ }
1569
+ }
1570
+ stop() {
1571
+ this.yt();
1572
+ }
1573
+ }
1574
+ class Ya {
1575
+ constructor(e) {
1576
+ this.St = [], this._instance = e;
1577
+ }
1578
+ onRemoteConfig(e) {
1579
+ var t;
1580
+ this.St = ((t = e.sessionRecording) == null ? void 0 : t.eventTriggers) || [];
1581
+ }
1582
+ $t(e) {
1583
+ var t;
1584
+ return this.St.length === 0 ? ye : ((t = this._instance) == null ? void 0 : t.get_property(Oi)) === e ? me : G;
1585
+ }
1586
+ triggerStatus(e) {
1587
+ var t = this.$t(e), i = t === me ? me : t === G ? G : ye;
1588
+ return this._instance.register_for_session({ $sdk_debug_replay_event_trigger_status: i }), i;
1589
+ }
1590
+ stop() {
1591
+ }
1592
+ }
1593
+ function Ja(s) {
1594
+ return s.isRecordingEnabled ? Ve : De;
1595
+ }
1596
+ function Za(s) {
1597
+ if (!s.receivedDecide) return Ve;
1598
+ if (!s.isRecordingEnabled) return De;
1599
+ if (s.urlTriggerMatching.urlBlocked) return ls;
1600
+ var e = s.isSampled === !0, t = new tn([s.eventTriggerMatching, s.urlTriggerMatching, s.linkedFlagMatching]).triggerStatus(s.sessionId);
1601
+ return e ? os : t === me ? Qt : t === G ? Ve : s.isSampled === !1 ? De : Qt;
1602
+ }
1603
+ function Ka(s) {
1604
+ if (!s.receivedDecide) return Ve;
1605
+ if (!s.isRecordingEnabled) return De;
1606
+ if (s.urlTriggerMatching.urlBlocked) return ls;
1607
+ var e = new sn([s.eventTriggerMatching, s.urlTriggerMatching, s.linkedFlagMatching]).triggerStatus(s.sessionId), t = e !== ye, i = ve(s.isSampled);
1608
+ return t && e === G ? Ve : t && e === ye || i && !s.isSampled ? De : s.isSampled === !0 ? os : Qt;
1609
+ }
1610
+ var yt = "[SessionRecording]", U = j(yt);
1611
+ function Lt() {
1612
+ var s;
1613
+ return x == null || (s = x.__PosthogExtensions__) == null || (s = s.rrweb) == null ? void 0 : s.record;
1614
+ }
1615
+ var Qa = 3e5, eo = [ce.MouseMove, ce.MouseInteraction, ce.Scroll, ce.ViewportResize, ce.Input, ce.TouchMove, ce.MediaInteraction, ce.Drag], er = (s) => ({ rrwebMethod: s, enqueuedAt: Date.now(), attempt: 1 });
1616
+ function je(s) {
1617
+ return function(e, t) {
1618
+ for (var i = "", r = 0; r < e.length; ) {
1619
+ var n = e[r++];
1620
+ i += String.fromCharCode(n);
1621
+ }
1622
+ return i;
1623
+ }(Qr(en(JSON.stringify(s))));
1624
+ }
1625
+ function tr(s) {
1626
+ return s.type === ke.Custom && s.data.tag === "sessionIdle";
1627
+ }
1628
+ class to {
1629
+ get sessionId() {
1630
+ return this.kt;
1631
+ }
1632
+ get xt() {
1633
+ return this._instance.config.session_recording.session_idle_threshold_ms || 3e5;
1634
+ }
1635
+ get started() {
1636
+ return this.Et;
1637
+ }
1638
+ get It() {
1639
+ if (!this._instance.sessionManager) throw new Error(yt + " must be started with a valid sessionManager.");
1640
+ return this._instance.sessionManager;
1641
+ }
1642
+ get Pt() {
1643
+ var e, t;
1644
+ return this.Rt.triggerStatus(this.sessionId) === G ? 6e4 : (e = (t = this._instance.config.session_recording) == null ? void 0 : t.full_snapshot_interval_millis) !== null && e !== void 0 ? e : Qa;
1645
+ }
1646
+ get Tt() {
1647
+ var e = this._instance.get_property(_t);
1648
+ return ve(e) ? e : null;
1649
+ }
1650
+ get Mt() {
1651
+ var e, t, i = (e = this.M) == null ? void 0 : e.data[((t = this.M) == null ? void 0 : t.data.length) - 1], { sessionStartTimestamp: r } = this.It.checkAndGetSessionAndWindowId(!0);
1652
+ return i ? i.timestamp - r : null;
1653
+ }
1654
+ get Ct() {
1655
+ var e = !!this._instance.get_property(Ci), t = !this._instance.config.disable_session_recording;
1656
+ return g && e && t;
1657
+ }
1658
+ get Ot() {
1659
+ var e = !!this._instance.get_property($s), t = this._instance.config.enable_recording_console_log;
1660
+ return t ?? e;
1661
+ }
1662
+ get Ft() {
1663
+ var e, t, i, r, n, a, o = this._instance.config.session_recording.captureCanvas, l = this._instance.get_property(Ms), u = (e = (t = o == null ? void 0 : o.recordCanvas) !== null && t !== void 0 ? t : l == null ? void 0 : l.enabled) !== null && e !== void 0 && e, c = (i = (r = o == null ? void 0 : o.canvasFps) !== null && r !== void 0 ? r : l == null ? void 0 : l.fps) !== null && i !== void 0 ? i : 4, p = (n = (a = o == null ? void 0 : o.canvasQuality) !== null && a !== void 0 ? a : l == null ? void 0 : l.quality) !== null && n !== void 0 ? n : 0.4;
1664
+ if (typeof p == "string") {
1665
+ var h = parseFloat(p);
1666
+ p = isNaN(h) ? 0.4 : h;
1667
+ }
1668
+ return { enabled: u, fps: ne(c, 0, 12, "canvas recording fps", 4), quality: ne(p, 0, 1, "canvas recording quality", 0.4) };
1669
+ }
1670
+ get At() {
1671
+ var e, t, i = this._instance.get_property(Ps), r = { recordHeaders: (e = this._instance.config.session_recording) == null ? void 0 : e.recordHeaders, recordBody: (t = this._instance.config.session_recording) == null ? void 0 : t.recordBody }, n = (r == null ? void 0 : r.recordHeaders) || (i == null ? void 0 : i.recordHeaders), a = (r == null ? void 0 : r.recordBody) || (i == null ? void 0 : i.recordBody), o = O(this._instance.config.capture_performance) ? this._instance.config.capture_performance.network_timing : this._instance.config.capture_performance, l = !!(ve(o) ? o : i != null && i.capturePerformance);
1672
+ return n || a || l ? { recordHeaders: n, recordBody: a, recordPerformance: l } : void 0;
1673
+ }
1674
+ get Dt() {
1675
+ var e, t, i, r, n, a, o = this._instance.get_property(Rs), l = { maskAllInputs: (e = this._instance.config.session_recording) == null ? void 0 : e.maskAllInputs, maskTextSelector: (t = this._instance.config.session_recording) == null ? void 0 : t.maskTextSelector, blockSelector: (i = this._instance.config.session_recording) == null ? void 0 : i.blockSelector }, u = (r = l == null ? void 0 : l.maskAllInputs) !== null && r !== void 0 ? r : o == null ? void 0 : o.maskAllInputs, c = (n = l == null ? void 0 : l.maskTextSelector) !== null && n !== void 0 ? n : o == null ? void 0 : o.maskTextSelector, p = (a = l == null ? void 0 : l.blockSelector) !== null && a !== void 0 ? a : o == null ? void 0 : o.blockSelector;
1676
+ return _(u) && _(c) && _(p) ? void 0 : { maskAllInputs: u == null || u, maskTextSelector: c, blockSelector: p };
1677
+ }
1678
+ get Lt() {
1679
+ var e = this._instance.get_property(Cs);
1680
+ return z(e) ? e : null;
1681
+ }
1682
+ get Nt() {
1683
+ var e = this._instance.get_property(Ts);
1684
+ return z(e) ? e : null;
1685
+ }
1686
+ get status() {
1687
+ return this.jt ? this.zt({ receivedDecide: this.jt, isRecordingEnabled: this.Ct, isSampled: this.Tt, urlTriggerMatching: this.Ut, eventTriggerMatching: this.qt, linkedFlagMatching: this.Bt, sessionId: this.sessionId }) : Ve;
1688
+ }
1689
+ constructor(e) {
1690
+ if (this.zt = Ja, this.jt = !1, this.Ht = [], this.Wt = "unknown", this.Gt = Date.now(), this.Rt = new Ga(), this.Jt = void 0, this.Vt = void 0, this.Kt = void 0, this.Yt = void 0, this.Xt = void 0, this._forceAllowLocalhostNetworkCapture = !1, this.Qt = () => {
1691
+ this.Zt();
1692
+ }, this.ti = () => {
1693
+ this.ii("browser offline", {});
1694
+ }, this.ei = () => {
1695
+ this.ii("browser online", {});
1696
+ }, this.ri = () => {
1697
+ if (y != null && y.visibilityState) {
1698
+ var r = "window " + y.visibilityState;
1699
+ this.ii(r, {});
1700
+ }
1701
+ }, this._instance = e, this.Et = !1, this.si = "/s/", this.ni = void 0, this.jt = !1, !this._instance.sessionManager) throw U.error("started without valid sessionManager"), new Error(yt + " started without valid sessionManager. This is a bug.");
1702
+ if (this._instance.config.__preview_experimental_cookieless_mode) throw new Error(yt + " cannot be used with __preview_experimental_cookieless_mode.");
1703
+ this.Bt = new Xa(this._instance), this.Ut = new Va(this._instance), this.qt = new Ya(this._instance);
1704
+ var { sessionId: t, windowId: i } = this.It.checkAndGetSessionAndWindowId();
1705
+ this.kt = t, this.oi = i, this.M = this.ai(), this.xt >= this.It.sessionTimeoutMs && U.warn("session_idle_threshold_ms (" + this.xt + ") is greater than the session timeout (" + this.It.sessionTimeoutMs + "). Session will never be detected as idle");
1706
+ }
1707
+ startIfEnabledOrStop(e) {
1708
+ this.Ct ? (this.li(e), T(g, "beforeunload", this.Qt), T(g, "offline", this.ti), T(g, "online", this.ei), T(g, "visibilitychange", this.ri), this.ui(), this.hi(), P(this.Jt) && (this.Jt = this._instance.on("eventCaptured", (t) => {
1709
+ try {
1710
+ if (t.event === "$pageview") {
1711
+ var i = t != null && t.properties.$current_url ? this.di(t == null ? void 0 : t.properties.$current_url) : "";
1712
+ if (!i) return;
1713
+ this.ii("$pageview", { href: i });
1714
+ }
1715
+ } catch (r) {
1716
+ U.error("Could not add $pageview to rrweb session", r);
1717
+ }
1718
+ })), this.Vt || (this.Vt = this.It.onSessionId((t, i, r) => {
1719
+ var n, a;
1720
+ r && (this.ii("$session_id_change", { sessionId: t, windowId: i, changeReason: r }), (n = this._instance) == null || (n = n.persistence) == null || n.unregister(Oi), (a = this._instance) == null || (a = a.persistence) == null || a.unregister(Ti));
1721
+ }))) : this.stopRecording();
1722
+ }
1723
+ stopRecording() {
1724
+ var e, t, i, r;
1725
+ this.Et && this.ni && (this.ni(), this.ni = void 0, this.Et = !1, g == null || g.removeEventListener("beforeunload", this.Qt), g == null || g.removeEventListener("offline", this.ti), g == null || g.removeEventListener("online", this.ei), g == null || g.removeEventListener("visibilitychange", this.ri), this.ai(), clearInterval(this.vi), (e = this.Jt) == null || e.call(this), this.Jt = void 0, (t = this.Xt) == null || t.call(this), this.Xt = void 0, (i = this.Vt) == null || i.call(this), this.Vt = void 0, (r = this.Yt) == null || r.call(this), this.Yt = void 0, this.qt.stop(), this.Ut.stop(), this.Bt.stop(), U.info("stopped"));
1726
+ }
1727
+ ci() {
1728
+ var e;
1729
+ (e = this._instance.persistence) == null || e.unregister(_t);
1730
+ }
1731
+ fi(e) {
1732
+ var t, i = this.kt !== e, r = this.Lt;
1733
+ if (z(r)) {
1734
+ var n = this.Tt, a = i || !ve(n), o = a ? za(e, r) : n;
1735
+ a && (o ? this.pi(os) : U.warn("Sample rate (" + r + ") has determined that this sessionId (" + e + ") will not be sent to the server."), this.ii("samplingDecisionMade", { sampleRate: r, isSampled: o })), (t = this._instance.persistence) == null || t.register({ [_t]: o });
1736
+ } else this.ci();
1737
+ }
1738
+ onRemoteConfig(e) {
1739
+ var t, i, r, n;
1740
+ this.ii("$remote_config_received", e), this.gi(e), (t = e.sessionRecording) != null && t.endpoint && (this.si = (n = e.sessionRecording) == null ? void 0 : n.endpoint), this.ui(), ((i = e.sessionRecording) == null ? void 0 : i.triggerMatchType) === "any" ? (this.zt = Za, this.Rt = new tn([this.qt, this.Ut])) : (this.zt = Ka, this.Rt = new sn([this.qt, this.Ut])), this._instance.register_for_session({ $sdk_debug_replay_remote_trigger_matching_config: (r = e.sessionRecording) == null ? void 0 : r.triggerMatchType }), this.Ut.onRemoteConfig(e), this.qt.onRemoteConfig(e), this.Bt.onRemoteConfig(e, (a, o) => {
1741
+ this.pi("linked_flag_matched", { flag: a, variant: o });
1742
+ }), this.jt = !0, this.startIfEnabledOrStop();
1743
+ }
1744
+ ui() {
1745
+ z(this.Lt) && P(this.Yt) && (this.Yt = this.It.onSessionId((e) => {
1746
+ this.fi(e);
1747
+ }));
1748
+ }
1749
+ gi(e) {
1750
+ if (this._instance.persistence) {
1751
+ var t, i = this._instance.persistence, r = () => {
1752
+ var n, a, o, l, u, c, p, h, d, v = (n = e.sessionRecording) == null ? void 0 : n.sampleRate, f = P(v) ? null : parseFloat(v);
1753
+ P(f) && this.ci();
1754
+ var b = (a = e.sessionRecording) == null ? void 0 : a.minimumDurationMilliseconds;
1755
+ i.register({ [Ci]: !!e.sessionRecording, [$s]: (o = e.sessionRecording) == null ? void 0 : o.consoleLogRecordingEnabled, [Ps]: m({ capturePerformance: e.capturePerformance }, (l = e.sessionRecording) == null ? void 0 : l.networkPayloadCapture), [Rs]: (u = e.sessionRecording) == null ? void 0 : u.masking, [Ms]: { enabled: (c = e.sessionRecording) == null ? void 0 : c.recordCanvas, fps: (p = e.sessionRecording) == null ? void 0 : p.canvasFps, quality: (h = e.sessionRecording) == null ? void 0 : h.canvasQuality }, [Cs]: f, [Ts]: _(b) ? null : b, [Os]: (d = e.sessionRecording) == null ? void 0 : d.scriptConfig });
1756
+ };
1757
+ r(), (t = this.Kt) == null || t.call(this), this.Kt = this.It.onSessionId(r);
1758
+ }
1759
+ }
1760
+ log(e, t) {
1761
+ var i;
1762
+ t === void 0 && (t = "log"), (i = this._instance.sessionRecording) == null || i.onRRwebEmit({ type: 6, data: { plugin: "rrweb/console@1", payload: { level: t, trace: [], payload: [JSON.stringify(e)] } }, timestamp: Date.now() });
1763
+ }
1764
+ li(e) {
1765
+ if (!_(Object.assign) && !_(Array.from) && !(this.Et || this._instance.config.disable_session_recording || this._instance.consent.isOptedOut())) {
1766
+ var t;
1767
+ this.Et = !0, this.It.checkAndGetSessionAndWindowId(), Lt() ? this.mi() : (t = x.__PosthogExtensions__) == null || t.loadExternalDependency == null || t.loadExternalDependency(this._instance, this.bi, (i) => {
1768
+ if (i) return U.error("could not load recorder", i);
1769
+ this.mi();
1770
+ }), U.info("starting"), this.status === Qt && this.pi(e || "recording_initialized");
1771
+ }
1772
+ }
1773
+ get bi() {
1774
+ var e;
1775
+ return ((e = this._instance) == null || (e = e.persistence) == null || (e = e.get_property(Os)) == null ? void 0 : e.script) || "recorder";
1776
+ }
1777
+ wi(e) {
1778
+ var t;
1779
+ return e.type === 3 && eo.indexOf((t = e.data) == null ? void 0 : t.source) !== -1;
1780
+ }
1781
+ yi(e) {
1782
+ var t = this.wi(e);
1783
+ t || this.Wt || e.timestamp - this.Gt > this.xt && (this.Wt = !0, clearInterval(this.vi), this.ii("sessionIdle", { eventTimestamp: e.timestamp, lastActivityTimestamp: this.Gt, threshold: this.xt, bufferLength: this.M.data.length, bufferSize: this.M.size }), this.Zt());
1784
+ var i = !1;
1785
+ if (t && (this.Gt = e.timestamp, this.Wt)) {
1786
+ var r = this.Wt === "unknown";
1787
+ this.Wt = !1, r || (this.ii("sessionNoLongerIdle", { reason: "user activity", type: e.type }), i = !0);
1788
+ }
1789
+ if (!this.Wt) {
1790
+ var { windowId: n, sessionId: a } = this.It.checkAndGetSessionAndWindowId(!t, e.timestamp), o = this.kt !== a, l = this.oi !== n;
1791
+ this.oi = n, this.kt = a, o || l ? (this.stopRecording(), this.startIfEnabledOrStop("session_id_changed")) : i && this.Si();
1792
+ }
1793
+ }
1794
+ $i(e) {
1795
+ try {
1796
+ return e.rrwebMethod(), !0;
1797
+ } catch (t) {
1798
+ return this.Ht.length < 10 ? this.Ht.push({ enqueuedAt: e.enqueuedAt || Date.now(), attempt: e.attempt++, rrwebMethod: e.rrwebMethod }) : U.warn("could not emit queued rrweb event.", t, e), !1;
1799
+ }
1800
+ }
1801
+ ii(e, t) {
1802
+ return this.$i(er(() => Lt().addCustomEvent(e, t)));
1803
+ }
1804
+ ki() {
1805
+ return this.$i(er(() => Lt().takeFullSnapshot()));
1806
+ }
1807
+ mi() {
1808
+ var e, t, i, r, n = { blockClass: "ph-no-capture", blockSelector: void 0, ignoreClass: "ph-ignore-input", maskTextClass: "ph-mask", maskTextSelector: void 0, maskTextFn: void 0, maskAllInputs: !0, maskInputOptions: { password: !0 }, maskInputFn: void 0, slimDOMOptions: {}, collectFonts: !1, inlineStylesheet: !0, recordCrossOriginIframes: !1 }, a = this._instance.config.session_recording;
1809
+ for (var [o, l] of Object.entries(a || {})) o in n && (o === "maskInputOptions" ? n.maskInputOptions = m({ password: !0 }, l) : n[o] = l);
1810
+ this.Ft && this.Ft.enabled && (n.recordCanvas = !0, n.sampling = { canvas: this.Ft.fps }, n.dataURLOptions = { type: "image/webp", quality: this.Ft.quality }), this.Dt && (n.maskAllInputs = (t = this.Dt.maskAllInputs) === null || t === void 0 || t, n.maskTextSelector = (i = this.Dt.maskTextSelector) !== null && i !== void 0 ? i : void 0, n.blockSelector = (r = this.Dt.blockSelector) !== null && r !== void 0 ? r : void 0);
1811
+ var u = Lt();
1812
+ if (u) {
1813
+ this.xi = (e = this.xi) !== null && e !== void 0 ? e : new Aa(u, { refillRate: this._instance.config.session_recording.__mutationRateLimiterRefillRate, bucketSize: this._instance.config.session_recording.__mutationRateLimiterBucketSize, onBlockedNode: (p, h) => {
1814
+ var d = "Too many mutations on node '" + p + "'. Rate limiting. This could be due to SVG animations or something similar";
1815
+ U.info(d, { node: h }), this.log(yt + " " + d, "warn");
1816
+ } });
1817
+ var c = this.Ei();
1818
+ this.ni = u(m({ emit: (p) => {
1819
+ this.onRRwebEmit(p);
1820
+ }, plugins: c }, n)), this.Gt = Date.now(), this.Wt = ve(this.Wt) ? this.Wt : "unknown", this.ii("$session_options", { sessionRecordingOptions: n, activePlugins: c.map((p) => p == null ? void 0 : p.name) }), this.ii("$posthog_config", { config: this._instance.config });
1821
+ } else U.error("onScriptLoaded was called but rrwebRecord is not available. This indicates something has gone wrong.");
1822
+ }
1823
+ Si() {
1824
+ if (this.vi && clearInterval(this.vi), this.Wt !== !0) {
1825
+ var e = this.Pt;
1826
+ e && (this.vi = setInterval(() => {
1827
+ this.ki();
1828
+ }, e));
1829
+ }
1830
+ }
1831
+ Ei() {
1832
+ var e, t, i = [], r = (e = x.__PosthogExtensions__) == null || (e = e.rrwebPlugins) == null ? void 0 : e.getRecordConsolePlugin;
1833
+ r && this.Ot && i.push(r());
1834
+ var n = (t = x.__PosthogExtensions__) == null || (t = t.rrwebPlugins) == null ? void 0 : t.getRecordNetworkPlugin;
1835
+ return this.At && ae(n) && (!ea.includes(location.hostname) || this._forceAllowLocalhostNetworkCapture ? i.push(n(Oa(this._instance.config, this.At))) : U.info("NetworkCapture not started because we are on localhost.")), i;
1836
+ }
1837
+ onRRwebEmit(e) {
1838
+ var t;
1839
+ if (this.Ii(), e && O(e)) {
1840
+ if (e.type === ke.Meta) {
1841
+ var i = this.di(e.data.href);
1842
+ if (this.Pi = i, !i) return;
1843
+ e.data.href = i;
1844
+ } else this.Ri();
1845
+ if (this.Ut.checkUrlTriggerConditions(() => this.Ti(), () => this.Mi(), (h) => this.Ci(h)), !this.Ut.urlBlocked || (r = e).type === ke.Custom && r.data.tag === "recording paused") {
1846
+ var r;
1847
+ e.type === ke.FullSnapshot && this.Si(), e.type === ke.FullSnapshot && this.jt && this.Rt.triggerStatus(this.sessionId) === G && this.ai();
1848
+ var n = this.xi ? this.xi.throttleMutations(e) : e;
1849
+ if (n) {
1850
+ var a = function(h) {
1851
+ var d = h;
1852
+ if (d && O(d) && d.type === 6 && O(d.data) && d.data.plugin === "rrweb/console@1") {
1853
+ d.data.payload.payload.length > 10 && (d.data.payload.payload = d.data.payload.payload.slice(0, 10), d.data.payload.payload.push("...[truncated]"));
1854
+ for (var v = [], f = 0; f < d.data.payload.payload.length; f++) d.data.payload.payload[f] && d.data.payload.payload[f].length > 2e3 ? v.push(d.data.payload.payload[f].slice(0, 2e3) + "...[truncated]") : v.push(d.data.payload.payload[f]);
1855
+ return d.data.payload.payload = v, h;
1856
+ }
1857
+ return h;
1858
+ }(n);
1859
+ if (this.yi(a), this.Wt !== !0 || tr(a)) {
1860
+ if (tr(a)) {
1861
+ var o = a.data.payload;
1862
+ if (o) {
1863
+ var l = o.lastActivityTimestamp, u = o.threshold;
1864
+ a.timestamp = l + u;
1865
+ }
1866
+ }
1867
+ var c = (t = this._instance.config.session_recording.compress_events) === null || t === void 0 || t ? function(h) {
1868
+ if (Zt(h) < 1024) return h;
1869
+ try {
1870
+ if (h.type === ke.FullSnapshot) return m({}, h, { data: je(h.data), cv: "2024-10" });
1871
+ if (h.type === ke.IncrementalSnapshot && h.data.source === ce.Mutation) return m({}, h, { cv: "2024-10", data: m({}, h.data, { texts: je(h.data.texts), attributes: je(h.data.attributes), removes: je(h.data.removes), adds: je(h.data.adds) }) });
1872
+ if (h.type === ke.IncrementalSnapshot && h.data.source === ce.StyleSheetRule) return m({}, h, { cv: "2024-10", data: m({}, h.data, { adds: h.data.adds ? je(h.data.adds) : void 0, removes: h.data.removes ? je(h.data.removes) : void 0 }) });
1873
+ } catch (d) {
1874
+ U.error("could not compress event - will use uncompressed event", d);
1875
+ }
1876
+ return h;
1877
+ }(a) : a, p = { $snapshot_bytes: Zt(c), $snapshot_data: c, $session_id: this.kt, $window_id: this.oi };
1878
+ this.status !== De ? this.Oi(p) : this.ai();
1879
+ }
1880
+ }
1881
+ }
1882
+ }
1883
+ }
1884
+ Ri() {
1885
+ if (!this._instance.config.capture_pageview && g) {
1886
+ var e = this.di(g.location.href);
1887
+ this.Pi !== e && (this.ii("$url_changed", { href: e }), this.Pi = e);
1888
+ }
1889
+ }
1890
+ Ii() {
1891
+ if (this.Ht.length) {
1892
+ var e = [...this.Ht];
1893
+ this.Ht = [], e.forEach((t) => {
1894
+ Date.now() - t.enqueuedAt <= 2e3 && this.$i(t);
1895
+ });
1896
+ }
1897
+ }
1898
+ di(e) {
1899
+ var t = this._instance.config.session_recording;
1900
+ if (t.maskNetworkRequestFn) {
1901
+ var i, r = { url: e };
1902
+ return (i = r = t.maskNetworkRequestFn(r)) == null ? void 0 : i.url;
1903
+ }
1904
+ return e;
1905
+ }
1906
+ ai() {
1907
+ return this.M = { size: 0, data: [], sessionId: this.kt, windowId: this.oi }, this.M;
1908
+ }
1909
+ Zt() {
1910
+ this.Fi && (clearTimeout(this.Fi), this.Fi = void 0);
1911
+ var e = this.Nt, t = this.Mt, i = z(t) && t >= 0, r = z(e) && i && t < e;
1912
+ return this.status === Ve || this.status === ls || this.status === De || r ? (this.Fi = setTimeout(() => {
1913
+ this.Zt();
1914
+ }, 2e3), this.M) : (this.M.data.length > 0 && Ui(this.M).forEach((n) => {
1915
+ this.Ai({ $snapshot_bytes: n.size, $snapshot_data: n.data, $session_id: n.sessionId, $window_id: n.windowId, $lib: "web", $lib_version: xe.LIB_VERSION });
1916
+ }), this.ai());
1917
+ }
1918
+ Oi(e) {
1919
+ var t, i = 2 + (((t = this.M) == null ? void 0 : t.data.length) || 0);
1920
+ !this.Wt && (this.M.size + e.$snapshot_bytes + i > 943718.4 || this.M.sessionId !== this.kt) && (this.M = this.Zt()), this.M.size += e.$snapshot_bytes, this.M.data.push(e.$snapshot_data), this.Fi || this.Wt || (this.Fi = setTimeout(() => {
1921
+ this.Zt();
1922
+ }, 2e3));
1923
+ }
1924
+ Ai(e) {
1925
+ this._instance.capture("$snapshot", e, { _url: this._instance.requestRouter.endpointFor("api", this.si), _noTruncate: !0, _batchKey: "recordings", skip_client_rate_limiting: !0 });
1926
+ }
1927
+ Ci(e) {
1928
+ var t;
1929
+ this.Rt.triggerStatus(this.sessionId) === G && ((t = this._instance) == null || (t = t.persistence) == null || t.register({ [e === "url" ? Ti : Oi]: this.kt }), this.Zt(), this.pi(e + "_trigger_matched"));
1930
+ }
1931
+ Ti() {
1932
+ this.Ut.urlBlocked || (this.Ut.urlBlocked = !0, clearInterval(this.vi), U.info("recording paused due to URL blocker"), this.ii("recording paused", { reason: "url blocker" }));
1933
+ }
1934
+ Mi() {
1935
+ this.Ut.urlBlocked && (this.Ut.urlBlocked = !1, this.ki(), this.Si(), this.ii("recording resumed", { reason: "left blocked url" }), U.info("recording resumed"));
1936
+ }
1937
+ hi() {
1938
+ this.qt.St.length !== 0 && P(this.Xt) && (this.Xt = this._instance.on("eventCaptured", (e) => {
1939
+ try {
1940
+ this.qt.St.includes(e.event) && this.Ci("event");
1941
+ } catch (t) {
1942
+ U.error("Could not activate event trigger", t);
1943
+ }
1944
+ }));
1945
+ }
1946
+ overrideLinkedFlag() {
1947
+ this.Bt.linkedFlagSeen = !0, this.ki(), this.pi("linked_flag_overridden");
1948
+ }
1949
+ overrideSampling() {
1950
+ var e;
1951
+ (e = this._instance.persistence) == null || e.register({ [_t]: !0 }), this.ki(), this.pi("sampling_overridden");
1952
+ }
1953
+ overrideTrigger(e) {
1954
+ this.Ci(e);
1955
+ }
1956
+ pi(e, t) {
1957
+ this._instance.register_for_session({ $session_recording_start_reason: e }), U.info(e.replace("_", " "), t), I(["recording_initialized", "session_id_changed"], e) || this.ii(e, t);
1958
+ }
1959
+ get sdkDebugProperties() {
1960
+ var { sessionStartTimestamp: e } = this.It.checkAndGetSessionAndWindowId(!0);
1961
+ return { $recording_status: this.status, $sdk_debug_replay_internal_buffer_length: this.M.data.length, $sdk_debug_replay_internal_buffer_size: this.M.size, $sdk_debug_current_session_duration: this.Mt, $sdk_debug_session_start: e };
1962
+ }
1963
+ }
1964
+ var wi = j("[SegmentIntegration]");
1965
+ function io(s, e) {
1966
+ var t = s.config.segment;
1967
+ if (!t) return e();
1968
+ (function(i, r) {
1969
+ var n = i.config.segment;
1970
+ if (!n) return r();
1971
+ var a = (l) => {
1972
+ var u = () => l.anonymousId() || Oe();
1973
+ i.config.get_device_id = u, l.id() && (i.register({ distinct_id: l.id(), $device_id: u() }), i.persistence.set_property(Ee, "identified")), r();
1974
+ }, o = n.user();
1975
+ "then" in o && ae(o.then) ? o.then((l) => a(l)) : a(o);
1976
+ })(s, () => {
1977
+ t.register(((i) => {
1978
+ Promise && Promise.resolve || wi.warn("This browser does not have Promise support, and can not use the segment integration");
1979
+ var r = (n, a) => {
1980
+ if (!a) return n;
1981
+ n.event.userId || n.event.anonymousId === i.get_distinct_id() || (wi.info("No userId set, resetting PostHog"), i.reset()), n.event.userId && n.event.userId !== i.get_distinct_id() && (wi.info("UserId set, identifying with PostHog"), i.identify(n.event.userId));
1982
+ var o = i.calculateEventProperties(a, n.event.properties);
1983
+ return n.event.properties = Object.assign({}, o, n.event.properties), n;
1984
+ };
1985
+ return { name: "PostHog JS", type: "enrichment", version: "1.0.0", isLoaded: () => !0, load: () => Promise.resolve(), track: (n) => r(n, n.event.event), page: (n) => r(n, "$pageview"), identify: (n) => r(n, "$identify"), screen: (n) => r(n, "$screen") };
1986
+ })(s)).then(() => {
1987
+ e();
1988
+ });
1989
+ });
1990
+ }
1991
+ var rn = "posthog-js";
1992
+ function nn(s, e) {
1993
+ var { organization: t, projectId: i, prefix: r, severityAllowList: n = ["error"] } = e === void 0 ? {} : e;
1994
+ return (a) => {
1995
+ var o, l, u, c, p;
1996
+ if (!(n === "*" || n.includes(a.level)) || !s.__loaded) return a;
1997
+ a.tags || (a.tags = {});
1998
+ var h = s.requestRouter.endpointFor("ui", "/project/" + s.config.token + "/person/" + s.get_distinct_id());
1999
+ a.tags["PostHog Person URL"] = h, s.sessionRecordingStarted() && (a.tags["PostHog Recording URL"] = s.get_session_replay_url({ withTimestamp: !0 }));
2000
+ var d = ((o = a.exception) == null ? void 0 : o.values) || [], v = d.map((b) => m({}, b, { stacktrace: b.stacktrace ? m({}, b.stacktrace, { type: "raw", frames: (b.stacktrace.frames || []).map((E) => m({}, E, { platform: "web:javascript" })) }) : void 0 })), f = { $exception_message: ((l = d[0]) == null ? void 0 : l.value) || a.message, $exception_type: (u = d[0]) == null ? void 0 : u.type, $exception_personURL: h, $exception_level: a.level, $exception_list: v, $sentry_event_id: a.event_id, $sentry_exception: a.exception, $sentry_exception_message: ((c = d[0]) == null ? void 0 : c.value) || a.message, $sentry_exception_type: (p = d[0]) == null ? void 0 : p.type, $sentry_tags: a.tags };
2001
+ return t && i && (f.$sentry_url = (r || "https://sentry.io/organizations/") + t + "/issues/?project=" + i + "&query=" + a.event_id), s.exceptions.sendExceptionEvent(f), a;
2002
+ };
2003
+ }
2004
+ class so {
2005
+ constructor(e, t, i, r, n) {
2006
+ this.name = rn, this.setupOnce = function(a) {
2007
+ a(nn(e, { organization: t, projectId: i, prefix: r, severityAllowList: n }));
2008
+ };
2009
+ }
2010
+ }
2011
+ var ro = g != null && g.location ? Yt(g.location.hash, "__posthog") || Yt(location.hash, "state") : null, ir = "_postHogToolbarParams", sr = j("[Toolbar]"), Te = function(s) {
2012
+ return s[s.UNINITIALIZED = 0] = "UNINITIALIZED", s[s.LOADING = 1] = "LOADING", s[s.LOADED = 2] = "LOADED", s;
2013
+ }(Te || {});
2014
+ class no {
2015
+ constructor(e) {
2016
+ this.instance = e;
2017
+ }
2018
+ Di(e) {
2019
+ x.ph_toolbar_state = e;
2020
+ }
2021
+ Li() {
2022
+ var e;
2023
+ return (e = x.ph_toolbar_state) !== null && e !== void 0 ? e : Te.UNINITIALIZED;
2024
+ }
2025
+ maybeLoadToolbar(e, t, i) {
2026
+ if (e === void 0 && (e = void 0), t === void 0 && (t = void 0), i === void 0 && (i = void 0), !g || !y) return !1;
2027
+ e = e ?? g.location, i = i ?? g.history;
2028
+ try {
2029
+ if (!t) {
2030
+ try {
2031
+ g.localStorage.setItem("test", "test"), g.localStorage.removeItem("test");
2032
+ } catch {
2033
+ return !1;
2034
+ }
2035
+ t = g == null ? void 0 : g.localStorage;
2036
+ }
2037
+ var r, n = ro || Yt(e.hash, "__posthog") || Yt(e.hash, "state"), a = n ? ks(() => JSON.parse(atob(decodeURIComponent(n)))) || ks(() => JSON.parse(decodeURIComponent(n))) : null;
2038
+ return a && a.action === "ph_authorize" ? ((r = a).source = "url", r && Object.keys(r).length > 0 && (a.desiredHash ? e.hash = a.desiredHash : i ? i.replaceState(i.state, "", e.pathname + e.search) : e.hash = "")) : ((r = JSON.parse(t.getItem(ir) || "{}")).source = "localstorage", delete r.userIntent), !(!r.token || this.instance.config.token !== r.token) && (this.loadToolbar(r), !0);
2039
+ } catch {
2040
+ return !1;
2041
+ }
2042
+ }
2043
+ Ni(e) {
2044
+ var t = x.ph_load_toolbar || x.ph_load_editor;
2045
+ !P(t) && ae(t) ? t(e, this.instance) : sr.warn("No toolbar load function found");
2046
+ }
2047
+ loadToolbar(e) {
2048
+ var t = !(y == null || !y.getElementById(Rr));
2049
+ if (!g || t) return !1;
2050
+ var i = this.instance.requestRouter.region === "custom" && this.instance.config.advanced_disable_toolbar_metrics, r = m({ token: this.instance.config.token }, e, { apiURL: this.instance.requestRouter.endpointFor("ui") }, i ? { instrument: !1 } : {});
2051
+ if (g.localStorage.setItem(ir, JSON.stringify(m({}, r, { source: void 0 }))), this.Li() === Te.LOADED) this.Ni(r);
2052
+ else if (this.Li() === Te.UNINITIALIZED) {
2053
+ var n;
2054
+ this.Di(Te.LOADING), (n = x.__PosthogExtensions__) == null || n.loadExternalDependency == null || n.loadExternalDependency(this.instance, "toolbar", (a) => {
2055
+ if (a) return sr.error("[Toolbar] Failed to load", a), void this.Di(Te.UNINITIALIZED);
2056
+ this.Di(Te.LOADED), this.Ni(r);
2057
+ }), T(g, "turbolinks:load", () => {
2058
+ this.Di(Te.UNINITIALIZED), this.loadToolbar(r);
2059
+ });
2060
+ }
2061
+ return !0;
2062
+ }
2063
+ ji(e) {
2064
+ return this.loadToolbar(e);
2065
+ }
2066
+ maybeLoadEditor(e, t, i) {
2067
+ return e === void 0 && (e = void 0), t === void 0 && (t = void 0), i === void 0 && (i = void 0), this.maybeLoadToolbar(e, t, i);
2068
+ }
2069
+ }
2070
+ var ao = j("[TracingHeaders]");
2071
+ class oo {
2072
+ constructor(e) {
2073
+ this.zi = void 0, this.Ui = void 0, this.V = () => {
2074
+ var t, i;
2075
+ _(this.zi) && ((t = x.__PosthogExtensions__) == null || (t = t.tracingHeadersPatchFns) == null || t._patchXHR(this._instance.sessionManager)), _(this.Ui) && ((i = x.__PosthogExtensions__) == null || (i = i.tracingHeadersPatchFns) == null || i._patchFetch(this._instance.sessionManager));
2076
+ }, this._instance = e;
2077
+ }
2078
+ G(e) {
2079
+ var t, i;
2080
+ (t = x.__PosthogExtensions__) != null && t.tracingHeadersPatchFns && e(), (i = x.__PosthogExtensions__) == null || i.loadExternalDependency == null || i.loadExternalDependency(this._instance, "tracing-headers", (r) => {
2081
+ if (r) return ao.error("failed to load script", r);
2082
+ e();
2083
+ });
2084
+ }
2085
+ startIfEnabledOrStop() {
2086
+ var e, t;
2087
+ this._instance.config.__add_tracing_headers ? this.G(this.V) : ((e = this.zi) == null || e.call(this), (t = this.Ui) == null || t.call(this), this.zi = void 0, this.Ui = void 0);
2088
+ }
2089
+ }
2090
+ var Me = j("[Web Vitals]"), rr = 9e5;
2091
+ class lo {
2092
+ constructor(e) {
2093
+ var t;
2094
+ this.qi = !1, this.i = !1, this.M = { url: void 0, metrics: [], firstMetricTimestamp: void 0 }, this.Bi = () => {
2095
+ clearTimeout(this.Hi), this.M.metrics.length !== 0 && (this._instance.capture("$web_vitals", this.M.metrics.reduce((i, r) => m({}, i, { ["$web_vitals_" + r.name + "_event"]: m({}, r), ["$web_vitals_" + r.name + "_value"]: r.value }), {})), this.M = { url: void 0, metrics: [], firstMetricTimestamp: void 0 });
2096
+ }, this.Wi = (i) => {
2097
+ var r, n = (r = this._instance.sessionManager) == null ? void 0 : r.checkAndGetSessionAndWindowId(!0);
2098
+ if (_(n)) Me.error("Could not read session ID. Dropping metrics!");
2099
+ else {
2100
+ this.M = this.M || { url: void 0, metrics: [], firstMetricTimestamp: void 0 };
2101
+ var a = this.Gi();
2102
+ _(a) || (P(i == null ? void 0 : i.name) || P(i == null ? void 0 : i.value) ? Me.error("Invalid metric received", i) : this.Ji && i.value >= this.Ji ? Me.error("Ignoring metric with value >= " + this.Ji, i) : (this.M.url !== a && (this.Bi(), this.Hi = setTimeout(this.Bi, this.flushToCaptureTimeoutMs)), _(this.M.url) && (this.M.url = a), this.M.firstMetricTimestamp = _(this.M.firstMetricTimestamp) ? Date.now() : this.M.firstMetricTimestamp, i.attribution && i.attribution.interactionTargetElement && (i.attribution.interactionTargetElement = void 0), this.M.metrics.push(m({}, i, { $current_url: a, $session_id: n.sessionId, $window_id: n.windowId, timestamp: Date.now() })), this.M.metrics.length === this.allowedMetrics.length && this.Bi()));
2103
+ }
2104
+ }, this.V = () => {
2105
+ var i, r, n, a, o = x.__PosthogExtensions__;
2106
+ _(o) || _(o.postHogWebVitalsCallbacks) || ({ onLCP: i, onCLS: r, onFCP: n, onINP: a } = o.postHogWebVitalsCallbacks), i && r && n && a ? (this.allowedMetrics.indexOf("LCP") > -1 && i(this.Wi.bind(this)), this.allowedMetrics.indexOf("CLS") > -1 && r(this.Wi.bind(this)), this.allowedMetrics.indexOf("FCP") > -1 && n(this.Wi.bind(this)), this.allowedMetrics.indexOf("INP") > -1 && a(this.Wi.bind(this)), this.i = !0) : Me.error("web vitals callbacks not loaded - not starting");
2107
+ }, this._instance = e, this.qi = !((t = this._instance.persistence) == null || !t.props[Is]), this.startIfEnabled();
2108
+ }
2109
+ get allowedMetrics() {
2110
+ var e, t, i = O(this._instance.config.capture_performance) ? (e = this._instance.config.capture_performance) == null ? void 0 : e.web_vitals_allowed_metrics : void 0;
2111
+ return _(i) ? ((t = this._instance.persistence) == null ? void 0 : t.props[Fs]) || ["CLS", "FCP", "INP", "LCP"] : i;
2112
+ }
2113
+ get flushToCaptureTimeoutMs() {
2114
+ return (O(this._instance.config.capture_performance) ? this._instance.config.capture_performance.web_vitals_delayed_flush_ms : void 0) || 5e3;
2115
+ }
2116
+ get Ji() {
2117
+ var e = O(this._instance.config.capture_performance) && z(this._instance.config.capture_performance.__web_vitals_max_value) ? this._instance.config.capture_performance.__web_vitals_max_value : rr;
2118
+ return 0 < e && e <= 6e4 ? rr : e;
2119
+ }
2120
+ get isEnabled() {
2121
+ var e = Z == null ? void 0 : Z.protocol;
2122
+ if (e !== "http:" && e !== "https:") return Me.info("Web Vitals are disabled on non-http/https protocols"), !1;
2123
+ var t = O(this._instance.config.capture_performance) ? this._instance.config.capture_performance.web_vitals : ve(this._instance.config.capture_performance) ? this._instance.config.capture_performance : void 0;
2124
+ return ve(t) ? t : this.qi;
2125
+ }
2126
+ startIfEnabled() {
2127
+ this.isEnabled && !this.i && (Me.info("enabled, starting..."), this.G(this.V));
2128
+ }
2129
+ onRemoteConfig(e) {
2130
+ var t = O(e.capturePerformance) && !!e.capturePerformance.web_vitals, i = O(e.capturePerformance) ? e.capturePerformance.web_vitals_allowed_metrics : void 0;
2131
+ this._instance.persistence && (this._instance.persistence.register({ [Is]: t }), this._instance.persistence.register({ [Fs]: i })), this.qi = t, this.startIfEnabled();
2132
+ }
2133
+ G(e) {
2134
+ var t, i;
2135
+ (t = x.__PosthogExtensions__) != null && t.postHogWebVitalsCallbacks && e(), (i = x.__PosthogExtensions__) == null || i.loadExternalDependency == null || i.loadExternalDependency(this._instance, "web-vitals", (r) => {
2136
+ r ? Me.error("failed to load script", r) : e();
2137
+ });
2138
+ }
2139
+ Gi() {
2140
+ var e = g ? g.location.href : void 0;
2141
+ return e || Me.error("Could not determine current URL"), e;
2142
+ }
2143
+ }
2144
+ var uo = j("[Heatmaps]");
2145
+ function nr(s) {
2146
+ return O(s) && "clientX" in s && "clientY" in s && z(s.clientX) && z(s.clientY);
2147
+ }
2148
+ class co {
2149
+ constructor(e) {
2150
+ var t;
2151
+ this.rageclicks = new Hr(), this.qi = !1, this.i = !1, this.Vi = null, this.instance = e, this.qi = !((t = this.instance.persistence) == null || !t.props[Ri]);
2152
+ }
2153
+ get flushIntervalMilliseconds() {
2154
+ var e = 5e3;
2155
+ return O(this.instance.config.capture_heatmaps) && this.instance.config.capture_heatmaps.flush_interval_milliseconds && (e = this.instance.config.capture_heatmaps.flush_interval_milliseconds), e;
2156
+ }
2157
+ get isEnabled() {
2158
+ return _(this.instance.config.capture_heatmaps) ? _(this.instance.config.enable_heatmaps) ? this.qi : this.instance.config.enable_heatmaps : this.instance.config.capture_heatmaps !== !1;
2159
+ }
2160
+ startIfEnabled() {
2161
+ if (this.isEnabled) {
2162
+ if (this.i) return;
2163
+ uo.info("starting..."), this.Ki(), this.Vi = setInterval(this.Yi.bind(this), this.flushIntervalMilliseconds);
2164
+ } else {
2165
+ var e, t;
2166
+ clearInterval((e = this.Vi) !== null && e !== void 0 ? e : void 0), (t = this.Xi) == null || t.stop(), this.getAndClearBuffer();
2167
+ }
2168
+ }
2169
+ onRemoteConfig(e) {
2170
+ var t = !!e.heatmaps;
2171
+ this.instance.persistence && this.instance.persistence.register({ [Ri]: t }), this.qi = t, this.startIfEnabled();
2172
+ }
2173
+ getAndClearBuffer() {
2174
+ var e = this.M;
2175
+ return this.M = void 0, e;
2176
+ }
2177
+ Qi(e) {
2178
+ this.Zi(e.originalEvent, "deadclick");
2179
+ }
2180
+ Ki() {
2181
+ g && y && (T(g, "beforeunload", this.Yi.bind(this)), T(y, "click", (e) => this.Zi(e || (g == null ? void 0 : g.event)), { capture: !0 }), T(y, "mousemove", (e) => this.te(e || (g == null ? void 0 : g.event)), { capture: !0 }), this.Xi = new Ur(this.instance, ga, this.Qi.bind(this)), this.Xi.startIfEnabled(), this.i = !0);
2182
+ }
2183
+ ie(e, t) {
2184
+ var i = this.instance.scrollManager.scrollY(), r = this.instance.scrollManager.scrollX(), n = this.instance.scrollManager.scrollElement(), a = function(o, l, u) {
2185
+ for (var c = o; c && ni(c) && !Le(c, "body"); ) {
2186
+ if (c === u) return !1;
2187
+ if (I(l, g == null ? void 0 : g.getComputedStyle(c).position)) return !0;
2188
+ c = Ar(c);
2189
+ }
2190
+ return !1;
2191
+ }(Or(e), ["fixed", "sticky"], n);
2192
+ return { x: e.clientX + (a ? 0 : r), y: e.clientY + (a ? 0 : i), target_fixed: a, type: t };
2193
+ }
2194
+ Zi(e, t) {
2195
+ var i;
2196
+ if (t === void 0 && (t = "click"), !Ls(e.target) && nr(e)) {
2197
+ var r = this.ie(e, t);
2198
+ (i = this.rageclicks) != null && i.isRageClick(e.clientX, e.clientY, (/* @__PURE__ */ new Date()).getTime()) && this.ee(m({}, r, { type: "rageclick" })), this.ee(r);
2199
+ }
2200
+ }
2201
+ te(e) {
2202
+ !Ls(e.target) && nr(e) && (clearTimeout(this.re), this.re = setTimeout(() => {
2203
+ this.ee(this.ie(e, "mousemove"));
2204
+ }, 500));
2205
+ }
2206
+ ee(e) {
2207
+ if (g) {
2208
+ var t = g.location.href;
2209
+ this.M = this.M || {}, this.M[t] || (this.M[t] = []), this.M[t].push(e);
2210
+ }
2211
+ }
2212
+ Yi() {
2213
+ this.M && !tt(this.M) && this.instance.capture("$$heatmap", { $heatmap_data: this.getAndClearBuffer() });
2214
+ }
2215
+ }
2216
+ class ho {
2217
+ constructor(e) {
2218
+ this._instance = e;
2219
+ }
2220
+ doPageView(e, t) {
2221
+ var i, r = this.se(e, t);
2222
+ return this.ne = { pathname: (i = g == null ? void 0 : g.location.pathname) !== null && i !== void 0 ? i : "", pageViewId: t, timestamp: e }, this._instance.scrollManager.resetContext(), r;
2223
+ }
2224
+ doPageLeave(e) {
2225
+ var t;
2226
+ return this.se(e, (t = this.ne) == null ? void 0 : t.pageViewId);
2227
+ }
2228
+ doEvent() {
2229
+ var e;
2230
+ return { $pageview_id: (e = this.ne) == null ? void 0 : e.pageViewId };
2231
+ }
2232
+ se(e, t) {
2233
+ var i = this.ne;
2234
+ if (!i) return { $pageview_id: t };
2235
+ var r = { $pageview_id: t, $prev_pageview_id: i.pageViewId }, n = this._instance.scrollManager.getContext();
2236
+ if (n && !this._instance.config.disable_scroll_properties) {
2237
+ var { maxScrollHeight: a, lastScrollY: o, maxScrollY: l, maxContentHeight: u, lastContentY: c, maxContentY: p } = n;
2238
+ if (!(_(a) || _(o) || _(l) || _(u) || _(c) || _(p))) {
2239
+ a = Math.ceil(a), o = Math.ceil(o), l = Math.ceil(l), u = Math.ceil(u), c = Math.ceil(c), p = Math.ceil(p);
2240
+ var h = a <= 1 ? 1 : ne(o / a, 0, 1), d = a <= 1 ? 1 : ne(l / a, 0, 1), v = u <= 1 ? 1 : ne(c / u, 0, 1), f = u <= 1 ? 1 : ne(p / u, 0, 1);
2241
+ r = D(r, { $prev_pageview_last_scroll: o, $prev_pageview_last_scroll_percentage: h, $prev_pageview_max_scroll: l, $prev_pageview_max_scroll_percentage: d, $prev_pageview_last_content: c, $prev_pageview_last_content_percentage: v, $prev_pageview_max_content: p, $prev_pageview_max_content_percentage: f });
2242
+ }
2243
+ }
2244
+ return i.pathname && (r.$prev_pageview_pathname = i.pathname), i.timestamp && (r.$prev_pageview_duration = (e.getTime() - i.timestamp.getTime()) / 1e3), r;
2245
+ }
2246
+ }
2247
+ var po = function(s) {
2248
+ var e, t, i, r, n = "";
2249
+ for (e = t = 0, i = (s = (s + "").replace(/\r\n/g, `
2250
+ `).replace(/\r/g, `
2251
+ `)).length, r = 0; r < i; r++) {
2252
+ var a = s.charCodeAt(r), o = null;
2253
+ a < 128 ? t++ : o = a > 127 && a < 2048 ? String.fromCharCode(a >> 6 | 192, 63 & a | 128) : String.fromCharCode(a >> 12 | 224, a >> 6 & 63 | 128, 63 & a | 128), Ne(o) || (t > e && (n += s.substring(e, t)), n += o, e = t = r + 1);
2254
+ }
2255
+ return t > e && (n += s.substring(e, s.length)), n;
2256
+ }, go = !!Fi || !!Ii, ar = "text/plain", ei = (s, e) => {
2257
+ var [t, i] = s.split("?"), r = m({}, e);
2258
+ i == null || i.split("&").forEach((a) => {
2259
+ var [o] = a.split("=");
2260
+ delete r[o];
2261
+ });
2262
+ var n = ta(r);
2263
+ return t + "?" + (n = n ? (i ? i + "&" : "") + n : i);
2264
+ }, bt = (s, e) => JSON.stringify(s, (t, i) => typeof i == "bigint" ? i.toString() : i, e), Ei = (s) => {
2265
+ var { data: e, compression: t } = s;
2266
+ if (e) {
2267
+ if (t === Se.GZipJS) {
2268
+ var i = Qr(en(bt(e)), { mtime: 0 }), r = new Blob([i], { type: ar });
2269
+ return { contentType: ar, body: r, estimatedSize: r.size };
2270
+ }
2271
+ if (t === Se.Base64) {
2272
+ var n = function(l) {
2273
+ var u, c, p, h, d, v = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", f = 0, b = 0, E = "", k = [];
2274
+ if (!l) return l;
2275
+ l = po(l);
2276
+ do
2277
+ u = (d = l.charCodeAt(f++) << 16 | l.charCodeAt(f++) << 8 | l.charCodeAt(f++)) >> 18 & 63, c = d >> 12 & 63, p = d >> 6 & 63, h = 63 & d, k[b++] = v.charAt(u) + v.charAt(c) + v.charAt(p) + v.charAt(h);
2278
+ while (f < l.length);
2279
+ switch (E = k.join(""), l.length % 3) {
2280
+ case 1:
2281
+ E = E.slice(0, -2) + "==";
2282
+ break;
2283
+ case 2:
2284
+ E = E.slice(0, -1) + "=";
2285
+ }
2286
+ return E;
2287
+ }(bt(e)), a = ((l) => "data=" + encodeURIComponent(typeof l == "string" ? l : bt(l)))(n);
2288
+ return { contentType: "application/x-www-form-urlencoded", body: a, estimatedSize: new Blob([a]).size };
2289
+ }
2290
+ var o = bt(e);
2291
+ return { contentType: "application/json", body: o, estimatedSize: new Blob([o]).size };
2292
+ }
2293
+ }, xt = [];
2294
+ Ii && xt.push({ transport: "fetch", method: (s) => {
2295
+ var e, t, { contentType: i, body: r, estimatedSize: n } = (e = Ei(s)) !== null && e !== void 0 ? e : {}, a = new Headers();
2296
+ R(s.headers, function(c, p) {
2297
+ a.append(p, c);
2298
+ }), i && a.append("Content-Type", i);
2299
+ var o = s.url, l = null;
2300
+ if (ws) {
2301
+ var u = new ws();
2302
+ l = { signal: u.signal, timeout: setTimeout(() => u.abort(), s.timeout) };
2303
+ }
2304
+ Ii(o, m({ method: (s == null ? void 0 : s.method) || "GET", headers: a, keepalive: s.method === "POST" && (n || 0) < 52428.8, body: r, signal: (t = l) == null ? void 0 : t.signal }, s.fetchOptions)).then((c) => c.text().then((p) => {
2305
+ var h = { statusCode: c.status, text: p };
2306
+ if (c.status === 200) try {
2307
+ h.json = JSON.parse(p);
2308
+ } catch (d) {
2309
+ w.error(d);
2310
+ }
2311
+ s.callback == null || s.callback(h);
2312
+ })).catch((c) => {
2313
+ w.error(c), s.callback == null || s.callback({ statusCode: 0, text: c });
2314
+ }).finally(() => l ? clearTimeout(l.timeout) : null);
2315
+ } }), Fi && xt.push({ transport: "XHR", method: (s) => {
2316
+ var e, t = new Fi();
2317
+ t.open(s.method || "GET", s.url, !0);
2318
+ var { contentType: i, body: r } = (e = Ei(s)) !== null && e !== void 0 ? e : {};
2319
+ R(s.headers, function(n, a) {
2320
+ t.setRequestHeader(a, n);
2321
+ }), i && t.setRequestHeader("Content-Type", i), s.timeout && (t.timeout = s.timeout), t.withCredentials = !0, t.onreadystatechange = () => {
2322
+ if (t.readyState === 4) {
2323
+ var n = { statusCode: t.status, text: t.responseText };
2324
+ if (t.status === 200) try {
2325
+ n.json = JSON.parse(t.responseText);
2326
+ } catch {
2327
+ }
2328
+ s.callback == null || s.callback(n);
2329
+ }
2330
+ }, t.send(r);
2331
+ } }), ie != null && ie.sendBeacon && xt.push({ transport: "sendBeacon", method: (s) => {
2332
+ var e = ei(s.url, { beacon: "1" });
2333
+ try {
2334
+ var t, { contentType: i, body: r } = (t = Ei(s)) !== null && t !== void 0 ? t : {}, n = typeof r == "string" ? new Blob([r], { type: i }) : r;
2335
+ ie.sendBeacon(e, n);
2336
+ } catch {
2337
+ }
2338
+ } });
2339
+ var ut = function(s, e) {
2340
+ if (!function(t) {
2341
+ try {
2342
+ new RegExp(t);
2343
+ } catch {
2344
+ return !1;
2345
+ }
2346
+ return !0;
2347
+ }(e)) return !1;
2348
+ try {
2349
+ return new RegExp(e).test(s);
2350
+ } catch {
2351
+ return !1;
2352
+ }
2353
+ };
2354
+ function or(s, e, t) {
2355
+ return bt({ distinct_id: s, userPropertiesToSet: e, userPropertiesToSetOnce: t });
2356
+ }
2357
+ var fo = { exact: (s, e) => e.some((t) => s.some((i) => t === i)), is_not: (s, e) => e.every((t) => s.every((i) => t !== i)), regex: (s, e) => e.some((t) => s.some((i) => ut(t, i))), not_regex: (s, e) => e.every((t) => s.every((i) => !ut(t, i))), icontains: (s, e) => e.map(Dt).some((t) => s.map(Dt).some((i) => t.includes(i))), not_icontains: (s, e) => e.map(Dt).every((t) => s.map(Dt).every((i) => !t.includes(i))) }, Dt = (s) => s.toLowerCase(), vo = j("[Error tracking]");
2358
+ class _o {
2359
+ constructor(e) {
2360
+ var t, i;
2361
+ this.oe = [], this._instance = e, this.oe = (t = (i = this._instance.persistence) == null ? void 0 : i.get_property(Mi)) !== null && t !== void 0 ? t : [];
2362
+ }
2363
+ onRemoteConfig(e) {
2364
+ var t, i, r = (t = (i = e.errorTracking) == null ? void 0 : i.suppressionRules) !== null && t !== void 0 ? t : [];
2365
+ this.oe = r, this._instance.persistence && this._instance.persistence.register({ [Mi]: this.oe });
2366
+ }
2367
+ sendExceptionEvent(e) {
2368
+ this.ae(e) ? vo.info("Skipping exception capture because a suppression rule matched") : this._instance.capture("$exception", e, { _noTruncate: !0, _batchKey: "exceptionEvent" });
2369
+ }
2370
+ ae(e) {
2371
+ var t = e.$exception_list;
2372
+ if (!t || !C(t) || t.length === 0) return !1;
2373
+ var i = t.reduce((r, n) => {
2374
+ var { type: a, value: o } = n;
2375
+ return A(a) && a.length > 0 && r.$exception_types.push(a), A(o) && o.length > 0 && r.$exception_messages.push(o), r;
2376
+ }, { $exception_types: [], $exception_messages: [] });
2377
+ return this.oe.some((r) => {
2378
+ var n = r.values.map((a) => {
2379
+ var o = fo[a.operator], l = C(a.value) ? a.value : [a.value], u = i[a.key];
2380
+ return l.length > 0 && o(l, u);
2381
+ });
2382
+ return r.type === "OR" ? n.some(Boolean) : n.every(Boolean);
2383
+ });
2384
+ }
2385
+ }
2386
+ var le = "Mobile", ti = "iOS", _e = "Android", It = "Tablet", an = _e + " " + It, on = "iPad", ln = "Apple", un = ln + " Watch", Ft = "Safari", ct = "BlackBerry", cn = "Samsung", hn = cn + "Browser", dn = cn + " Internet", Xe = "Chrome", mo = Xe + " OS", pn = Xe + " " + ti, cs = "Internet Explorer", gn = cs + " " + le, hs = "Opera", yo = hs + " Mini", ds = "Edge", fn = "Microsoft " + ds, rt = "Firefox", vn = rt + " " + ti, $t = "Nintendo", Pt = "PlayStation", nt = "Xbox", _n = _e + " " + le, mn = le + " " + Ft, wt = "Windows", Ji = wt + " Phone", lr = "Nokia", Zi = "Ouya", yn = "Generic", bo = yn + " " + le.toLowerCase(), bn = yn + " " + It.toLowerCase(), Ki = "Konqueror", Y = "(\\d+(\\.\\d+)?)", ki = new RegExp("Version/" + Y), wo = new RegExp(nt, "i"), Eo = new RegExp(Pt + " \\w+", "i"), ko = new RegExp($t + " \\w+", "i"), ps = new RegExp(ct + "|PlayBook|BB10", "i"), xo = { "NT3.51": "NT 3.11", "NT4.0": "NT 4.0", "5.0": "2000", 5.1: "XP", 5.2: "XP", "6.0": "Vista", 6.1: "7", 6.2: "8", 6.3: "8.1", 6.4: "10", "10.0": "10" }, So = (s, e) => e && I(e, ln) || function(t) {
2387
+ return I(t, Ft) && !I(t, Xe) && !I(t, _e);
2388
+ }(s), wn = function(s, e) {
2389
+ return e = e || "", I(s, " OPR/") && I(s, "Mini") ? yo : I(s, " OPR/") ? hs : ps.test(s) ? ct : I(s, "IE" + le) || I(s, "WPDesktop") ? gn : I(s, hn) ? dn : I(s, ds) || I(s, "Edg/") ? fn : I(s, "FBIOS") ? "Facebook " + le : I(s, "UCWEB") || I(s, "UCBrowser") ? "UC Browser" : I(s, "CriOS") ? pn : I(s, "CrMo") || I(s, Xe) ? Xe : I(s, _e) && I(s, Ft) ? _n : I(s, "FxiOS") ? vn : I(s.toLowerCase(), Ki.toLowerCase()) ? Ki : So(s, e) ? I(s, le) ? mn : Ft : I(s, rt) ? rt : I(s, "MSIE") || I(s, "Trident/") ? cs : I(s, "Gecko") ? rt : "";
2390
+ }, Io = { [gn]: [new RegExp("rv:" + Y)], [fn]: [new RegExp(ds + "?\\/" + Y)], [Xe]: [new RegExp("(" + Xe + "|CrMo)\\/" + Y)], [pn]: [new RegExp("CriOS\\/" + Y)], "UC Browser": [new RegExp("(UCBrowser|UCWEB)\\/" + Y)], [Ft]: [ki], [mn]: [ki], [hs]: [new RegExp("(Opera|OPR)\\/" + Y)], [rt]: [new RegExp(rt + "\\/" + Y)], [vn]: [new RegExp("FxiOS\\/" + Y)], [Ki]: [new RegExp("Konqueror[:/]?" + Y, "i")], [ct]: [new RegExp(ct + " " + Y), ki], [_n]: [new RegExp("android\\s" + Y, "i")], [dn]: [new RegExp(hn + "\\/" + Y)], [cs]: [new RegExp("(rv:|MSIE )" + Y)], Mozilla: [new RegExp("rv:" + Y)] }, Fo = function(s, e) {
2391
+ var t = wn(s, e), i = Io[t];
2392
+ if (_(i)) return null;
2393
+ for (var r = 0; r < i.length; r++) {
2394
+ var n = i[r], a = s.match(n);
2395
+ if (a) return parseFloat(a[a.length - 2]);
2396
+ }
2397
+ return null;
2398
+ }, ur = [[new RegExp(nt + "; " + nt + " (.*?)[);]", "i"), (s) => [nt, s && s[1] || ""]], [new RegExp($t, "i"), [$t, ""]], [new RegExp(Pt, "i"), [Pt, ""]], [ps, [ct, ""]], [new RegExp(wt, "i"), (s, e) => {
2399
+ if (/Phone/.test(e) || /WPDesktop/.test(e)) return [Ji, ""];
2400
+ if (new RegExp(le).test(e) && !/IEMobile\b/.test(e)) return [wt + " " + le, ""];
2401
+ var t = /Windows NT ([0-9.]+)/i.exec(e);
2402
+ if (t && t[1]) {
2403
+ var i = t[1], r = xo[i] || "";
2404
+ return /arm/i.test(e) && (r = "RT"), [wt, r];
2405
+ }
2406
+ return [wt, ""];
2407
+ }], [/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/, (s) => {
2408
+ if (s && s[3]) {
2409
+ var e = [s[3], s[4], s[5] || "0"];
2410
+ return [ti, e.join(".")];
2411
+ }
2412
+ return [ti, ""];
2413
+ }], [/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i, (s) => {
2414
+ var e = "";
2415
+ return s && s.length >= 3 && (e = _(s[2]) ? s[3] : s[2]), ["watchOS", e];
2416
+ }], [new RegExp("(" + _e + " (\\d+)\\.(\\d+)\\.?(\\d+)?|" + _e + ")", "i"), (s) => {
2417
+ if (s && s[2]) {
2418
+ var e = [s[2], s[3], s[4] || "0"];
2419
+ return [_e, e.join(".")];
2420
+ }
2421
+ return [_e, ""];
2422
+ }], [/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i, (s) => {
2423
+ var e = ["Mac OS X", ""];
2424
+ if (s && s[1]) {
2425
+ var t = [s[1], s[2], s[3] || "0"];
2426
+ e[1] = t.join(".");
2427
+ }
2428
+ return e;
2429
+ }], [/Mac/i, ["Mac OS X", ""]], [/CrOS/, [mo, ""]], [/Linux|debian/i, ["Linux", ""]]], cr = function(s) {
2430
+ return ko.test(s) ? $t : Eo.test(s) ? Pt : wo.test(s) ? nt : new RegExp(Zi, "i").test(s) ? Zi : new RegExp("(" + Ji + "|WPDesktop)", "i").test(s) ? Ji : /iPad/.test(s) ? on : /iPod/.test(s) ? "iPod Touch" : /iPhone/.test(s) ? "iPhone" : /(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(s) ? un : ps.test(s) ? ct : /(kobo)\s(ereader|touch)/i.test(s) ? "Kobo" : new RegExp(lr, "i").test(s) ? lr : /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(s) || /(kf[a-z]+)( bui|\)).+silk\//i.test(s) ? "Kindle Fire" : /(Android|ZTE)/i.test(s) ? !new RegExp(le).test(s) || /(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(s) ? /pixel[\daxl ]{1,6}/i.test(s) && !/pixel c/i.test(s) || /(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(s) || /lmy47v/i.test(s) && !/QTAQZ3/i.test(s) ? _e : an : _e : new RegExp("(pda|" + le + ")", "i").test(s) ? bo : new RegExp(It, "i").test(s) && !new RegExp(It + " pc", "i").test(s) ? bn : "";
2431
+ }, Nt = "https?://(.*)", oi = ["gclid", "gclsrc", "dclid", "gbraid", "wbraid", "fbclid", "msclkid", "twclid", "li_fat_id", "igshid", "ttclid", "rdt_cid", "epik", "qclid", "sccid", "irclid", "_kx"], $o = ri(["utm_source", "utm_medium", "utm_campaign", "utm_content", "utm_term", "gad_source", "mc_cid"], oi), gs = "<masked>";
2432
+ function En(s, e, t) {
2433
+ if (!y) return {};
2434
+ var i = e ? ri([], oi, t || []) : [];
2435
+ return kn(ss(y.URL, i, gs), s);
2436
+ }
2437
+ function kn(s, e) {
2438
+ var t = $o.concat(e || []), i = {};
2439
+ return R(t, function(r) {
2440
+ var n = Xt(s, r);
2441
+ i[r] = n || null;
2442
+ }), i;
2443
+ }
2444
+ function xn(s) {
2445
+ var e = function(n) {
2446
+ return n ? n.search(Nt + "google.([^/?]*)") === 0 ? "google" : n.search(Nt + "bing.com") === 0 ? "bing" : n.search(Nt + "yahoo.com") === 0 ? "yahoo" : n.search(Nt + "duckduckgo.com") === 0 ? "duckduckgo" : null : null;
2447
+ }(s), t = e != "yahoo" ? "q" : "p", i = {};
2448
+ if (!Ne(e)) {
2449
+ i.$search_engine = e;
2450
+ var r = y ? Xt(y.referrer, t) : "";
2451
+ r.length && (i.ph_keyword = r);
2452
+ }
2453
+ return i;
2454
+ }
2455
+ function hr() {
2456
+ return navigator.language || navigator.userLanguage;
2457
+ }
2458
+ function Sn() {
2459
+ return (y == null ? void 0 : y.referrer) || "$direct";
2460
+ }
2461
+ function In(s, e) {
2462
+ var t = s ? ri([], oi, e || []) : [], i = Z == null ? void 0 : Z.href.substring(0, 1e3);
2463
+ return { r: Sn().substring(0, 1e3), u: i ? ss(i, t, gs) : void 0 };
2464
+ }
2465
+ function Fn(s) {
2466
+ var e, { r: t, u: i } = s, r = { $referrer: t, $referring_domain: t == null ? void 0 : t == "$direct" ? "$direct" : (e = ot(t)) == null ? void 0 : e.host };
2467
+ if (i) {
2468
+ r.$current_url = i;
2469
+ var n = ot(i);
2470
+ r.$host = n == null ? void 0 : n.host, r.$pathname = n == null ? void 0 : n.pathname;
2471
+ var a = kn(i);
2472
+ D(r, a);
2473
+ }
2474
+ if (t) {
2475
+ var o = xn(t);
2476
+ D(r, o);
2477
+ }
2478
+ return r;
2479
+ }
2480
+ function $n() {
2481
+ try {
2482
+ return Intl.DateTimeFormat().resolvedOptions().timeZone;
2483
+ } catch {
2484
+ return;
2485
+ }
2486
+ }
2487
+ function Po() {
2488
+ try {
2489
+ return (/* @__PURE__ */ new Date()).getTimezoneOffset();
2490
+ } catch {
2491
+ return;
2492
+ }
2493
+ }
2494
+ function Ro(s, e) {
2495
+ if (!J) return {};
2496
+ var t, i, r, n = s ? ri([], oi, e || []) : [], [a, o] = function(l) {
2497
+ for (var u = 0; u < ur.length; u++) {
2498
+ var [c, p] = ur[u], h = c.exec(l), d = h && (ae(p) ? p(h, l) : p);
2499
+ if (d) return d;
2500
+ }
2501
+ return ["", ""];
2502
+ }(J);
2503
+ return D(ts({ $os: a, $os_version: o, $browser: wn(J, navigator.vendor), $device: cr(J), $device_type: (i = J, r = cr(i), r === on || r === an || r === "Kobo" || r === "Kindle Fire" || r === bn ? It : r === $t || r === nt || r === Pt || r === Zi ? "Console" : r === un ? "Wearable" : r ? le : "Desktop"), $timezone: $n(), $timezone_offset: Po() }), { $current_url: ss(Z == null ? void 0 : Z.href, n, gs), $host: Z == null ? void 0 : Z.host, $pathname: Z == null ? void 0 : Z.pathname, $raw_user_agent: J.length > 1e3 ? J.substring(0, 997) + "..." : J, $browser_version: Fo(J, navigator.vendor), $browser_language: hr(), $browser_language_prefix: (t = hr(), typeof t == "string" ? t.split("-")[0] : void 0), $screen_height: g == null ? void 0 : g.screen.height, $screen_width: g == null ? void 0 : g.screen.width, $viewport_height: g == null ? void 0 : g.innerHeight, $viewport_width: g == null ? void 0 : g.innerWidth, $lib: "web", $lib_version: xe.LIB_VERSION, $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10), $time: Date.now() / 1e3 });
2504
+ }
2505
+ var fe = j("[FeatureFlags]"), xi = "$active_feature_flags", Qe = "$override_feature_flags", dr = "$feature_flag_payloads", gt = "$override_feature_flag_payloads", pr = "$feature_flag_request_id", gr = (s) => {
2506
+ var e = {};
2507
+ for (var [t, i] of qt(s || {})) i && (e[t] = i);
2508
+ return e;
2509
+ }, Mo = (s) => {
2510
+ var e = s.flags;
2511
+ return e ? (s.featureFlags = Object.fromEntries(Object.keys(e).map((t) => {
2512
+ var i;
2513
+ return [t, (i = e[t].variant) !== null && i !== void 0 ? i : e[t].enabled];
2514
+ })), s.featureFlagPayloads = Object.fromEntries(Object.keys(e).filter((t) => e[t].enabled).filter((t) => {
2515
+ var i;
2516
+ return (i = e[t].metadata) == null ? void 0 : i.payload;
2517
+ }).map((t) => {
2518
+ var i;
2519
+ return [t, (i = e[t].metadata) == null ? void 0 : i.payload];
2520
+ }))) : fe.warn("Using an older version of the feature flags endpoint. Please upgrade your PostHog server to the latest version"), s;
2521
+ }, Co = function(s) {
2522
+ return s.FeatureFlags = "feature_flags", s.Recordings = "recordings", s;
2523
+ }({});
2524
+ class To {
2525
+ constructor(e) {
2526
+ this.le = !1, this.ue = !1, this.he = !1, this.de = !1, this.ve = !1, this.ce = !1, this.fe = !1, this._instance = e, this.featureFlagEventHandlers = [];
2527
+ }
2528
+ decide() {
2529
+ if (this._instance.config.__preview_remote_config) this.ce = !0;
2530
+ else {
2531
+ var e = !this.pe && (this._instance.config.advanced_disable_feature_flags || this._instance.config.advanced_disable_feature_flags_on_first_load);
2532
+ this.ge({ disableFlags: e });
2533
+ }
2534
+ }
2535
+ get hasLoadedFlags() {
2536
+ return this.ue;
2537
+ }
2538
+ getFlags() {
2539
+ return Object.keys(this.getFlagVariants());
2540
+ }
2541
+ getFlagsWithDetails() {
2542
+ var e = this._instance.get_property(Ai), t = this._instance.get_property(Qe), i = this._instance.get_property(gt);
2543
+ if (!i && !t) return e || {};
2544
+ var r = D({}, e || {}), n = [.../* @__PURE__ */ new Set([...Object.keys(i || {}), ...Object.keys(t || {})])];
2545
+ for (var a of n) {
2546
+ var o, l, u = r[a], c = t == null ? void 0 : t[a], p = _(c) ? (o = u == null ? void 0 : u.enabled) !== null && o !== void 0 && o : !!c, h = _(c) ? u.variant : typeof c == "string" ? c : void 0, d = i == null ? void 0 : i[a], v = m({}, u, { enabled: p, variant: p ? h ?? (u == null ? void 0 : u.variant) : void 0 });
2547
+ p !== (u == null ? void 0 : u.enabled) && (v.original_enabled = u == null ? void 0 : u.enabled), h !== (u == null ? void 0 : u.variant) && (v.original_variant = u == null ? void 0 : u.variant), d && (v.metadata = m({}, u == null ? void 0 : u.metadata, { payload: d, original_payload: u == null || (l = u.metadata) == null ? void 0 : l.payload })), r[a] = v;
2548
+ }
2549
+ return this.le || (fe.warn(" Overriding feature flag details!", { flagDetails: e, overriddenPayloads: i, finalDetails: r }), this.le = !0), r;
2550
+ }
2551
+ getFlagVariants() {
2552
+ var e = this._instance.get_property(it), t = this._instance.get_property(Qe);
2553
+ if (!t) return e || {};
2554
+ for (var i = D({}, e), r = Object.keys(t), n = 0; n < r.length; n++) i[r[n]] = t[r[n]];
2555
+ return this.le || (fe.warn(" Overriding feature flags!", { enabledFlags: e, overriddenFlags: t, finalFlags: i }), this.le = !0), i;
2556
+ }
2557
+ getFlagPayloads() {
2558
+ var e = this._instance.get_property(dr), t = this._instance.get_property(gt);
2559
+ if (!t) return e || {};
2560
+ for (var i = D({}, e || {}), r = Object.keys(t), n = 0; n < r.length; n++) i[r[n]] = t[r[n]];
2561
+ return this.le || (fe.warn(" Overriding feature flag payloads!", { flagPayloads: e, overriddenPayloads: t, finalPayloads: i }), this.le = !0), i;
2562
+ }
2563
+ reloadFeatureFlags() {
2564
+ this.de || this._instance.config.advanced_disable_feature_flags || this.pe || (this.pe = setTimeout(() => {
2565
+ this.ge();
2566
+ }, 5));
2567
+ }
2568
+ _e() {
2569
+ clearTimeout(this.pe), this.pe = void 0;
2570
+ }
2571
+ ensureFlagsLoaded() {
2572
+ this.ue || this.he || this.pe || this.reloadFeatureFlags();
2573
+ }
2574
+ setAnonymousDistinctId(e) {
2575
+ this.$anon_distinct_id = e;
2576
+ }
2577
+ setReloadingPaused(e) {
2578
+ this.de = e;
2579
+ }
2580
+ ge(e) {
2581
+ var t;
2582
+ if (this._e(), !this._instance.config.advanced_disable_decide) if (this.he) this.ve = !0;
2583
+ else {
2584
+ var i = { token: this._instance.config.token, distinct_id: this._instance.get_distinct_id(), groups: this._instance.getGroups(), $anon_distinct_id: this.$anon_distinct_id, person_properties: m({}, ((t = this._instance.persistence) == null ? void 0 : t.get_initial_props()) || {}, this._instance.get_property(mt) || {}), group_properties: this._instance.get_property(We) };
2585
+ (e != null && e.disableFlags || this._instance.config.advanced_disable_feature_flags) && (i.disable_flags = !0);
2586
+ var r = this._instance.config.__preview_flags_v2 && this._instance.config.__preview_remote_config;
2587
+ r && (i.timezone = $n()), this.he = !0, this._instance.me({ method: "POST", url: this._instance.requestRouter.endpointFor("api", r ? "/flags/?v=2" : "/decide/?v=4"), data: i, compression: this._instance.config.disable_compression ? void 0 : Se.Base64, timeout: this._instance.config.feature_flag_request_timeout_ms, callback: (n) => {
2588
+ var a, o, l = !0;
2589
+ if (n.statusCode === 200 && (this.ve || (this.$anon_distinct_id = void 0), l = !1), this.he = !1, this.ce || (this.ce = !0, this._instance.be((o = n.json) !== null && o !== void 0 ? o : {})), !i.disable_flags || this.ve) if (this.fe = !l, n.json && (a = n.json.quotaLimited) != null && a.includes(Co.FeatureFlags)) fe.warn("You have hit your feature flags quota limit, and will not be able to load feature flags until the quota is reset. Please visit https://posthog.com/docs/billing/limits-alerts to learn more.");
2590
+ else {
2591
+ var u;
2592
+ i.disable_flags || this.receivedFeatureFlags((u = n.json) !== null && u !== void 0 ? u : {}, l), this.ve && (this.ve = !1, this.ge());
2593
+ }
2594
+ } });
2595
+ }
2596
+ }
2597
+ getFeatureFlag(e, t) {
2598
+ if (t === void 0 && (t = {}), this.ue || this.getFlags() && this.getFlags().length > 0) {
2599
+ var i = this.getFlagVariants()[e], r = "" + i, n = this._instance.get_property(pr) || void 0, a = this._instance.get_property(Wt) || {};
2600
+ if ((t.send_event || !("send_event" in t)) && (!(e in a) || !a[e].includes(r))) {
2601
+ var o, l, u, c, p, h, d, v, f;
2602
+ C(a[e]) ? a[e].push(r) : a[e] = [r], (o = this._instance.persistence) == null || o.register({ [Wt]: a });
2603
+ var b = this.getFeatureFlagDetails(e), E = { $feature_flag: e, $feature_flag_response: i, $feature_flag_payload: this.getFeatureFlagPayload(e) || null, $feature_flag_request_id: n, $feature_flag_bootstrapped_response: ((l = this._instance.config.bootstrap) == null || (l = l.featureFlags) == null ? void 0 : l[e]) || null, $feature_flag_bootstrapped_payload: ((u = this._instance.config.bootstrap) == null || (u = u.featureFlagPayloads) == null ? void 0 : u[e]) || null, $used_bootstrap_value: !this.fe };
2604
+ _(b == null || (c = b.metadata) == null ? void 0 : c.version) || (E.$feature_flag_version = b.metadata.version);
2605
+ var k, S = (p = b == null || (h = b.reason) == null ? void 0 : h.description) !== null && p !== void 0 ? p : b == null || (d = b.reason) == null ? void 0 : d.code;
2606
+ S && (E.$feature_flag_reason = S), b != null && (v = b.metadata) != null && v.id && (E.$feature_flag_id = b.metadata.id), _(b == null ? void 0 : b.original_variant) && _(b == null ? void 0 : b.original_enabled) || (E.$feature_flag_original_response = _(b.original_variant) ? b.original_enabled : b.original_variant), b != null && (f = b.metadata) != null && f.original_payload && (E.$feature_flag_original_payload = b == null || (k = b.metadata) == null ? void 0 : k.original_payload), this._instance.capture("$feature_flag_called", E);
2607
+ }
2608
+ return i;
2609
+ }
2610
+ fe.warn('getFeatureFlag for key "' + e + `" failed. Feature flags didn't load in time.`);
2611
+ }
2612
+ getFeatureFlagDetails(e) {
2613
+ return this.getFlagsWithDetails()[e];
2614
+ }
2615
+ getFeatureFlagPayload(e) {
2616
+ return this.getFlagPayloads()[e];
2617
+ }
2618
+ getRemoteConfigPayload(e, t) {
2619
+ var i = this._instance.config.token;
2620
+ this._instance.me({ method: "POST", url: this._instance.requestRouter.endpointFor("api", "/decide/?v=4"), data: { distinct_id: this._instance.get_distinct_id(), token: i }, compression: this._instance.config.disable_compression ? void 0 : Se.Base64, timeout: this._instance.config.feature_flag_request_timeout_ms, callback: (r) => {
2621
+ var n, a = (n = r.json) == null ? void 0 : n.featureFlagPayloads;
2622
+ t((a == null ? void 0 : a[e]) || void 0);
2623
+ } });
2624
+ }
2625
+ isFeatureEnabled(e, t) {
2626
+ if (t === void 0 && (t = {}), this.ue || this.getFlags() && this.getFlags().length > 0) return !!this.getFeatureFlag(e, t);
2627
+ fe.warn('isFeatureEnabled for key "' + e + `" failed. Feature flags didn't load in time.`);
2628
+ }
2629
+ addFeatureFlagsHandler(e) {
2630
+ this.featureFlagEventHandlers.push(e);
2631
+ }
2632
+ removeFeatureFlagsHandler(e) {
2633
+ this.featureFlagEventHandlers = this.featureFlagEventHandlers.filter((t) => t !== e);
2634
+ }
2635
+ receivedFeatureFlags(e, t) {
2636
+ if (this._instance.persistence) {
2637
+ this.ue = !0;
2638
+ var i = this.getFlagVariants(), r = this.getFlagPayloads(), n = this.getFlagsWithDetails();
2639
+ (function(a, o, l, u, c) {
2640
+ l === void 0 && (l = {}), u === void 0 && (u = {}), c === void 0 && (c = {});
2641
+ var p = Mo(a), h = p.flags, d = p.featureFlags, v = p.featureFlagPayloads;
2642
+ if (d) {
2643
+ var f = a.requestId;
2644
+ if (C(d)) {
2645
+ fe.warn("v1 of the feature flags endpoint is deprecated. Please use the latest version.");
2646
+ var b = {};
2647
+ if (d) for (var E = 0; E < d.length; E++) b[d[E]] = !0;
2648
+ o && o.register({ [xi]: d, [it]: b });
2649
+ } else {
2650
+ var k = d, S = v, $ = h;
2651
+ a.errorsWhileComputingFlags && (k = m({}, l, k), S = m({}, u, S), $ = m({}, c, $)), o && o.register(m({ [xi]: Object.keys(gr(k)), [it]: k || {}, [dr]: S || {}, [Ai]: $ || {} }, f ? { [pr]: f } : {}));
2652
+ }
2653
+ }
2654
+ })(e, this._instance.persistence, i, r, n), this.we(t);
2655
+ }
2656
+ }
2657
+ override(e, t) {
2658
+ t === void 0 && (t = !1), fe.warn("override is deprecated. Please use overrideFeatureFlags instead."), this.overrideFeatureFlags({ flags: e, suppressWarning: t });
2659
+ }
2660
+ overrideFeatureFlags(e) {
2661
+ if (!this._instance.__loaded || !this._instance.persistence) return fe.uninitializedWarning("posthog.featureFlags.overrideFeatureFlags");
2662
+ if (e === !1) return this._instance.persistence.unregister(Qe), this._instance.persistence.unregister(gt), void this.we();
2663
+ if (e && typeof e == "object" && ("flags" in e || "payloads" in e)) {
2664
+ var t, i = e;
2665
+ if (this.le = !!((t = i.suppressWarning) !== null && t !== void 0 && t), "flags" in i) {
2666
+ if (i.flags === !1) this._instance.persistence.unregister(Qe);
2667
+ else if (i.flags) if (C(i.flags)) {
2668
+ for (var r = {}, n = 0; n < i.flags.length; n++) r[i.flags[n]] = !0;
2669
+ this._instance.persistence.register({ [Qe]: r });
2670
+ } else this._instance.persistence.register({ [Qe]: i.flags });
2671
+ }
2672
+ return "payloads" in i && (i.payloads === !1 ? this._instance.persistence.unregister(gt) : i.payloads && this._instance.persistence.register({ [gt]: i.payloads })), void this.we();
2673
+ }
2674
+ this.we();
2675
+ }
2676
+ onFeatureFlags(e) {
2677
+ if (this.addFeatureFlagsHandler(e), this.ue) {
2678
+ var { flags: t, flagVariants: i } = this.ye();
2679
+ e(t, i);
2680
+ }
2681
+ return () => this.removeFeatureFlagsHandler(e);
2682
+ }
2683
+ updateEarlyAccessFeatureEnrollment(e, t) {
2684
+ var i, r = (this._instance.get_property(Bt) || []).find((l) => l.flagKey === e), n = { ["$feature_enrollment/" + e]: t }, a = { $feature_flag: e, $feature_enrollment: t, $set: n };
2685
+ r && (a.$early_access_feature_name = r.name), this._instance.capture("$feature_enrollment_update", a), this.setPersonPropertiesForFlags(n, !1);
2686
+ var o = m({}, this.getFlagVariants(), { [e]: t });
2687
+ (i = this._instance.persistence) == null || i.register({ [xi]: Object.keys(gr(o)), [it]: o }), this.we();
2688
+ }
2689
+ getEarlyAccessFeatures(e, t, i) {
2690
+ t === void 0 && (t = !1);
2691
+ var r = this._instance.get_property(Bt), n = i ? "&" + i.map((a) => "stage=" + a).join("&") : "";
2692
+ if (r && !t) return e(r);
2693
+ this._instance.me({ url: this._instance.requestRouter.endpointFor("api", "/api/early_access_features/?token=" + this._instance.config.token + n), method: "GET", callback: (a) => {
2694
+ var o;
2695
+ if (a.json) {
2696
+ var l = a.json.earlyAccessFeatures;
2697
+ return (o = this._instance.persistence) == null || o.register({ [Bt]: l }), e(l);
2698
+ }
2699
+ } });
2700
+ }
2701
+ ye() {
2702
+ var e = this.getFlags(), t = this.getFlagVariants();
2703
+ return { flags: e.filter((i) => t[i]), flagVariants: Object.keys(t).filter((i) => t[i]).reduce((i, r) => (i[r] = t[r], i), {}) };
2704
+ }
2705
+ we(e) {
2706
+ var { flags: t, flagVariants: i } = this.ye();
2707
+ this.featureFlagEventHandlers.forEach((r) => r(t, i, { errorsLoading: e }));
2708
+ }
2709
+ setPersonPropertiesForFlags(e, t) {
2710
+ t === void 0 && (t = !0);
2711
+ var i = this._instance.get_property(mt) || {};
2712
+ this._instance.register({ [mt]: m({}, i, e) }), t && this._instance.reloadFeatureFlags();
2713
+ }
2714
+ resetPersonPropertiesForFlags() {
2715
+ this._instance.unregister(mt);
2716
+ }
2717
+ setGroupPropertiesForFlags(e, t) {
2718
+ t === void 0 && (t = !0);
2719
+ var i = this._instance.get_property(We) || {};
2720
+ Object.keys(i).length !== 0 && Object.keys(i).forEach((r) => {
2721
+ i[r] = m({}, i[r], e[r]), delete e[r];
2722
+ }), this._instance.register({ [We]: m({}, i, e) }), t && this._instance.reloadFeatureFlags();
2723
+ }
2724
+ resetGroupPropertiesForFlags(e) {
2725
+ if (e) {
2726
+ var t = this._instance.get_property(We) || {};
2727
+ this._instance.register({ [We]: m({}, t, { [e]: {} }) });
2728
+ } else this._instance.unregister(We);
2729
+ }
2730
+ }
2731
+ var Oo = ["cookie", "localstorage", "localstorage+cookie", "sessionstorage", "memory"];
2732
+ class Si {
2733
+ constructor(e) {
2734
+ this.S = e, this.props = {}, this.Se = !1, this.$e = ((t) => {
2735
+ var i = "";
2736
+ return t.token && (i = t.token.replace(/\+/g, "PL").replace(/\//g, "SL").replace(/=/g, "EQ")), t.persistence_name ? "ph_" + t.persistence_name : "ph_" + i + "_posthog";
2737
+ })(e), this.q = this.ke(e), this.load(), e.debug && w.info("Persistence loaded", e.persistence, m({}, this.props)), this.update_config(e, e), this.save();
2738
+ }
2739
+ ke(e) {
2740
+ Oo.indexOf(e.persistence.toLowerCase()) === -1 && (w.critical("Unknown persistence type " + e.persistence + "; falling back to localStorage+cookie"), e.persistence = "localStorage+cookie");
2741
+ var t = e.persistence.toLowerCase();
2742
+ return t === "localstorage" && q.O() ? q : t === "localstorage+cookie" && Mt.O() ? Mt : t === "sessionstorage" && H.O() ? H : t === "memory" ? da : t === "cookie" ? Ie : Mt.O() ? Mt : Ie;
2743
+ }
2744
+ properties() {
2745
+ var e = {};
2746
+ return R(this.props, function(t, i) {
2747
+ if (i === it && O(t)) for (var r = Object.keys(t), n = 0; n < r.length; n++) e["$feature/" + r[n]] = t[r[n]];
2748
+ else o = i, l = !1, (Ne(a = Gn) ? l : bs && a.indexOf === bs ? a.indexOf(o) != -1 : (R(a, function(u) {
2749
+ if (l || (l = u === o)) return jt;
2750
+ }), l)) || (e[i] = t);
2751
+ var a, o, l;
2752
+ }), e;
2753
+ }
2754
+ load() {
2755
+ if (!this.xe) {
2756
+ var e = this.q.D(this.$e);
2757
+ e && (this.props = D({}, e));
2758
+ }
2759
+ }
2760
+ save() {
2761
+ this.xe || this.q.L(this.$e, this.props, this.Ee, this.Ie, this.Pe, this.S.debug);
2762
+ }
2763
+ remove() {
2764
+ this.q.N(this.$e, !1), this.q.N(this.$e, !0);
2765
+ }
2766
+ clear() {
2767
+ this.remove(), this.props = {};
2768
+ }
2769
+ register_once(e, t, i) {
2770
+ if (O(e)) {
2771
+ _(t) && (t = "None"), this.Ee = _(i) ? this.Re : i;
2772
+ var r = !1;
2773
+ if (R(e, (n, a) => {
2774
+ this.props.hasOwnProperty(a) && this.props[a] !== t || (this.props[a] = n, r = !0);
2775
+ }), r) return this.save(), !0;
2776
+ }
2777
+ return !1;
2778
+ }
2779
+ register(e, t) {
2780
+ if (O(e)) {
2781
+ this.Ee = _(t) ? this.Re : t;
2782
+ var i = !1;
2783
+ if (R(e, (r, n) => {
2784
+ e.hasOwnProperty(n) && this.props[n] !== r && (this.props[n] = r, i = !0);
2785
+ }), i) return this.save(), !0;
2786
+ }
2787
+ return !1;
2788
+ }
2789
+ unregister(e) {
2790
+ e in this.props && (delete this.props[e], this.save());
2791
+ }
2792
+ update_campaign_params() {
2793
+ if (!this.Se) {
2794
+ var e = En(this.S.custom_campaign_params, this.S.mask_personal_data_properties, this.S.custom_personal_data_properties);
2795
+ tt(ts(e)) || this.register(e), this.Se = !0;
2796
+ }
2797
+ }
2798
+ update_search_keyword() {
2799
+ var e;
2800
+ this.register((e = y == null ? void 0 : y.referrer) ? xn(e) : {});
2801
+ }
2802
+ update_referrer_info() {
2803
+ var e;
2804
+ this.register_once({ $referrer: Sn(), $referring_domain: y != null && y.referrer && ((e = ot(y.referrer)) == null ? void 0 : e.host) || "$direct" }, void 0);
2805
+ }
2806
+ set_initial_person_info() {
2807
+ this.props[qi] || this.props[Bi] || this.register_once({ [zt]: In(this.S.mask_personal_data_properties, this.S.custom_personal_data_properties) }, void 0);
2808
+ }
2809
+ get_initial_props() {
2810
+ var e = {};
2811
+ R([Bi, qi], (a) => {
2812
+ var o = this.props[a];
2813
+ o && R(o, function(l, u) {
2814
+ e["$initial_" + $i(u)] = l;
2815
+ });
2816
+ });
2817
+ var t, i, r = this.props[zt];
2818
+ if (r) {
2819
+ var n = (t = Fn(r), i = {}, R(t, function(a, o) {
2820
+ i["$initial_" + $i(o)] = a;
2821
+ }), i);
2822
+ D(e, n);
2823
+ }
2824
+ return e;
2825
+ }
2826
+ safe_merge(e) {
2827
+ return R(this.props, function(t, i) {
2828
+ i in e || (e[i] = t);
2829
+ }), e;
2830
+ }
2831
+ update_config(e, t) {
2832
+ if (this.Re = this.Ee = e.cookie_expiration, this.set_disabled(e.disable_persistence), this.set_cross_subdomain(e.cross_subdomain_cookie), this.set_secure(e.secure_cookie), e.persistence !== t.persistence) {
2833
+ var i = this.ke(e), r = this.props;
2834
+ this.clear(), this.q = i, this.props = r, this.save();
2835
+ }
2836
+ }
2837
+ set_disabled(e) {
2838
+ this.xe = e, this.xe ? this.remove() : this.save();
2839
+ }
2840
+ set_cross_subdomain(e) {
2841
+ e !== this.Ie && (this.Ie = e, this.remove(), this.save());
2842
+ }
2843
+ set_secure(e) {
2844
+ e !== this.Pe && (this.Pe = e, this.remove(), this.save());
2845
+ }
2846
+ set_event_timer(e, t) {
2847
+ var i = this.props[vt] || {};
2848
+ i[e] = t, this.props[vt] = i, this.save();
2849
+ }
2850
+ remove_event_timer(e) {
2851
+ var t = (this.props[vt] || {})[e];
2852
+ return _(t) || (delete this.props[vt][e], this.save()), t;
2853
+ }
2854
+ get_property(e) {
2855
+ return this.props[e];
2856
+ }
2857
+ set_property(e, t) {
2858
+ this.props[e] = t, this.save();
2859
+ }
2860
+ }
2861
+ class Pn {
2862
+ constructor() {
2863
+ this.Te = {}, this.Te = {};
2864
+ }
2865
+ on(e, t) {
2866
+ return this.Te[e] || (this.Te[e] = []), this.Te[e].push(t), () => {
2867
+ this.Te[e] = this.Te[e].filter((i) => i !== t);
2868
+ };
2869
+ }
2870
+ emit(e, t) {
2871
+ for (var i of this.Te[e] || []) i(t);
2872
+ for (var r of this.Te["*"] || []) r(e, t);
2873
+ }
2874
+ }
2875
+ class ze {
2876
+ constructor(e) {
2877
+ this.Me = new Pn(), this.Ce = (t, i) => this.Oe(t, i) && this.Fe(t, i) && this.Ae(t, i), this.Oe = (t, i) => i == null || !i.event || (t == null ? void 0 : t.event) === (i == null ? void 0 : i.event), this._instance = e, this.De = /* @__PURE__ */ new Set(), this.Le = /* @__PURE__ */ new Set();
2878
+ }
2879
+ init() {
2880
+ var e;
2881
+ if (!_((e = this._instance) == null ? void 0 : e.Ne)) {
2882
+ var t;
2883
+ (t = this._instance) == null || t.Ne((i, r) => {
2884
+ this.on(i, r);
2885
+ });
2886
+ }
2887
+ }
2888
+ register(e) {
2889
+ var t, i;
2890
+ if (!_((t = this._instance) == null ? void 0 : t.Ne) && (e.forEach((a) => {
2891
+ var o, l;
2892
+ (o = this.Le) == null || o.add(a), (l = a.steps) == null || l.forEach((u) => {
2893
+ var c;
2894
+ (c = this.De) == null || c.add((u == null ? void 0 : u.event) || "");
2895
+ });
2896
+ }), (i = this._instance) != null && i.autocapture)) {
2897
+ var r, n = /* @__PURE__ */ new Set();
2898
+ e.forEach((a) => {
2899
+ var o;
2900
+ (o = a.steps) == null || o.forEach((l) => {
2901
+ l != null && l.selector && n.add(l == null ? void 0 : l.selector);
2902
+ });
2903
+ }), (r = this._instance) == null || r.autocapture.setElementSelectors(n);
2904
+ }
2905
+ }
2906
+ on(e, t) {
2907
+ var i;
2908
+ t != null && e.length != 0 && (this.De.has(e) || this.De.has(t == null ? void 0 : t.event)) && this.Le && ((i = this.Le) == null ? void 0 : i.size) > 0 && this.Le.forEach((r) => {
2909
+ this.je(t, r) && this.Me.emit("actionCaptured", r.name);
2910
+ });
2911
+ }
2912
+ ze(e) {
2913
+ this.onAction("actionCaptured", (t) => e(t));
2914
+ }
2915
+ je(e, t) {
2916
+ if ((t == null ? void 0 : t.steps) == null) return !1;
2917
+ for (var i of t.steps) if (this.Ce(e, i)) return !0;
2918
+ return !1;
2919
+ }
2920
+ onAction(e, t) {
2921
+ return this.Me.on(e, t);
2922
+ }
2923
+ Fe(e, t) {
2924
+ if (t != null && t.url) {
2925
+ var i, r = e == null || (i = e.properties) == null ? void 0 : i.$current_url;
2926
+ if (!r || typeof r != "string" || !ze.Ue(r, t == null ? void 0 : t.url, (t == null ? void 0 : t.url_matching) || "contains")) return !1;
2927
+ }
2928
+ return !0;
2929
+ }
2930
+ static Ue(e, t, i) {
2931
+ switch (i) {
2932
+ case "regex":
2933
+ return !!g && ut(e, t);
2934
+ case "exact":
2935
+ return t === e;
2936
+ case "contains":
2937
+ var r = ze.qe(t).replace(/_/g, ".").replace(/%/g, ".*");
2938
+ return ut(e, r);
2939
+ default:
2940
+ return !1;
2941
+ }
2942
+ }
2943
+ static qe(e) {
2944
+ return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
2945
+ }
2946
+ Ae(e, t) {
2947
+ if ((t != null && t.href || t != null && t.tag_name || t != null && t.text) && !this.Be(e).some((n) => !(t != null && t.href && !ze.Ue(n.href || "", t == null ? void 0 : t.href, (t == null ? void 0 : t.href_matching) || "exact")) && (t == null || !t.tag_name || n.tag_name === (t == null ? void 0 : t.tag_name)) && !(t != null && t.text && !ze.Ue(n.text || "", t == null ? void 0 : t.text, (t == null ? void 0 : t.text_matching) || "exact") && !ze.Ue(n.$el_text || "", t == null ? void 0 : t.text, (t == null ? void 0 : t.text_matching) || "exact")))) return !1;
2948
+ if (t != null && t.selector) {
2949
+ var i, r = e == null || (i = e.properties) == null ? void 0 : i.$element_selectors;
2950
+ if (!r || !r.includes(t == null ? void 0 : t.selector)) return !1;
2951
+ }
2952
+ return !0;
2953
+ }
2954
+ Be(e) {
2955
+ return (e == null ? void 0 : e.properties.$elements) == null ? [] : e == null ? void 0 : e.properties.$elements;
2956
+ }
2957
+ }
2958
+ var N = j("[Surveys]");
2959
+ class Ao {
2960
+ constructor(e) {
2961
+ this._instance = e, this.He = /* @__PURE__ */ new Map(), this.We = /* @__PURE__ */ new Map();
2962
+ }
2963
+ register(e) {
2964
+ var t;
2965
+ _((t = this._instance) == null ? void 0 : t.Ne) || (this.Ge(e), this.Je(e));
2966
+ }
2967
+ Je(e) {
2968
+ var t = e.filter((i) => {
2969
+ var r, n;
2970
+ return ((r = i.conditions) == null ? void 0 : r.actions) && ((n = i.conditions) == null || (n = n.actions) == null || (n = n.values) == null ? void 0 : n.length) > 0;
2971
+ });
2972
+ t.length !== 0 && (this.Ve == null && (this.Ve = new ze(this._instance), this.Ve.init(), this.Ve.ze((i) => {
2973
+ this.onAction(i);
2974
+ })), t.forEach((i) => {
2975
+ var r, n, a, o, l;
2976
+ i.conditions && (r = i.conditions) != null && r.actions && (n = i.conditions) != null && (n = n.actions) != null && n.values && ((a = i.conditions) == null || (a = a.actions) == null || (a = a.values) == null ? void 0 : a.length) > 0 && ((o = this.Ve) == null || o.register(i.conditions.actions.values), (l = i.conditions) == null || (l = l.actions) == null || (l = l.values) == null || l.forEach((u) => {
2977
+ if (u && u.name) {
2978
+ var c = this.We.get(u.name);
2979
+ c && c.push(i.id), this.We.set(u.name, c || [i.id]);
2980
+ }
2981
+ }));
2982
+ }));
2983
+ }
2984
+ Ge(e) {
2985
+ var t;
2986
+ e.filter((i) => {
2987
+ var r, n;
2988
+ return ((r = i.conditions) == null ? void 0 : r.events) && ((n = i.conditions) == null || (n = n.events) == null || (n = n.values) == null ? void 0 : n.length) > 0;
2989
+ }).length !== 0 && ((t = this._instance) == null || t.Ne((i, r) => {
2990
+ this.onEvent(i, r);
2991
+ }), e.forEach((i) => {
2992
+ var r;
2993
+ (r = i.conditions) == null || (r = r.events) == null || (r = r.values) == null || r.forEach((n) => {
2994
+ if (n && n.name) {
2995
+ var a = this.He.get(n.name);
2996
+ a && a.push(i.id), this.He.set(n.name, a || [i.id]);
2997
+ }
2998
+ });
2999
+ }));
3000
+ }
3001
+ onEvent(e, t) {
3002
+ var i, r = ((i = this._instance) == null || (i = i.persistence) == null ? void 0 : i.props[Rt]) || [];
3003
+ if (e === "survey shown" && t && r.length > 0) {
3004
+ var n;
3005
+ N.info("survey event matched, removing survey from activated surveys", { event: e, eventPayload: t, existingActivatedSurveys: r });
3006
+ var a = t == null || (n = t.properties) == null ? void 0 : n.$survey_id;
3007
+ if (a) {
3008
+ var o = r.indexOf(a);
3009
+ o >= 0 && (r.splice(o, 1), this.Ke(r));
3010
+ }
3011
+ } else this.He.has(e) && (N.info("survey event matched, updating activated surveys", { event: e, surveys: this.He.get(e) }), this.Ke(r.concat(this.He.get(e) || [])));
3012
+ }
3013
+ onAction(e) {
3014
+ var t, i = ((t = this._instance) == null || (t = t.persistence) == null ? void 0 : t.props[Rt]) || [];
3015
+ this.We.has(e) && this.Ke(i.concat(this.We.get(e) || []));
3016
+ }
3017
+ Ke(e) {
3018
+ var t;
3019
+ (t = this._instance) == null || (t = t.persistence) == null || t.register({ [Rt]: [...new Set(e)] });
3020
+ }
3021
+ getSurveys() {
3022
+ var e, t = (e = this._instance) == null || (e = e.persistence) == null ? void 0 : e.props[Rt];
3023
+ return t || [];
3024
+ }
3025
+ getEventToSurveys() {
3026
+ return this.He;
3027
+ }
3028
+ Ye() {
3029
+ return this.Ve;
3030
+ }
3031
+ }
3032
+ class Lo {
3033
+ constructor(e) {
3034
+ this.Xe = null, this.Qe = !1, this.Ze = !1, this.tr = [], this._instance = e, this._surveyEventReceiver = null;
3035
+ }
3036
+ onRemoteConfig(e) {
3037
+ var t = e.surveys;
3038
+ if (P(t)) return N.warn("Decide not loaded yet. Not loading surveys.");
3039
+ var i = C(t);
3040
+ this.ir = i ? t.length > 0 : t, N.info("decide response received, hasSurveys: " + this.ir), this.ir && this.loadIfEnabled();
3041
+ }
3042
+ reset() {
3043
+ localStorage.removeItem("lastSeenSurveyDate");
3044
+ for (var e = [], t = 0; t < localStorage.length; t++) {
3045
+ var i = localStorage.key(t);
3046
+ (i != null && i.startsWith("seenSurvey_") || i != null && i.startsWith("inProgressSurvey_")) && e.push(i);
3047
+ }
3048
+ e.forEach((r) => localStorage.removeItem(r));
3049
+ }
3050
+ loadIfEnabled() {
3051
+ if (!this.Xe) if (this.Ze) N.info("Already initializing surveys, skipping...");
3052
+ else if (this._instance.config.disable_surveys) N.info("Disabled. Not loading surveys.");
3053
+ else if (this.ir) {
3054
+ var e = x == null ? void 0 : x.__PosthogExtensions__;
3055
+ if (e) {
3056
+ this.Ze = !0;
3057
+ try {
3058
+ var t = e.generateSurveys;
3059
+ if (t) return void this.er(t);
3060
+ var i = e.loadExternalDependency;
3061
+ if (!i) return void this.rr("PostHog loadExternalDependency extension not found.");
3062
+ i(this._instance, "surveys", (r) => {
3063
+ r || !e.generateSurveys ? this.rr("Could not load surveys script", r) : this.er(e.generateSurveys);
3064
+ });
3065
+ } catch (r) {
3066
+ throw this.rr("Error initializing surveys", r), r;
3067
+ } finally {
3068
+ this.Ze = !1;
3069
+ }
3070
+ } else N.error("PostHog Extensions not found.");
3071
+ } else N.info("No surveys to load.");
3072
+ }
3073
+ er(e) {
3074
+ this.Xe = e(this._instance), this._surveyEventReceiver = new Ao(this._instance), N.info("Surveys loaded successfully"), this.sr({ isLoaded: !0 });
3075
+ }
3076
+ rr(e, t) {
3077
+ N.error(e, t), this.sr({ isLoaded: !1, error: e });
3078
+ }
3079
+ onSurveysLoaded(e) {
3080
+ return this.tr.push(e), this.Xe && this.sr({ isLoaded: !0 }), () => {
3081
+ this.tr = this.tr.filter((t) => t !== e);
3082
+ };
3083
+ }
3084
+ getSurveys(e, t) {
3085
+ if (t === void 0 && (t = !1), this._instance.config.disable_surveys) return N.info("Disabled. Not loading surveys."), e([]);
3086
+ var i = this._instance.get_property(Li);
3087
+ if (i && !t) return e(i, { isLoaded: !0 });
3088
+ if (this.Qe) return e([], { isLoaded: !1, error: "Surveys are already being loaded" });
3089
+ try {
3090
+ this.Qe = !0, this._instance.me({ url: this._instance.requestRouter.endpointFor("api", "/api/surveys/?token=" + this._instance.config.token), method: "GET", timeout: this._instance.config.surveys_request_timeout_ms, callback: (r) => {
3091
+ var n;
3092
+ this.Qe = !1;
3093
+ var a = r.statusCode;
3094
+ if (a !== 200 || !r.json) {
3095
+ var o = "Surveys API could not be loaded, status: " + a;
3096
+ return N.error(o), e([], { isLoaded: !1, error: o });
3097
+ }
3098
+ var l, u = r.json.surveys || [], c = u.filter((p) => function(h) {
3099
+ return !(!h.start_date || h.end_date);
3100
+ }(p) && (function(h) {
3101
+ var d;
3102
+ return !((d = h.conditions) == null || (d = d.events) == null || (d = d.values) == null || !d.length);
3103
+ }(p) || function(h) {
3104
+ var d;
3105
+ return !((d = h.conditions) == null || (d = d.actions) == null || (d = d.values) == null || !d.length);
3106
+ }(p)));
3107
+ return c.length > 0 && ((l = this._surveyEventReceiver) == null || l.register(c)), (n = this._instance.persistence) == null || n.register({ [Li]: u }), e(u, { isLoaded: !0 });
3108
+ } });
3109
+ } catch (r) {
3110
+ throw this.Qe = !1, r;
3111
+ }
3112
+ }
3113
+ sr(e) {
3114
+ for (var t of this.tr) try {
3115
+ e.isLoaded ? this.getSurveys(t) : t([], e);
3116
+ } catch (i) {
3117
+ N.error("Error in survey callback", i);
3118
+ }
3119
+ }
3120
+ getActiveMatchingSurveys(e, t) {
3121
+ if (t === void 0 && (t = !1), !P(this.Xe)) return this.Xe.getActiveMatchingSurveys(e, t);
3122
+ N.warn("init was not called");
3123
+ }
3124
+ nr(e) {
3125
+ var t = null;
3126
+ return this.getSurveys((i) => {
3127
+ var r;
3128
+ t = (r = i.find((n) => n.id === e)) !== null && r !== void 0 ? r : null;
3129
+ }), t;
3130
+ }
3131
+ ar(e) {
3132
+ if (P(this.Xe)) return { eligible: !1, reason: "SDK is not enabled or survey functionality is not yet loaded" };
3133
+ var t = typeof e == "string" ? this.nr(e) : e;
3134
+ return t ? this.Xe.checkSurveyEligibility(t) : { eligible: !1, reason: "Survey not found" };
3135
+ }
3136
+ canRenderSurvey(e) {
3137
+ if (P(this.Xe)) return N.warn("init was not called"), { visible: !1, disabledReason: "SDK is not enabled or survey functionality is not yet loaded" };
3138
+ var t = this.ar(e);
3139
+ return { visible: t.eligible, disabledReason: t.reason };
3140
+ }
3141
+ canRenderSurveyAsync(e, t) {
3142
+ return P(this.Xe) ? (N.warn("init was not called"), Promise.resolve({ visible: !1, disabledReason: "SDK is not enabled or survey functionality is not yet loaded" })) : new Promise((i) => {
3143
+ this.getSurveys((r) => {
3144
+ var n, a = (n = r.find((l) => l.id === e)) !== null && n !== void 0 ? n : null;
3145
+ if (a) {
3146
+ var o = this.ar(a);
3147
+ i({ visible: o.eligible, disabledReason: o.reason });
3148
+ } else i({ visible: !1, disabledReason: "Survey not found" });
3149
+ }, t);
3150
+ });
3151
+ }
3152
+ renderSurvey(e, t) {
3153
+ if (P(this.Xe)) N.warn("init was not called");
3154
+ else {
3155
+ var i = this.nr(e), r = y == null ? void 0 : y.querySelector(t);
3156
+ i ? r ? this.Xe.renderSurvey(i, r) : N.warn("Survey element not found") : N.warn("Survey not found");
3157
+ }
3158
+ }
3159
+ }
3160
+ var fr = j("[RateLimiter]");
3161
+ class Do {
3162
+ constructor(e) {
3163
+ var t, i;
3164
+ this.serverLimits = {}, this.lastEventRateLimited = !1, this.checkForLimiting = (r) => {
3165
+ var n = r.text;
3166
+ if (n && n.length) try {
3167
+ (JSON.parse(n).quota_limited || []).forEach((a) => {
3168
+ fr.info((a || "events") + " is quota limited."), this.serverLimits[a] = (/* @__PURE__ */ new Date()).getTime() + 6e4;
3169
+ });
3170
+ } catch (a) {
3171
+ return void fr.warn('could not rate limit - continuing. Error: "' + (a == null ? void 0 : a.message) + '"', { text: n });
3172
+ }
3173
+ }, this.instance = e, this.captureEventsPerSecond = ((t = e.config.rate_limiting) == null ? void 0 : t.events_per_second) || 10, this.captureEventsBurstLimit = Math.max(((i = e.config.rate_limiting) == null ? void 0 : i.events_burst_limit) || 10 * this.captureEventsPerSecond, this.captureEventsPerSecond), this.lastEventRateLimited = this.clientRateLimitContext(!0).isRateLimited;
3174
+ }
3175
+ clientRateLimitContext(e) {
3176
+ var t, i, r;
3177
+ e === void 0 && (e = !1);
3178
+ var n = (/* @__PURE__ */ new Date()).getTime(), a = (t = (i = this.instance.persistence) == null ? void 0 : i.get_property(Ni)) !== null && t !== void 0 ? t : { tokens: this.captureEventsBurstLimit, last: n };
3179
+ a.tokens += (n - a.last) / 1e3 * this.captureEventsPerSecond, a.last = n, a.tokens > this.captureEventsBurstLimit && (a.tokens = this.captureEventsBurstLimit);
3180
+ var o = a.tokens < 1;
3181
+ return o || e || (a.tokens = Math.max(0, a.tokens - 1)), !o || this.lastEventRateLimited || e || this.instance.capture("$$client_ingestion_warning", { $$client_ingestion_warning_message: "posthog-js client rate limited. Config is set to " + this.captureEventsPerSecond + " events per second and " + this.captureEventsBurstLimit + " events burst limit." }, { skip_client_rate_limiting: !0 }), this.lastEventRateLimited = o, (r = this.instance.persistence) == null || r.set_property(Ni, a), { isRateLimited: o, remainingTokens: a.tokens };
3182
+ }
3183
+ isServerRateLimited(e) {
3184
+ var t = this.serverLimits[e || "events"] || !1;
3185
+ return t !== !1 && (/* @__PURE__ */ new Date()).getTime() < t;
3186
+ }
3187
+ }
3188
+ var Ue = j("[RemoteConfig]");
3189
+ class No {
3190
+ constructor(e) {
3191
+ this._instance = e;
3192
+ }
3193
+ get remoteConfig() {
3194
+ var e;
3195
+ return (e = x._POSTHOG_REMOTE_CONFIG) == null || (e = e[this._instance.config.token]) == null ? void 0 : e.config;
3196
+ }
3197
+ lr(e) {
3198
+ var t, i;
3199
+ (t = x.__PosthogExtensions__) != null && t.loadExternalDependency ? (i = x.__PosthogExtensions__) == null || i.loadExternalDependency == null || i.loadExternalDependency(this._instance, "remote-config", () => e(this.remoteConfig)) : (Ue.error("PostHog Extensions not found. Cannot load remote config."), e());
3200
+ }
3201
+ ur(e) {
3202
+ this._instance.me({ method: "GET", url: this._instance.requestRouter.endpointFor("assets", "/array/" + this._instance.config.token + "/config"), callback: (t) => {
3203
+ e(t.json);
3204
+ } });
3205
+ }
3206
+ load() {
3207
+ try {
3208
+ if (this.remoteConfig) return Ue.info("Using preloaded remote config", this.remoteConfig), void this.be(this.remoteConfig);
3209
+ if (this._instance.config.advanced_disable_decide) return void Ue.warn("Remote config is disabled. Falling back to local config.");
3210
+ this.lr((e) => {
3211
+ if (!e) return Ue.info("No config found after loading remote JS config. Falling back to JSON."), void this.ur((t) => {
3212
+ this.be(t);
3213
+ });
3214
+ this.be(e);
3215
+ });
3216
+ } catch (e) {
3217
+ Ue.error("Error loading remote config", e);
3218
+ }
3219
+ }
3220
+ be(e) {
3221
+ e ? this._instance.config.__preview_remote_config ? (this._instance.be(e), e.hasFeatureFlags !== !1 && this._instance.featureFlags.ensureFlagsLoaded()) : Ue.info("__preview_remote_config is disabled. Logging config instead", e) : Ue.error("Failed to fetch remote config from PostHog.");
3222
+ }
3223
+ }
3224
+ var Qi = 3e3;
3225
+ class qo {
3226
+ constructor(e, t) {
3227
+ this.hr = !0, this.dr = [], this.vr = ne((t == null ? void 0 : t.flush_interval_ms) || Qi, 250, 5e3, "flush interval", Qi), this.cr = e;
3228
+ }
3229
+ enqueue(e) {
3230
+ this.dr.push(e), this.pr || this.gr();
3231
+ }
3232
+ unload() {
3233
+ this._r();
3234
+ var e = this.dr.length > 0 ? this.mr() : {}, t = Object.values(e);
3235
+ [...t.filter((i) => i.url.indexOf("/e") === 0), ...t.filter((i) => i.url.indexOf("/e") !== 0)].map((i) => {
3236
+ this.cr(m({}, i, { transport: "sendBeacon" }));
3237
+ });
3238
+ }
3239
+ enable() {
3240
+ this.hr = !1, this.gr();
3241
+ }
3242
+ gr() {
3243
+ var e = this;
3244
+ this.hr || (this.pr = setTimeout(() => {
3245
+ if (this._r(), this.dr.length > 0) {
3246
+ var t = this.mr(), i = function() {
3247
+ var n = t[r], a = (/* @__PURE__ */ new Date()).getTime();
3248
+ n.data && C(n.data) && R(n.data, (o) => {
3249
+ o.offset = Math.abs(o.timestamp - a), delete o.timestamp;
3250
+ }), e.cr(n);
3251
+ };
3252
+ for (var r in t) i();
3253
+ }
3254
+ }, this.vr));
3255
+ }
3256
+ _r() {
3257
+ clearTimeout(this.pr), this.pr = void 0;
3258
+ }
3259
+ mr() {
3260
+ var e = {};
3261
+ return R(this.dr, (t) => {
3262
+ var i, r = t, n = (r ? r.batchKey : null) || r.url;
3263
+ _(e[n]) && (e[n] = m({}, r, { data: [] })), (i = e[n].data) == null || i.push(r.data);
3264
+ }), this.dr = [], e;
3265
+ }
3266
+ }
3267
+ var Bo = ["retriesPerformedSoFar"];
3268
+ class Ho {
3269
+ constructor(e) {
3270
+ this.br = !1, this.wr = 3e3, this.dr = [], this._instance = e, this.dr = [], this.yr = !0, !_(g) && "onLine" in g.navigator && (this.yr = g.navigator.onLine, T(g, "online", () => {
3271
+ this.yr = !0, this.Yi();
3272
+ }), T(g, "offline", () => {
3273
+ this.yr = !1;
3274
+ }));
3275
+ }
3276
+ get length() {
3277
+ return this.dr.length;
3278
+ }
3279
+ retriableRequest(e) {
3280
+ var { retriesPerformedSoFar: t } = e, i = Ir(e, Bo);
3281
+ z(t) && t > 0 && (i.url = ei(i.url, { retry_count: t })), this._instance.me(m({}, i, { callback: (r) => {
3282
+ r.statusCode !== 200 && (r.statusCode < 400 || r.statusCode >= 500) && (t ?? 0) < 10 ? this.Sr(m({ retriesPerformedSoFar: t }, i)) : i.callback == null || i.callback(r);
3283
+ } }));
3284
+ }
3285
+ Sr(e) {
3286
+ var t = e.retriesPerformedSoFar || 0;
3287
+ e.retriesPerformedSoFar = t + 1;
3288
+ var i = function(a) {
3289
+ var o = 3e3 * Math.pow(2, a), l = o / 2, u = Math.min(18e5, o), c = (Math.random() - 0.5) * (u - l);
3290
+ return Math.ceil(u + c);
3291
+ }(t), r = Date.now() + i;
3292
+ this.dr.push({ retryAt: r, requestOptions: e });
3293
+ var n = "Enqueued failed request for retry in " + i;
3294
+ navigator.onLine || (n += " (Browser is offline)"), w.warn(n), this.br || (this.br = !0, this.$r());
3295
+ }
3296
+ $r() {
3297
+ this.kr && clearTimeout(this.kr), this.kr = setTimeout(() => {
3298
+ this.yr && this.dr.length > 0 && this.Yi(), this.$r();
3299
+ }, this.wr);
3300
+ }
3301
+ Yi() {
3302
+ var e = Date.now(), t = [], i = this.dr.filter((n) => n.retryAt < e || (t.push(n), !1));
3303
+ if (this.dr = t, i.length > 0) for (var { requestOptions: r } of i) this.retriableRequest(r);
3304
+ }
3305
+ unload() {
3306
+ for (var { requestOptions: e } of (this.kr && (clearTimeout(this.kr), this.kr = void 0), this.dr)) try {
3307
+ this._instance.me(m({}, e, { transport: "sendBeacon" }));
3308
+ } catch (t) {
3309
+ w.error(t);
3310
+ }
3311
+ this.dr = [];
3312
+ }
3313
+ }
3314
+ class jo {
3315
+ constructor(e) {
3316
+ this.Er = () => {
3317
+ var t, i, r, n;
3318
+ this.Ir || (this.Ir = {});
3319
+ var a = this.scrollElement(), o = this.scrollY(), l = a ? Math.max(0, a.scrollHeight - a.clientHeight) : 0, u = o + ((a == null ? void 0 : a.clientHeight) || 0), c = (a == null ? void 0 : a.scrollHeight) || 0;
3320
+ this.Ir.lastScrollY = Math.ceil(o), this.Ir.maxScrollY = Math.max(o, (t = this.Ir.maxScrollY) !== null && t !== void 0 ? t : 0), this.Ir.maxScrollHeight = Math.max(l, (i = this.Ir.maxScrollHeight) !== null && i !== void 0 ? i : 0), this.Ir.lastContentY = u, this.Ir.maxContentY = Math.max(u, (r = this.Ir.maxContentY) !== null && r !== void 0 ? r : 0), this.Ir.maxContentHeight = Math.max(c, (n = this.Ir.maxContentHeight) !== null && n !== void 0 ? n : 0);
3321
+ }, this._instance = e;
3322
+ }
3323
+ getContext() {
3324
+ return this.Ir;
3325
+ }
3326
+ resetContext() {
3327
+ var e = this.Ir;
3328
+ return setTimeout(this.Er, 0), e;
3329
+ }
3330
+ startMeasuringScrollPosition() {
3331
+ T(g, "scroll", this.Er, { capture: !0 }), T(g, "scrollend", this.Er, { capture: !0 }), T(g, "resize", this.Er);
3332
+ }
3333
+ scrollElement() {
3334
+ if (!this._instance.config.scroll_root_selector) return g == null ? void 0 : g.document.documentElement;
3335
+ var e = C(this._instance.config.scroll_root_selector) ? this._instance.config.scroll_root_selector : [this._instance.config.scroll_root_selector];
3336
+ for (var t of e) {
3337
+ var i = g == null ? void 0 : g.document.querySelector(t);
3338
+ if (i) return i;
3339
+ }
3340
+ }
3341
+ scrollY() {
3342
+ if (this._instance.config.scroll_root_selector) {
3343
+ var e = this.scrollElement();
3344
+ return e && e.scrollTop || 0;
3345
+ }
3346
+ return g && (g.scrollY || g.pageYOffset || g.document.documentElement.scrollTop) || 0;
3347
+ }
3348
+ scrollX() {
3349
+ if (this._instance.config.scroll_root_selector) {
3350
+ var e = this.scrollElement();
3351
+ return e && e.scrollLeft || 0;
3352
+ }
3353
+ return g && (g.scrollX || g.pageXOffset || g.document.documentElement.scrollLeft) || 0;
3354
+ }
3355
+ }
3356
+ var Uo = (s) => In(s == null ? void 0 : s.config.mask_personal_data_properties, s == null ? void 0 : s.config.custom_personal_data_properties);
3357
+ class Wo {
3358
+ constructor(e, t, i, r) {
3359
+ this.Pr = (n) => {
3360
+ var a = this.Rr();
3361
+ if (!a || a.sessionId !== n) {
3362
+ var o = { sessionId: n, props: this.Tr(this._instance) };
3363
+ this.Mr.register({ [Di]: o });
3364
+ }
3365
+ }, this._instance = e, this.Cr = t, this.Mr = i, this.Tr = r || Uo, this.Cr.onSessionId(this.Pr);
3366
+ }
3367
+ Rr() {
3368
+ return this.Mr.props[Di];
3369
+ }
3370
+ getSetOnceProps() {
3371
+ var e, t = (e = this.Rr()) == null ? void 0 : e.props;
3372
+ return t ? "r" in t ? Fn(t) : { $referring_domain: t.referringDomain, $pathname: t.initialPathName, utm_source: t.utm_source, utm_campaign: t.utm_campaign, utm_medium: t.utm_medium, utm_content: t.utm_content, utm_term: t.utm_term } : {};
3373
+ }
3374
+ getSessionProps() {
3375
+ var e = {};
3376
+ return R(ts(this.getSetOnceProps()), (t, i) => {
3377
+ i === "$current_url" && (i = "url"), e["$session_entry_" + $i(i)] = t;
3378
+ }), e;
3379
+ }
3380
+ }
3381
+ var vr = j("[SessionId]");
3382
+ class zo {
3383
+ constructor(e, t, i) {
3384
+ var r;
3385
+ if (this.Or = [], !e.persistence) throw new Error("SessionIdManager requires a PostHogPersistence instance");
3386
+ if (e.config.__preview_experimental_cookieless_mode) throw new Error("SessionIdManager cannot be used with __preview_experimental_cookieless_mode");
3387
+ this.S = e.config, this.Mr = e.persistence, this.oi = void 0, this.kt = void 0, this._sessionStartTimestamp = null, this._sessionActivityTimestamp = null, this.Fr = t || Oe, this.Ar = i || Oe;
3388
+ var n = this.S.persistence_name || this.S.token, a = this.S.session_idle_timeout_seconds || 1800;
3389
+ if (this._sessionTimeoutMs = 1e3 * ne(a, 60, 36e3, "session_idle_timeout_seconds", 1800), e.register({ $configured_session_timeout_ms: this._sessionTimeoutMs }), this.Dr(), this.Lr = "ph_" + n + "_window_id", this.Nr = "ph_" + n + "_primary_window_exists", this.jr()) {
3390
+ var o = H.D(this.Lr), l = H.D(this.Nr);
3391
+ o && !l ? this.oi = o : H.N(this.Lr), H.L(this.Nr, !0);
3392
+ }
3393
+ if ((r = this.S.bootstrap) != null && r.sessionID) try {
3394
+ var u = ((c) => {
3395
+ var p = c.replace(/-/g, "");
3396
+ if (p.length !== 32) throw new Error("Not a valid UUID");
3397
+ if (p[12] !== "7") throw new Error("Not a UUIDv7");
3398
+ return parseInt(p.substring(0, 12), 16);
3399
+ })(this.S.bootstrap.sessionID);
3400
+ this.zr(this.S.bootstrap.sessionID, (/* @__PURE__ */ new Date()).getTime(), u);
3401
+ } catch (c) {
3402
+ vr.error("Invalid sessionID in bootstrap", c);
3403
+ }
3404
+ this.Ur();
3405
+ }
3406
+ get sessionTimeoutMs() {
3407
+ return this._sessionTimeoutMs;
3408
+ }
3409
+ onSessionId(e) {
3410
+ return _(this.Or) && (this.Or = []), this.Or.push(e), this.kt && e(this.kt, this.oi), () => {
3411
+ this.Or = this.Or.filter((t) => t !== e);
3412
+ };
3413
+ }
3414
+ jr() {
3415
+ return this.S.persistence !== "memory" && !this.Mr.xe && H.O();
3416
+ }
3417
+ qr(e) {
3418
+ e !== this.oi && (this.oi = e, this.jr() && H.L(this.Lr, e));
3419
+ }
3420
+ Br() {
3421
+ return this.oi ? this.oi : this.jr() ? H.D(this.Lr) : null;
3422
+ }
3423
+ zr(e, t, i) {
3424
+ e === this.kt && t === this._sessionActivityTimestamp && i === this._sessionStartTimestamp || (this._sessionStartTimestamp = i, this._sessionActivityTimestamp = t, this.kt = e, this.Mr.register({ [Ut]: [t, e, i] }));
3425
+ }
3426
+ Hr() {
3427
+ if (this.kt && this._sessionActivityTimestamp && this._sessionStartTimestamp) return [this._sessionActivityTimestamp, this.kt, this._sessionStartTimestamp];
3428
+ var e = this.Mr.props[Ut];
3429
+ return C(e) && e.length === 2 && e.push(e[0]), e || [0, null, 0];
3430
+ }
3431
+ resetSessionId() {
3432
+ this.zr(null, null, null);
3433
+ }
3434
+ Ur() {
3435
+ T(g, "beforeunload", () => {
3436
+ this.jr() && H.N(this.Nr);
3437
+ }, { capture: !1 });
3438
+ }
3439
+ checkAndGetSessionAndWindowId(e, t) {
3440
+ if (e === void 0 && (e = !1), t === void 0 && (t = null), this.S.__preview_experimental_cookieless_mode) throw new Error("checkAndGetSessionAndWindowId should not be called in __preview_experimental_cookieless_mode");
3441
+ var i = t || (/* @__PURE__ */ new Date()).getTime(), [r, n, a] = this.Hr(), o = this.Br(), l = z(a) && a > 0 && Math.abs(i - a) > 864e5, u = !1, c = !n, p = !e && Math.abs(i - r) > this.sessionTimeoutMs;
3442
+ c || p || l ? (n = this.Fr(), o = this.Ar(), vr.info("new session ID generated", { sessionId: n, windowId: o, changeReason: { noSessionId: c, activityTimeout: p, sessionPastMaximumLength: l } }), a = i, u = !0) : o || (o = this.Ar(), u = !0);
3443
+ var h = r === 0 || !e || l ? i : r, d = a === 0 ? (/* @__PURE__ */ new Date()).getTime() : a;
3444
+ return this.qr(o), this.zr(n, h, d), e || this.Dr(), u && this.Or.forEach((v) => v(n, o, u ? { noSessionId: c, activityTimeout: p, sessionPastMaximumLength: l } : void 0)), { sessionId: n, windowId: o, sessionStartTimestamp: d, changeReason: u ? { noSessionId: c, activityTimeout: p, sessionPastMaximumLength: l } : void 0, lastActivityTimestamp: r };
3445
+ }
3446
+ Dr() {
3447
+ clearTimeout(this.Wr), this.Wr = setTimeout(() => {
3448
+ this.resetSessionId();
3449
+ }, 1.1 * this.sessionTimeoutMs);
3450
+ }
3451
+ }
3452
+ var Go = ["$set_once", "$set"], Ce = j("[SiteApps]");
3453
+ class Vo {
3454
+ constructor(e) {
3455
+ this._instance = e, this.Gr = [], this.apps = {};
3456
+ }
3457
+ get isEnabled() {
3458
+ return !!this._instance.config.opt_in_site_apps;
3459
+ }
3460
+ Jr(e, t) {
3461
+ if (t) {
3462
+ var i = this.globalsForEvent(t);
3463
+ this.Gr.push(i), this.Gr.length > 1e3 && (this.Gr = this.Gr.slice(10));
3464
+ }
3465
+ }
3466
+ get siteAppLoaders() {
3467
+ var e;
3468
+ return (e = x._POSTHOG_REMOTE_CONFIG) == null || (e = e[this._instance.config.token]) == null ? void 0 : e.siteApps;
3469
+ }
3470
+ init() {
3471
+ if (this.isEnabled) {
3472
+ var e = this._instance.Ne(this.Jr.bind(this));
3473
+ this.Vr = () => {
3474
+ e(), this.Gr = [], this.Vr = void 0;
3475
+ };
3476
+ }
3477
+ }
3478
+ globalsForEvent(e) {
3479
+ var t, i, r, n, a, o, l;
3480
+ if (!e) throw new Error("Event payload is required");
3481
+ var u = {}, c = this._instance.get_property("$groups") || [], p = this._instance.get_property("$stored_group_properties") || {};
3482
+ for (var [h, d] of Object.entries(p)) u[h] = { id: c[h], type: h, properties: d };
3483
+ var { $set_once: v, $set: f } = e;
3484
+ return { event: m({}, Ir(e, Go), { properties: m({}, e.properties, f ? { $set: m({}, (t = (i = e.properties) == null ? void 0 : i.$set) !== null && t !== void 0 ? t : {}, f) } : {}, v ? { $set_once: m({}, (r = (n = e.properties) == null ? void 0 : n.$set_once) !== null && r !== void 0 ? r : {}, v) } : {}), elements_chain: (a = (o = e.properties) == null ? void 0 : o.$elements_chain) !== null && a !== void 0 ? a : "", distinct_id: (l = e.properties) == null ? void 0 : l.distinct_id }), person: { properties: this._instance.get_property("$stored_person_properties") }, groups: u };
3485
+ }
3486
+ setupSiteApp(e) {
3487
+ var t = this.apps[e.id], i = () => {
3488
+ var o;
3489
+ !t.errored && this.Gr.length && (Ce.info("Processing " + this.Gr.length + " events for site app with id " + e.id), this.Gr.forEach((l) => t.processEvent == null ? void 0 : t.processEvent(l)), t.processedBuffer = !0), Object.values(this.apps).every((l) => l.processedBuffer || l.errored) && ((o = this.Vr) == null || o.call(this));
3490
+ }, r = !1, n = (o) => {
3491
+ t.errored = !o, t.loaded = !0, Ce.info("Site app with id " + e.id + " " + (o ? "loaded" : "errored")), r && i();
3492
+ };
3493
+ try {
3494
+ var { processEvent: a } = e.init({ posthog: this._instance, callback: (o) => {
3495
+ n(o);
3496
+ } });
3497
+ a && (t.processEvent = a), r = !0;
3498
+ } catch (o) {
3499
+ Ce.error("Error while initializing PostHog app with config id " + e.id, o), n(!1);
3500
+ }
3501
+ if (r && t.loaded) try {
3502
+ i();
3503
+ } catch (o) {
3504
+ Ce.error("Error while processing buffered events PostHog app with config id " + e.id, o), t.errored = !0;
3505
+ }
3506
+ }
3507
+ Kr() {
3508
+ var e = this.siteAppLoaders || [];
3509
+ for (var t of e) this.apps[t.id] = { id: t.id, loaded: !1, errored: !1, processedBuffer: !1 };
3510
+ for (var i of e) this.setupSiteApp(i);
3511
+ }
3512
+ Yr(e) {
3513
+ if (Object.keys(this.apps).length !== 0) {
3514
+ var t = this.globalsForEvent(e);
3515
+ for (var i of Object.values(this.apps)) try {
3516
+ i.processEvent == null || i.processEvent(t);
3517
+ } catch (r) {
3518
+ Ce.error("Error while processing event " + e.event + " for site app " + i.id, r);
3519
+ }
3520
+ }
3521
+ }
3522
+ onRemoteConfig(e) {
3523
+ var t, i, r, n = this;
3524
+ if ((t = this.siteAppLoaders) != null && t.length) return this.isEnabled ? (this.Kr(), void this._instance.on("eventCaptured", (u) => this.Yr(u))) : void Ce.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');
3525
+ if ((i = this.Vr) == null || i.call(this), (r = e.siteApps) != null && r.length) if (this.isEnabled) {
3526
+ var a = function(u) {
3527
+ var c;
3528
+ x["__$$ph_site_app_" + u] = n._instance, (c = x.__PosthogExtensions__) == null || c.loadSiteApp == null || c.loadSiteApp(n._instance, l, (p) => {
3529
+ if (p) return Ce.error("Error while initializing PostHog app with config id " + u, p);
3530
+ });
3531
+ };
3532
+ for (var { id: o, url: l } of e.siteApps) a(o);
3533
+ } else Ce.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.');
3534
+ }
3535
+ }
3536
+ var Xo = ["amazonbot", "amazonproductbot", "app.hypefactors.com", "applebot", "archive.org_bot", "awariobot", "backlinksextendedbot", "baiduspider", "bingbot", "bingpreview", "chrome-lighthouse", "dataforseobot", "deepscan", "duckduckbot", "facebookexternal", "facebookcatalog", "http://yandex.com/bots", "hubspot", "ia_archiver", "linkedinbot", "meta-externalagent", "mj12bot", "msnbot", "nessus", "petalbot", "pinterest", "prerender", "rogerbot", "screaming frog", "sebot-wa", "sitebulb", "slackbot", "slurp", "trendictionbot", "turnitin", "twitterbot", "vercelbot", "yahoo! slurp", "yandexbot", "zoombot", "bot.htm", "bot.php", "(bot;", "bot/", "crawler", "ahrefsbot", "ahrefssiteaudit", "semrushbot", "siteauditbot", "splitsignalbot", "gptbot", "oai-searchbot", "chatgpt-user", "perplexitybot", "better uptime bot", "sentryuptimebot", "uptimerobot", "headlesschrome", "cypress", "google-hoteladsverifier", "adsbot-google", "apis-google", "duplexweb-google", "feedfetcher-google", "google favicon", "google web preview", "google-read-aloud", "googlebot", "googleother", "google-cloudvertexbot", "googleweblight", "mediapartners-google", "storebot-google", "google-inspectiontool", "bytespider"], _r = function(s, e) {
3537
+ if (!s) return !1;
3538
+ var t = s.toLowerCase();
3539
+ return Xo.concat(e || []).some((i) => {
3540
+ var r = i.toLowerCase();
3541
+ return t.indexOf(r) !== -1;
3542
+ });
3543
+ }, Rn = function(s, e) {
3544
+ if (!s) return !1;
3545
+ var t = s.userAgent;
3546
+ if (t && _r(t, e)) return !0;
3547
+ try {
3548
+ var i = s == null ? void 0 : s.userAgentData;
3549
+ if (i != null && i.brands && i.brands.some((r) => _r(r == null ? void 0 : r.brand, e))) return !0;
3550
+ } catch {
3551
+ }
3552
+ return !!s.webdriver;
3553
+ }, Et = function(s) {
3554
+ return s.US = "us", s.EU = "eu", s.CUSTOM = "custom", s;
3555
+ }({}), mr = "i.posthog.com";
3556
+ class Yo {
3557
+ constructor(e) {
3558
+ this.Xr = {}, this.instance = e;
3559
+ }
3560
+ get apiHost() {
3561
+ var e = this.instance.config.api_host.trim().replace(/\/$/, "");
3562
+ return e === "https://app.posthog.com" ? "https://us.i.posthog.com" : e;
3563
+ }
3564
+ get uiHost() {
3565
+ var e, t = (e = this.instance.config.ui_host) == null ? void 0 : e.replace(/\/$/, "");
3566
+ return t || (t = this.apiHost.replace("." + mr, ".posthog.com")), t === "https://app.posthog.com" ? "https://us.posthog.com" : t;
3567
+ }
3568
+ get region() {
3569
+ return this.Xr[this.apiHost] || (/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost) ? this.Xr[this.apiHost] = Et.US : /https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost) ? this.Xr[this.apiHost] = Et.EU : this.Xr[this.apiHost] = Et.CUSTOM), this.Xr[this.apiHost];
3570
+ }
3571
+ endpointFor(e, t) {
3572
+ if (t === void 0 && (t = ""), t && (t = t[0] === "/" ? t : "/" + t), e === "ui") return this.uiHost + t;
3573
+ if (this.region === Et.CUSTOM) return this.apiHost + t;
3574
+ var i = mr + t;
3575
+ switch (e) {
3576
+ case "assets":
3577
+ return "https://" + this.region + "-assets." + i;
3578
+ case "api":
3579
+ return "https://" + this.region + "." + i;
3580
+ }
3581
+ }
3582
+ }
3583
+ var Jo = { icontains: (s, e) => !!g && e.href.toLowerCase().indexOf(s.toLowerCase()) > -1, not_icontains: (s, e) => !!g && e.href.toLowerCase().indexOf(s.toLowerCase()) === -1, regex: (s, e) => !!g && ut(e.href, s), not_regex: (s, e) => !!g && !ut(e.href, s), exact: (s, e) => e.href === s, is_not: (s, e) => e.href !== s };
3584
+ class W {
3585
+ constructor(e) {
3586
+ var t = this;
3587
+ this.getWebExperimentsAndEvaluateDisplayLogic = function(i) {
3588
+ i === void 0 && (i = !1), t.getWebExperiments((r) => {
3589
+ W.Qr("retrieved web experiments from the server"), t.Zr = /* @__PURE__ */ new Map(), r.forEach((n) => {
3590
+ if (n.feature_flag_key) {
3591
+ var a;
3592
+ t.Zr && (W.Qr("setting flag key ", n.feature_flag_key, " to web experiment ", n), (a = t.Zr) == null || a.set(n.feature_flag_key, n));
3593
+ var o = t._instance.getFeatureFlag(n.feature_flag_key);
3594
+ A(o) && n.variants[o] && t.ts(n.name, o, n.variants[o].transforms);
3595
+ } else if (n.variants) for (var l in n.variants) {
3596
+ var u = n.variants[l];
3597
+ W.es(u) && t.ts(n.name, l, u.transforms);
3598
+ }
3599
+ });
3600
+ }, i);
3601
+ }, this._instance = e, this._instance.onFeatureFlags((i) => {
3602
+ this.onFeatureFlags(i);
3603
+ });
3604
+ }
3605
+ onFeatureFlags(e) {
3606
+ if (this._is_bot()) W.Qr("Refusing to render web experiment since the viewer is a likely bot");
3607
+ else if (!this._instance.config.disable_web_experiments) {
3608
+ if (P(this.Zr)) return this.Zr = /* @__PURE__ */ new Map(), this.loadIfEnabled(), void this.previewWebExperiment();
3609
+ W.Qr("applying feature flags", e), e.forEach((t) => {
3610
+ var i;
3611
+ if (this.Zr && (i = this.Zr) != null && i.has(t)) {
3612
+ var r, n = this._instance.getFeatureFlag(t), a = (r = this.Zr) == null ? void 0 : r.get(t);
3613
+ n && a != null && a.variants[n] && this.ts(a.name, n, a.variants[n].transforms);
3614
+ }
3615
+ });
3616
+ }
3617
+ }
3618
+ previewWebExperiment() {
3619
+ var e = W.getWindowLocation();
3620
+ if (e != null && e.search) {
3621
+ var t = Xt(e == null ? void 0 : e.search, "__experiment_id"), i = Xt(e == null ? void 0 : e.search, "__experiment_variant");
3622
+ t && i && (W.Qr("previewing web experiments " + t + " && " + i), this.getWebExperiments((r) => {
3623
+ this.rs(parseInt(t), i, r);
3624
+ }, !1, !0));
3625
+ }
3626
+ }
3627
+ loadIfEnabled() {
3628
+ this._instance.config.disable_web_experiments || this.getWebExperimentsAndEvaluateDisplayLogic();
3629
+ }
3630
+ getWebExperiments(e, t, i) {
3631
+ if (this._instance.config.disable_web_experiments && !i) return e([]);
3632
+ var r = this._instance.get_property("$web_experiments");
3633
+ if (r && !t) return e(r);
3634
+ this._instance.me({ url: this._instance.requestRouter.endpointFor("api", "/api/web_experiments/?token=" + this._instance.config.token), method: "GET", callback: (n) => {
3635
+ if (n.statusCode !== 200 || !n.json) return e([]);
3636
+ var a = n.json.experiments || [];
3637
+ return e(a);
3638
+ } });
3639
+ }
3640
+ rs(e, t, i) {
3641
+ var r = i.filter((n) => n.id === e);
3642
+ r && r.length > 0 && (W.Qr("Previewing web experiment [" + r[0].name + "] with variant [" + t + "]"), this.ts(r[0].name, t, r[0].variants[t].transforms));
3643
+ }
3644
+ static es(e) {
3645
+ return !P(e.conditions) && W.ss(e) && W.ns(e);
3646
+ }
3647
+ static ss(e) {
3648
+ var t;
3649
+ if (P(e.conditions) || P((t = e.conditions) == null ? void 0 : t.url)) return !0;
3650
+ var i, r, n, a = W.getWindowLocation();
3651
+ return !!a && ((i = e.conditions) == null || !i.url || Jo[(r = (n = e.conditions) == null ? void 0 : n.urlMatchType) !== null && r !== void 0 ? r : "icontains"](e.conditions.url, a));
3652
+ }
3653
+ static getWindowLocation() {
3654
+ return g == null ? void 0 : g.location;
3655
+ }
3656
+ static ns(e) {
3657
+ var t;
3658
+ if (P(e.conditions) || P((t = e.conditions) == null ? void 0 : t.utm)) return !0;
3659
+ var i = En();
3660
+ if (i.utm_source) {
3661
+ var r, n, a, o, l, u, c, p, h = (r = e.conditions) == null || (r = r.utm) == null || !r.utm_campaign || ((n = e.conditions) == null || (n = n.utm) == null ? void 0 : n.utm_campaign) == i.utm_campaign, d = (a = e.conditions) == null || (a = a.utm) == null || !a.utm_source || ((o = e.conditions) == null || (o = o.utm) == null ? void 0 : o.utm_source) == i.utm_source, v = (l = e.conditions) == null || (l = l.utm) == null || !l.utm_medium || ((u = e.conditions) == null || (u = u.utm) == null ? void 0 : u.utm_medium) == i.utm_medium, f = (c = e.conditions) == null || (c = c.utm) == null || !c.utm_term || ((p = e.conditions) == null || (p = p.utm) == null ? void 0 : p.utm_term) == i.utm_term;
3662
+ return h && v && f && d;
3663
+ }
3664
+ return !1;
3665
+ }
3666
+ static Qr(e) {
3667
+ for (var t = arguments.length, i = new Array(t > 1 ? t - 1 : 0), r = 1; r < t; r++) i[r - 1] = arguments[r];
3668
+ w.info("[WebExperiments] " + e, i);
3669
+ }
3670
+ ts(e, t, i) {
3671
+ this._is_bot() ? W.Qr("Refusing to render web experiment since the viewer is a likely bot") : t !== "control" ? i.forEach((r) => {
3672
+ if (r.selector) {
3673
+ var n;
3674
+ W.Qr("applying transform of variant " + t + " for experiment " + e + " ", r);
3675
+ var a = (n = document) == null ? void 0 : n.querySelectorAll(r.selector);
3676
+ a == null || a.forEach((o) => {
3677
+ var l = o;
3678
+ r.html && (l.innerHTML = r.html), r.css && l.setAttribute("style", r.css);
3679
+ });
3680
+ }
3681
+ }) : W.Qr("Control variants leave the page unmodified.");
3682
+ }
3683
+ _is_bot() {
3684
+ return ie && this._instance ? Rn(ie, this._instance.config.custom_blocked_useragents) : void 0;
3685
+ }
3686
+ }
3687
+ var St = {}, es = () => {
3688
+ }, et = "posthog", Mn = !go && (J == null ? void 0 : J.indexOf("MSIE")) === -1 && (J == null ? void 0 : J.indexOf("Mozilla")) === -1, yr = (s) => {
3689
+ var e;
3690
+ return { api_host: "https://us.i.posthog.com", ui_host: null, token: "", autocapture: !0, rageclick: !0, cross_subdomain_cookie: zn(y == null ? void 0 : y.location), persistence: "localStorage+cookie", persistence_name: "", loaded: es, save_campaign_params: !0, custom_campaign_params: [], custom_blocked_useragents: [], save_referrer: !0, capture_pageview: s !== "2025-05-24" || "history_change", capture_pageleave: "if_capture_pageview", defaults: s ?? "unset", debug: Z && A(Z == null ? void 0 : Z.search) && Z.search.indexOf("__posthog_debug=true") !== -1 || !1, cookie_expiration: 365, upgrade: !1, disable_session_recording: !1, disable_persistence: !1, disable_web_experiments: !0, disable_surveys: !1, disable_external_dependency_loading: !1, enable_recording_console_log: void 0, secure_cookie: (g == null || (e = g.location) == null ? void 0 : e.protocol) === "https:", ip: !0, opt_out_capturing_by_default: !1, opt_out_persistence_by_default: !1, opt_out_useragent_filter: !1, opt_out_capturing_persistence_type: "localStorage", opt_out_capturing_cookie_prefix: null, opt_in_site_apps: !1, property_denylist: [], respect_dnt: !1, sanitize_properties: null, request_headers: {}, request_batching: !0, properties_string_max_length: 65535, session_recording: {}, mask_all_element_attributes: !1, mask_all_text: !1, mask_personal_data_properties: !1, custom_personal_data_properties: [], advanced_disable_decide: !1, advanced_disable_feature_flags: !1, advanced_disable_feature_flags_on_first_load: !1, advanced_disable_toolbar_metrics: !1, feature_flag_request_timeout_ms: 3e3, surveys_request_timeout_ms: 1e4, on_request_error: (t) => {
3691
+ var i = "Bad HTTP status: " + t.statusCode + " " + t.text;
3692
+ w.error(i);
3693
+ }, get_device_id: (t) => t, capture_performance: void 0, name: "posthog", bootstrap: {}, disable_compression: !1, session_idle_timeout_seconds: 1800, person_profiles: "identified_only", before_send: void 0, request_queue_config: { flush_interval_ms: Qi }, _onCapture: es };
3694
+ }, br = (s) => {
3695
+ var e = {};
3696
+ _(s.process_person) || (e.person_profiles = s.process_person), _(s.xhr_headers) || (e.request_headers = s.xhr_headers), _(s.cookie_name) || (e.persistence_name = s.cookie_name), _(s.disable_cookie) || (e.disable_persistence = s.disable_cookie), _(s.store_google) || (e.save_campaign_params = s.store_google), _(s.verbose) || (e.debug = s.verbose);
3697
+ var t = D({}, e, s);
3698
+ return C(s.property_blacklist) && (_(s.property_denylist) ? t.property_denylist = s.property_blacklist : C(s.property_denylist) ? t.property_denylist = [...s.property_blacklist, ...s.property_denylist] : w.error("Invalid value for property_denylist config: " + s.property_denylist)), t;
3699
+ };
3700
+ class Zo {
3701
+ constructor() {
3702
+ this.__forceAllowLocalhost = !1;
3703
+ }
3704
+ get os() {
3705
+ return this.__forceAllowLocalhost;
3706
+ }
3707
+ set os(e) {
3708
+ w.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"), this.__forceAllowLocalhost = e;
3709
+ }
3710
+ }
3711
+ class li {
3712
+ get decideEndpointWasHit() {
3713
+ var e, t;
3714
+ return (e = (t = this.featureFlags) == null ? void 0 : t.hasLoadedFlags) !== null && e !== void 0 && e;
3715
+ }
3716
+ constructor() {
3717
+ this.webPerformance = new Zo(), this.ls = !1, this.version = xe.LIB_VERSION, this.us = new Pn(), this._calculate_event_properties = this.calculateEventProperties.bind(this), this.config = yr(), this.SentryIntegration = so, this.sentryIntegration = (e) => function(t, i) {
3718
+ var r = nn(t, i);
3719
+ return { name: rn, processEvent: (n) => r(n) };
3720
+ }(this, e), this.__request_queue = [], this.__loaded = !1, this.analyticsDefaultEndpoint = "/e/", this.hs = !1, this.ds = null, this.vs = null, this.cs = null, this.featureFlags = new To(this), this.toolbar = new no(this), this.scrollManager = new jo(this), this.pageViewManager = new ho(this), this.surveys = new Lo(this), this.experiments = new W(this), this.exceptions = new _o(this), this.rateLimiter = new Do(this), this.requestRouter = new Yo(this), this.consent = new pa(this), this.people = { set: (e, t, i) => {
3721
+ var r = A(e) ? { [e]: t } : e;
3722
+ this.setPersonProperties(r), i == null || i({});
3723
+ }, set_once: (e, t, i) => {
3724
+ var r = A(e) ? { [e]: t } : e;
3725
+ this.setPersonProperties(void 0, r), i == null || i({});
3726
+ } }, this.on("eventCaptured", (e) => w.info('send "' + (e == null ? void 0 : e.event) + '"', e));
3727
+ }
3728
+ init(e, t, i) {
3729
+ if (i && i !== et) {
3730
+ var r, n = (r = St[i]) !== null && r !== void 0 ? r : new li();
3731
+ return n._init(e, t, i), St[i] = n, St[et][i] = n, n;
3732
+ }
3733
+ return this._init(e, t, i);
3734
+ }
3735
+ _init(e, t, i) {
3736
+ var r, n;
3737
+ if (t === void 0 && (t = {}), _(e) || Pi(e)) return w.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"), this;
3738
+ if (this.__loaded) return w.warn("You have already initialized PostHog! Re-initializing is a no-op"), this;
3739
+ this.__loaded = !0, this.config = {}, this.fs = [], t.person_profiles && (this.vs = t.person_profiles), this.set_config(D({}, yr(t.defaults), br(t), { name: i, token: e })), this.config.on_xhr_error && w.error("on_xhr_error is deprecated. Use on_request_error instead"), this.compression = t.disable_compression ? void 0 : Se.GZipJS, this.persistence = new Si(this.config), this.sessionPersistence = this.config.persistence === "sessionStorage" || this.config.persistence === "memory" ? this.persistence : new Si(m({}, this.config, { persistence: "sessionStorage" }));
3740
+ var a = m({}, this.persistence.props), o = m({}, this.sessionPersistence.props);
3741
+ if (this.ps = new qo((E) => this.gs(E), this.config.request_queue_config), this._s = new Ho(this), this.__request_queue = [], this.config.__preview_experimental_cookieless_mode || (this.sessionManager = new zo(this), this.sessionPropsManager = new Wo(this, this.sessionManager, this.persistence)), new oo(this).startIfEnabledOrStop(), this.siteApps = new Vo(this), (r = this.siteApps) == null || r.init(), this.config.__preview_experimental_cookieless_mode || (this.sessionRecording = new to(this), this.sessionRecording.startIfEnabledOrStop()), this.config.disable_scroll_properties || this.scrollManager.startMeasuringScrollPosition(), this.autocapture = new na(this), this.autocapture.startIfEnabled(), this.surveys.loadIfEnabled(), this.heatmaps = new co(this), this.heatmaps.startIfEnabled(), this.webVitalsAutocapture = new lo(this), this.exceptionObserver = new va(this), this.exceptionObserver.startIfEnabled(), this.deadClicksAutocapture = new Ur(this, fa), this.deadClicksAutocapture.startIfEnabled(), this.historyAutocapture = new Ra(this), this.historyAutocapture.startIfEnabled(), xe.DEBUG = xe.DEBUG || this.config.debug, xe.DEBUG && w.info("Starting in debug mode", { this: this, config: t, thisC: m({}, this.config), p: a, s: o }), this.bs(), ((n = t.bootstrap) == null ? void 0 : n.distinctID) !== void 0) {
3742
+ var l, u, c = this.config.get_device_id(Oe()), p = (l = t.bootstrap) != null && l.isIdentifiedID ? c : t.bootstrap.distinctID;
3743
+ this.persistence.set_property(Ee, (u = t.bootstrap) != null && u.isIdentifiedID ? "identified" : "anonymous"), this.register({ distinct_id: t.bootstrap.distinctID, $device_id: p });
3744
+ }
3745
+ if (this.ws()) {
3746
+ var h, d, v = Object.keys(((h = t.bootstrap) == null ? void 0 : h.featureFlags) || {}).filter((E) => {
3747
+ var k;
3748
+ return !((k = t.bootstrap) == null || (k = k.featureFlags) == null || !k[E]);
3749
+ }).reduce((E, k) => {
3750
+ var S;
3751
+ return E[k] = ((S = t.bootstrap) == null || (S = S.featureFlags) == null ? void 0 : S[k]) || !1, E;
3752
+ }, {}), f = Object.keys(((d = t.bootstrap) == null ? void 0 : d.featureFlagPayloads) || {}).filter((E) => v[E]).reduce((E, k) => {
3753
+ var S, $;
3754
+ return (S = t.bootstrap) != null && (S = S.featureFlagPayloads) != null && S[k] && (E[k] = ($ = t.bootstrap) == null || ($ = $.featureFlagPayloads) == null ? void 0 : $[k]), E;
3755
+ }, {});
3756
+ this.featureFlags.receivedFeatureFlags({ featureFlags: v, featureFlagPayloads: f });
3757
+ }
3758
+ if (this.config.__preview_experimental_cookieless_mode) this.register_once({ distinct_id: As, $device_id: null }, "");
3759
+ else if (!this.get_distinct_id()) {
3760
+ var b = this.config.get_device_id(Oe());
3761
+ this.register_once({ distinct_id: b, $device_id: b }, ""), this.persistence.set_property(Ee, "anonymous");
3762
+ }
3763
+ return T(g, "onpagehide" in self ? "pagehide" : "unload", this._handle_unload.bind(this), { passive: !1 }), this.toolbar.maybeLoadToolbar(), t.segment ? io(this, () => this.ys()) : this.ys(), ae(this.config._onCapture) && this.config._onCapture !== es && (w.warn("onCapture is deprecated. Please use `before_send` instead"), this.on("eventCaptured", (E) => this.config._onCapture(E.event, E))), this;
3764
+ }
3765
+ be(e) {
3766
+ var t, i, r, n, a, o, l, u;
3767
+ if (!y || !y.body) return w.info("document not ready yet, trying again in 500 milliseconds..."), void setTimeout(() => {
3768
+ this.be(e);
3769
+ }, 500);
3770
+ this.compression = void 0, e.supportedCompression && !this.config.disable_compression && (this.compression = I(e.supportedCompression, Se.GZipJS) ? Se.GZipJS : I(e.supportedCompression, Se.Base64) ? Se.Base64 : void 0), (t = e.analytics) != null && t.endpoint && (this.analyticsDefaultEndpoint = e.analytics.endpoint), this.set_config({ person_profiles: this.vs ? this.vs : "identified_only" }), (i = this.siteApps) == null || i.onRemoteConfig(e), (r = this.sessionRecording) == null || r.onRemoteConfig(e), (n = this.autocapture) == null || n.onRemoteConfig(e), (a = this.heatmaps) == null || a.onRemoteConfig(e), this.surveys.onRemoteConfig(e), (o = this.webVitalsAutocapture) == null || o.onRemoteConfig(e), (l = this.exceptionObserver) == null || l.onRemoteConfig(e), this.exceptions.onRemoteConfig(e), (u = this.deadClicksAutocapture) == null || u.onRemoteConfig(e);
3771
+ }
3772
+ ys() {
3773
+ try {
3774
+ this.config.loaded(this);
3775
+ } catch (e) {
3776
+ w.critical("`loaded` function failed", e);
3777
+ }
3778
+ this.Ss(), this.config.capture_pageview && setTimeout(() => {
3779
+ this.consent.isOptedIn() && this.$s();
3780
+ }, 1), new No(this).load(), this.featureFlags.decide();
3781
+ }
3782
+ Ss() {
3783
+ var e;
3784
+ this.has_opted_out_capturing() || this.config.request_batching && ((e = this.ps) == null || e.enable());
3785
+ }
3786
+ _dom_loaded() {
3787
+ this.has_opted_out_capturing() || Ae(this.__request_queue, (e) => this.gs(e)), this.__request_queue = [], this.Ss();
3788
+ }
3789
+ _handle_unload() {
3790
+ var e, t;
3791
+ this.config.request_batching ? (this.ks() && this.capture("$pageleave"), (e = this.ps) == null || e.unload(), (t = this._s) == null || t.unload()) : this.ks() && this.capture("$pageleave", null, { transport: "sendBeacon" });
3792
+ }
3793
+ me(e) {
3794
+ this.__loaded && (Mn ? this.__request_queue.push(e) : this.rateLimiter.isServerRateLimited(e.batchKey) || (e.transport = e.transport || this.config.api_transport, e.url = ei(e.url, { ip: this.config.ip ? 1 : 0 }), e.headers = m({}, this.config.request_headers), e.compression = e.compression === "best-available" ? this.compression : e.compression, e.fetchOptions = e.fetchOptions || this.config.fetch_options, ((t) => {
3795
+ var i, r, n, a = m({}, t);
3796
+ a.timeout = a.timeout || 6e4, a.url = ei(a.url, { _: (/* @__PURE__ */ new Date()).getTime().toString(), ver: xe.LIB_VERSION, compression: a.compression });
3797
+ var o = (i = a.transport) !== null && i !== void 0 ? i : "fetch", l = (r = (n = Fr(xt, (u) => u.transport === o)) == null ? void 0 : n.method) !== null && r !== void 0 ? r : xt[0].method;
3798
+ if (!l) throw new Error("No available transport method");
3799
+ l(a);
3800
+ })(m({}, e, { callback: (t) => {
3801
+ var i, r;
3802
+ this.rateLimiter.checkForLimiting(t), t.statusCode >= 400 && ((i = (r = this.config).on_request_error) == null || i.call(r, t)), e.callback == null || e.callback(t);
3803
+ } }))));
3804
+ }
3805
+ gs(e) {
3806
+ this._s ? this._s.retriableRequest(e) : this.me(e);
3807
+ }
3808
+ _execute_array(e) {
3809
+ var t, i = [], r = [], n = [];
3810
+ Ae(e, (o) => {
3811
+ o && (t = o[0], C(t) ? n.push(o) : ae(o) ? o.call(this) : C(o) && t === "alias" ? i.push(o) : C(o) && t.indexOf("capture") !== -1 && ae(this[t]) ? n.push(o) : r.push(o));
3812
+ });
3813
+ var a = function(o, l) {
3814
+ Ae(o, function(u) {
3815
+ if (C(u[0])) {
3816
+ var c = l;
3817
+ R(u, function(p) {
3818
+ c = c[p[0]].apply(c, p.slice(1));
3819
+ });
3820
+ } else this[u[0]].apply(this, u.slice(1));
3821
+ }, l);
3822
+ };
3823
+ a(i, this), a(r, this), a(n, this);
3824
+ }
3825
+ ws() {
3826
+ var e, t;
3827
+ return ((e = this.config.bootstrap) == null ? void 0 : e.featureFlags) && Object.keys((t = this.config.bootstrap) == null ? void 0 : t.featureFlags).length > 0 || !1;
3828
+ }
3829
+ push(e) {
3830
+ this._execute_array([e]);
3831
+ }
3832
+ capture(e, t, i) {
3833
+ var r;
3834
+ if (this.__loaded && this.persistence && this.sessionPersistence && this.ps) {
3835
+ if (!this.consent.isOptedOut()) if (!_(e) && A(e)) {
3836
+ if (this.config.opt_out_useragent_filter || !this._is_bot()) {
3837
+ var n = i != null && i.skip_client_rate_limiting ? void 0 : this.rateLimiter.clientRateLimitContext();
3838
+ if (n == null || !n.isRateLimited) {
3839
+ t != null && t.$current_url && !A(t == null ? void 0 : t.$current_url) && (w.error("Invalid `$current_url` property provided to `posthog.capture`. Input must be a string. Ignoring provided value."), t == null || delete t.$current_url), this.sessionPersistence.update_search_keyword(), this.config.save_campaign_params && this.sessionPersistence.update_campaign_params(), this.config.save_referrer && this.sessionPersistence.update_referrer_info(), (this.config.save_campaign_params || this.config.save_referrer) && this.persistence.set_initial_person_info();
3840
+ var a = /* @__PURE__ */ new Date(), o = (i == null ? void 0 : i.timestamp) || a, l = Oe(), u = { uuid: l, event: e, properties: this.calculateEventProperties(e, t || {}, o, l) };
3841
+ n && (u.properties.$lib_rate_limit_remaining_tokens = n.remainingTokens), i != null && i.$set && (u.$set = i == null ? void 0 : i.$set);
3842
+ var c = this.xs(i == null ? void 0 : i.$set_once);
3843
+ c && (u.$set_once = c), (u = Un(u, i != null && i._noTruncate ? null : this.config.properties_string_max_length)).timestamp = o, _(i == null ? void 0 : i.timestamp) || (u.properties.$event_time_override_provided = !0, u.properties.$event_time_override_system_time = a);
3844
+ var p = m({}, u.properties.$set, u.$set);
3845
+ if (tt(p) || this.setPersonPropertiesForFlags(p), !P(this.config.before_send)) {
3846
+ var h = this.Es(u);
3847
+ if (!h) return;
3848
+ u = h;
3849
+ }
3850
+ this.us.emit("eventCaptured", u);
3851
+ var d = { method: "POST", url: (r = i == null ? void 0 : i._url) !== null && r !== void 0 ? r : this.requestRouter.endpointFor("api", this.analyticsDefaultEndpoint), data: u, compression: "best-available", batchKey: i == null ? void 0 : i._batchKey };
3852
+ return !this.config.request_batching || i && (i == null || !i._batchKey) || i != null && i.send_instantly ? this.gs(d) : this.ps.enqueue(d), u;
3853
+ }
3854
+ w.critical("This capture call is ignored due to client rate limiting.");
3855
+ }
3856
+ } else w.error("No event name provided to posthog.capture");
3857
+ } else w.uninitializedWarning("posthog.capture");
3858
+ }
3859
+ Ne(e) {
3860
+ return this.on("eventCaptured", (t) => e(t.event, t));
3861
+ }
3862
+ calculateEventProperties(e, t, i, r, n) {
3863
+ if (i = i || /* @__PURE__ */ new Date(), !this.persistence || !this.sessionPersistence) return t;
3864
+ var a = n ? void 0 : this.persistence.remove_event_timer(e), o = m({}, t);
3865
+ if (o.token = this.config.token, o.$config_defaults = this.config.defaults, this.config.__preview_experimental_cookieless_mode && (o.$cookieless_mode = !0), e === "$snapshot") {
3866
+ var l = m({}, this.persistence.properties(), this.sessionPersistence.properties());
3867
+ return o.distinct_id = l.distinct_id, (!A(o.distinct_id) && !z(o.distinct_id) || Pi(o.distinct_id)) && w.error("Invalid distinct_id for replay event. This indicates a bug in your implementation"), o;
3868
+ }
3869
+ var u, c = Ro(this.config.mask_personal_data_properties, this.config.custom_personal_data_properties);
3870
+ if (this.sessionManager) {
3871
+ var { sessionId: p, windowId: h } = this.sessionManager.checkAndGetSessionAndWindowId(n, i.getTime());
3872
+ o.$session_id = p, o.$window_id = h;
3873
+ }
3874
+ this.sessionPropsManager && D(o, this.sessionPropsManager.getSessionProps());
3875
+ try {
3876
+ var d;
3877
+ this.sessionRecording && D(o, this.sessionRecording.sdkDebugProperties), o.$sdk_debug_retry_queue_size = (d = this._s) == null ? void 0 : d.length;
3878
+ } catch (E) {
3879
+ o.$sdk_debug_error_capturing_properties = String(E);
3880
+ }
3881
+ if (this.requestRouter.region === Et.CUSTOM && (o.$lib_custom_api_host = this.config.api_host), u = e !== "$pageview" || n ? e !== "$pageleave" || n ? this.pageViewManager.doEvent() : this.pageViewManager.doPageLeave(i) : this.pageViewManager.doPageView(i, r), o = D(o, u), e === "$pageview" && y && (o.title = y.title), !_(a)) {
3882
+ var v = i.getTime() - a;
3883
+ o.$duration = parseFloat((v / 1e3).toFixed(3));
3884
+ }
3885
+ J && this.config.opt_out_useragent_filter && (o.$browser_type = this._is_bot() ? "bot" : "browser"), (o = D({}, c, this.persistence.properties(), this.sessionPersistence.properties(), o)).$is_identified = this._isIdentified(), C(this.config.property_denylist) ? R(this.config.property_denylist, function(E) {
3886
+ delete o[E];
3887
+ }) : w.error("Invalid value for property_denylist config: " + this.config.property_denylist + " or property_blacklist config: " + this.config.property_blacklist);
3888
+ var f = this.config.sanitize_properties;
3889
+ f && (w.error("sanitize_properties is deprecated. Use before_send instead"), o = f(o, e));
3890
+ var b = this.Is();
3891
+ return o.$process_person_profile = b, b && !n && this.Ps("_calculate_event_properties"), o;
3892
+ }
3893
+ xs(e) {
3894
+ var t;
3895
+ if (!this.persistence || !this.Is() || this.ls) return e;
3896
+ var i = this.persistence.get_initial_props(), r = (t = this.sessionPropsManager) == null ? void 0 : t.getSetOnceProps(), n = D({}, i, r || {}, e || {}), a = this.config.sanitize_properties;
3897
+ return a && (w.error("sanitize_properties is deprecated. Use before_send instead"), n = a(n, "$set_once")), this.ls = !0, tt(n) ? void 0 : n;
3898
+ }
3899
+ register(e, t) {
3900
+ var i;
3901
+ (i = this.persistence) == null || i.register(e, t);
3902
+ }
3903
+ register_once(e, t, i) {
3904
+ var r;
3905
+ (r = this.persistence) == null || r.register_once(e, t, i);
3906
+ }
3907
+ register_for_session(e) {
3908
+ var t;
3909
+ (t = this.sessionPersistence) == null || t.register(e);
3910
+ }
3911
+ unregister(e) {
3912
+ var t;
3913
+ (t = this.persistence) == null || t.unregister(e);
3914
+ }
3915
+ unregister_for_session(e) {
3916
+ var t;
3917
+ (t = this.sessionPersistence) == null || t.unregister(e);
3918
+ }
3919
+ Rs(e, t) {
3920
+ this.register({ [e]: t });
3921
+ }
3922
+ getFeatureFlag(e, t) {
3923
+ return this.featureFlags.getFeatureFlag(e, t);
3924
+ }
3925
+ getFeatureFlagPayload(e) {
3926
+ var t = this.featureFlags.getFeatureFlagPayload(e);
3927
+ try {
3928
+ return JSON.parse(t);
3929
+ } catch {
3930
+ return t;
3931
+ }
3932
+ }
3933
+ isFeatureEnabled(e, t) {
3934
+ return this.featureFlags.isFeatureEnabled(e, t);
3935
+ }
3936
+ reloadFeatureFlags() {
3937
+ this.featureFlags.reloadFeatureFlags();
3938
+ }
3939
+ updateEarlyAccessFeatureEnrollment(e, t) {
3940
+ this.featureFlags.updateEarlyAccessFeatureEnrollment(e, t);
3941
+ }
3942
+ getEarlyAccessFeatures(e, t, i) {
3943
+ return t === void 0 && (t = !1), this.featureFlags.getEarlyAccessFeatures(e, t, i);
3944
+ }
3945
+ on(e, t) {
3946
+ return this.us.on(e, t);
3947
+ }
3948
+ onFeatureFlags(e) {
3949
+ return this.featureFlags.onFeatureFlags(e);
3950
+ }
3951
+ onSurveysLoaded(e) {
3952
+ return this.surveys.onSurveysLoaded(e);
3953
+ }
3954
+ onSessionId(e) {
3955
+ var t, i;
3956
+ return (t = (i = this.sessionManager) == null ? void 0 : i.onSessionId(e)) !== null && t !== void 0 ? t : () => {
3957
+ };
3958
+ }
3959
+ getSurveys(e, t) {
3960
+ t === void 0 && (t = !1), this.surveys.getSurveys(e, t);
3961
+ }
3962
+ getActiveMatchingSurveys(e, t) {
3963
+ t === void 0 && (t = !1), this.surveys.getActiveMatchingSurveys(e, t);
3964
+ }
3965
+ renderSurvey(e, t) {
3966
+ this.surveys.renderSurvey(e, t);
3967
+ }
3968
+ canRenderSurvey(e) {
3969
+ return this.surveys.canRenderSurvey(e);
3970
+ }
3971
+ canRenderSurveyAsync(e, t) {
3972
+ return t === void 0 && (t = !1), this.surveys.canRenderSurveyAsync(e, t);
3973
+ }
3974
+ identify(e, t, i) {
3975
+ if (!this.__loaded || !this.persistence) return w.uninitializedWarning("posthog.identify");
3976
+ if (z(e) && (e = e.toString(), w.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")), e) {
3977
+ if (["distinct_id", "distinctid"].includes(e.toLowerCase())) w.critical('The string "' + e + '" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.');
3978
+ else if (this.Ps("posthog.identify")) {
3979
+ var r = this.get_distinct_id();
3980
+ if (this.register({ $user_id: e }), !this.get_property("$device_id")) {
3981
+ var n = r;
3982
+ this.register_once({ $had_persisted_distinct_id: !0, $device_id: n }, "");
3983
+ }
3984
+ e !== r && e !== this.get_property(ft) && (this.unregister(ft), this.register({ distinct_id: e }));
3985
+ var a = (this.persistence.get_property(Ee) || "anonymous") === "anonymous";
3986
+ e !== r && a ? (this.persistence.set_property(Ee, "identified"), this.setPersonPropertiesForFlags(m({}, i || {}, t || {}), !1), this.capture("$identify", { distinct_id: e, $anon_distinct_id: r }, { $set: t || {}, $set_once: i || {} }), this.cs = or(e, t, i), this.featureFlags.setAnonymousDistinctId(r)) : (t || i) && this.setPersonProperties(t, i), e !== r && (this.reloadFeatureFlags(), this.unregister(Wt));
3987
+ }
3988
+ } else w.error("Unique user id has not been set in posthog.identify");
3989
+ }
3990
+ setPersonProperties(e, t) {
3991
+ if ((e || t) && this.Ps("posthog.setPersonProperties")) {
3992
+ var i = or(this.get_distinct_id(), e, t);
3993
+ this.cs !== i ? (this.setPersonPropertiesForFlags(m({}, t || {}, e || {})), this.capture("$set", { $set: e || {}, $set_once: t || {} }), this.cs = i) : w.info("A duplicate setPersonProperties call was made with the same properties. It has been ignored.");
3994
+ }
3995
+ }
3996
+ group(e, t, i) {
3997
+ if (e && t) {
3998
+ if (this.Ps("posthog.group")) {
3999
+ var r = this.getGroups();
4000
+ r[e] !== t && this.resetGroupPropertiesForFlags(e), this.register({ $groups: m({}, r, { [e]: t }) }), i && (this.capture("$groupidentify", { $group_type: e, $group_key: t, $group_set: i }), this.setGroupPropertiesForFlags({ [e]: i })), r[e] === t || i || this.reloadFeatureFlags();
4001
+ }
4002
+ } else w.error("posthog.group requires a group type and group key");
4003
+ }
4004
+ resetGroups() {
4005
+ this.register({ $groups: {} }), this.resetGroupPropertiesForFlags(), this.reloadFeatureFlags();
4006
+ }
4007
+ setPersonPropertiesForFlags(e, t) {
4008
+ t === void 0 && (t = !0), this.featureFlags.setPersonPropertiesForFlags(e, t);
4009
+ }
4010
+ resetPersonPropertiesForFlags() {
4011
+ this.featureFlags.resetPersonPropertiesForFlags();
4012
+ }
4013
+ setGroupPropertiesForFlags(e, t) {
4014
+ t === void 0 && (t = !0), this.Ps("posthog.setGroupPropertiesForFlags") && this.featureFlags.setGroupPropertiesForFlags(e, t);
4015
+ }
4016
+ resetGroupPropertiesForFlags(e) {
4017
+ this.featureFlags.resetGroupPropertiesForFlags(e);
4018
+ }
4019
+ reset(e) {
4020
+ var t, i, r, n;
4021
+ if (w.info("reset"), !this.__loaded) return w.uninitializedWarning("posthog.reset");
4022
+ var a = this.get_property("$device_id");
4023
+ if (this.consent.reset(), (t = this.persistence) == null || t.clear(), (i = this.sessionPersistence) == null || i.clear(), this.surveys.reset(), (r = this.persistence) == null || r.set_property(Ee, "anonymous"), (n = this.sessionManager) == null || n.resetSessionId(), this.cs = null, this.config.__preview_experimental_cookieless_mode) this.register_once({ distinct_id: As, $device_id: null }, "");
4024
+ else {
4025
+ var o = this.config.get_device_id(Oe());
4026
+ this.register_once({ distinct_id: o, $device_id: e ? o : a }, "");
4027
+ }
4028
+ this.register({ $last_posthog_reset: (/* @__PURE__ */ new Date()).toISOString() }, 1);
4029
+ }
4030
+ get_distinct_id() {
4031
+ return this.get_property("distinct_id");
4032
+ }
4033
+ getGroups() {
4034
+ return this.get_property("$groups") || {};
4035
+ }
4036
+ get_session_id() {
4037
+ var e, t;
4038
+ return (e = (t = this.sessionManager) == null ? void 0 : t.checkAndGetSessionAndWindowId(!0).sessionId) !== null && e !== void 0 ? e : "";
4039
+ }
4040
+ get_session_replay_url(e) {
4041
+ if (!this.sessionManager) return "";
4042
+ var { sessionId: t, sessionStartTimestamp: i } = this.sessionManager.checkAndGetSessionAndWindowId(!0), r = this.requestRouter.endpointFor("ui", "/project/" + this.config.token + "/replay/" + t);
4043
+ if (e != null && e.withTimestamp && i) {
4044
+ var n, a = (n = e.timestampLookBack) !== null && n !== void 0 ? n : 10;
4045
+ if (!i) return r;
4046
+ r += "?t=" + Math.max(Math.floor(((/* @__PURE__ */ new Date()).getTime() - i) / 1e3) - a, 0);
4047
+ }
4048
+ return r;
4049
+ }
4050
+ alias(e, t) {
4051
+ return e === this.get_property($r) ? (w.critical("Attempting to create alias for existing People user - aborting."), -2) : this.Ps("posthog.alias") ? (_(t) && (t = this.get_distinct_id()), e !== t ? (this.Rs(ft, e), this.capture("$create_alias", { alias: e, distinct_id: t })) : (w.warn("alias matches current distinct_id - skipping api call."), this.identify(e), -1)) : void 0;
4052
+ }
4053
+ set_config(e) {
4054
+ var t, i, r, n, a = m({}, this.config);
4055
+ O(e) && (D(this.config, br(e)), (t = this.persistence) == null || t.update_config(this.config, a), this.sessionPersistence = this.config.persistence === "sessionStorage" || this.config.persistence === "memory" ? this.persistence : new Si(m({}, this.config, { persistence: "sessionStorage" })), q.O() && q.A("ph_debug") === "true" && (this.config.debug = !0), this.config.debug && (xe.DEBUG = !0, w.info("set_config", JSON.stringify({ config: e, oldConfig: a, newConfig: m({}, this.config) }, null, 2))), (i = this.sessionRecording) == null || i.startIfEnabledOrStop(), (r = this.autocapture) == null || r.startIfEnabled(), (n = this.heatmaps) == null || n.startIfEnabled(), this.surveys.loadIfEnabled(), this.bs());
4056
+ }
4057
+ startSessionRecording(e) {
4058
+ var t = e === !0, i = { sampling: t || !(e == null || !e.sampling), linked_flag: t || !(e == null || !e.linked_flag), url_trigger: t || !(e == null || !e.url_trigger), event_trigger: t || !(e == null || !e.event_trigger) };
4059
+ if (Object.values(i).some(Boolean)) {
4060
+ var r, n, a, o, l;
4061
+ (r = this.sessionManager) == null || r.checkAndGetSessionAndWindowId(), i.sampling && ((n = this.sessionRecording) == null || n.overrideSampling()), i.linked_flag && ((a = this.sessionRecording) == null || a.overrideLinkedFlag()), i.url_trigger && ((o = this.sessionRecording) == null || o.overrideTrigger("url")), i.event_trigger && ((l = this.sessionRecording) == null || l.overrideTrigger("event"));
4062
+ }
4063
+ this.set_config({ disable_session_recording: !1 });
4064
+ }
4065
+ stopSessionRecording() {
4066
+ this.set_config({ disable_session_recording: !0 });
4067
+ }
4068
+ sessionRecordingStarted() {
4069
+ var e;
4070
+ return !((e = this.sessionRecording) == null || !e.started);
4071
+ }
4072
+ captureException(e, t) {
4073
+ var i = new Error("PostHog syntheticException");
4074
+ this.exceptions.sendExceptionEvent(m({}, Pa(((r) => r instanceof Error)(e) ? { error: e, event: e.message } : { event: e }, { syntheticException: i }), t));
4075
+ }
4076
+ loadToolbar(e) {
4077
+ return this.toolbar.loadToolbar(e);
4078
+ }
4079
+ get_property(e) {
4080
+ var t;
4081
+ return (t = this.persistence) == null ? void 0 : t.props[e];
4082
+ }
4083
+ getSessionProperty(e) {
4084
+ var t;
4085
+ return (t = this.sessionPersistence) == null ? void 0 : t.props[e];
4086
+ }
4087
+ toString() {
4088
+ var e, t = (e = this.config.name) !== null && e !== void 0 ? e : et;
4089
+ return t !== et && (t = et + "." + t), t;
4090
+ }
4091
+ _isIdentified() {
4092
+ var e, t;
4093
+ return ((e = this.persistence) == null ? void 0 : e.get_property(Ee)) === "identified" || ((t = this.sessionPersistence) == null ? void 0 : t.get_property(Ee)) === "identified";
4094
+ }
4095
+ Is() {
4096
+ var e, t;
4097
+ return !(this.config.person_profiles === "never" || this.config.person_profiles === "identified_only" && !this._isIdentified() && tt(this.getGroups()) && ((e = this.persistence) == null || (e = e.props) == null || !e[ft]) && ((t = this.persistence) == null || (t = t.props) == null || !t[Gt]));
4098
+ }
4099
+ ks() {
4100
+ return this.config.capture_pageleave === !0 || this.config.capture_pageleave === "if_capture_pageview" && (this.config.capture_pageview === !0 || this.config.capture_pageview === "history_change");
4101
+ }
4102
+ createPersonProfile() {
4103
+ this.Is() || this.Ps("posthog.createPersonProfile") && this.setPersonProperties({}, {});
4104
+ }
4105
+ Ps(e) {
4106
+ return this.config.person_profiles === "never" ? (w.error(e + ' was called, but process_person is set to "never". This call will be ignored.'), !1) : (this.Rs(Gt, !0), !0);
4107
+ }
4108
+ bs() {
4109
+ var e, t, i, r, n = this.consent.isOptedOut(), a = this.config.opt_out_persistence_by_default, o = this.config.disable_persistence || n && !!a;
4110
+ ((e = this.persistence) == null ? void 0 : e.xe) !== o && ((i = this.persistence) == null || i.set_disabled(o)), ((t = this.sessionPersistence) == null ? void 0 : t.xe) !== o && ((r = this.sessionPersistence) == null || r.set_disabled(o));
4111
+ }
4112
+ opt_in_capturing(e) {
4113
+ var t;
4114
+ this.consent.optInOut(!0), this.bs(), (_(e == null ? void 0 : e.captureEventName) || e != null && e.captureEventName) && this.capture((t = e == null ? void 0 : e.captureEventName) !== null && t !== void 0 ? t : "$opt_in", e == null ? void 0 : e.captureProperties, { send_instantly: !0 }), this.config.capture_pageview && this.$s();
4115
+ }
4116
+ opt_out_capturing() {
4117
+ this.consent.optInOut(!1), this.bs();
4118
+ }
4119
+ has_opted_in_capturing() {
4120
+ return this.consent.isOptedIn();
4121
+ }
4122
+ has_opted_out_capturing() {
4123
+ return this.consent.isOptedOut();
4124
+ }
4125
+ clear_opt_in_out_capturing() {
4126
+ this.consent.reset(), this.bs();
4127
+ }
4128
+ _is_bot() {
4129
+ return ie ? Rn(ie, this.config.custom_blocked_useragents) : void 0;
4130
+ }
4131
+ $s() {
4132
+ y && (y.visibilityState === "visible" ? this.hs || (this.hs = !0, this.capture("$pageview", { title: y.title }, { send_instantly: !0 }), this.ds && (y.removeEventListener("visibilitychange", this.ds), this.ds = null)) : this.ds || (this.ds = this.$s.bind(this), T(y, "visibilitychange", this.ds)));
4133
+ }
4134
+ debug(e) {
4135
+ e === !1 ? (g == null || g.console.log("You've disabled debug mode."), localStorage && localStorage.removeItem("ph_debug"), this.set_config({ debug: !1 })) : (g == null || g.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."), localStorage && localStorage.setItem("ph_debug", "true"), this.set_config({ debug: !0 }));
4136
+ }
4137
+ Es(e) {
4138
+ if (P(this.config.before_send)) return e;
4139
+ var t = C(this.config.before_send) ? this.config.before_send : [this.config.before_send], i = e;
4140
+ for (var r of t) {
4141
+ if (i = r(i), P(i)) {
4142
+ var n = "Event '" + e.event + "' was rejected in beforeSend function";
4143
+ return Bn(e.event) ? w.warn(n + ". This can cause unexpected behavior.") : w.info(n), null;
4144
+ }
4145
+ i.properties && !tt(i.properties) || w.warn("Event '" + e.event + "' has no properties after beforeSend function, this is likely an error.");
4146
+ }
4147
+ return i;
4148
+ }
4149
+ getPageViewId() {
4150
+ var e;
4151
+ return (e = this.pageViewManager.ne) == null ? void 0 : e.pageViewId;
4152
+ }
4153
+ captureTraceFeedback(e, t) {
4154
+ this.capture("$ai_feedback", { $ai_trace_id: String(e), $ai_feedback_text: t });
4155
+ }
4156
+ captureTraceMetric(e, t, i) {
4157
+ this.capture("$ai_metric", { $ai_trace_id: String(e), $ai_metric_name: t, $ai_metric_value: String(i) });
4158
+ }
4159
+ }
4160
+ (function(s, e) {
4161
+ for (var t = 0; t < e.length; t++) s.prototype[e[t]] = jn(s.prototype[e[t]]);
4162
+ })(li, ["identify"]);
4163
+ var wr;
4164
+ (function(s) {
4165
+ return s.Button = "button", s.Tab = "tab", s.Selector = "selector", s;
4166
+ })({});
4167
+ (function(s) {
4168
+ return s.TopLeft = "top_left", s.TopRight = "top_right", s.TopCenter = "top_center", s.MiddleLeft = "middle_left", s.MiddleRight = "middle_right", s.MiddleCenter = "middle_center", s.Left = "left", s.Center = "center", s.Right = "right", s.NextToTrigger = "next_to_trigger", s;
4169
+ })({});
4170
+ (function(s) {
4171
+ return s.Popover = "popover", s.API = "api", s.Widget = "widget", s;
4172
+ })({});
4173
+ (function(s) {
4174
+ return s.Open = "open", s.MultipleChoice = "multiple_choice", s.SingleChoice = "single_choice", s.Rating = "rating", s.Link = "link", s;
4175
+ })({});
4176
+ (function(s) {
4177
+ return s.NextQuestion = "next_question", s.End = "end", s.ResponseBased = "response_based", s.SpecificQuestion = "specific_question", s;
4178
+ })({});
4179
+ (function(s) {
4180
+ return s.Once = "once", s.Recurring = "recurring", s.Always = "always", s;
4181
+ })({});
4182
+ var Ko = (wr = St[et] = new li(), function() {
4183
+ function s() {
4184
+ s.done || (s.done = !0, Mn = !1, R(St, function(e) {
4185
+ e._dom_loaded();
4186
+ }));
4187
+ }
4188
+ y != null && y.addEventListener ? y.readyState === "complete" ? s() : T(y, "DOMContentLoaded", s, { capture: !1 }) : g && w.error("Browser doesn't support `document.addEventListener` so PostHog couldn't be initialized");
4189
+ }(), wr);
4190
+ export {
4191
+ hi as COPY_AUTOCAPTURE_EVENT,
4192
+ Se as Compression,
4193
+ li as PostHog,
4194
+ Ko as default,
4195
+ Ln as knownUnsafeEditableEvent,
4196
+ Ko as posthog,
4197
+ Dn as severityLevels
4198
+ };