@usermaven/sdk-js 1.0.6 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/npm/usermaven.cjs.js +172 -11
- package/dist/npm/usermaven.d.ts +23 -0
- package/dist/npm/usermaven.es.js +172 -11
- package/dist/web/lib.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,6 +19,7 @@ This section is indented only for package maintainers.
|
|
|
19
19
|
* The server listens to all changes to src and rebuilds npm and `lib.js` automatically. Open test cases HTML files to see
|
|
20
20
|
usermaven in action
|
|
21
21
|
* http://localhost:8081/test-case/embed.html - embedded Usermaven
|
|
22
|
+
- * <http://localhost:8081/test-case/embed_strict_mode.html> - embedded strict mode for Usermaven
|
|
22
23
|
* http://localhost:8081/test-case/autocapture.html - embedded Usermaven with autocapturing events
|
|
23
24
|
* `yarn test` runs [Playwright](https://playwright.dev/) test
|
|
24
25
|
* `yarn build` builds both npm package and `lib.js` browser bundle
|
|
@@ -415,6 +415,58 @@ var getHostWithProtocol = function (host) {
|
|
|
415
415
|
}
|
|
416
416
|
};
|
|
417
417
|
|
|
418
|
+
var MemoryQueue = /** @class */ (function () {
|
|
419
|
+
function MemoryQueue() {
|
|
420
|
+
this.queue = [];
|
|
421
|
+
}
|
|
422
|
+
MemoryQueue.prototype.flush = function () {
|
|
423
|
+
var queue = this.queue;
|
|
424
|
+
this.queue = [];
|
|
425
|
+
return queue;
|
|
426
|
+
};
|
|
427
|
+
MemoryQueue.prototype.push = function () {
|
|
428
|
+
var _a;
|
|
429
|
+
var values = [];
|
|
430
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
431
|
+
values[_i] = arguments[_i];
|
|
432
|
+
}
|
|
433
|
+
(_a = this.queue).push.apply(_a, values);
|
|
434
|
+
};
|
|
435
|
+
return MemoryQueue;
|
|
436
|
+
}());
|
|
437
|
+
var LocalStorageQueue = /** @class */ (function () {
|
|
438
|
+
function LocalStorageQueue(key) {
|
|
439
|
+
this.key = key;
|
|
440
|
+
}
|
|
441
|
+
LocalStorageQueue.prototype.flush = function () {
|
|
442
|
+
var queue = this.get();
|
|
443
|
+
if (queue.length) {
|
|
444
|
+
this.set([]);
|
|
445
|
+
}
|
|
446
|
+
return queue;
|
|
447
|
+
};
|
|
448
|
+
LocalStorageQueue.prototype.push = function () {
|
|
449
|
+
var values = [];
|
|
450
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
451
|
+
values[_i] = arguments[_i];
|
|
452
|
+
}
|
|
453
|
+
var queue = this.get();
|
|
454
|
+
queue.push.apply(queue, values);
|
|
455
|
+
this.set(queue);
|
|
456
|
+
};
|
|
457
|
+
LocalStorageQueue.prototype.set = function (queue) {
|
|
458
|
+
localStorage.setItem(this.key, JSON.stringify(queue));
|
|
459
|
+
};
|
|
460
|
+
LocalStorageQueue.prototype.get = function () {
|
|
461
|
+
var data = localStorage.getItem(this.key);
|
|
462
|
+
if (data !== null && data !== "") {
|
|
463
|
+
return JSON.parse(data);
|
|
464
|
+
}
|
|
465
|
+
return [];
|
|
466
|
+
};
|
|
467
|
+
return LocalStorageQueue;
|
|
468
|
+
}());
|
|
469
|
+
|
|
418
470
|
var Config$1 = {
|
|
419
471
|
DEBUG: false,
|
|
420
472
|
LIB_VERSION: '1.0.0',
|
|
@@ -2164,6 +2216,14 @@ function isAngularStyleAttr(attributeName) {
|
|
|
2164
2216
|
return false
|
|
2165
2217
|
}
|
|
2166
2218
|
|
|
2219
|
+
function isDataAttribute(attributeName)
|
|
2220
|
+
{
|
|
2221
|
+
if (typeof attributeName === 'string') {
|
|
2222
|
+
return attributeName.startsWith('data-')
|
|
2223
|
+
}
|
|
2224
|
+
return false
|
|
2225
|
+
}
|
|
2226
|
+
|
|
2167
2227
|
// Naive rage click implementation: If mouse has not moved than RAGE_CLICK_THRESHOLD_PX
|
|
2168
2228
|
// over RAGE_CLICK_CLICK_COUNT clicks with max RAGE_CLICK_TIMEOUT_MS between clicks, it's
|
|
2169
2229
|
// counted as a rage click
|
|
@@ -2233,7 +2293,7 @@ var autocapture = {
|
|
|
2233
2293
|
// Only capture attributes we know are safe
|
|
2234
2294
|
if (isSensitiveElement(elem) && ['name', 'id', 'class'].indexOf(attr.name) === -1) return
|
|
2235
2295
|
|
|
2236
|
-
if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {
|
|
2296
|
+
if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name) && !isDataAttribute(attr.name)) {
|
|
2237
2297
|
props['attr__' + attr.name] = attr.value;
|
|
2238
2298
|
}
|
|
2239
2299
|
});
|
|
@@ -2461,8 +2521,8 @@ _.safewrap_instance_methods(autocapture);
|
|
|
2461
2521
|
|
|
2462
2522
|
var VERSION_INFO = {
|
|
2463
2523
|
env: 'production',
|
|
2464
|
-
date: '2022-
|
|
2465
|
-
version: '1.0.
|
|
2524
|
+
date: '2022-06-16T10:42:52.204Z',
|
|
2525
|
+
version: '1.0.9'
|
|
2466
2526
|
};
|
|
2467
2527
|
var USERMAVEN_VERSION = "".concat(VERSION_INFO.version, "/").concat(VERSION_INFO.env, "@").concat(VERSION_INFO.date);
|
|
2468
2528
|
var MAX_AGE_TEN_YEARS = 31622400 * 10;
|
|
@@ -2837,6 +2897,11 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2837
2897
|
this.beaconApi = false;
|
|
2838
2898
|
this.transport = xmlHttpTransport;
|
|
2839
2899
|
this.customHeaders = function () { return ({}); };
|
|
2900
|
+
this.queue = new MemoryQueue();
|
|
2901
|
+
this.maxSendAttempts = 4;
|
|
2902
|
+
this.retryTimeout = [500, 1e12];
|
|
2903
|
+
this.flushing = false;
|
|
2904
|
+
this.attempt = 1;
|
|
2840
2905
|
this.__autocapture_enabled = false;
|
|
2841
2906
|
}
|
|
2842
2907
|
// private anonymousId: string = '';
|
|
@@ -2891,6 +2956,24 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2891
2956
|
return this.sendJson(e);
|
|
2892
2957
|
};
|
|
2893
2958
|
UsermavenClientImpl.prototype.sendJson = function (json) {
|
|
2959
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
2960
|
+
return __generator(this, function (_a) {
|
|
2961
|
+
switch (_a.label) {
|
|
2962
|
+
case 0:
|
|
2963
|
+
if (!(this.maxSendAttempts > 1)) return [3 /*break*/, 1];
|
|
2964
|
+
this.queue.push([json, 0]);
|
|
2965
|
+
this.scheduleFlush(0);
|
|
2966
|
+
return [3 /*break*/, 3];
|
|
2967
|
+
case 1: return [4 /*yield*/, this.doSendJson(json)];
|
|
2968
|
+
case 2:
|
|
2969
|
+
_a.sent();
|
|
2970
|
+
_a.label = 3;
|
|
2971
|
+
case 3: return [2 /*return*/];
|
|
2972
|
+
}
|
|
2973
|
+
});
|
|
2974
|
+
});
|
|
2975
|
+
};
|
|
2976
|
+
UsermavenClientImpl.prototype.doSendJson = function (json) {
|
|
2894
2977
|
var _this = this;
|
|
2895
2978
|
var cookiePolicy = this.cookiePolicy !== "keep" ? "&cookie_policy=".concat(this.cookiePolicy) : "";
|
|
2896
2979
|
var ipPolicy = this.ipPolicy !== "keep" ? "&ip_policy=".concat(this.ipPolicy) : "";
|
|
@@ -2905,6 +2988,68 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2905
2988
|
return _this.postHandle(code, body);
|
|
2906
2989
|
});
|
|
2907
2990
|
};
|
|
2991
|
+
UsermavenClientImpl.prototype.scheduleFlush = function (timeout) {
|
|
2992
|
+
var _this = this;
|
|
2993
|
+
if (this.flushing) {
|
|
2994
|
+
return;
|
|
2995
|
+
}
|
|
2996
|
+
this.flushing = true;
|
|
2997
|
+
if (typeof timeout === "undefined") {
|
|
2998
|
+
var random = Math.random() + 1;
|
|
2999
|
+
var factor = Math.pow(2, this.attempt++);
|
|
3000
|
+
timeout = Math.min(this.retryTimeout[0] * random * factor, this.retryTimeout[1]);
|
|
3001
|
+
}
|
|
3002
|
+
getLogger().debug("Scheduling event queue flush in ".concat(timeout, " ms."));
|
|
3003
|
+
setTimeout(function () { return _this.flush(); }, timeout);
|
|
3004
|
+
};
|
|
3005
|
+
UsermavenClientImpl.prototype.flush = function () {
|
|
3006
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
3007
|
+
var queue;
|
|
3008
|
+
var _a;
|
|
3009
|
+
var _this = this;
|
|
3010
|
+
return __generator(this, function (_b) {
|
|
3011
|
+
switch (_b.label) {
|
|
3012
|
+
case 0:
|
|
3013
|
+
if (isWindowAvailable() && !window.navigator.onLine) {
|
|
3014
|
+
this.flushing = false;
|
|
3015
|
+
this.scheduleFlush();
|
|
3016
|
+
}
|
|
3017
|
+
queue = this.queue.flush();
|
|
3018
|
+
this.flushing = false;
|
|
3019
|
+
if (queue.length === 0) {
|
|
3020
|
+
return [2 /*return*/];
|
|
3021
|
+
}
|
|
3022
|
+
_b.label = 1;
|
|
3023
|
+
case 1:
|
|
3024
|
+
_b.trys.push([1, 3, , 4]);
|
|
3025
|
+
return [4 /*yield*/, this.doSendJson(queue.map(function (el) { return el[0]; }))];
|
|
3026
|
+
case 2:
|
|
3027
|
+
_b.sent();
|
|
3028
|
+
this.attempt = 1;
|
|
3029
|
+
getLogger().debug("Successfully flushed ".concat(queue.length, " events from queue"));
|
|
3030
|
+
return [3 /*break*/, 4];
|
|
3031
|
+
case 3:
|
|
3032
|
+
_b.sent();
|
|
3033
|
+
queue = queue.map(function (el) { return [el[0], el[1] + 1]; }).filter(function (el) {
|
|
3034
|
+
if (el[1] >= _this.maxSendAttempts) {
|
|
3035
|
+
getLogger().error("Dropping queued event after ".concat(el[1], " attempts since max send attempts ").concat(_this.maxSendAttempts, " reached. See logs for details"));
|
|
3036
|
+
return false;
|
|
3037
|
+
}
|
|
3038
|
+
return true;
|
|
3039
|
+
});
|
|
3040
|
+
if (queue.length > 0) {
|
|
3041
|
+
(_a = this.queue).push.apply(_a, queue);
|
|
3042
|
+
this.scheduleFlush();
|
|
3043
|
+
}
|
|
3044
|
+
else {
|
|
3045
|
+
this.attempt = 1;
|
|
3046
|
+
}
|
|
3047
|
+
return [3 /*break*/, 4];
|
|
3048
|
+
case 4: return [2 /*return*/];
|
|
3049
|
+
}
|
|
3050
|
+
});
|
|
3051
|
+
});
|
|
3052
|
+
};
|
|
2908
3053
|
UsermavenClientImpl.prototype.postHandle = function (status, response) {
|
|
2909
3054
|
if (this.cookiePolicy === "strict" || this.cookiePolicy === "comply") {
|
|
2910
3055
|
if (status === 200) {
|
|
@@ -2950,7 +3095,7 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2950
3095
|
UsermavenClientImpl.prototype.getCtx = function (env) {
|
|
2951
3096
|
var now = new Date();
|
|
2952
3097
|
var props = env.describeClient() || {};
|
|
2953
|
-
var _a = this.sessionManager.getSessionAndWindowId(), session_id = _a.session_id, window_id = _a.window_id;
|
|
3098
|
+
var _a = (this.cookiePolicy !== "keep") ? { "session_id": "", "window_id": "" } : this.sessionManager.getSessionAndWindowId(), session_id = _a.session_id, window_id = _a.window_id;
|
|
2954
3099
|
var company = this.userProperties['company'] || {};
|
|
2955
3100
|
delete this.userProperties['company'];
|
|
2956
3101
|
var payload = __assign(__assign({ event_id: "", session_id: session_id, window_id: window_id, user: __assign({ anonymous_id: this.cookiePolicy !== "strict"
|
|
@@ -2987,7 +3132,7 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2987
3132
|
};
|
|
2988
3133
|
UsermavenClientImpl.prototype.init = function (options) {
|
|
2989
3134
|
var _this = this;
|
|
2990
|
-
var _a, _b;
|
|
3135
|
+
var _a, _b, _c, _d;
|
|
2991
3136
|
if (isWindowAvailable() && !options.force_use_fetch) {
|
|
2992
3137
|
if (options.fetch) {
|
|
2993
3138
|
getLogger().warn("Custom fetch implementation is provided to Usermaven. However, it will be ignored since Usermaven runs in browser");
|
|
@@ -3080,8 +3225,8 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3080
3225
|
persistence_name: 'session',
|
|
3081
3226
|
autocapture: false,
|
|
3082
3227
|
capture_pageview: true,
|
|
3083
|
-
store_google:
|
|
3084
|
-
save_referrer:
|
|
3228
|
+
store_google: false,
|
|
3229
|
+
save_referrer: false,
|
|
3085
3230
|
properties_string_max_length: null,
|
|
3086
3231
|
property_blacklist: [],
|
|
3087
3232
|
sanitize_properties: null
|
|
@@ -3108,9 +3253,21 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3108
3253
|
if (options.segment_hook) {
|
|
3109
3254
|
interceptSegmentCalls(this);
|
|
3110
3255
|
}
|
|
3256
|
+
if (isWindowAvailable()) {
|
|
3257
|
+
if (!options.disable_event_persistence) {
|
|
3258
|
+
this.queue = new LocalStorageQueue("jitsu-event-queue");
|
|
3259
|
+
this.scheduleFlush(0);
|
|
3260
|
+
}
|
|
3261
|
+
window.addEventListener("beforeunload", function () { return _this.flush(); });
|
|
3262
|
+
}
|
|
3263
|
+
this.retryTimeout = [
|
|
3264
|
+
(_c = options.min_send_timeout) !== null && _c !== void 0 ? _c : this.retryTimeout[0],
|
|
3265
|
+
(_d = options.max_send_timeout) !== null && _d !== void 0 ? _d : this.retryTimeout[1],
|
|
3266
|
+
];
|
|
3267
|
+
if (!!options.max_send_attempts) {
|
|
3268
|
+
this.maxSendAttempts = options.max_send_attempts;
|
|
3269
|
+
}
|
|
3111
3270
|
this.initialized = true;
|
|
3112
|
-
// Set up the window close event handler "unload"
|
|
3113
|
-
window.addEventListener && window.addEventListener('unload', this._handle_unload.bind(this));
|
|
3114
3271
|
};
|
|
3115
3272
|
UsermavenClientImpl.prototype.interceptAnalytics = function (analytics) {
|
|
3116
3273
|
var _this = this;
|
|
@@ -3256,6 +3413,7 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3256
3413
|
* @param {String} [options.transport] Transport method for network request ('XHR' or 'sendBeacon').
|
|
3257
3414
|
*/
|
|
3258
3415
|
UsermavenClientImpl.prototype.capture = function (event_name, properties) {
|
|
3416
|
+
var _a, _b;
|
|
3259
3417
|
if (properties === void 0) { properties = {}; }
|
|
3260
3418
|
if (!this.initialized) {
|
|
3261
3419
|
console.error('Trying to capture event before initialization');
|
|
@@ -3282,8 +3440,11 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3282
3440
|
properties: this._calculate_event_properties(event_name, properties, start_timestamp),
|
|
3283
3441
|
};
|
|
3284
3442
|
data = _.copyAndTruncateStrings(data, this.get_config('properties_string_max_length'));
|
|
3285
|
-
//
|
|
3286
|
-
|
|
3443
|
+
// send evnet if there is a tagname available
|
|
3444
|
+
if ((_b = (_a = data.properties) === null || _a === void 0 ? void 0 : _a.autocapture_attributes) === null || _b === void 0 ? void 0 : _b.tag_name) {
|
|
3445
|
+
this.track("$autocapture", data.properties);
|
|
3446
|
+
// this.track(data.event, data.properties)
|
|
3447
|
+
}
|
|
3287
3448
|
};
|
|
3288
3449
|
UsermavenClientImpl.prototype._calculate_event_properties = function (event_name, event_properties, start_timestamp) {
|
|
3289
3450
|
var _a, _b;
|
package/dist/npm/usermaven.d.ts
CHANGED
|
@@ -204,6 +204,29 @@ export type UsermavenOptions = {
|
|
|
204
204
|
*/
|
|
205
205
|
custom_headers?: Record<string, string> | (() => Record<string, string>)
|
|
206
206
|
|
|
207
|
+
/**
|
|
208
|
+
* Minimum timeout before re-attempting to send events.
|
|
209
|
+
* Defaults to 0.
|
|
210
|
+
*/
|
|
211
|
+
min_send_timeout?: number
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Maximum timeout before re-attempting to send events.
|
|
215
|
+
* Defaults to 2 seconds.
|
|
216
|
+
*/
|
|
217
|
+
max_send_timeout?: number
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Maximum number of send event attempts.
|
|
221
|
+
* Defaults to 4.
|
|
222
|
+
*/
|
|
223
|
+
max_send_attempts?: number
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Whether failed events should NOT be persisted when applicable.
|
|
227
|
+
*/
|
|
228
|
+
disable_event_persistence?: boolean
|
|
229
|
+
|
|
207
230
|
/**
|
|
208
231
|
* Type of persistence required
|
|
209
232
|
* Possible values: cookie | localStorage | localStorage+cookie | memory
|
package/dist/npm/usermaven.es.js
CHANGED
|
@@ -411,6 +411,58 @@ var getHostWithProtocol = function (host) {
|
|
|
411
411
|
}
|
|
412
412
|
};
|
|
413
413
|
|
|
414
|
+
var MemoryQueue = /** @class */ (function () {
|
|
415
|
+
function MemoryQueue() {
|
|
416
|
+
this.queue = [];
|
|
417
|
+
}
|
|
418
|
+
MemoryQueue.prototype.flush = function () {
|
|
419
|
+
var queue = this.queue;
|
|
420
|
+
this.queue = [];
|
|
421
|
+
return queue;
|
|
422
|
+
};
|
|
423
|
+
MemoryQueue.prototype.push = function () {
|
|
424
|
+
var _a;
|
|
425
|
+
var values = [];
|
|
426
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
427
|
+
values[_i] = arguments[_i];
|
|
428
|
+
}
|
|
429
|
+
(_a = this.queue).push.apply(_a, values);
|
|
430
|
+
};
|
|
431
|
+
return MemoryQueue;
|
|
432
|
+
}());
|
|
433
|
+
var LocalStorageQueue = /** @class */ (function () {
|
|
434
|
+
function LocalStorageQueue(key) {
|
|
435
|
+
this.key = key;
|
|
436
|
+
}
|
|
437
|
+
LocalStorageQueue.prototype.flush = function () {
|
|
438
|
+
var queue = this.get();
|
|
439
|
+
if (queue.length) {
|
|
440
|
+
this.set([]);
|
|
441
|
+
}
|
|
442
|
+
return queue;
|
|
443
|
+
};
|
|
444
|
+
LocalStorageQueue.prototype.push = function () {
|
|
445
|
+
var values = [];
|
|
446
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
447
|
+
values[_i] = arguments[_i];
|
|
448
|
+
}
|
|
449
|
+
var queue = this.get();
|
|
450
|
+
queue.push.apply(queue, values);
|
|
451
|
+
this.set(queue);
|
|
452
|
+
};
|
|
453
|
+
LocalStorageQueue.prototype.set = function (queue) {
|
|
454
|
+
localStorage.setItem(this.key, JSON.stringify(queue));
|
|
455
|
+
};
|
|
456
|
+
LocalStorageQueue.prototype.get = function () {
|
|
457
|
+
var data = localStorage.getItem(this.key);
|
|
458
|
+
if (data !== null && data !== "") {
|
|
459
|
+
return JSON.parse(data);
|
|
460
|
+
}
|
|
461
|
+
return [];
|
|
462
|
+
};
|
|
463
|
+
return LocalStorageQueue;
|
|
464
|
+
}());
|
|
465
|
+
|
|
414
466
|
var Config$1 = {
|
|
415
467
|
DEBUG: false,
|
|
416
468
|
LIB_VERSION: '1.0.0',
|
|
@@ -2160,6 +2212,14 @@ function isAngularStyleAttr(attributeName) {
|
|
|
2160
2212
|
return false
|
|
2161
2213
|
}
|
|
2162
2214
|
|
|
2215
|
+
function isDataAttribute(attributeName)
|
|
2216
|
+
{
|
|
2217
|
+
if (typeof attributeName === 'string') {
|
|
2218
|
+
return attributeName.startsWith('data-')
|
|
2219
|
+
}
|
|
2220
|
+
return false
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2163
2223
|
// Naive rage click implementation: If mouse has not moved than RAGE_CLICK_THRESHOLD_PX
|
|
2164
2224
|
// over RAGE_CLICK_CLICK_COUNT clicks with max RAGE_CLICK_TIMEOUT_MS between clicks, it's
|
|
2165
2225
|
// counted as a rage click
|
|
@@ -2229,7 +2289,7 @@ var autocapture = {
|
|
|
2229
2289
|
// Only capture attributes we know are safe
|
|
2230
2290
|
if (isSensitiveElement(elem) && ['name', 'id', 'class'].indexOf(attr.name) === -1) return
|
|
2231
2291
|
|
|
2232
|
-
if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {
|
|
2292
|
+
if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name) && !isDataAttribute(attr.name)) {
|
|
2233
2293
|
props['attr__' + attr.name] = attr.value;
|
|
2234
2294
|
}
|
|
2235
2295
|
});
|
|
@@ -2457,8 +2517,8 @@ _.safewrap_instance_methods(autocapture);
|
|
|
2457
2517
|
|
|
2458
2518
|
var VERSION_INFO = {
|
|
2459
2519
|
env: 'production',
|
|
2460
|
-
date: '2022-
|
|
2461
|
-
version: '1.0.
|
|
2520
|
+
date: '2022-06-16T10:42:52.204Z',
|
|
2521
|
+
version: '1.0.9'
|
|
2462
2522
|
};
|
|
2463
2523
|
var USERMAVEN_VERSION = "".concat(VERSION_INFO.version, "/").concat(VERSION_INFO.env, "@").concat(VERSION_INFO.date);
|
|
2464
2524
|
var MAX_AGE_TEN_YEARS = 31622400 * 10;
|
|
@@ -2833,6 +2893,11 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2833
2893
|
this.beaconApi = false;
|
|
2834
2894
|
this.transport = xmlHttpTransport;
|
|
2835
2895
|
this.customHeaders = function () { return ({}); };
|
|
2896
|
+
this.queue = new MemoryQueue();
|
|
2897
|
+
this.maxSendAttempts = 4;
|
|
2898
|
+
this.retryTimeout = [500, 1e12];
|
|
2899
|
+
this.flushing = false;
|
|
2900
|
+
this.attempt = 1;
|
|
2836
2901
|
this.__autocapture_enabled = false;
|
|
2837
2902
|
}
|
|
2838
2903
|
// private anonymousId: string = '';
|
|
@@ -2887,6 +2952,24 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2887
2952
|
return this.sendJson(e);
|
|
2888
2953
|
};
|
|
2889
2954
|
UsermavenClientImpl.prototype.sendJson = function (json) {
|
|
2955
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
2956
|
+
return __generator(this, function (_a) {
|
|
2957
|
+
switch (_a.label) {
|
|
2958
|
+
case 0:
|
|
2959
|
+
if (!(this.maxSendAttempts > 1)) return [3 /*break*/, 1];
|
|
2960
|
+
this.queue.push([json, 0]);
|
|
2961
|
+
this.scheduleFlush(0);
|
|
2962
|
+
return [3 /*break*/, 3];
|
|
2963
|
+
case 1: return [4 /*yield*/, this.doSendJson(json)];
|
|
2964
|
+
case 2:
|
|
2965
|
+
_a.sent();
|
|
2966
|
+
_a.label = 3;
|
|
2967
|
+
case 3: return [2 /*return*/];
|
|
2968
|
+
}
|
|
2969
|
+
});
|
|
2970
|
+
});
|
|
2971
|
+
};
|
|
2972
|
+
UsermavenClientImpl.prototype.doSendJson = function (json) {
|
|
2890
2973
|
var _this = this;
|
|
2891
2974
|
var cookiePolicy = this.cookiePolicy !== "keep" ? "&cookie_policy=".concat(this.cookiePolicy) : "";
|
|
2892
2975
|
var ipPolicy = this.ipPolicy !== "keep" ? "&ip_policy=".concat(this.ipPolicy) : "";
|
|
@@ -2901,6 +2984,68 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2901
2984
|
return _this.postHandle(code, body);
|
|
2902
2985
|
});
|
|
2903
2986
|
};
|
|
2987
|
+
UsermavenClientImpl.prototype.scheduleFlush = function (timeout) {
|
|
2988
|
+
var _this = this;
|
|
2989
|
+
if (this.flushing) {
|
|
2990
|
+
return;
|
|
2991
|
+
}
|
|
2992
|
+
this.flushing = true;
|
|
2993
|
+
if (typeof timeout === "undefined") {
|
|
2994
|
+
var random = Math.random() + 1;
|
|
2995
|
+
var factor = Math.pow(2, this.attempt++);
|
|
2996
|
+
timeout = Math.min(this.retryTimeout[0] * random * factor, this.retryTimeout[1]);
|
|
2997
|
+
}
|
|
2998
|
+
getLogger().debug("Scheduling event queue flush in ".concat(timeout, " ms."));
|
|
2999
|
+
setTimeout(function () { return _this.flush(); }, timeout);
|
|
3000
|
+
};
|
|
3001
|
+
UsermavenClientImpl.prototype.flush = function () {
|
|
3002
|
+
return __awaiter(this, void 0, Promise, function () {
|
|
3003
|
+
var queue;
|
|
3004
|
+
var _a;
|
|
3005
|
+
var _this = this;
|
|
3006
|
+
return __generator(this, function (_b) {
|
|
3007
|
+
switch (_b.label) {
|
|
3008
|
+
case 0:
|
|
3009
|
+
if (isWindowAvailable() && !window.navigator.onLine) {
|
|
3010
|
+
this.flushing = false;
|
|
3011
|
+
this.scheduleFlush();
|
|
3012
|
+
}
|
|
3013
|
+
queue = this.queue.flush();
|
|
3014
|
+
this.flushing = false;
|
|
3015
|
+
if (queue.length === 0) {
|
|
3016
|
+
return [2 /*return*/];
|
|
3017
|
+
}
|
|
3018
|
+
_b.label = 1;
|
|
3019
|
+
case 1:
|
|
3020
|
+
_b.trys.push([1, 3, , 4]);
|
|
3021
|
+
return [4 /*yield*/, this.doSendJson(queue.map(function (el) { return el[0]; }))];
|
|
3022
|
+
case 2:
|
|
3023
|
+
_b.sent();
|
|
3024
|
+
this.attempt = 1;
|
|
3025
|
+
getLogger().debug("Successfully flushed ".concat(queue.length, " events from queue"));
|
|
3026
|
+
return [3 /*break*/, 4];
|
|
3027
|
+
case 3:
|
|
3028
|
+
_b.sent();
|
|
3029
|
+
queue = queue.map(function (el) { return [el[0], el[1] + 1]; }).filter(function (el) {
|
|
3030
|
+
if (el[1] >= _this.maxSendAttempts) {
|
|
3031
|
+
getLogger().error("Dropping queued event after ".concat(el[1], " attempts since max send attempts ").concat(_this.maxSendAttempts, " reached. See logs for details"));
|
|
3032
|
+
return false;
|
|
3033
|
+
}
|
|
3034
|
+
return true;
|
|
3035
|
+
});
|
|
3036
|
+
if (queue.length > 0) {
|
|
3037
|
+
(_a = this.queue).push.apply(_a, queue);
|
|
3038
|
+
this.scheduleFlush();
|
|
3039
|
+
}
|
|
3040
|
+
else {
|
|
3041
|
+
this.attempt = 1;
|
|
3042
|
+
}
|
|
3043
|
+
return [3 /*break*/, 4];
|
|
3044
|
+
case 4: return [2 /*return*/];
|
|
3045
|
+
}
|
|
3046
|
+
});
|
|
3047
|
+
});
|
|
3048
|
+
};
|
|
2904
3049
|
UsermavenClientImpl.prototype.postHandle = function (status, response) {
|
|
2905
3050
|
if (this.cookiePolicy === "strict" || this.cookiePolicy === "comply") {
|
|
2906
3051
|
if (status === 200) {
|
|
@@ -2946,7 +3091,7 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2946
3091
|
UsermavenClientImpl.prototype.getCtx = function (env) {
|
|
2947
3092
|
var now = new Date();
|
|
2948
3093
|
var props = env.describeClient() || {};
|
|
2949
|
-
var _a = this.sessionManager.getSessionAndWindowId(), session_id = _a.session_id, window_id = _a.window_id;
|
|
3094
|
+
var _a = (this.cookiePolicy !== "keep") ? { "session_id": "", "window_id": "" } : this.sessionManager.getSessionAndWindowId(), session_id = _a.session_id, window_id = _a.window_id;
|
|
2950
3095
|
var company = this.userProperties['company'] || {};
|
|
2951
3096
|
delete this.userProperties['company'];
|
|
2952
3097
|
var payload = __assign(__assign({ event_id: "", session_id: session_id, window_id: window_id, user: __assign({ anonymous_id: this.cookiePolicy !== "strict"
|
|
@@ -2983,7 +3128,7 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
2983
3128
|
};
|
|
2984
3129
|
UsermavenClientImpl.prototype.init = function (options) {
|
|
2985
3130
|
var _this = this;
|
|
2986
|
-
var _a, _b;
|
|
3131
|
+
var _a, _b, _c, _d;
|
|
2987
3132
|
if (isWindowAvailable() && !options.force_use_fetch) {
|
|
2988
3133
|
if (options.fetch) {
|
|
2989
3134
|
getLogger().warn("Custom fetch implementation is provided to Usermaven. However, it will be ignored since Usermaven runs in browser");
|
|
@@ -3076,8 +3221,8 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3076
3221
|
persistence_name: 'session',
|
|
3077
3222
|
autocapture: false,
|
|
3078
3223
|
capture_pageview: true,
|
|
3079
|
-
store_google:
|
|
3080
|
-
save_referrer:
|
|
3224
|
+
store_google: false,
|
|
3225
|
+
save_referrer: false,
|
|
3081
3226
|
properties_string_max_length: null,
|
|
3082
3227
|
property_blacklist: [],
|
|
3083
3228
|
sanitize_properties: null
|
|
@@ -3104,9 +3249,21 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3104
3249
|
if (options.segment_hook) {
|
|
3105
3250
|
interceptSegmentCalls(this);
|
|
3106
3251
|
}
|
|
3252
|
+
if (isWindowAvailable()) {
|
|
3253
|
+
if (!options.disable_event_persistence) {
|
|
3254
|
+
this.queue = new LocalStorageQueue("jitsu-event-queue");
|
|
3255
|
+
this.scheduleFlush(0);
|
|
3256
|
+
}
|
|
3257
|
+
window.addEventListener("beforeunload", function () { return _this.flush(); });
|
|
3258
|
+
}
|
|
3259
|
+
this.retryTimeout = [
|
|
3260
|
+
(_c = options.min_send_timeout) !== null && _c !== void 0 ? _c : this.retryTimeout[0],
|
|
3261
|
+
(_d = options.max_send_timeout) !== null && _d !== void 0 ? _d : this.retryTimeout[1],
|
|
3262
|
+
];
|
|
3263
|
+
if (!!options.max_send_attempts) {
|
|
3264
|
+
this.maxSendAttempts = options.max_send_attempts;
|
|
3265
|
+
}
|
|
3107
3266
|
this.initialized = true;
|
|
3108
|
-
// Set up the window close event handler "unload"
|
|
3109
|
-
window.addEventListener && window.addEventListener('unload', this._handle_unload.bind(this));
|
|
3110
3267
|
};
|
|
3111
3268
|
UsermavenClientImpl.prototype.interceptAnalytics = function (analytics) {
|
|
3112
3269
|
var _this = this;
|
|
@@ -3252,6 +3409,7 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3252
3409
|
* @param {String} [options.transport] Transport method for network request ('XHR' or 'sendBeacon').
|
|
3253
3410
|
*/
|
|
3254
3411
|
UsermavenClientImpl.prototype.capture = function (event_name, properties) {
|
|
3412
|
+
var _a, _b;
|
|
3255
3413
|
if (properties === void 0) { properties = {}; }
|
|
3256
3414
|
if (!this.initialized) {
|
|
3257
3415
|
console.error('Trying to capture event before initialization');
|
|
@@ -3278,8 +3436,11 @@ var UsermavenClientImpl = /** @class */ (function () {
|
|
|
3278
3436
|
properties: this._calculate_event_properties(event_name, properties, start_timestamp),
|
|
3279
3437
|
};
|
|
3280
3438
|
data = _.copyAndTruncateStrings(data, this.get_config('properties_string_max_length'));
|
|
3281
|
-
//
|
|
3282
|
-
|
|
3439
|
+
// send evnet if there is a tagname available
|
|
3440
|
+
if ((_b = (_a = data.properties) === null || _a === void 0 ? void 0 : _a.autocapture_attributes) === null || _b === void 0 ? void 0 : _b.tag_name) {
|
|
3441
|
+
this.track("$autocapture", data.properties);
|
|
3442
|
+
// this.track(data.event, data.properties)
|
|
3443
|
+
}
|
|
3283
3444
|
};
|
|
3284
3445
|
UsermavenClientImpl.prototype._calculate_event_properties = function (event_name, event_properties, start_timestamp) {
|
|
3285
3446
|
var _a, _b;
|
package/dist/web/lib.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e=function(){return e=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},e.apply(this,arguments)};function t(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function n(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function r(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function i(e){let t=!!globalThis.window;return!t&&e&&c().warn(e),t}function o(e){if(!i())throw new Error(e||"window' is not available. Seems like this code runs outside browser environment. It shouldn't happen");return window}var s={DEBUG:{name:"DEBUG",severity:10},INFO:{name:"INFO",severity:100},WARN:{name:"WARN",severity:1e3},ERROR:{name:"ERROR",severity:1e4},NONE:{name:"NONE",severity:1e4}},a=null;function c(){return a||(a=u())}function u(e){var t=i()&&window.__eventNLogLevel,n=s.WARN;if(t){var o=s[t.toUpperCase()];o&&o>0&&(n=o)}else e&&(n=e);var a={minLogLevel:n};return Object.values(s).forEach((function(e){var t=e.name,i=e.severity;a[t.toLowerCase()]=function(){for(var e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];if(i>=n.severity&&e.length>0){var s=e[0],a=e.splice(1),c="[J-".concat(t,"] ").concat(s);"DEBUG"===t||"INFO"===t?console.log.apply(console,r([c],a,!1)):"WARN"===t?console.warn.apply(console,r([c],a,!1)):console.error.apply(console,r([c],a,!1))}}})),function(e,t){if(i()){var n=window;n.__usermavenDebug||(n.__usermavenDebug={}),n.__usermavenDebug[e]=t}}("logger",a),a}function p(e,t,n){var r;void 0===n&&(n={});var i=e+"="+encodeURIComponent(t);if(i+="; Path="+(null!==(r=n.path)&&void 0!==r?r:"/"),n.maxAge&&(i+="; Max-Age="+Math.floor(n.maxAge)),n.domain&&(i+="; Domain="+n.domain),n.expires&&(i+="; Expires="+n.expires.toUTCString()),n.httpOnly&&(i+="; HttpOnly"),n.secure&&(i+="; Secure"),n.sameSite)switch("string"==typeof n.sameSite?n.sameSite.toLowerCase():n.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i}var l;function d(e){if(!e)return{};for(var t={},n=e.split(";"),r=0;r<n.length;r++){var i=n[r],o=i.indexOf("=");o>0&&(t[i.substr(r>0?1:0,r>0?o-1:o)]=i.substr(o+1))}return t}function h(e,t){return Array.from(e.attributes).forEach((function(e){t.setAttribute(e.nodeName,e.nodeValue)}))}function f(e,t){e.innerHTML=t;var n,r=e.getElementsByTagName("script");for(n=r.length-1;n>=0;n--){var i=r[n],o=document.createElement("script");h(i,o),i.innerHTML&&(o.innerHTML=i.innerHTML),o.setAttribute("data-usermaven-tag-id",e.id),document.getElementsByTagName("head")[0].appendChild(o),r[n].parentNode.removeChild(r[n])}}var g=function(e){return e&&decodeURIComponent(o().document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},m=function(e,t,n){void 0===n&&(n={}),o().document.cookie=p(e,t,n)},_=function(e,t){void 0===t&&(t="/"),document.cookie=e+"= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"+(t?"; path = "+t:"")},v=function(){return Math.random().toString(36).substring(2,12)},y=function(){return Math.random().toString(36).substring(2,7)},w={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},b={gclid:!0,fbclid:!0,dclid:!0};var k="1.0.0";const S=Array.prototype,P=Function.prototype,x=Object.prototype,O=S.slice,C=x.toString,A=x.hasOwnProperty,E="undefined"!=typeof window?window:{},I=E.navigator||{userAgent:""},N=E.document||{},U=I.userAgent,$=P.bind,j=S.forEach,T=S.indexOf,D=Array.isArray,M={};var B={trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},F=function(){if(!B.isUndefined(window.console)&&window.console){var e=["UserMaven error:",...arguments];try{window.console.error.apply(window.console,e)}catch(t){B.each(e,(function(e){window.console.error(e)}))}}};B.bind=function(e,t){var n,r;if($&&e.bind===$)return $.apply(e,O.call(arguments,1));if(!B.isFunction(e))throw new TypeError;return n=O.call(arguments,2),r=function(){if(!(this instanceof r))return e.apply(t,n.concat(O.call(arguments)));var i={};i.prototype=e.prototype;var o=new i;i.prototype=null;var s=e.apply(o,n.concat(O.call(arguments)));return Object(s)===s?s:o},r},B.bind_instance_methods=function(e){for(var t in e)"function"==typeof e[t]&&(e[t]=B.bind(e[t],e))},B.each=function(e,t,n){if(null!=e)if(j&&e.forEach===j)e.forEach(t,n);else if(e.length===+e.length){for(var r=0,i=e.length;r<i;r++)if(r in e&&t.call(n,e[r],r,e)===M)return}else for(var o in e)if(A.call(e,o)&&t.call(n,e[o],o,e)===M)return},B.extend=function(e){return B.each(O.call(arguments,1),(function(t){for(var n in t)void 0!==t[n]&&(e[n]=t[n])})),e},B.isArray=D||function(e){return"[object Array]"===C.call(e)},B.isFunction=function(e){try{return/^\s*\bfunction\b/.test(e)}catch(e){return!1}},B.include=function(e,t){var n=!1;return null===e?n:T&&e.indexOf===T?-1!=e.indexOf(t):(B.each(e,(function(e){if(n||(n=e===t))return M})),n)},B.includes=function(e,t){return-1!==e.indexOf(t)},B.isObject=function(e){return e===Object(e)&&!B.isArray(e)},B.isEmptyObject=function(e){if(B.isObject(e)){for(var t in e)if(A.call(e,t))return!1;return!0}return!1},B.isUndefined=function(e){return void 0===e},B.isString=function(e){return"[object String]"==C.call(e)},B.isDate=function(e){return"[object Date]"==C.call(e)},B.isNumber=function(e){return"[object Number]"==C.call(e)},B.encodeDates=function(e){return B.each(e,(function(t,n){B.isDate(t)?e[n]=B.formatDate(t):B.isObject(t)&&(e[n]=B.encodeDates(t))})),e},B.timestamp=function(){return Date.now=Date.now||function(){return+new Date},Date.now()},B.formatDate=function(e){function t(e){return e<10?"0"+e:e}return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())},B.safewrap=function(e){return function(){try{return e.apply(this,arguments)}catch(e){F("Implementation error. Please turn on debug and contact support@usermaven.com.")}}},B.safewrap_class=function(e,t){for(var n=0;n<t.length;n++)e.prototype[t[n]]=B.safewrap(e.prototype[t[n]])},B.safewrap_instance_methods=function(e){for(var t in e)"function"==typeof e[t]&&(e[t]=B.safewrap(e[t]))},B.strip_empty_properties=function(e){var t={};return B.each(e,(function(e,n){B.isString(e)&&e.length>0&&(t[n]=e)})),t};const z="undefined"!=typeof Symbol?Symbol("__deepCircularCopyInProgress__"):"__deepCircularCopyInProgress__";function R(e,t){if(e!==Object(e))return t?t(e):e;if(e[z])return;let n;return e[z]=!0,B.isArray(e)?(n=[],B.each(e,(e=>{n.push(R(e,t))}))):(n={},B.each(e,((e,r)=>{r!==z&&(n[r]=R(e,t))}))),delete e[z],n}var L;B.copyAndTruncateStrings=(e,t)=>R(e,(e=>("string"==typeof e&&null!==t&&(e=e.slice(0,t)),e))),B.base64Encode=function(e){var t,n,r,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=0,c=0,u="",p=[];if(!e)return e;e=B.utf8Encode(e);do{t=(o=e.charCodeAt(a++)<<16|e.charCodeAt(a++)<<8|e.charCodeAt(a++))>>18&63,n=o>>12&63,r=o>>6&63,i=63&o,p[c++]=s.charAt(t)+s.charAt(n)+s.charAt(r)+s.charAt(i)}while(a<e.length);switch(u=p.join(""),e.length%3){case 1:u=u.slice(0,-2)+"==";break;case 2:u=u.slice(0,-1)+"="}return u},B.utf8Encode=function(e){var t,n,r,i,o="";for(t=n=0,r=(e=(e+"").replace(/\r\n/g,"\n").replace(/\r/g,"\n")).length,i=0;i<r;i++){var s=e.charCodeAt(i),a=null;s<128?n++:a=s>127&&s<2048?String.fromCharCode(s>>6|192,63&s|128):String.fromCharCode(s>>12|224,s>>6&63|128,63&s|128),null!==a&&(n>t&&(o+=e.substring(t,n)),o+=a,t=n=i+1)}return n>t&&(o+=e.substring(t,e.length)),o},B.UUID=(L=function(){for(var e=1*new Date,t=0;e==1*new Date;)t++;return e.toString(16)+t.toString(16)},function(){var e=(window.screen.height*window.screen.width).toString(16);return L()+"-"+Math.random().toString(16).replace(".","")+"-"+function(){var e,t,n=U,r=[],i=0;function o(e,t){var n,i=0;for(n=0;n<t.length;n++)i|=r[n]<<8*n;return e^i}for(e=0;e<n.length;e++)t=n.charCodeAt(e),r.unshift(255&t),r.length>=4&&(i=o(i,r),r=[]);return r.length>0&&(i=o(i,r)),i.toString(16)}()+"-"+e+"-"+L()}),B.isBlockedUA=function(e){return!!/(google web preview|baiduspider|yandexbot|bingbot|googlebot|yahoo! slurp)/i.test(e)},B.HTTPBuildQuery=function(e,t){var n,r,i=[];return B.isUndefined(t)&&(t="&"),B.each(e,(function(e,t){n=encodeURIComponent(e.toString()),r=encodeURIComponent(t),i[i.length]=r+"="+n})),i.join(t)},B.getQueryParam=function(e,t){t=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");var n=new RegExp("[\\?&]"+t+"=([^&#]*)").exec(e);if(null===n||n&&"string"!=typeof n[1]&&n[1].length)return"";var r=n[1];try{r=decodeURIComponent(r)}catch(e){}return r.replace(/\+/g," ")},B.getHashParam=function(e,t){var n=e.match(new RegExp(t+"=([^&]*)"));return n?n[1]:null},B.register_event=function(){function e(t){return t&&(t.preventDefault=e.preventDefault,t.stopPropagation=e.stopPropagation),t}return e.preventDefault=function(){this.returnValue=!1},e.stopPropagation=function(){this.cancelBubble=!0},function(t,n,r,i,o){if(t)if(t.addEventListener&&!i)t.addEventListener(n,r,!!o);else{var s="on"+n,a=t[s];t[s]=function(t,n,r){return function(i){if(i=i||e(window.event)){var o,s,a=!0;return B.isFunction(r)&&(o=r(i)),s=n.call(t,i),!1!==o&&!1!==s||(a=!1),a}}}(t,r,a)}}}(),B.info={campaignParams:function(){var e="utm_source utm_medium utm_campaign utm_content utm_term gclid".split(" "),t="",n={};return B.each(e,(function(e){(t=B.getQueryParam(N.URL,e)).length&&(n[e]=t)})),n},searchEngine:function(e){return 0===e.search("https?://(.*)google.([^/?]*)")?"google":0===e.search("https?://(.*)bing.com")?"bing":0===e.search("https?://(.*)yahoo.com")?"yahoo":0===e.search("https?://(.*)duckduckgo.com")?"duckduckgo":null},searchInfo:function(e){var t=B.info.searchEngine(e),n="yahoo"!=t?"q":"p",r={};if(null!==t){r.$search_engine=t;var i=B.getQueryParam(e,n);i.length&&(r.um_keyword=i)}return r},browser:function(e,t,n){return t=t||"",n||B.includes(e," OPR/")?B.includes(e,"Mini")?"Opera Mini":"Opera":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":B.includes(e,"IEMobile")||B.includes(e,"WPDesktop")?"Internet Explorer Mobile":B.includes(e,"SamsungBrowser/")?"Samsung Internet":B.includes(e,"Edge")||B.includes(e,"Edg/")?"Microsoft Edge":B.includes(e,"FBIOS")?"Facebook Mobile":B.includes(e,"Chrome")?"Chrome":B.includes(e,"CriOS")?"Chrome iOS":B.includes(e,"UCWEB")||B.includes(e,"UCBrowser")?"UC Browser":B.includes(e,"FxiOS")?"Firefox iOS":B.includes(t,"Apple")?B.includes(e,"Mobile")?"Mobile Safari":"Safari":B.includes(e,"Android")?"Android Mobile":B.includes(e,"Konqueror")?"Konqueror":B.includes(e,"Firefox")?"Firefox":B.includes(e,"MSIE")||B.includes(e,"Trident/")?"Internet Explorer":B.includes(e,"Gecko")?"Mozilla":""},browserVersion:function(e,t,n){var r={"Internet Explorer Mobile":/rv:(\d+(\.\d+)?)/,"Microsoft Edge":/Edge?\/(\d+(\.\d+)?)/,Chrome:/Chrome\/(\d+(\.\d+)?)/,"Chrome iOS":/CriOS\/(\d+(\.\d+)?)/,"UC Browser":/(UCBrowser|UCWEB)\/(\d+(\.\d+)?)/,Safari:/Version\/(\d+(\.\d+)?)/,"Mobile Safari":/Version\/(\d+(\.\d+)?)/,Opera:/(Opera|OPR)\/(\d+(\.\d+)?)/,Firefox:/Firefox\/(\d+(\.\d+)?)/,"Firefox iOS":/FxiOS\/(\d+(\.\d+)?)/,Konqueror:/Konqueror:(\d+(\.\d+)?)/,BlackBerry:/BlackBerry (\d+(\.\d+)?)/,"Android Mobile":/android\s(\d+(\.\d+)?)/,"Samsung Internet":/SamsungBrowser\/(\d+(\.\d+)?)/,"Internet Explorer":/(rv:|MSIE )(\d+(\.\d+)?)/,Mozilla:/rv:(\d+(\.\d+)?)/}[B.info.browser(e,t,n)];if(void 0===r)return null;var i=e.match(r);return i?parseFloat(i[i.length-2]):null},os:function(){var e=U;return/Windows/i.test(e)?/Phone/.test(e)||/WPDesktop/.test(e)?"Windows Phone":"Windows":/(iPhone|iPad|iPod)/.test(e)?"iOS":/Android/.test(e)?"Android":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":/Mac/i.test(e)?"Mac OS X":/Linux/.test(e)?"Linux":/CrOS/.test(e)?"Chrome OS":""},device:function(e){return/Windows Phone/i.test(e)||/WPDesktop/.test(e)?"Windows Phone":/iPad/.test(e)?"iPad":/iPod/.test(e)?"iPod Touch":/iPhone/.test(e)?"iPhone":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":/Android/.test(e)&&!/Mobile/.test(e)?"Android Tablet":/Android/.test(e)?"Android":""},deviceType:function(e){const t=this.device(e);return"iPad"===t||"Android Tablet"===t?"Tablet":t?"Mobile":"Desktop"},referringDomain:function(e){var t=e.split("/");return t.length>=3?t[2]:""},properties:function(){return B.extend(B.strip_empty_properties({$os:B.info.os(),$browser:B.info.browser(U,I.vendor,window.opera),$device:B.info.device(U),$device_type:B.info.deviceType(U)}),{$current_url:window.location.href,$host:window.location.host,$pathname:window.location.pathname,$browser_version:B.info.browserVersion(U,I.vendor,window.opera),$screen_height:window.screen.height,$screen_width:window.screen.width,$viewport_height:window.innerHeight,$viewport_width:window.innerWidth,$lib:"web",$lib_version:k,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:B.timestamp()/1e3})},people_properties:function(){return B.extend(B.strip_empty_properties({$os:B.info.os(),$browser:B.info.browser(U,I.vendor,window.opera)}),{$browser_version:B.info.browserVersion(U,I.vendor,window.opera)})}},B.isObject=B.isObject,B.isBlockedUA=B.isBlockedUA,B.isEmptyObject=B.isEmptyObject,B.info=B.info,B.info.device=B.info.device,B.info.browser=B.info.browser,B.info.browserVersion=B.info.browserVersion,B.info.properties=B.info.properties;var H=/[a-z0-9][a-z0-9-]+\.[a-z.]{2,6}$/i;const J={get:function(e){try{for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var i=n[r];" "==i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}}catch(e){}return null},parse:function(e){var t;try{t=JSON.parse(J.get(e))||{}}catch(e){}return t},set:function(e,t,n,r,i){try{var o="",s="",a="";if(r){var c=document.location.hostname.match(H),u=c?c[0]:"";o=u?"; domain=."+u:""}if(n){var p=new Date;p.setTime(p.getTime()+24*n*60*60*1e3),s="; expires="+p.toGMTString()}i&&(a="; secure");var l=e+"="+encodeURIComponent(JSON.stringify(t))+s+"; path=/"+o+a;return document.cookie=l,l}catch(e){return}},remove:function(e,t){try{J.set(e,"",-1,t)}catch(e){return}}};var W=null;const q={is_supported:function(){if(null!==W)return W;var e=!0;if(window)try{var t="__mplssupport__";q.set(t,"xyz"),'"xyz"'!==q.get(t)&&(e=!1),q.remove(t)}catch(t){e=!1}else e=!1;return W=e,e},error:function(e){},get:function(e){try{return window.localStorage.getItem(e)}catch(e){q.error(e)}return null},parse:function(e){try{return JSON.parse(q.get(e))||{}}catch(e){}return null},set:function(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch(e){q.error(e)}},remove:function(e){try{window.localStorage.removeItem(e)}catch(e){q.error(e)}}},V={...q,parse:function(e){try{let t={};try{t=J.parse(e)||{},t.distinct_id&&J.set(e,{distinct_id:t.distinct_id})}catch(e){}const n=B.extend(t,JSON.parse(q.get(e)||"{}"));return q.set(e,n),n}catch(e){}return null},set:function(e,t){try{q.set(e,t),t.distinct_id&&J.set(e,{distinct_id:t.distinct_id})}catch(e){q.error(e)}},remove:function(e){try{window.localStorage.removeItem(e),J.remove(e)}catch(e){q.error(e)}}},K={},Q={is_supported:function(){return!0},error:function(e){},parse:function(e){return K[e]||null},set:function(e,t){K[e]=t},remove:function(e){delete K[e]}},G={sessionStorageSupported:null,is_supported:function(){if(null!==G.sessionStorageSupported)return G.sessionStorageSupported;if(G.sessionStorageSupported=!0,window)try{let e="__support__",t="xyz";G.set(e,t),'"xyz"'!==G.get(e)&&(G.sessionStorageSupported=!1),G.remove(e)}catch(e){G.sessionStorageSupported=!1}else G.sessionStorageSupported=!1;return G.sessionStorageSupported},error:function(e){Config.DEBUG},get:function(e){try{return window.sessionStorage.getItem(e)}catch(e){G.error(e)}return null},parse:function(e){try{return JSON.parse(G.get(e))||null}catch(e){}return null},set:function(e,t){try{window.sessionStorage.setItem(e,JSON.stringify(t))}catch(e){G.error(e)}},remove:function(e){try{window.sessionStorage.removeItem(e)}catch(e){G.error(e)}}};var X="__timers",Y="$sesid",Z="$enabled_feature_flags",ee=["__mps","__mpso","__mpus","__mpa","__mpap","__mpr","__mpu","__cmpns",X,"$session_recording_enabled",Y,Z],te=function(e){let t="";e.token&&(t=e.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),this.props={},this.campaign_params_saved=!1,e.persistence_name?this.name="um_"+e.persistence_name:this.name="um_"+t+"_usermaven";var n=e.persistence;"cookie"!==n&&-1===n.indexOf("localStorage")&&"memory"!==n&&(F("Unknown persistence type "+n+"; falling back to cookie"),n=e.persistence="cookie"),"localStorage"===n&&q.is_supported()?this.storage=q:"localStorage+cookie"===n&&V.is_supported()?this.storage=V:this.storage="memory"===n?Q:J,this.load(),this.update_config(e),this.save()};te.prototype.properties=function(){var e={};return B.each(this.props,(function(t,n){if(n===Z&&"object"==typeof t)for(var r=Object.keys(t),i=0;i<r.length;i++)e[`$feature/${r[i]}`]=t[r[i]];else B.include(ee,n)||(e[n]=t)})),e},te.prototype.load=function(){if(!this.disabled){var e=this.storage.parse(this.name);e&&(this.props=B.extend({},e))}},te.prototype.save=function(){this.disabled||this.storage.set(this.name,this.props,this.expire_days,this.cross_subdomain,this.secure)},te.prototype.remove=function(){this.storage.remove(this.name,!1),this.storage.remove(this.name,!0)},te.prototype.clear=function(){this.remove(),this.props={}},te.prototype.register_once=function(e,t,n){return!!B.isObject(e)&&(void 0===t&&(t="None"),this.expire_days=void 0===n?this.default_expiry:n,B.each(e,(function(e,n){this.props.hasOwnProperty(n)&&this.props[n]!==t||(this.props[n]=e)}),this),this.save(),!0)},te.prototype.register=function(e,t){return!!B.isObject(e)&&(this.expire_days=void 0===t?this.default_expiry:t,B.extend(this.props,e),this.save(),!0)},te.prototype.unregister=function(e){e in this.props&&(delete this.props[e],this.save())},te.prototype.update_campaign_params=function(){this.campaign_params_saved||(this.register(B.info.campaignParams()),this.campaign_params_saved=!0)},te.prototype.update_search_keyword=function(e){this.register(B.info.searchInfo(e))},te.prototype.update_referrer_info=function(e){this.register_once({$initial_referrer:e||"$direct",$initial_referring_domain:B.info.referringDomain(e)||"$direct"},""),this.register({$referrer:e||this.props.$referrer||"$direct",$referring_domain:B.info.referringDomain(e)||this.props.$referring_domain||"$direct"})},te.prototype.get_referrer_info=function(){return B.strip_empty_properties({$initial_referrer:this.props.$initial_referrer,$initial_referring_domain:this.props.$initial_referring_domain})},te.prototype.safe_merge=function(e){return B.each(this.props,(function(t,n){n in e||(e[n]=t)})),e},te.prototype.update_config=function(e){this.default_expiry=this.expire_days=e.cookie_expiration,this.set_disabled(e.disable_persistence),this.set_cross_subdomain(e.cross_subdomain_cookie),this.set_secure(e.secure_cookie)},te.prototype.set_disabled=function(e){this.disabled=e,this.disabled?this.remove():this.save()},te.prototype.set_cross_subdomain=function(e){e!==this.cross_subdomain&&(this.cross_subdomain=e,this.remove(),this.save())},te.prototype.get_cross_subdomain=function(){return this.cross_subdomain},te.prototype.set_secure=function(e){e!==this.secure&&(this.secure=!!e,this.remove(),this.save())},te.prototype.set_event_timer=function(e,t){var n=this.props.__timers||{};n[e]=t,this.props.__timers=n,this.save()},te.prototype.remove_event_timer=function(e){var t=(this.props.__timers||{})[e];return B.isUndefined(t)||(delete this.props.__timers[e],this.save()),t};class ne{constructor(e,t){this.persistence=t,this.session_change_threshold=e.persistence_time||1800,this.session_change_threshold*=1e3,e.persistence_name?this.window_id_storage_key="um_"+e.persistence_name+"_window_id":this.window_id_storage_key="um_"+e.token+"_window_id"}_setWindowId(e){e!==this.windowId&&(this.windowId=e,!this.persistence.disabled&&G.is_supported()&&G.set(this.window_id_storage_key,e))}_getWindowId(){return this.windowId?this.windowId:!this.persistence.disabled&&G.is_supported()?G.parse(this.window_id_storage_key):null}_setSessionId(e,t){e===this.sessionId&&t===this.timestamp||(this.timestamp=t,this.sessionId=e,this.persistence.register({[Y]:[t,e]}))}_getSessionId(){return this.sessionId&&this.timestamp?[this.timestamp,this.sessionId]:this.persistence.props.$sesid||[0,null]}resetSessionId(){this._setSessionId(null,null)}getSessionAndWindowId(e=null,t=!1){if(this.persistence.disabled)return{};e=e||(new Date).getTime();let[n,r]=this._getSessionId(),i=this._getWindowId();!r||Math.abs(e-n)>this.session_change_threshold?(r=B.UUID(),i=B.UUID()):i||(i=B.UUID());const o=e;return this._setWindowId(i),this._setSessionId(r,o),{session_id:r,window_id:i}}}function re(e){switch(typeof e.className){case"string":return e.className;case"object":return e.className.baseVal||e.getAttribute("class")||"";default:return""}}function ie(e){var t="";return ue(e)&&!pe(e)&&e.childNodes&&e.childNodes.length&&B.each(e.childNodes,(function(e){ae(e)&&e.textContent&&(t+=B.trim(e.textContent).split(/(\s+)/).filter(le).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255))})),B.trim(t)}function oe(e){return e&&1===e.nodeType}function se(e,t){return e&&e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()}function ae(e){return e&&3===e.nodeType}var ce=["a","button","form","input","select","textarea","label"];function ue(e){for(var t=e;t.parentNode&&!se(t,"body");t=t.parentNode){var n=re(t).split(" ");if(B.includes(n,"um-sensitive")||B.includes(n,"um-no-capture"))return!1}if(B.includes(re(e).split(" "),"um-include"))return!0;var r=e.type||"";if("string"==typeof r)switch(r.toLowerCase()){case"hidden":case"password":return!1}var i=e.name||e.id||"";if("string"==typeof i){if(/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(i.replace(/[^a-zA-Z0-9]/g,"")))return!1}return!0}function pe(e){return!!(se(e,"input")&&!["button","checkbox","submit","reset"].includes(e.type)||se(e,"select")||se(e,"textarea")||"true"===e.getAttribute("contenteditable"))}function le(e){if(null===e||B.isUndefined(e))return!1;if("string"==typeof e){e=B.trim(e);if(/^(?:(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}))$/.test((e||"").replace(/[- ]/g,"")))return!1;if(/(^\d{3}-?\d{2}-?\d{4}$)/.test(e))return!1}return!0}class de{constructor(e,t=e.get_config("rageclick")){this.clicks=[],this.instance=e,this.enabled=t}click(e,t,n){if(!this.enabled)return;const r=this.clicks[this.clicks.length-1];r&&Math.abs(e-r.x)+Math.abs(t-r.y)<30&&n-r.timestamp<1e3?(this.clicks.push({x:e,y:t,timestamp:n}),3===this.clicks.length&&this.instance.capture("$rageclick")):this.clicks=[{x:e,y:t,timestamp:n}]}}var he={_initializedTokens:[],_previousElementSibling:function(e){if(e.previousElementSibling)return e.previousElementSibling;do{e=e.previousSibling}while(e&&!oe(e));return e},_getPropertiesFromElement:function(e,t,n){var r=e.tagName.toLowerCase(),i={tag_name:r};ce.indexOf(r)>-1&&!n&&(i.$el_text=ie(e));var o=re(e);o.length>0&&(i.classes=o.split(" ").filter((function(e){return""!==e}))),B.each(e.attributes,(function(n){var r;pe(e)&&-1===["name","id","class"].indexOf(n.name)||!t&&le(n.value)&&("string"!=typeof(r=n.name)||"_ngcontent"!==r.substring(0,10)&&"_nghost"!==r.substring(0,7))&&(i["attr__"+n.name]=n.value)}));for(var s=1,a=1,c=e;c=this._previousElementSibling(c);)s++,c.tagName===e.tagName&&a++;return i.nth_child=s,i.nth_of_type=a,i},_getDefaultProperties:function(e){return{$event_type:e,$ce_version:1}},_extractCustomPropertyValue:function(e){var t=[];return B.each(document.querySelectorAll(e.css_selector),(function(e){var n;["input","select"].indexOf(e.tagName.toLowerCase())>-1?n=e.value:e.textContent&&(n=e.textContent),le(n)&&t.push(n)})),t.join(", ")},_getCustomProperties:function(e){var t={};return B.each(this._customProperties,(function(n){B.each(n.event_selectors,(function(r){var i=document.querySelectorAll(r);B.each(i,(function(r){B.includes(e,r)&&ue(r)&&(t[n.name]=this._extractCustomPropertyValue(n))}),this)}),this)}),this),t},_getEventTarget:function(e){return void 0===e.target?e.srcElement:e.target.shadowRoot?e.composedPath()[0]:e.target},_captureEvent:function(e,t){var n=this._getEventTarget(e);if(ae(n)&&(n=n.parentNode),"click"===e.type&&this.rageclicks.click(e.clientX,e.clientY,(new Date).getTime()),function(e,t){if(!e||se(e,"html")||!oe(e))return!1;for(var n=!1,r=[e],i=!0,o=e;o.parentNode&&!se(o,"body");)if(11!==o.parentNode.nodeType){if(!(i=o.parentNode))break;if(ce.indexOf(i.tagName.toLowerCase())>-1)n=!0;else{let e=window.getComputedStyle(i);e&&"pointer"===e.getPropertyValue("cursor")&&(n=!0)}r.push(i),o=i}else r.push(o.parentNode.host),o=o.parentNode.host;let s=window.getComputedStyle(e);if(s&&"pointer"===s.getPropertyValue("cursor")&&"click"===t.type)return!0;var a=e.tagName.toLowerCase();switch(a){case"html":return!1;case"form":return"submit"===t.type;case"input":case"select":case"textarea":return"change"===t.type||"click"===t.type;default:return n?"click"===t.type:"click"===t.type&&(ce.indexOf(a)>-1||"true"===e.getAttribute("contenteditable"))}}(n,e)){for(var r=[n],i=n;i.parentNode&&!se(i,"body");)11!==i.parentNode.nodeType?(r.push(i.parentNode),i=i.parentNode):(r.push(i.parentNode.host),i=i.parentNode.host);var o,s=[],a=!1;if(B.each(r,(function(e){var n=ue(e);"a"===e.tagName.toLowerCase()&&(o=e.getAttribute("href"),o=n&&le(o)&&o);var r=re(e).split(" ");B.includes(r,"um-no-capture")&&(a=!0),s.push(this._getPropertiesFromElement(e,t.get_config("mask_all_element_attributes"),t.get_config("mask_all_text")))}),this),t.get_config("mask_all_text")||(s[0].$el_text=ie(n)),o&&(s[0].attr__href=o),a)return!1;var c=B.extend(this._getDefaultProperties(e.type),{$elements:s},this._getCustomProperties(r));return t.capture("$autocapture",c),!0}},_navigate:function(e){window.location.href=e},_addDomEventHandlers:function(e){var t=B.bind((function(t){t=t||window.event,this._captureEvent(t,e)}),this);B.register_event(document,"submit",t,!1,!0),B.register_event(document,"change",t,!1,!0),B.register_event(document,"click",t,!1,!0)},_customProperties:{},init:function(e){var t=e.get_config("token");console.log('Initializing autocapture for token "'+t+'"'),this._initializedTokens.indexOf(t)>-1?console.log('autocapture already initialized for token "'+t+'"'):(this._initializedTokens.push(t),e.get_config("autocapture")?this._addDomEventHandlers(e):e.__autocapture_enabled=!1,this.rageclicks=new de(e))},enabledForProject:function(e,t,n){t=B.isUndefined(t)?10:t,n=B.isUndefined(n)?10:n;for(var r=0,i=0;i<e.length;i++)r+=e.charCodeAt(i);return r%t<n},isBrowserSupported:function(){return B.isFunction(document.querySelectorAll)}};B.bind_instance_methods(he),B.safewrap_instance_methods(he);var fe="__buildEnv__",ge="__buildDate__",me="".concat("__buildVersion__","/").concat(fe,"@").concat(ge),_e=316224e3,ve=function(e,t){c().debug("Sending beacon",t);var n=new Blob([t],{type:"text/plain"});return navigator.sendBeacon(e,n),Promise.resolve()};var ye=function(e,t){return console.log("Jitsu client tried to send payload to ".concat(e),function(e){if("string"==typeof e)try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}}(t)),Promise.resolve()};function we(e,t){void 0===t&&(t=void 0),""!=(t=null!=t?t:window.location.pathname)&&"/"!=t&&(_(e,t),we(e,t.slice(0,t.lastIndexOf("/"))))}var be=function(){function e(e,t){this.cookieDomain=e,this.cookieName=t}return e.prototype.save=function(e){m(this.cookieName,JSON.stringify(e),{domain:this.cookieDomain,secure:"http:"!==document.location.protocol,maxAge:_e})},e.prototype.restore=function(){we(this.cookieName);var e=g(this.cookieName);if(e)try{var t=JSON.parse(decodeURIComponent(e));return"object"!=typeof t?void c().warn("Can't restore value of ".concat(this.cookieName,"@").concat(this.cookieDomain,", expected to be object, but found ").concat("object"!=typeof t,": ").concat(t,". Ignoring")):t}catch(t){return void c().error("Failed to decode JSON from "+e,t)}},e.prototype.delete=function(){_(this.cookieName)},e}(),ke=function(){function e(){}return e.prototype.save=function(e){},e.prototype.restore=function(){},e.prototype.delete=function(){},e}();var Se={getSourceIp:function(){},describeClient:function(){return{referer:document.referrer,url:window.location.href,page_title:document.title,doc_path:document.location.pathname,doc_host:document.location.hostname,doc_search:window.location.search,screen_resolution:screen.width+"x"+screen.height,vp_size:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)+"x"+Math.max(document.documentElement.clientHeight||0,window.innerHeight||0),user_agent:navigator.userAgent,user_language:navigator.language,doc_encoding:document.characterSet}},getAnonymousId:function(e){var t=e.name,n=e.domain;we(t);var r=g(t);if(r)return c().debug("Existing user id",r),r;var i=v();return c().debug("New user id",i),m(t,i,{domain:n,secure:"http:"!==document.location.protocol,maxAge:_e}),i}};var Pe={getSourceIp:function(){},describeClient:function(){return{}},getAnonymousId:function(){return""}},xe=function(){return Se},Oe=function(){return Pe},Ce=function(e,t,n,r){void 0===r&&(r=function(e,t){});var i=new window.XMLHttpRequest;return new Promise((function(o,s){i.onerror=function(e){c().error("Failed to send",t,e),r(-1,{}),s(new Error("Failed to send JSON. See console logs"))},i.onload=function(){200!==i.status?(r(i.status,{}),c().warn("Failed to send data to ".concat(e," (#").concat(i.status," - ").concat(i.statusText,")"),t),s(new Error("Failed to send JSON. Error code: ".concat(i.status,". See logs for details")))):r(i.status,i.responseText),o()},i.open("POST",e),i.setRequestHeader("Content-Type","application/json"),Object.entries(n||{}).forEach((function(e){var t=e[0],n=e[1];return i.setRequestHeader(t,n)})),i.send(t),c().debug("sending json",t)}))},Ae=function(){function r(){this.userProperties={},this.permanentProperties={globalProps:{},propsPerEvent:{}},this.cookieDomain="",this.trackingHost="",this.idCookieName="",this.randomizeUrl=!1,this.apiKey="",this.initialized=!1,this._3pCookies={},this.cookiePolicy="keep",this.ipPolicy="keep",this.beaconApi=!1,this.transport=Ce,this.customHeaders=function(){return{}},this.__autocapture_enabled=!1}return r.prototype.get_config=function(e){return this.config?this.config[e]:null},r.prototype.id=function(t,n){return this.userProperties=e(e({},this.userProperties),t),c().debug("Usermaven user identified",t),this.userIdPersistence?this.userIdPersistence.save(t):c().warn("Id() is called before initialization"),n?Promise.resolve():this.track("user_identify",{})},r.prototype.rawTrack=function(e){return this.sendJson(e)},r.prototype.makeEvent=function(t,n,r){var o,s=r.env,a=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(r,["env"]);s||(s=i()?xe():Oe()),this.restoreId();var c=this.getCtx(s),u=e(e({},this.permanentProperties.globalProps),null!==(o=this.permanentProperties.propsPerEvent[t])&&void 0!==o?o:{}),p=e({api_key:this.apiKey,src:n,event_type:t},a),l=s.getSourceIp();return l&&(p.source_ip=l),this.compatMode?e(e(e({},u),{eventn_ctx:c}),p):e(e(e({},u),c),p)},r.prototype._send3p=function(e,t,n){var r="3rdparty";n&&""!==n&&(r=n);var i=this.makeEvent(r,e,{src_payload:t});return this.sendJson(i)},r.prototype.sendJson=function(e){var t=this,n="keep"!==this.cookiePolicy?"&cookie_policy=".concat(this.cookiePolicy):"",r="keep"!==this.ipPolicy?"&ip_policy=".concat(this.ipPolicy):"",o=i()?"/api/v1/event":"/api/v1/s2s/event",s="".concat(this.trackingHost).concat(o,"?token=").concat(this.apiKey).concat(n).concat(r);this.randomizeUrl&&(s="".concat(this.trackingHost,"/api.").concat(y(),"?p_").concat(y(),"=").concat(this.apiKey).concat(n).concat(r));var a=JSON.stringify(e);return c().debug("Sending payload to ".concat(s),a),this.transport(s,a,this.customHeaders(),(function(e,n){return t.postHandle(e,n)}))},r.prototype.postHandle=function(e,t){if("strict"===this.cookiePolicy||"comply"===this.cookiePolicy){if(200===e){var n=t;if("string"==typeof t&&(n=JSON.parse(t)),!n.delete_cookie)return}this.userIdPersistence.delete(),this.propsPersistance.delete(),_(this.idCookieName)}if(200===e){n=t;if("string"==typeof t&&t.length>0){var r=(n=JSON.parse(t)).jitsu_sdk_extras;if(r&&r.length>0)if(i())for(var o=0,s=r;o<s.length;o++){var a=s[o],u=a.type,p=a.id,l=a.value;if("tag"===u){var d=document.createElement("div");d.id=p,f(d,l),d.childElementCount>0&&document.body.appendChild(d)}}else c().error("Tags destination supported only in browser environment")}}},r.prototype.getCtx=function(t){var n=new Date,r=t.describeClient()||{},i=this.sessionManager.getSessionAndWindowId(),o=i.session_id,s=i.window_id,a=this.userProperties.company||{};delete this.userProperties.company;var c,u,p=e(e({event_id:"",session_id:o,window_id:s,user:e({anonymous_id:"strict"!==this.cookiePolicy?t.getAnonymousId({name:this.idCookieName,domain:this.cookieDomain}):""},this.userProperties),ids:this._getIds(),utc_time:(c=n.toISOString(),u=c.split(".")[1],u?u.length>=7?c:c.slice(0,-1)+"0".repeat(7-u.length)+"Z":c),local_tz_offset:n.getTimezoneOffset()},r),function(e){var t={utm:{},click_id:{}};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n],i=w[n];i?t.utm[i]=r:b[n]&&(t.click_id[n]=r)}return t}(function(e){if(!e)return{};for(var t=e.length>0&&"?"===e.charAt(0)?e.substring(1):e,n={},r=("?"===t[0]?t.substr(1):t).split("&"),i=0;i<r.length;i++){var o=r[i].split("=");n[decodeURIComponent(o[0])]=decodeURIComponent(o[1]||"")}return n}(r.doc_search)));return Object.keys(a).length&&(p.company=a),p},r.prototype._getIds=function(){if(!i())return{};for(var e=function(e){if(void 0===e&&(e=!1),e&&l)return l;var t=d(document.cookie);return l=t,t}(!1),t={},n=0,r=Object.entries(e);n<r.length;n++){var o=r[n],s=o[0],a=o[1];this._3pCookies[s]&&(t["_"==s.charAt(0)?s.substr(1):s]=a)}return t},r.prototype.track=function(e,t){var n=t||{};c().debug("track event of type",e,n);var r=this.makeEvent(e,this.compatMode?"eventn":"usermaven",t||{});return this.sendJson(r)},r.prototype.init=function(r){var o,p,l,d,h,f=this;if(i()&&!r.force_use_fetch)r.fetch&&c().warn("Custom fetch implementation is provided to Usermaven. However, it will be ignored since Usermaven runs in browser"),this.transport=this.beaconApi?ve:Ce;else{if(!r.fetch&&!globalThis.fetch)throw new Error("Usermaven runs in Node environment. However, neither UsermavenOptions.fetch is provided, nor global fetch function is defined. \nPlease, provide custom fetch implementation. You can get it via node-fetch package");this.transport=(l=r.fetch||globalThis.fetch,function(r,i,o,s){return void 0===s&&(s=function(e,t){}),t(void 0,void 0,void 0,(function(){var t,a,u;return n(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,l(r,{method:"POST",headers:e({Accept:"application/json","Content-Type":"application/json"},o||{}),body:i})];case 1:return t=n.sent(),[3,3];case 2:throw a=n.sent(),c().error("Failed to send",i,a),s(-1,{}),new Error("Failed to send JSON. See console logs");case 3:if(200!==t.status)throw c().warn("Failed to send data to ".concat(r," (#").concat(t.status," - ").concat(t.statusText,")"),i),new Error("Failed to send JSON. Error code: ".concat(t.status,". See logs for details"));return[4,t.json()];case 4:return u=n.sent(),s(t.status,u),[2]}}))}))})}if(r.custom_headers&&"function"==typeof r.custom_headers?this.customHeaders=r.custom_headers:r.custom_headers&&(this.customHeaders=function(){return r.custom_headers}),"echo"===r.tracking_host&&(c().warn('jitsuClient is configured with "echo" transport. Outgoing requests will be written to console'),this.transport=ye),r.ip_policy&&(this.ipPolicy=r.ip_policy),r.cookie_policy&&(this.cookiePolicy=r.cookie_policy),"strict"===r.privacy_policy&&(this.ipPolicy="strict",this.cookiePolicy="strict"),r.use_beacon_api&&navigator.sendBeacon&&(this.beaconApi=!0),"comply"===this.cookiePolicy&&this.beaconApi&&(this.cookiePolicy="strict"),r.log_level&&(d=r.log_level,(h=s[d.toLocaleUpperCase()])||(console.warn("Can't find log level with name ".concat(d.toLocaleUpperCase(),", defaulting to INFO")),h=s.INFO),a=u(h)),this.initialOptions=r,c().debug("Initializing Usemaven Tracker tracker",r,me),r.key){if(this.compatMode=void 0!==r.compat_mode&&!!r.compat_mode,this.cookieDomain=r.cookie_domain||function(){if(i())return".".concat((e=location.hostname,t=function(e){return(e.indexOf("//")>-1?e.split("/")[2]:e.split("/")[0]).split(":")[0].split("?")[0]}(e),n=t.split("."),(r=n.length)>2&&(t=n[r-2]+"."+n[r-1],2==n[r-2].length&&2==n[r-1].length&&(t=n[r-3]+"."+t)),t));var e,t,n,r}(),this.trackingHost=function(e){for(;n="/",-1!==(t=e).indexOf(n,t.length-n.length);)e=e.substr(0,e.length-1);var t,n;return 0===e.indexOf("https://")||0===e.indexOf("http://")?e:"//"+e}(r.tracking_host||"t.usermaven.com"),this.randomizeUrl=r.randomize_url||!1,this.idCookieName=r.cookie_name||"__eventn_id",this.apiKey=r.key,"strict"===this.cookiePolicy?this.propsPersistance=new ke:this.propsPersistance=i()?new be(this.cookieDomain,this.idCookieName+"_props"):new ke,"strict"===this.cookiePolicy?this.userIdPersistence=new ke:this.userIdPersistence=i()?new be(this.cookieDomain,this.idCookieName+"_usr"):new ke,this.propsPersistance){var g=this.propsPersistance.restore();g&&(this.permanentProperties=g,this.permanentProperties.globalProps=null!==(o=g.globalProps)&&void 0!==o?o:{},this.permanentProperties.propsPerEvent=null!==(p=g.propsPerEvent)&&void 0!==p?p:{}),c().debug("Restored persistent properties",this.permanentProperties)}this.config=B.extend({},{persistence:"cookie",persistence_name:"session",autocapture:!1,capture_pageview:!0,store_google:!0,save_referrer:!0,properties_string_max_length:null,property_blacklist:[],sanitize_properties:null},r||{},this.config||{},{token:this.apiKey}),c().debug("Default Configuration",this.config),this.manageSession(this.config),this.manageAutoCapture(this.config),!1===r.capture_3rd_party_cookies?this._3pCookies={}:(r.capture_3rd_party_cookies||["_ga","_fbp","_ym_uid","ajs_user_id","ajs_anonymous_id"]).forEach((function(e){return f._3pCookies[e]=!0})),r.ga_hook&&c().warn("GA event interceptor isn't supported anymore"),r.segment_hook&&function(e){var t=window;t.analytics||(t.analytics=[]);e.interceptAnalytics(t.analytics)}(this),this.initialized=!0,window.addEventListener&&window.addEventListener("unload",this._handle_unload.bind(this))}else c().error("Can't initialize Usemaven, key property is not set")},r.prototype.interceptAnalytics=function(t){var n=this,r=function(t){var r;try{var i=e({},t.payload);c().debug("Intercepted segment payload",i.obj);var o=t.integrations["Segment.io"];if(o&&o.analytics){var s=o.analytics;"function"==typeof s.user&&s.user()&&"function"==typeof s.user().id&&(i.obj.userId=s.user().id())}(null===(r=null==i?void 0:i.obj)||void 0===r?void 0:r.timestamp)&&(i.obj.sentAt=i.obj.timestamp);var a=t.payload.type();"track"===a&&(a=t.payload.event()),n._send3p("ajs",i,a)}catch(e){c().warn("Failed to send an event",e)}t.next(t.payload)};"function"==typeof t.addSourceMiddleware?(c().debug("Analytics.js is initialized, calling addSourceMiddleware"),t.addSourceMiddleware(r)):(c().debug("Analytics.js is not initialized, pushing addSourceMiddleware to callstack"),t.push(["addSourceMiddleware",r])),t.__en_intercepted=!0},r.prototype.restoreId=function(){if(this.userIdPersistence){var t=this.userIdPersistence.restore();t&&(this.userProperties=e(e({},t),this.userProperties))}},r.prototype.set=function(t,n){var r,i=null==n?void 0:n.eventType,o=void 0===(null==n?void 0:n.persist)||(null==n?void 0:n.persist);if(void 0!==i){var s=null!==(r=this.permanentProperties.propsPerEvent[i])&&void 0!==r?r:{};this.permanentProperties.propsPerEvent[i]=e(e({},s),t)}else this.permanentProperties.globalProps=e(e({},this.permanentProperties.globalProps),t);this.propsPersistance&&o&&this.propsPersistance.save(this.permanentProperties)},r.prototype.unset=function(e,t){o();var n=null==t?void 0:t.eventType,r=void 0===(null==t?void 0:t.persist)||(null==t?void 0:t.persist);n?this.permanentProperties.propsPerEvent[n]&&delete this.permanentProperties.propsPerEvent[n][e]:delete this.permanentProperties.globalProps[e],this.propsPersistance&&r&&this.propsPersistance.save(this.permanentProperties)},r.prototype.manageSession=function(e){c().debug("Options",e),e=e||{},c().debug("Options",e);var t={persistence:e.persistence||"cookie",persistence_name:e.persistence_name||"session",cross_subdomain_cookie:e.cross_subdomain_cookie||!0};this.config=B.extend(t,this.config||{},{token:this.apiKey}),c().debug("Default Configuration",this.config),this.persistence=new te(this.config),c().debug("Persistence Configuration",this.persistence),this.sessionManager=new ne(this.config,this.persistence),c().debug("Session Configuration",this.sessionManager)},r.prototype.manageAutoCapture=function(e){if(c().debug("Auto Capture Status: ",this.config.autocapture),this.__autocapture_enabled=this.config.autocapture,this.__autocapture_enabled){he.enabledForProject(this.apiKey,100,100)?he.isBrowserSupported()?he.init(this):(this.config.autocapture=!1,console.log("Disabling Automatic Event Collection because this browser is not supported")):(this.config.autocapture=!1,console.log("Not in active bucket: disabling Automatic Event Collection."))}},r.prototype.capture=function(e,t){if(void 0===t&&(t={}),this.initialized){if(B.isUndefined(e)||"string"!=typeof e)console.error("No event name provided to posthog.capture");else if(!B.isBlockedUA(U)){var n=this.persistence.remove_event_timer(e);this.persistence.update_search_keyword(document.referrer),this.get_config("store_google")&&this.persistence.update_campaign_params(),this.get_config("save_referrer")&&this.persistence.update_referrer_info(document.referrer);var r={event:e+(t.$event_type?"_"+t.$event_type:""),properties:this._calculate_event_properties(e,t,n)};r=B.copyAndTruncateStrings(r,this.get_config("properties_string_max_length")),this.track("$autocapture",r.properties)}}else console.error("Trying to capture event before initialization")},r.prototype._calculate_event_properties=function(e,t,n){var r,i,o=t||{};if("$snapshot"===e)return o;if(!B.isUndefined(n)){var s=(new Date).getTime()-n;o.$duration=parseFloat((s/1e3).toFixed(3))}o=B.extend({},this.persistence.properties(),o);var a=this.get_config("property_blacklist");B.isArray(a)?B.each(a,(function(e){delete o[e]})):console.error("Invalid value for property_blacklist config: "+a);var c=this.get_config("sanitize_properties");c&&(o=c(o,e));var u={},p=o.$elements||[];return p.length&&(u=p[0]),o.autocapture_attributes=u,o.autocapture_attributes.el_text=null!==(r=o.autocapture_attributes.$el_text)&&void 0!==r?r:"",o.autocapture_attributes.event_type=null!==(i=o.$event_type)&&void 0!==i?i:"",delete o.$ce_version,delete o.$event_type,delete o.$initial_referrer,delete o.$initial_referring_domain,delete o.$referrer,delete o.$referring_domain,delete o.$elements,delete o.autocapture_attributes.$el_text,delete o.autocapture_attributes.nth_child,delete o.autocapture_attributes.nth_of_type,o},r.prototype._handle_unload=function(){this.get_config("capture_pageview")&&this.capture("$pageleave")},r}();var Ee=["use_beacon_api","cookie_domain","tracking_host","cookie_name","key","ga_hook","segment_hook","randomize_url","capture_3rd_party_cookies","id_method","log_level","compat_mode","privacy_policy","cookie_policy","ip_policy","custom_headers","force_use_fetch","persistence","persistence_name","project_id","cross_subdomain_cookie","persistence_time","disable_persistence","autocapture","capture_pageview","properties_string_max_length","property_blacklist"];var Ie="data-suppress-interception-warning";function Ne(e){return"\n ATTENTION! ".concat(e,"-hook set to true along with defer/async attribute! If ").concat(e," code is inserted right after Usermaven tag,\n first tracking call might not be intercepted! Consider one of the following:\n - Inject usermaven tracking code without defer/async attribute\n - If you're sure that events won't be sent to ").concat(e," before Usermaven is fully initialized, set ").concat(Ie,'="true"\n script attribute\n ')}function Ue(e,t){c().debug("Processing queue",e);for(var n=0;n<e.length;n+=1){var i=r([],e[n],!0)||[],o=i[0],s=i.slice(1),a=t[o];"function"==typeof a&&a.apply(t,s)}e.length=0}if(window){var $e=window,je=function(e){var t=document.currentScript||document.querySelector("script[src*=jsFileName][data-usermaven-api-key]");if(t){var n,r={tracking_host:(n=t.getAttribute("src"),n.replace("/s/lib.js","").replace("/lib.js","")),key:null};Ee.forEach((function(e){var n="data-"+e.replace(new RegExp("_","g"),"-");if(void 0!==t.getAttribute(n)&&null!==t.getAttribute(n)){var i=t.getAttribute(n);"true"===i?i=!0:"false"===i&&(i=!1),r[e]=i}})),e.usermavenClient=function(e){var t=new Ae;return t.init(e),t}(r),!r.segment_hook||null===t.getAttribute("defer")&&null===t.getAttribute("async")||null!==t.getAttribute(Ie)||c().warn(Ne("segment")),!r.ga_hook||null===t.getAttribute("defer")&&null===t.getAttribute("async")||null!==t.getAttribute(Ie)||c().warn(Ne("ga"));var i=function(){var t=e.usermavenQ=e.usermavenQ||[];t.push(arguments),Ue(t,e.usermavenClient)};return e.usermaven=i,console.log(r),r.project_id&&i("set",{project_id:r.project_id}),"true"!==t.getAttribute("data-init-only")&&"yes"!==t.getAttribute("data-init-only")&&(Object.keys(r).includes("capture_pageview")&&!r.capture_pageview||i("track","pageview")),e.usermavenClient}c().warn("Usermaven script is not properly initialized. The definition must contain data-usermaven-api-key as a parameter")}($e);je?(c().debug("Usermaven in-browser tracker has been initialized"),$e.usermaven=function(){var e=$e.usermavenQ=$e.usermavenQ||[];e.push(arguments),Ue(e,je)},$e.usermavenQ&&(c().debug("Initial queue size of ".concat($e.usermavenQ.length," will be processed")),Ue($e.usermavenQ,je))):c().error("Usermaven tracker has not been initialized (reason unknown)")}else c().warn("Usermaven tracker called outside browser context. It will be ignored")}();
|
|
1
|
+
!function(){"use strict";var e=function(){return e=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},e.apply(this,arguments)};function t(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function n(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){s.label=o[1];break}if(6===o[0]&&s.label<i[1]){s.label=i[1],i=o;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(o);break}i[2]&&s.ops.pop(),s.trys.pop();continue}o=t.call(e,s)}catch(e){o=[6,e],r=0}finally{n=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,a])}}}function r(e,t,n){if(n||2===arguments.length)for(var r,i=0,o=t.length;i<o;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function i(e){let t=!!globalThis.window;return!t&&e&&c().warn(e),t}function o(e){if(!i())throw new Error(e||"window' is not available. Seems like this code runs outside browser environment. It shouldn't happen");return window}var s={DEBUG:{name:"DEBUG",severity:10},INFO:{name:"INFO",severity:100},WARN:{name:"WARN",severity:1e3},ERROR:{name:"ERROR",severity:1e4},NONE:{name:"NONE",severity:1e4}},a=null;function c(){return a||(a=u())}function u(e){var t=i()&&window.__eventNLogLevel,n=s.WARN;if(t){var o=s[t.toUpperCase()];o&&o>0&&(n=o)}else e&&(n=e);var a={minLogLevel:n};return Object.values(s).forEach((function(e){var t=e.name,i=e.severity;a[t.toLowerCase()]=function(){for(var e=[],o=0;o<arguments.length;o++)e[o]=arguments[o];if(i>=n.severity&&e.length>0){var s=e[0],a=e.splice(1),c="[J-".concat(t,"] ").concat(s);"DEBUG"===t||"INFO"===t?console.log.apply(console,r([c],a,!1)):"WARN"===t?console.warn.apply(console,r([c],a,!1)):console.error.apply(console,r([c],a,!1))}}})),function(e,t){if(i()){var n=window;n.__usermavenDebug||(n.__usermavenDebug={}),n.__usermavenDebug[e]=t}}("logger",a),a}function p(e,t,n){var r;void 0===n&&(n={});var i=e+"="+encodeURIComponent(t);if(i+="; Path="+(null!==(r=n.path)&&void 0!==r?r:"/"),n.maxAge&&(i+="; Max-Age="+Math.floor(n.maxAge)),n.domain&&(i+="; Domain="+n.domain),n.expires&&(i+="; Expires="+n.expires.toUTCString()),n.httpOnly&&(i+="; HttpOnly"),n.secure&&(i+="; Secure"),n.sameSite)switch("string"==typeof n.sameSite?n.sameSite.toLowerCase():n.sameSite){case!0:i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"strict":i+="; SameSite=Strict";break;case"none":i+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i}var l;function d(e){if(!e)return{};for(var t={},n=e.split(";"),r=0;r<n.length;r++){var i=n[r],o=i.indexOf("=");o>0&&(t[i.substr(r>0?1:0,r>0?o-1:o)]=i.substr(o+1))}return t}function h(e,t){return Array.from(e.attributes).forEach((function(e){t.setAttribute(e.nodeName,e.nodeValue)}))}function f(e,t){e.innerHTML=t;var n,r=e.getElementsByTagName("script");for(n=r.length-1;n>=0;n--){var i=r[n],o=document.createElement("script");h(i,o),i.innerHTML&&(o.innerHTML=i.innerHTML),o.setAttribute("data-usermaven-tag-id",e.id),document.getElementsByTagName("head")[0].appendChild(o),r[n].parentNode.removeChild(r[n])}}var m=function(e){return e&&decodeURIComponent(o().document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},g=function(e,t,n){void 0===n&&(n={}),o().document.cookie=p(e,t,n)},_=function(e,t){void 0===t&&(t="/"),document.cookie=e+"= ; expires = Thu, 01 Jan 1970 00:00:00 GMT"+(t?"; path = "+t:"")},v=function(){return Math.random().toString(36).substring(2,12)},y=function(){return Math.random().toString(36).substring(2,7)},b={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},w={gclid:!0,fbclid:!0,dclid:!0};var k=function(){function e(){this.queue=[]}return e.prototype.flush=function(){var e=this.queue;return this.queue=[],e},e.prototype.push=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];(e=this.queue).push.apply(e,t)},e}(),S=function(){function e(e){this.key=e}return e.prototype.flush=function(){var e=this.get();return e.length&&this.set([]),e},e.prototype.push=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=this.get();n.push.apply(n,e),this.set(n)},e.prototype.set=function(e){localStorage.setItem(this.key,JSON.stringify(e))},e.prototype.get=function(){var e=localStorage.getItem(this.key);return null!==e&&""!==e?JSON.parse(e):[]},e}(),P="1.0.0";const x=Array.prototype,O=Function.prototype,C=Object.prototype,A=x.slice,I=C.toString,E=C.hasOwnProperty,N="undefined"!=typeof window?window:{},T=N.navigator||{userAgent:""},U=N.document||{},$=T.userAgent,j=O.bind,D=x.forEach,M=x.indexOf,B=Array.isArray,F={};var z={trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},R=function(){if(!z.isUndefined(window.console)&&window.console){var e=["UserMaven error:",...arguments];try{window.console.error.apply(window.console,e)}catch(t){z.each(e,(function(e){window.console.error(e)}))}}};z.bind=function(e,t){var n,r;if(j&&e.bind===j)return j.apply(e,A.call(arguments,1));if(!z.isFunction(e))throw new TypeError;return n=A.call(arguments,2),r=function(){if(!(this instanceof r))return e.apply(t,n.concat(A.call(arguments)));var i={};i.prototype=e.prototype;var o=new i;i.prototype=null;var s=e.apply(o,n.concat(A.call(arguments)));return Object(s)===s?s:o},r},z.bind_instance_methods=function(e){for(var t in e)"function"==typeof e[t]&&(e[t]=z.bind(e[t],e))},z.each=function(e,t,n){if(null!=e)if(D&&e.forEach===D)e.forEach(t,n);else if(e.length===+e.length){for(var r=0,i=e.length;r<i;r++)if(r in e&&t.call(n,e[r],r,e)===F)return}else for(var o in e)if(E.call(e,o)&&t.call(n,e[o],o,e)===F)return},z.extend=function(e){return z.each(A.call(arguments,1),(function(t){for(var n in t)void 0!==t[n]&&(e[n]=t[n])})),e},z.isArray=B||function(e){return"[object Array]"===I.call(e)},z.isFunction=function(e){try{return/^\s*\bfunction\b/.test(e)}catch(e){return!1}},z.include=function(e,t){var n=!1;return null===e?n:M&&e.indexOf===M?-1!=e.indexOf(t):(z.each(e,(function(e){if(n||(n=e===t))return F})),n)},z.includes=function(e,t){return-1!==e.indexOf(t)},z.isObject=function(e){return e===Object(e)&&!z.isArray(e)},z.isEmptyObject=function(e){if(z.isObject(e)){for(var t in e)if(E.call(e,t))return!1;return!0}return!1},z.isUndefined=function(e){return void 0===e},z.isString=function(e){return"[object String]"==I.call(e)},z.isDate=function(e){return"[object Date]"==I.call(e)},z.isNumber=function(e){return"[object Number]"==I.call(e)},z.encodeDates=function(e){return z.each(e,(function(t,n){z.isDate(t)?e[n]=z.formatDate(t):z.isObject(t)&&(e[n]=z.encodeDates(t))})),e},z.timestamp=function(){return Date.now=Date.now||function(){return+new Date},Date.now()},z.formatDate=function(e){function t(e){return e<10?"0"+e:e}return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())},z.safewrap=function(e){return function(){try{return e.apply(this,arguments)}catch(e){R("Implementation error. Please turn on debug and contact support@usermaven.com.")}}},z.safewrap_class=function(e,t){for(var n=0;n<t.length;n++)e.prototype[t[n]]=z.safewrap(e.prototype[t[n]])},z.safewrap_instance_methods=function(e){for(var t in e)"function"==typeof e[t]&&(e[t]=z.safewrap(e[t]))},z.strip_empty_properties=function(e){var t={};return z.each(e,(function(e,n){z.isString(e)&&e.length>0&&(t[n]=e)})),t};const J="undefined"!=typeof Symbol?Symbol("__deepCircularCopyInProgress__"):"__deepCircularCopyInProgress__";function L(e,t){if(e!==Object(e))return t?t(e):e;if(e[J])return;let n;return e[J]=!0,z.isArray(e)?(n=[],z.each(e,(e=>{n.push(L(e,t))}))):(n={},z.each(e,((e,r)=>{r!==J&&(n[r]=L(e,t))}))),delete e[J],n}var q;z.copyAndTruncateStrings=(e,t)=>L(e,(e=>("string"==typeof e&&null!==t&&(e=e.slice(0,t)),e))),z.base64Encode=function(e){var t,n,r,i,o,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a=0,c=0,u="",p=[];if(!e)return e;e=z.utf8Encode(e);do{t=(o=e.charCodeAt(a++)<<16|e.charCodeAt(a++)<<8|e.charCodeAt(a++))>>18&63,n=o>>12&63,r=o>>6&63,i=63&o,p[c++]=s.charAt(t)+s.charAt(n)+s.charAt(r)+s.charAt(i)}while(a<e.length);switch(u=p.join(""),e.length%3){case 1:u=u.slice(0,-2)+"==";break;case 2:u=u.slice(0,-1)+"="}return u},z.utf8Encode=function(e){var t,n,r,i,o="";for(t=n=0,r=(e=(e+"").replace(/\r\n/g,"\n").replace(/\r/g,"\n")).length,i=0;i<r;i++){var s=e.charCodeAt(i),a=null;s<128?n++:a=s>127&&s<2048?String.fromCharCode(s>>6|192,63&s|128):String.fromCharCode(s>>12|224,s>>6&63|128,63&s|128),null!==a&&(n>t&&(o+=e.substring(t,n)),o+=a,t=n=i+1)}return n>t&&(o+=e.substring(t,e.length)),o},z.UUID=(q=function(){for(var e=1*new Date,t=0;e==1*new Date;)t++;return e.toString(16)+t.toString(16)},function(){var e=(window.screen.height*window.screen.width).toString(16);return q()+"-"+Math.random().toString(16).replace(".","")+"-"+function(){var e,t,n=$,r=[],i=0;function o(e,t){var n,i=0;for(n=0;n<t.length;n++)i|=r[n]<<8*n;return e^i}for(e=0;e<n.length;e++)t=n.charCodeAt(e),r.unshift(255&t),r.length>=4&&(i=o(i,r),r=[]);return r.length>0&&(i=o(i,r)),i.toString(16)}()+"-"+e+"-"+q()}),z.isBlockedUA=function(e){return!!/(google web preview|baiduspider|yandexbot|bingbot|googlebot|yahoo! slurp)/i.test(e)},z.HTTPBuildQuery=function(e,t){var n,r,i=[];return z.isUndefined(t)&&(t="&"),z.each(e,(function(e,t){n=encodeURIComponent(e.toString()),r=encodeURIComponent(t),i[i.length]=r+"="+n})),i.join(t)},z.getQueryParam=function(e,t){t=t.replace(/[[]/,"\\[").replace(/[\]]/,"\\]");var n=new RegExp("[\\?&]"+t+"=([^&#]*)").exec(e);if(null===n||n&&"string"!=typeof n[1]&&n[1].length)return"";var r=n[1];try{r=decodeURIComponent(r)}catch(e){}return r.replace(/\+/g," ")},z.getHashParam=function(e,t){var n=e.match(new RegExp(t+"=([^&]*)"));return n?n[1]:null},z.register_event=function(){function e(t){return t&&(t.preventDefault=e.preventDefault,t.stopPropagation=e.stopPropagation),t}return e.preventDefault=function(){this.returnValue=!1},e.stopPropagation=function(){this.cancelBubble=!0},function(t,n,r,i,o){if(t)if(t.addEventListener&&!i)t.addEventListener(n,r,!!o);else{var s="on"+n,a=t[s];t[s]=function(t,n,r){return function(i){if(i=i||e(window.event)){var o,s,a=!0;return z.isFunction(r)&&(o=r(i)),s=n.call(t,i),!1!==o&&!1!==s||(a=!1),a}}}(t,r,a)}}}(),z.info={campaignParams:function(){var e="utm_source utm_medium utm_campaign utm_content utm_term gclid".split(" "),t="",n={};return z.each(e,(function(e){(t=z.getQueryParam(U.URL,e)).length&&(n[e]=t)})),n},searchEngine:function(e){return 0===e.search("https?://(.*)google.([^/?]*)")?"google":0===e.search("https?://(.*)bing.com")?"bing":0===e.search("https?://(.*)yahoo.com")?"yahoo":0===e.search("https?://(.*)duckduckgo.com")?"duckduckgo":null},searchInfo:function(e){var t=z.info.searchEngine(e),n="yahoo"!=t?"q":"p",r={};if(null!==t){r.$search_engine=t;var i=z.getQueryParam(e,n);i.length&&(r.um_keyword=i)}return r},browser:function(e,t,n){return t=t||"",n||z.includes(e," OPR/")?z.includes(e,"Mini")?"Opera Mini":"Opera":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":z.includes(e,"IEMobile")||z.includes(e,"WPDesktop")?"Internet Explorer Mobile":z.includes(e,"SamsungBrowser/")?"Samsung Internet":z.includes(e,"Edge")||z.includes(e,"Edg/")?"Microsoft Edge":z.includes(e,"FBIOS")?"Facebook Mobile":z.includes(e,"Chrome")?"Chrome":z.includes(e,"CriOS")?"Chrome iOS":z.includes(e,"UCWEB")||z.includes(e,"UCBrowser")?"UC Browser":z.includes(e,"FxiOS")?"Firefox iOS":z.includes(t,"Apple")?z.includes(e,"Mobile")?"Mobile Safari":"Safari":z.includes(e,"Android")?"Android Mobile":z.includes(e,"Konqueror")?"Konqueror":z.includes(e,"Firefox")?"Firefox":z.includes(e,"MSIE")||z.includes(e,"Trident/")?"Internet Explorer":z.includes(e,"Gecko")?"Mozilla":""},browserVersion:function(e,t,n){var r={"Internet Explorer Mobile":/rv:(\d+(\.\d+)?)/,"Microsoft Edge":/Edge?\/(\d+(\.\d+)?)/,Chrome:/Chrome\/(\d+(\.\d+)?)/,"Chrome iOS":/CriOS\/(\d+(\.\d+)?)/,"UC Browser":/(UCBrowser|UCWEB)\/(\d+(\.\d+)?)/,Safari:/Version\/(\d+(\.\d+)?)/,"Mobile Safari":/Version\/(\d+(\.\d+)?)/,Opera:/(Opera|OPR)\/(\d+(\.\d+)?)/,Firefox:/Firefox\/(\d+(\.\d+)?)/,"Firefox iOS":/FxiOS\/(\d+(\.\d+)?)/,Konqueror:/Konqueror:(\d+(\.\d+)?)/,BlackBerry:/BlackBerry (\d+(\.\d+)?)/,"Android Mobile":/android\s(\d+(\.\d+)?)/,"Samsung Internet":/SamsungBrowser\/(\d+(\.\d+)?)/,"Internet Explorer":/(rv:|MSIE )(\d+(\.\d+)?)/,Mozilla:/rv:(\d+(\.\d+)?)/}[z.info.browser(e,t,n)];if(void 0===r)return null;var i=e.match(r);return i?parseFloat(i[i.length-2]):null},os:function(){var e=$;return/Windows/i.test(e)?/Phone/.test(e)||/WPDesktop/.test(e)?"Windows Phone":"Windows":/(iPhone|iPad|iPod)/.test(e)?"iOS":/Android/.test(e)?"Android":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":/Mac/i.test(e)?"Mac OS X":/Linux/.test(e)?"Linux":/CrOS/.test(e)?"Chrome OS":""},device:function(e){return/Windows Phone/i.test(e)||/WPDesktop/.test(e)?"Windows Phone":/iPad/.test(e)?"iPad":/iPod/.test(e)?"iPod Touch":/iPhone/.test(e)?"iPhone":/(BlackBerry|PlayBook|BB10)/i.test(e)?"BlackBerry":/Android/.test(e)&&!/Mobile/.test(e)?"Android Tablet":/Android/.test(e)?"Android":""},deviceType:function(e){const t=this.device(e);return"iPad"===t||"Android Tablet"===t?"Tablet":t?"Mobile":"Desktop"},referringDomain:function(e){var t=e.split("/");return t.length>=3?t[2]:""},properties:function(){return z.extend(z.strip_empty_properties({$os:z.info.os(),$browser:z.info.browser($,T.vendor,window.opera),$device:z.info.device($),$device_type:z.info.deviceType($)}),{$current_url:window.location.href,$host:window.location.host,$pathname:window.location.pathname,$browser_version:z.info.browserVersion($,T.vendor,window.opera),$screen_height:window.screen.height,$screen_width:window.screen.width,$viewport_height:window.innerHeight,$viewport_width:window.innerWidth,$lib:"web",$lib_version:P,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:z.timestamp()/1e3})},people_properties:function(){return z.extend(z.strip_empty_properties({$os:z.info.os(),$browser:z.info.browser($,T.vendor,window.opera)}),{$browser_version:z.info.browserVersion($,T.vendor,window.opera)})}},z.isObject=z.isObject,z.isBlockedUA=z.isBlockedUA,z.isEmptyObject=z.isEmptyObject,z.info=z.info,z.info.device=z.info.device,z.info.browser=z.info.browser,z.info.browserVersion=z.info.browserVersion,z.info.properties=z.info.properties;var H=/[a-z0-9][a-z0-9-]+\.[a-z.]{2,6}$/i;const W={get:function(e){try{for(var t=e+"=",n=document.cookie.split(";"),r=0;r<n.length;r++){for(var i=n[r];" "==i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return decodeURIComponent(i.substring(t.length,i.length))}}catch(e){}return null},parse:function(e){var t;try{t=JSON.parse(W.get(e))||{}}catch(e){}return t},set:function(e,t,n,r,i){try{var o="",s="",a="";if(r){var c=document.location.hostname.match(H),u=c?c[0]:"";o=u?"; domain=."+u:""}if(n){var p=new Date;p.setTime(p.getTime()+24*n*60*60*1e3),s="; expires="+p.toGMTString()}i&&(a="; secure");var l=e+"="+encodeURIComponent(JSON.stringify(t))+s+"; path=/"+o+a;return document.cookie=l,l}catch(e){return}},remove:function(e,t){try{W.set(e,"",-1,t)}catch(e){return}}};var V=null;const K={is_supported:function(){if(null!==V)return V;var e=!0;if(window)try{var t="__mplssupport__";K.set(t,"xyz"),'"xyz"'!==K.get(t)&&(e=!1),K.remove(t)}catch(t){e=!1}else e=!1;return V=e,e},error:function(e){},get:function(e){try{return window.localStorage.getItem(e)}catch(e){K.error(e)}return null},parse:function(e){try{return JSON.parse(K.get(e))||{}}catch(e){}return null},set:function(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch(e){K.error(e)}},remove:function(e){try{window.localStorage.removeItem(e)}catch(e){K.error(e)}}},Q={...K,parse:function(e){try{let t={};try{t=W.parse(e)||{},t.distinct_id&&W.set(e,{distinct_id:t.distinct_id})}catch(e){}const n=z.extend(t,JSON.parse(K.get(e)||"{}"));return K.set(e,n),n}catch(e){}return null},set:function(e,t){try{K.set(e,t),t.distinct_id&&W.set(e,{distinct_id:t.distinct_id})}catch(e){K.error(e)}},remove:function(e){try{window.localStorage.removeItem(e),W.remove(e)}catch(e){K.error(e)}}},G={},X={is_supported:function(){return!0},error:function(e){},parse:function(e){return G[e]||null},set:function(e,t){G[e]=t},remove:function(e){delete G[e]}},Y={sessionStorageSupported:null,is_supported:function(){if(null!==Y.sessionStorageSupported)return Y.sessionStorageSupported;if(Y.sessionStorageSupported=!0,window)try{let e="__support__",t="xyz";Y.set(e,t),'"xyz"'!==Y.get(e)&&(Y.sessionStorageSupported=!1),Y.remove(e)}catch(e){Y.sessionStorageSupported=!1}else Y.sessionStorageSupported=!1;return Y.sessionStorageSupported},error:function(e){Config.DEBUG},get:function(e){try{return window.sessionStorage.getItem(e)}catch(e){Y.error(e)}return null},parse:function(e){try{return JSON.parse(Y.get(e))||null}catch(e){}return null},set:function(e,t){try{window.sessionStorage.setItem(e,JSON.stringify(t))}catch(e){Y.error(e)}},remove:function(e){try{window.sessionStorage.removeItem(e)}catch(e){Y.error(e)}}};var Z="__timers",ee="$sesid",te="$enabled_feature_flags",ne=["__mps","__mpso","__mpus","__mpa","__mpap","__mpr","__mpu","__cmpns",Z,"$session_recording_enabled",ee,te],re=function(e){let t="";e.token&&(t=e.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),this.props={},this.campaign_params_saved=!1,e.persistence_name?this.name="um_"+e.persistence_name:this.name="um_"+t+"_usermaven";var n=e.persistence;"cookie"!==n&&-1===n.indexOf("localStorage")&&"memory"!==n&&(R("Unknown persistence type "+n+"; falling back to cookie"),n=e.persistence="cookie"),"localStorage"===n&&K.is_supported()?this.storage=K:"localStorage+cookie"===n&&Q.is_supported()?this.storage=Q:this.storage="memory"===n?X:W,this.load(),this.update_config(e),this.save()};re.prototype.properties=function(){var e={};return z.each(this.props,(function(t,n){if(n===te&&"object"==typeof t)for(var r=Object.keys(t),i=0;i<r.length;i++)e[`$feature/${r[i]}`]=t[r[i]];else z.include(ne,n)||(e[n]=t)})),e},re.prototype.load=function(){if(!this.disabled){var e=this.storage.parse(this.name);e&&(this.props=z.extend({},e))}},re.prototype.save=function(){this.disabled||this.storage.set(this.name,this.props,this.expire_days,this.cross_subdomain,this.secure)},re.prototype.remove=function(){this.storage.remove(this.name,!1),this.storage.remove(this.name,!0)},re.prototype.clear=function(){this.remove(),this.props={}},re.prototype.register_once=function(e,t,n){return!!z.isObject(e)&&(void 0===t&&(t="None"),this.expire_days=void 0===n?this.default_expiry:n,z.each(e,(function(e,n){this.props.hasOwnProperty(n)&&this.props[n]!==t||(this.props[n]=e)}),this),this.save(),!0)},re.prototype.register=function(e,t){return!!z.isObject(e)&&(this.expire_days=void 0===t?this.default_expiry:t,z.extend(this.props,e),this.save(),!0)},re.prototype.unregister=function(e){e in this.props&&(delete this.props[e],this.save())},re.prototype.update_campaign_params=function(){this.campaign_params_saved||(this.register(z.info.campaignParams()),this.campaign_params_saved=!0)},re.prototype.update_search_keyword=function(e){this.register(z.info.searchInfo(e))},re.prototype.update_referrer_info=function(e){this.register_once({$initial_referrer:e||"$direct",$initial_referring_domain:z.info.referringDomain(e)||"$direct"},""),this.register({$referrer:e||this.props.$referrer||"$direct",$referring_domain:z.info.referringDomain(e)||this.props.$referring_domain||"$direct"})},re.prototype.get_referrer_info=function(){return z.strip_empty_properties({$initial_referrer:this.props.$initial_referrer,$initial_referring_domain:this.props.$initial_referring_domain})},re.prototype.safe_merge=function(e){return z.each(this.props,(function(t,n){n in e||(e[n]=t)})),e},re.prototype.update_config=function(e){this.default_expiry=this.expire_days=e.cookie_expiration,this.set_disabled(e.disable_persistence),this.set_cross_subdomain(e.cross_subdomain_cookie),this.set_secure(e.secure_cookie)},re.prototype.set_disabled=function(e){this.disabled=e,this.disabled?this.remove():this.save()},re.prototype.set_cross_subdomain=function(e){e!==this.cross_subdomain&&(this.cross_subdomain=e,this.remove(),this.save())},re.prototype.get_cross_subdomain=function(){return this.cross_subdomain},re.prototype.set_secure=function(e){e!==this.secure&&(this.secure=!!e,this.remove(),this.save())},re.prototype.set_event_timer=function(e,t){var n=this.props.__timers||{};n[e]=t,this.props.__timers=n,this.save()},re.prototype.remove_event_timer=function(e){var t=(this.props.__timers||{})[e];return z.isUndefined(t)||(delete this.props.__timers[e],this.save()),t};class ie{constructor(e,t){this.persistence=t,this.session_change_threshold=e.persistence_time||1800,this.session_change_threshold*=1e3,e.persistence_name?this.window_id_storage_key="um_"+e.persistence_name+"_window_id":this.window_id_storage_key="um_"+e.token+"_window_id"}_setWindowId(e){e!==this.windowId&&(this.windowId=e,!this.persistence.disabled&&Y.is_supported()&&Y.set(this.window_id_storage_key,e))}_getWindowId(){return this.windowId?this.windowId:!this.persistence.disabled&&Y.is_supported()?Y.parse(this.window_id_storage_key):null}_setSessionId(e,t){e===this.sessionId&&t===this.timestamp||(this.timestamp=t,this.sessionId=e,this.persistence.register({[ee]:[t,e]}))}_getSessionId(){return this.sessionId&&this.timestamp?[this.timestamp,this.sessionId]:this.persistence.props.$sesid||[0,null]}resetSessionId(){this._setSessionId(null,null)}getSessionAndWindowId(e=null,t=!1){if(this.persistence.disabled)return{};e=e||(new Date).getTime();let[n,r]=this._getSessionId(),i=this._getWindowId();!r||Math.abs(e-n)>this.session_change_threshold?(r=z.UUID(),i=z.UUID()):i||(i=z.UUID());const o=e;return this._setWindowId(i),this._setSessionId(r,o),{session_id:r,window_id:i}}}function oe(e){switch(typeof e.className){case"string":return e.className;case"object":return e.className.baseVal||e.getAttribute("class")||"";default:return""}}function se(e){var t="";return le(e)&&!de(e)&&e.childNodes&&e.childNodes.length&&z.each(e.childNodes,(function(e){ue(e)&&e.textContent&&(t+=z.trim(e.textContent).split(/(\s+)/).filter(he).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255))})),z.trim(t)}function ae(e){return e&&1===e.nodeType}function ce(e,t){return e&&e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()}function ue(e){return e&&3===e.nodeType}var pe=["a","button","form","input","select","textarea","label"];function le(e){for(var t=e;t.parentNode&&!ce(t,"body");t=t.parentNode){var n=oe(t).split(" ");if(z.includes(n,"um-sensitive")||z.includes(n,"um-no-capture"))return!1}if(z.includes(oe(e).split(" "),"um-include"))return!0;var r=e.type||"";if("string"==typeof r)switch(r.toLowerCase()){case"hidden":case"password":return!1}var i=e.name||e.id||"";if("string"==typeof i){if(/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(i.replace(/[^a-zA-Z0-9]/g,"")))return!1}return!0}function de(e){return!!(ce(e,"input")&&!["button","checkbox","submit","reset"].includes(e.type)||ce(e,"select")||ce(e,"textarea")||"true"===e.getAttribute("contenteditable"))}function he(e){if(null===e||z.isUndefined(e))return!1;if("string"==typeof e){e=z.trim(e);if(/^(?:(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}))$/.test((e||"").replace(/[- ]/g,"")))return!1;if(/(^\d{3}-?\d{2}-?\d{4}$)/.test(e))return!1}return!0}class fe{constructor(e,t=e.get_config("rageclick")){this.clicks=[],this.instance=e,this.enabled=t}click(e,t,n){if(!this.enabled)return;const r=this.clicks[this.clicks.length-1];r&&Math.abs(e-r.x)+Math.abs(t-r.y)<30&&n-r.timestamp<1e3?(this.clicks.push({x:e,y:t,timestamp:n}),3===this.clicks.length&&this.instance.capture("$rageclick")):this.clicks=[{x:e,y:t,timestamp:n}]}}var me={_initializedTokens:[],_previousElementSibling:function(e){if(e.previousElementSibling)return e.previousElementSibling;do{e=e.previousSibling}while(e&&!ae(e));return e},_getPropertiesFromElement:function(e,t,n){var r=e.tagName.toLowerCase(),i={tag_name:r};pe.indexOf(r)>-1&&!n&&(i.$el_text=se(e));var o=oe(e);o.length>0&&(i.classes=o.split(" ").filter((function(e){return""!==e}))),z.each(e.attributes,(function(n){var r;de(e)&&-1===["name","id","class"].indexOf(n.name)||!t&&he(n.value)&&("string"!=typeof(r=n.name)||"_ngcontent"!==r.substring(0,10)&&"_nghost"!==r.substring(0,7))&&!function(e){return"string"==typeof e&&e.startsWith("data-")}(n.name)&&(i["attr__"+n.name]=n.value)}));for(var s=1,a=1,c=e;c=this._previousElementSibling(c);)s++,c.tagName===e.tagName&&a++;return i.nth_child=s,i.nth_of_type=a,i},_getDefaultProperties:function(e){return{$event_type:e,$ce_version:1}},_extractCustomPropertyValue:function(e){var t=[];return z.each(document.querySelectorAll(e.css_selector),(function(e){var n;["input","select"].indexOf(e.tagName.toLowerCase())>-1?n=e.value:e.textContent&&(n=e.textContent),he(n)&&t.push(n)})),t.join(", ")},_getCustomProperties:function(e){var t={};return z.each(this._customProperties,(function(n){z.each(n.event_selectors,(function(r){var i=document.querySelectorAll(r);z.each(i,(function(r){z.includes(e,r)&&le(r)&&(t[n.name]=this._extractCustomPropertyValue(n))}),this)}),this)}),this),t},_getEventTarget:function(e){return void 0===e.target?e.srcElement:e.target.shadowRoot?e.composedPath()[0]:e.target},_captureEvent:function(e,t){var n=this._getEventTarget(e);if(ue(n)&&(n=n.parentNode),"click"===e.type&&this.rageclicks.click(e.clientX,e.clientY,(new Date).getTime()),function(e,t){if(!e||ce(e,"html")||!ae(e))return!1;for(var n=!1,r=[e],i=!0,o=e;o.parentNode&&!ce(o,"body");)if(11!==o.parentNode.nodeType){if(!(i=o.parentNode))break;if(pe.indexOf(i.tagName.toLowerCase())>-1)n=!0;else{let e=window.getComputedStyle(i);e&&"pointer"===e.getPropertyValue("cursor")&&(n=!0)}r.push(i),o=i}else r.push(o.parentNode.host),o=o.parentNode.host;let s=window.getComputedStyle(e);if(s&&"pointer"===s.getPropertyValue("cursor")&&"click"===t.type)return!0;var a=e.tagName.toLowerCase();switch(a){case"html":return!1;case"form":return"submit"===t.type;case"input":case"select":case"textarea":return"change"===t.type||"click"===t.type;default:return n?"click"===t.type:"click"===t.type&&(pe.indexOf(a)>-1||"true"===e.getAttribute("contenteditable"))}}(n,e)){for(var r=[n],i=n;i.parentNode&&!ce(i,"body");)11!==i.parentNode.nodeType?(r.push(i.parentNode),i=i.parentNode):(r.push(i.parentNode.host),i=i.parentNode.host);var o,s=[],a=!1;if(z.each(r,(function(e){var n=le(e);"a"===e.tagName.toLowerCase()&&(o=e.getAttribute("href"),o=n&&he(o)&&o);var r=oe(e).split(" ");z.includes(r,"um-no-capture")&&(a=!0),s.push(this._getPropertiesFromElement(e,t.get_config("mask_all_element_attributes"),t.get_config("mask_all_text")))}),this),t.get_config("mask_all_text")||(s[0].$el_text=se(n)),o&&(s[0].attr__href=o),a)return!1;var c=z.extend(this._getDefaultProperties(e.type),{$elements:s},this._getCustomProperties(r));return t.capture("$autocapture",c),!0}},_navigate:function(e){window.location.href=e},_addDomEventHandlers:function(e){var t=z.bind((function(t){t=t||window.event,this._captureEvent(t,e)}),this);z.register_event(document,"submit",t,!1,!0),z.register_event(document,"change",t,!1,!0),z.register_event(document,"click",t,!1,!0)},_customProperties:{},init:function(e){var t=e.get_config("token");console.log('Initializing autocapture for token "'+t+'"'),this._initializedTokens.indexOf(t)>-1?console.log('autocapture already initialized for token "'+t+'"'):(this._initializedTokens.push(t),e.get_config("autocapture")?this._addDomEventHandlers(e):e.__autocapture_enabled=!1,this.rageclicks=new fe(e))},enabledForProject:function(e,t,n){t=z.isUndefined(t)?10:t,n=z.isUndefined(n)?10:n;for(var r=0,i=0;i<e.length;i++)r+=e.charCodeAt(i);return r%t<n},isBrowserSupported:function(){return z.isFunction(document.querySelectorAll)}};z.bind_instance_methods(me),z.safewrap_instance_methods(me);var ge="__buildEnv__",_e="__buildDate__",ve="".concat("__buildVersion__","/").concat(ge,"@").concat(_e),ye=316224e3,be=function(e,t){c().debug("Sending beacon",t);var n=new Blob([t],{type:"text/plain"});return navigator.sendBeacon(e,n),Promise.resolve()};var we=function(e,t){return console.log("Jitsu client tried to send payload to ".concat(e),function(e){if("string"==typeof e)try{return JSON.stringify(JSON.parse(e),null,2)}catch(t){return e}}(t)),Promise.resolve()};function ke(e,t){void 0===t&&(t=void 0),""!=(t=null!=t?t:window.location.pathname)&&"/"!=t&&(_(e,t),ke(e,t.slice(0,t.lastIndexOf("/"))))}var Se=function(){function e(e,t){this.cookieDomain=e,this.cookieName=t}return e.prototype.save=function(e){g(this.cookieName,JSON.stringify(e),{domain:this.cookieDomain,secure:"http:"!==document.location.protocol,maxAge:ye})},e.prototype.restore=function(){ke(this.cookieName);var e=m(this.cookieName);if(e)try{var t=JSON.parse(decodeURIComponent(e));return"object"!=typeof t?void c().warn("Can't restore value of ".concat(this.cookieName,"@").concat(this.cookieDomain,", expected to be object, but found ").concat("object"!=typeof t,": ").concat(t,". Ignoring")):t}catch(t){return void c().error("Failed to decode JSON from "+e,t)}},e.prototype.delete=function(){_(this.cookieName)},e}(),Pe=function(){function e(){}return e.prototype.save=function(e){},e.prototype.restore=function(){},e.prototype.delete=function(){},e}();var xe={getSourceIp:function(){},describeClient:function(){return{referer:document.referrer,url:window.location.href,page_title:document.title,doc_path:document.location.pathname,doc_host:document.location.hostname,doc_search:window.location.search,screen_resolution:screen.width+"x"+screen.height,vp_size:Math.max(document.documentElement.clientWidth||0,window.innerWidth||0)+"x"+Math.max(document.documentElement.clientHeight||0,window.innerHeight||0),user_agent:navigator.userAgent,user_language:navigator.language,doc_encoding:document.characterSet}},getAnonymousId:function(e){var t=e.name,n=e.domain;ke(t);var r=m(t);if(r)return c().debug("Existing user id",r),r;var i=v();return c().debug("New user id",i),g(t,i,{domain:n,secure:"http:"!==document.location.protocol,maxAge:ye}),i}};var Oe={getSourceIp:function(){},describeClient:function(){return{}},getAnonymousId:function(){return""}},Ce=function(){return xe},Ae=function(){return Oe},Ie=function(e,t,n,r){void 0===r&&(r=function(e,t){});var i=new window.XMLHttpRequest;return new Promise((function(o,s){i.onerror=function(e){c().error("Failed to send",t,e),r(-1,{}),s(new Error("Failed to send JSON. See console logs"))},i.onload=function(){200!==i.status?(r(i.status,{}),c().warn("Failed to send data to ".concat(e," (#").concat(i.status," - ").concat(i.statusText,")"),t),s(new Error("Failed to send JSON. Error code: ".concat(i.status,". See logs for details")))):r(i.status,i.responseText),o()},i.open("POST",e),i.setRequestHeader("Content-Type","application/json"),Object.entries(n||{}).forEach((function(e){var t=e[0],n=e[1];return i.setRequestHeader(t,n)})),i.send(t),c().debug("sending json",t)}))},Ee=function(){function r(){this.userProperties={},this.permanentProperties={globalProps:{},propsPerEvent:{}},this.cookieDomain="",this.trackingHost="",this.idCookieName="",this.randomizeUrl=!1,this.apiKey="",this.initialized=!1,this._3pCookies={},this.cookiePolicy="keep",this.ipPolicy="keep",this.beaconApi=!1,this.transport=Ie,this.customHeaders=function(){return{}},this.queue=new k,this.maxSendAttempts=4,this.retryTimeout=[500,1e12],this.flushing=!1,this.attempt=1,this.__autocapture_enabled=!1}return r.prototype.get_config=function(e){return this.config?this.config[e]:null},r.prototype.id=function(t,n){return this.userProperties=e(e({},this.userProperties),t),c().debug("Usermaven user identified",t),this.userIdPersistence?this.userIdPersistence.save(t):c().warn("Id() is called before initialization"),n?Promise.resolve():this.track("user_identify",{})},r.prototype.rawTrack=function(e){return this.sendJson(e)},r.prototype.makeEvent=function(t,n,r){var o,s=r.env,a=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n}(r,["env"]);s||(s=i()?Ce():Ae()),this.restoreId();var c=this.getCtx(s),u=e(e({},this.permanentProperties.globalProps),null!==(o=this.permanentProperties.propsPerEvent[t])&&void 0!==o?o:{}),p=e({api_key:this.apiKey,src:n,event_type:t},a),l=s.getSourceIp();return l&&(p.source_ip=l),this.compatMode?e(e(e({},u),{eventn_ctx:c}),p):e(e(e({},u),c),p)},r.prototype._send3p=function(e,t,n){var r="3rdparty";n&&""!==n&&(r=n);var i=this.makeEvent(r,e,{src_payload:t});return this.sendJson(i)},r.prototype.sendJson=function(e){return t(this,void 0,Promise,(function(){return n(this,(function(t){switch(t.label){case 0:return this.maxSendAttempts>1?(this.queue.push([e,0]),this.scheduleFlush(0),[3,3]):[3,1];case 1:return[4,this.doSendJson(e)];case 2:t.sent(),t.label=3;case 3:return[2]}}))}))},r.prototype.doSendJson=function(e){var t=this,n="keep"!==this.cookiePolicy?"&cookie_policy=".concat(this.cookiePolicy):"",r="keep"!==this.ipPolicy?"&ip_policy=".concat(this.ipPolicy):"",o=i()?"/api/v1/event":"/api/v1/s2s/event",s="".concat(this.trackingHost).concat(o,"?token=").concat(this.apiKey).concat(n).concat(r);this.randomizeUrl&&(s="".concat(this.trackingHost,"/api.").concat(y(),"?p_").concat(y(),"=").concat(this.apiKey).concat(n).concat(r));var a=JSON.stringify(e);return c().debug("Sending payload to ".concat(s),a),this.transport(s,a,this.customHeaders(),(function(e,n){return t.postHandle(e,n)}))},r.prototype.scheduleFlush=function(e){var t=this;if(!this.flushing){if(this.flushing=!0,void 0===e){var n=Math.random()+1,r=Math.pow(2,this.attempt++);e=Math.min(this.retryTimeout[0]*n*r,this.retryTimeout[1])}c().debug("Scheduling event queue flush in ".concat(e," ms.")),setTimeout((function(){return t.flush()}),e)}},r.prototype.flush=function(){return t(this,void 0,Promise,(function(){var e,t,r=this;return n(this,(function(n){switch(n.label){case 0:if(i()&&!window.navigator.onLine&&(this.flushing=!1,this.scheduleFlush()),e=this.queue.flush(),this.flushing=!1,0===e.length)return[2];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.doSendJson(e.map((function(e){return e[0]})))];case 2:return n.sent(),this.attempt=1,c().debug("Successfully flushed ".concat(e.length," events from queue")),[3,4];case 3:return n.sent(),(e=e.map((function(e){return[e[0],e[1]+1]})).filter((function(e){return!(e[1]>=r.maxSendAttempts)||(c().error("Dropping queued event after ".concat(e[1]," attempts since max send attempts ").concat(r.maxSendAttempts," reached. See logs for details")),!1)}))).length>0?((t=this.queue).push.apply(t,e),this.scheduleFlush()):this.attempt=1,[3,4];case 4:return[2]}}))}))},r.prototype.postHandle=function(e,t){if("strict"===this.cookiePolicy||"comply"===this.cookiePolicy){if(200===e){var n=t;if("string"==typeof t&&(n=JSON.parse(t)),!n.delete_cookie)return}this.userIdPersistence.delete(),this.propsPersistance.delete(),_(this.idCookieName)}if(200===e){n=t;if("string"==typeof t&&t.length>0){var r=(n=JSON.parse(t)).jitsu_sdk_extras;if(r&&r.length>0)if(i())for(var o=0,s=r;o<s.length;o++){var a=s[o],u=a.type,p=a.id,l=a.value;if("tag"===u){var d=document.createElement("div");d.id=p,f(d,l),d.childElementCount>0&&document.body.appendChild(d)}}else c().error("Tags destination supported only in browser environment")}}},r.prototype.getCtx=function(t){var n=new Date,r=t.describeClient()||{},i="keep"!==this.cookiePolicy?{session_id:"",window_id:""}:this.sessionManager.getSessionAndWindowId(),o=i.session_id,s=i.window_id,a=this.userProperties.company||{};delete this.userProperties.company;var c,u,p=e(e({event_id:"",session_id:o,window_id:s,user:e({anonymous_id:"strict"!==this.cookiePolicy?t.getAnonymousId({name:this.idCookieName,domain:this.cookieDomain}):""},this.userProperties),ids:this._getIds(),utc_time:(c=n.toISOString(),u=c.split(".")[1],u?u.length>=7?c:c.slice(0,-1)+"0".repeat(7-u.length)+"Z":c),local_tz_offset:n.getTimezoneOffset()},r),function(e){var t={utm:{},click_id:{}};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n],i=b[n];i?t.utm[i]=r:w[n]&&(t.click_id[n]=r)}return t}(function(e){if(!e)return{};for(var t=e.length>0&&"?"===e.charAt(0)?e.substring(1):e,n={},r=("?"===t[0]?t.substr(1):t).split("&"),i=0;i<r.length;i++){var o=r[i].split("=");n[decodeURIComponent(o[0])]=decodeURIComponent(o[1]||"")}return n}(r.doc_search)));return Object.keys(a).length&&(p.company=a),p},r.prototype._getIds=function(){if(!i())return{};for(var e=function(e){if(void 0===e&&(e=!1),e&&l)return l;var t=d(document.cookie);return l=t,t}(!1),t={},n=0,r=Object.entries(e);n<r.length;n++){var o=r[n],s=o[0],a=o[1];this._3pCookies[s]&&(t["_"==s.charAt(0)?s.substr(1):s]=a)}return t},r.prototype.track=function(e,t){var n=t||{};c().debug("track event of type",e,n);var r=this.makeEvent(e,this.compatMode?"eventn":"usermaven",t||{});return this.sendJson(r)},r.prototype.init=function(r){var o,p,l,d,h,f,m,g=this;if(i()&&!r.force_use_fetch)r.fetch&&c().warn("Custom fetch implementation is provided to Usermaven. However, it will be ignored since Usermaven runs in browser"),this.transport=this.beaconApi?be:Ie;else{if(!r.fetch&&!globalThis.fetch)throw new Error("Usermaven runs in Node environment. However, neither UsermavenOptions.fetch is provided, nor global fetch function is defined. \nPlease, provide custom fetch implementation. You can get it via node-fetch package");this.transport=(h=r.fetch||globalThis.fetch,function(r,i,o,s){return void 0===s&&(s=function(e,t){}),t(void 0,void 0,void 0,(function(){var t,a,u;return n(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,h(r,{method:"POST",headers:e({Accept:"application/json","Content-Type":"application/json"},o||{}),body:i})];case 1:return t=n.sent(),[3,3];case 2:throw a=n.sent(),c().error("Failed to send",i,a),s(-1,{}),new Error("Failed to send JSON. See console logs");case 3:if(200!==t.status)throw c().warn("Failed to send data to ".concat(r," (#").concat(t.status," - ").concat(t.statusText,")"),i),new Error("Failed to send JSON. Error code: ".concat(t.status,". See logs for details"));return[4,t.json()];case 4:return u=n.sent(),s(t.status,u),[2]}}))}))})}if(r.custom_headers&&"function"==typeof r.custom_headers?this.customHeaders=r.custom_headers:r.custom_headers&&(this.customHeaders=function(){return r.custom_headers}),"echo"===r.tracking_host&&(c().warn('jitsuClient is configured with "echo" transport. Outgoing requests will be written to console'),this.transport=we),r.ip_policy&&(this.ipPolicy=r.ip_policy),r.cookie_policy&&(this.cookiePolicy=r.cookie_policy),"strict"===r.privacy_policy&&(this.ipPolicy="strict",this.cookiePolicy="strict"),r.use_beacon_api&&navigator.sendBeacon&&(this.beaconApi=!0),"comply"===this.cookiePolicy&&this.beaconApi&&(this.cookiePolicy="strict"),r.log_level&&(f=r.log_level,(m=s[f.toLocaleUpperCase()])||(console.warn("Can't find log level with name ".concat(f.toLocaleUpperCase(),", defaulting to INFO")),m=s.INFO),a=u(m)),this.initialOptions=r,c().debug("Initializing Usemaven Tracker tracker",r,ve),r.key){if(this.compatMode=void 0!==r.compat_mode&&!!r.compat_mode,this.cookieDomain=r.cookie_domain||function(){if(i())return".".concat((e=location.hostname,t=function(e){return(e.indexOf("//")>-1?e.split("/")[2]:e.split("/")[0]).split(":")[0].split("?")[0]}(e),n=t.split("."),(r=n.length)>2&&(t=n[r-2]+"."+n[r-1],2==n[r-2].length&&2==n[r-1].length&&(t=n[r-3]+"."+t)),t));var e,t,n,r}(),this.trackingHost=function(e){for(;n="/",-1!==(t=e).indexOf(n,t.length-n.length);)e=e.substr(0,e.length-1);var t,n;return 0===e.indexOf("https://")||0===e.indexOf("http://")?e:"//"+e}(r.tracking_host||"t.usermaven.com"),this.randomizeUrl=r.randomize_url||!1,this.idCookieName=r.cookie_name||"__eventn_id",this.apiKey=r.key,"strict"===this.cookiePolicy?this.propsPersistance=new Pe:this.propsPersistance=i()?new Se(this.cookieDomain,this.idCookieName+"_props"):new Pe,"strict"===this.cookiePolicy?this.userIdPersistence=new Pe:this.userIdPersistence=i()?new Se(this.cookieDomain,this.idCookieName+"_usr"):new Pe,this.propsPersistance){var _=this.propsPersistance.restore();_&&(this.permanentProperties=_,this.permanentProperties.globalProps=null!==(o=_.globalProps)&&void 0!==o?o:{},this.permanentProperties.propsPerEvent=null!==(p=_.propsPerEvent)&&void 0!==p?p:{}),c().debug("Restored persistent properties",this.permanentProperties)}this.config=z.extend({},{persistence:"cookie",persistence_name:"session",autocapture:!1,capture_pageview:!0,store_google:!1,save_referrer:!1,properties_string_max_length:null,property_blacklist:[],sanitize_properties:null},r||{},this.config||{},{token:this.apiKey}),c().debug("Default Configuration",this.config),this.manageSession(this.config),this.manageAutoCapture(this.config),!1===r.capture_3rd_party_cookies?this._3pCookies={}:(r.capture_3rd_party_cookies||["_ga","_fbp","_ym_uid","ajs_user_id","ajs_anonymous_id"]).forEach((function(e){return g._3pCookies[e]=!0})),r.ga_hook&&c().warn("GA event interceptor isn't supported anymore"),r.segment_hook&&function(e){var t=window;t.analytics||(t.analytics=[]);e.interceptAnalytics(t.analytics)}(this),i()&&(r.disable_event_persistence||(this.queue=new S("jitsu-event-queue"),this.scheduleFlush(0)),window.addEventListener("beforeunload",(function(){return g.flush()}))),this.retryTimeout=[null!==(l=r.min_send_timeout)&&void 0!==l?l:this.retryTimeout[0],null!==(d=r.max_send_timeout)&&void 0!==d?d:this.retryTimeout[1]],r.max_send_attempts&&(this.maxSendAttempts=r.max_send_attempts),this.initialized=!0}else c().error("Can't initialize Usemaven, key property is not set")},r.prototype.interceptAnalytics=function(t){var n=this,r=function(t){var r;try{var i=e({},t.payload);c().debug("Intercepted segment payload",i.obj);var o=t.integrations["Segment.io"];if(o&&o.analytics){var s=o.analytics;"function"==typeof s.user&&s.user()&&"function"==typeof s.user().id&&(i.obj.userId=s.user().id())}(null===(r=null==i?void 0:i.obj)||void 0===r?void 0:r.timestamp)&&(i.obj.sentAt=i.obj.timestamp);var a=t.payload.type();"track"===a&&(a=t.payload.event()),n._send3p("ajs",i,a)}catch(e){c().warn("Failed to send an event",e)}t.next(t.payload)};"function"==typeof t.addSourceMiddleware?(c().debug("Analytics.js is initialized, calling addSourceMiddleware"),t.addSourceMiddleware(r)):(c().debug("Analytics.js is not initialized, pushing addSourceMiddleware to callstack"),t.push(["addSourceMiddleware",r])),t.__en_intercepted=!0},r.prototype.restoreId=function(){if(this.userIdPersistence){var t=this.userIdPersistence.restore();t&&(this.userProperties=e(e({},t),this.userProperties))}},r.prototype.set=function(t,n){var r,i=null==n?void 0:n.eventType,o=void 0===(null==n?void 0:n.persist)||(null==n?void 0:n.persist);if(void 0!==i){var s=null!==(r=this.permanentProperties.propsPerEvent[i])&&void 0!==r?r:{};this.permanentProperties.propsPerEvent[i]=e(e({},s),t)}else this.permanentProperties.globalProps=e(e({},this.permanentProperties.globalProps),t);this.propsPersistance&&o&&this.propsPersistance.save(this.permanentProperties)},r.prototype.unset=function(e,t){o();var n=null==t?void 0:t.eventType,r=void 0===(null==t?void 0:t.persist)||(null==t?void 0:t.persist);n?this.permanentProperties.propsPerEvent[n]&&delete this.permanentProperties.propsPerEvent[n][e]:delete this.permanentProperties.globalProps[e],this.propsPersistance&&r&&this.propsPersistance.save(this.permanentProperties)},r.prototype.manageSession=function(e){c().debug("Options",e),e=e||{},c().debug("Options",e);var t={persistence:e.persistence||"cookie",persistence_name:e.persistence_name||"session",cross_subdomain_cookie:e.cross_subdomain_cookie||!0};this.config=z.extend(t,this.config||{},{token:this.apiKey}),c().debug("Default Configuration",this.config),this.persistence=new re(this.config),c().debug("Persistence Configuration",this.persistence),this.sessionManager=new ie(this.config,this.persistence),c().debug("Session Configuration",this.sessionManager)},r.prototype.manageAutoCapture=function(e){if(c().debug("Auto Capture Status: ",this.config.autocapture),this.__autocapture_enabled=this.config.autocapture,this.__autocapture_enabled){me.enabledForProject(this.apiKey,100,100)?me.isBrowserSupported()?me.init(this):(this.config.autocapture=!1,console.log("Disabling Automatic Event Collection because this browser is not supported")):(this.config.autocapture=!1,console.log("Not in active bucket: disabling Automatic Event Collection."))}},r.prototype.capture=function(e,t){var n,r;if(void 0===t&&(t={}),this.initialized){if(z.isUndefined(e)||"string"!=typeof e)console.error("No event name provided to posthog.capture");else if(!z.isBlockedUA($)){var i=this.persistence.remove_event_timer(e);this.persistence.update_search_keyword(document.referrer),this.get_config("store_google")&&this.persistence.update_campaign_params(),this.get_config("save_referrer")&&this.persistence.update_referrer_info(document.referrer);var o={event:e+(t.$event_type?"_"+t.$event_type:""),properties:this._calculate_event_properties(e,t,i)};(null===(r=null===(n=(o=z.copyAndTruncateStrings(o,this.get_config("properties_string_max_length"))).properties)||void 0===n?void 0:n.autocapture_attributes)||void 0===r?void 0:r.tag_name)&&this.track("$autocapture",o.properties)}}else console.error("Trying to capture event before initialization")},r.prototype._calculate_event_properties=function(e,t,n){var r,i,o=t||{};if("$snapshot"===e)return o;if(!z.isUndefined(n)){var s=(new Date).getTime()-n;o.$duration=parseFloat((s/1e3).toFixed(3))}o=z.extend({},this.persistence.properties(),o);var a=this.get_config("property_blacklist");z.isArray(a)?z.each(a,(function(e){delete o[e]})):console.error("Invalid value for property_blacklist config: "+a);var c=this.get_config("sanitize_properties");c&&(o=c(o,e));var u={},p=o.$elements||[];return p.length&&(u=p[0]),o.autocapture_attributes=u,o.autocapture_attributes.el_text=null!==(r=o.autocapture_attributes.$el_text)&&void 0!==r?r:"",o.autocapture_attributes.event_type=null!==(i=o.$event_type)&&void 0!==i?i:"",delete o.$ce_version,delete o.$event_type,delete o.$initial_referrer,delete o.$initial_referring_domain,delete o.$referrer,delete o.$referring_domain,delete o.$elements,delete o.autocapture_attributes.$el_text,delete o.autocapture_attributes.nth_child,delete o.autocapture_attributes.nth_of_type,o},r.prototype._handle_unload=function(){this.get_config("capture_pageview")&&this.capture("$pageleave")},r}();var Ne=["use_beacon_api","cookie_domain","tracking_host","cookie_name","key","ga_hook","segment_hook","randomize_url","capture_3rd_party_cookies","id_method","log_level","compat_mode","privacy_policy","cookie_policy","ip_policy","custom_headers","force_use_fetch","min_send_timeout","max_send_timeout","max_send_attempts","disable_event_persistence","persistence","persistence_name","project_id","cross_subdomain_cookie","persistence_time","disable_persistence","autocapture","capture_pageview","properties_string_max_length","property_blacklist"];var Te="data-suppress-interception-warning";function Ue(e){return"\n ATTENTION! ".concat(e,"-hook set to true along with defer/async attribute! If ").concat(e," code is inserted right after Usermaven tag,\n first tracking call might not be intercepted! Consider one of the following:\n - Inject usermaven tracking code without defer/async attribute\n - If you're sure that events won't be sent to ").concat(e," before Usermaven is fully initialized, set ").concat(Te,'="true"\n script attribute\n ')}function $e(e,t){c().debug("Processing queue",e);for(var n=0;n<e.length;n+=1){var i=r([],e[n],!0)||[],o=i[0],s=i.slice(1),a=t[o];"function"==typeof a&&a.apply(t,s)}e.length=0}if(window){var je=window,De=function(e){var t=document.currentScript||document.querySelector("script[src*=jsFileName][data-usermaven-api-key]");if(t){var n,r={tracking_host:(n=t.getAttribute("src"),n.replace("/s/lib.js","").replace("/lib.js","")),key:null};Ne.forEach((function(e){var n="data-"+e.replace(new RegExp("_","g"),"-");if(void 0!==t.getAttribute(n)&&null!==t.getAttribute(n)){var i=t.getAttribute(n);"true"===i?i=!0:"false"===i&&(i=!1),r[e]=i}})),e.usermavenClient=function(e){var t=new Ee;return t.init(e),t}(r),!r.segment_hook||null===t.getAttribute("defer")&&null===t.getAttribute("async")||null!==t.getAttribute(Te)||c().warn(Ue("segment")),!r.ga_hook||null===t.getAttribute("defer")&&null===t.getAttribute("async")||null!==t.getAttribute(Te)||c().warn(Ue("ga"));var i=function(){var t=e.usermavenQ=e.usermavenQ||[];t.push(arguments),$e(t,e.usermavenClient)};return e.usermaven=i,console.log(r),r.project_id&&i("set",{project_id:r.project_id}),"true"!==t.getAttribute("data-init-only")&&"yes"!==t.getAttribute("data-init-only")&&(Object.keys(r).includes("capture_pageview")&&!r.capture_pageview||i("track","pageview")),e.usermavenClient}c().warn("Usermaven script is not properly initialized. The definition must contain data-usermaven-api-key as a parameter")}(je);De?(c().debug("Usermaven in-browser tracker has been initialized"),je.usermaven=function(){var e=je.usermavenQ=je.usermavenQ||[];e.push(arguments),$e(e,De)},je.usermavenQ&&(c().debug("Initial queue size of ".concat(je.usermavenQ.length," will be processed")),$e(je.usermavenQ,De))):c().error("Usermaven tracker has not been initialized (reason unknown)")}else c().warn("Usermaven tracker called outside browser context. It will be ignored")}();
|