PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0-dev3
Elementor Website Builder – more than just a page builder v4.0.0-dev3
4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 All 455 releases
← All changes | assets/js/common.js +46 -162 4.1.0-beta3 → 4.0.0-dev3 View file →
@@ -1721,16 +1721,14 @@
1721 1721 var cacheKey = this.getCacheKey(request);
1722 1722 if (_.has(this.cache, cacheKey)) {
1723 1723 deferred = jQuery.Deferred().done(request.success).resolve(this.cache[cacheKey]);
1724 1724 } else {
1725 - var _request$error;
1726 1725 deferred = this.addRequest(request.action, {
1727 1726 data: request.data,
1728 1727 unique_id: request.unique_id,
1729 1728 success: function success(data) {
1730 1729 return _this3.cache[cacheKey] = data;
1731 - },
1732 - error: (_request$error = request.error) !== null && _request$error !== void 0 ? _request$error : function () {}
1730 + }
1733 1731 }, immediately).done(request.success);
1734 1732 }
1735 1733 return deferred;
1736 1734 }
@@ -2340,9 +2338,8 @@
2340 2338 accountConnected: 'account_connected'
2341 2339 },
2342 2340 // ChecklistSteps event names are generated dynamically, based on stepId and action type taken: title, action, done, undone, upgrade
2343 2341 elementorEditor: {
2344 - editorLoaded: 'editor_loaded',
2345 2342 checklist: {
2346 2343 checklistHeaderClose: 'checklist_header_close_icon',
2347 2344 checklistFirstPopup: 'checklist popup triggered'
2348 2345 },
@@ -2360,17 +2357,8 @@
2360 2357 saveChanges: 'save_variables_changes',
2361 2358 delete: 'delete_variable',
2362 2359 variableSyncToV3: 'variable_sync_to_v3'
2363 2360 },
2364 - design_system: {
2365 - importOpened: 'design_system_import_opened',
2366 - fileSelected: 'design_system_file_selected',
2367 - validationFailed: 'design_system_validation_failed',
2368 - conflictChoice: 'design_system_conflict_choice',
2369 - confirmed: 'design_system_import_confirmed',
2370 - imported: 'design_system_imported',
2371 - importFailed: 'design_system_import_failed'
2372 - },
2373 2361 components: {
2374 2362 createClicked: 'component_create_clicked',
2375 2363 createCancelled: 'component_creation_cancelled',
2376 2364 created: 'component_created',
@@ -2440,9 +2428,8 @@
2440 2428 "use strict";
2441 2429
2442 2430
2443 2431 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2444 -var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
2445 2432 Object.defineProperty(exports, "__esModule", ({
2446 2433 value: true
2447 2434 }));
2448 2435 exports["default"] = void 0;
@@ -2454,18 +2441,14 @@
2454 2441 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2455 2442 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2456 2443 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2457 2444 var _eventsConfig = _interopRequireDefault(__webpack_require__(/*! ./events-config */ "../core/common/modules/events-manager/assets/js/events-config.js"));
2458 -var _mixpanelBrowser = _interopRequireWildcard(__webpack_require__(/*! mixpanel-browser */ "../node_modules/mixpanel-browser/dist/mixpanel.module.js"));
2445 +var _mixpanelBrowser = _interopRequireDefault(__webpack_require__(/*! mixpanel-browser */ "../node_modules/mixpanel-browser/dist/mixpanel.module.js"));
2459 2446 var _tiers = __webpack_require__(/*! elementor-utils/tiers */ "../assets/dev/js/utils/tiers.js");
2460 -var _sessionRecording = __webpack_require__(/*! ./session-recording */ "../core/common/modules/events-manager/assets/js/session-recording.js");
2461 -function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
2462 2447 function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2463 2448 function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2464 2449 function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
2465 2450 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2466 -/** @type {Mixpanel | null} */
2467 -var mixpanelInstance = null;
2468 2451 var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
2469 2452 function _default() {
2470 2453 var _this;
2471 2454 (0, _classCallCheck2.default)(this, _default);
@@ -2473,9 +2456,8 @@
2473 2456 args[_key] = arguments[_key];
2474 2457 }
2475 2458 _this = _callSuper(this, _default, [].concat(args));
2476 2459 (0, _defineProperty2.default)(_this, "trackingEnabled", false);
2477 - (0, _defineProperty2.default)(_this, "availableExperiments", []);
2478 2460 return _this;
2479 2461 }
2480 2462 (0, _inherits2.default)(_default, _elementorModules$Mod);
2481 2463 return (0, _createClass2.default)(_default, [{
@@ -2480,15 +2462,13 @@
2480 2462 (0, _inherits2.default)(_default, _elementorModules$Mod);
2481 2463 return (0, _createClass2.default)(_default, [{
2482 2464 key: "onInit",
2483 2465 value: function onInit() {
2484 - var _elementorCommon$conf,
2485 - _this2 = this;
2466 + var _this2 = this;
2486 2467 this.config = _eventsConfig.default;
2487 2468 if (!this.canSendEvents()) {
2488 2469 return;
2489 2470 }
2490 - (0, _sessionRecording.configureSessionRecording)((_elementorCommon$conf = elementorCommon.config.editor_events) === null || _elementorCommon$conf === void 0 ? void 0 : _elementorCommon$conf.session_recording_events);
2491 2471 this.initializeMixpanel(function () {
2492 2472 return _this2.enableTracking();
2493 2473 });
2494 2474 }
@@ -2494,57 +2474,45 @@
2494 2474 }
2495 2475 }, {
2496 2476 key: "initializeMixpanel",
2497 2477 value: function initializeMixpanel(onLoaded) {
2498 - if (mixpanelInstance && mixpanelInstance.isInitialized) {
2499 - onLoaded(mixpanelInstance);
2500 - } else {
2501 - var _elementorCommon$conf2;
2502 - mixpanelInstance = _mixpanelBrowser.default.init((_elementorCommon$conf2 = elementorCommon.config.editor_events) === null || _elementorCommon$conf2 === void 0 ? void 0 : _elementorCommon$conf2.token, {
2503 - persistence: 'localStorage',
2504 - autocapture: false,
2505 - flags: true,
2506 - api_host: 'https://api-eu.mixpanel.com',
2507 - loaded: onLoaded,
2508 - record_sessions_percent: 0,
2509 - record_idle_timeout_ms: 60 * 1000,
2510 - // 60 Seconds
2511 - record_min_ms: 5 * 1000,
2512 - // 5 Seconds
2513 - record_max_ms: 30 * 1000,
2514 - // 30 Seconds
2515 - record_mask_text_selector: ''
2516 - }, 'elementor-editor');
2517 - }
2518 - elementorCommon.config.editor_events.mixpanelInstance = mixpanelInstance;
2478 + var _elementorCommon$conf;
2479 + _mixpanelBrowser.default.init((_elementorCommon$conf = elementorCommon.config.editor_events) === null || _elementorCommon$conf === void 0 ? void 0 : _elementorCommon$conf.token, {
2480 + persistence: 'localStorage',
2481 + autocapture: false,
2482 + flags: true,
2483 + api_hosts: {
2484 + flags: 'https://api-eu.mixpanel.com'
2485 + },
2486 + loaded: onLoaded
2487 + });
2519 2488 }
2520 2489 }, {
2521 2490 key: "enableTracking",
2522 2491 value: function enableTracking() {
2523 - var _elementorCommon$conf3;
2492 + var _elementorCommon$conf2;
2524 2493 if (!this.isMixpanelReady()) {
2525 2494 return;
2526 2495 }
2527 - var userId = (_elementorCommon$conf3 = elementorCommon.config.editor_events) === null || _elementorCommon$conf3 === void 0 ? void 0 : _elementorCommon$conf3.user_id;
2528 - mixpanelInstance.register({
2529 - appType: 'Editor'
2530 - });
2496 + var userId = (_elementorCommon$conf2 = elementorCommon.config.library_connect) === null || _elementorCommon$conf2 === void 0 ? void 0 : _elementorCommon$conf2.user_id;
2531 2497 if (userId) {
2532 - var _elementorCommon$conf4;
2533 - mixpanelInstance.identify(userId);
2534 - mixpanelInstance.people.set_once({
2498 + var _elementorCommon$conf3;
2499 + _mixpanelBrowser.default.identify(userId);
2500 + _mixpanelBrowser.default.register({
2501 + appType: 'Editor'
2502 + });
2503 + _mixpanelBrowser.default.people.set_once({
2535 2504 $user_id: userId,
2536 2505 $last_login: new Date().toISOString(),
2537 - $plan_type: ((_elementorCommon$conf4 = elementorCommon.config.library_connect) === null || _elementorCommon$conf4 === void 0 ? void 0 : _elementorCommon$conf4.plan_type) || _tiers.TIERS.free
2506 + $plan_type: ((_elementorCommon$conf3 = elementorCommon.config.library_connect) === null || _elementorCommon$conf3 === void 0 ? void 0 : _elementorCommon$conf3.plan_type) || _tiers.TIERS.free
2538 2507 });
2539 2508 }
2540 2509 this.trackingEnabled = true;
2541 - this.availableExperiments = Object.keys(elementorCommon.config.experimentalFeatures || {});
2542 2510 }
2543 2511 }, {
2544 2512 key: "dispatchEvent",
2545 2513 value: function dispatchEvent(name, data) {
2546 - var _elementorCommon$conf5, _elementorCommon$conf6, _elementorCommon$conf7, _elementorCommon$conf8, _elementorCommon$conf9, _elementorCommon$conf0, _elementorCommon$conf1, _elementorCommon$conf10, _elementorCommon$conf11;
2514 + var _elementorCommon$conf4, _elementorCommon$conf5, _elementorCommon$conf6, _elementorCommon$conf7, _elementorCommon$conf8, _elementorCommon$conf9, _elementorCommon$conf0, _elementorCommon$conf1, _elementorCommon$conf10;
2547 2515 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
2548 2516 if (!this.canSendEvents()) {
2549 2517 return;
2550 2518 }
@@ -2551,35 +2519,30 @@
2551 2519 if (!this.trackingEnabled) {
2552 2520 this.enableTracking();
2553 2521 }
2554 2522 var eventData = _objectSpread({
2555 - user_id: ((_elementorCommon$conf5 = elementorCommon.config.editor_events) === null || _elementorCommon$conf5 === void 0 ? void 0 : _elementorCommon$conf5.user_id) || null,
2556 - user_roles: ((_elementorCommon$conf6 = elementorCommon.config.library_connect) === null || _elementorCommon$conf6 === void 0 ? void 0 : _elementorCommon$conf6.user_roles) || [],
2557 - subscription_id: ((_elementorCommon$conf7 = elementorCommon.config.editor_events) === null || _elementorCommon$conf7 === void 0 ? void 0 : _elementorCommon$conf7.subscription_id) || null,
2558 - user_tier: ((_elementorCommon$conf8 = elementorCommon.config.library_connect) === null || _elementorCommon$conf8 === void 0 ? void 0 : _elementorCommon$conf8.current_access_tier) || null,
2559 - url: (_elementorCommon$conf9 = elementorCommon.config.editor_events) === null || _elementorCommon$conf9 === void 0 ? void 0 : _elementorCommon$conf9.site_url,
2560 - wp_version: (_elementorCommon$conf0 = elementorCommon.config.editor_events) === null || _elementorCommon$conf0 === void 0 ? void 0 : _elementorCommon$conf0.wp_version,
2561 - client_id: (_elementorCommon$conf1 = elementorCommon.config.editor_events) === null || _elementorCommon$conf1 === void 0 ? void 0 : _elementorCommon$conf1.site_key,
2562 - app_version: (_elementorCommon$conf10 = elementorCommon.config.editor_events) === null || _elementorCommon$conf10 === void 0 ? void 0 : _elementorCommon$conf10.elementor_version,
2563 - site_language: (_elementorCommon$conf11 = elementorCommon.config.editor_events) === null || _elementorCommon$conf11 === void 0 ? void 0 : _elementorCommon$conf11.site_language,
2564 - experiments: this.availableExperiments
2523 + user_id: ((_elementorCommon$conf4 = elementorCommon.config.library_connect) === null || _elementorCommon$conf4 === void 0 ? void 0 : _elementorCommon$conf4.user_id) || null,
2524 + user_roles: ((_elementorCommon$conf5 = elementorCommon.config.library_connect) === null || _elementorCommon$conf5 === void 0 ? void 0 : _elementorCommon$conf5.user_roles) || [],
2525 + subscription_id: ((_elementorCommon$conf6 = elementorCommon.config.editor_events) === null || _elementorCommon$conf6 === void 0 ? void 0 : _elementorCommon$conf6.subscription_id) || null,
2526 + user_tier: ((_elementorCommon$conf7 = elementorCommon.config.library_connect) === null || _elementorCommon$conf7 === void 0 ? void 0 : _elementorCommon$conf7.current_access_tier) || null,
2527 + url: (_elementorCommon$conf8 = elementorCommon.config.editor_events) === null || _elementorCommon$conf8 === void 0 ? void 0 : _elementorCommon$conf8.site_url,
2528 + wp_version: (_elementorCommon$conf9 = elementorCommon.config.editor_events) === null || _elementorCommon$conf9 === void 0 ? void 0 : _elementorCommon$conf9.wp_version,
2529 + client_id: (_elementorCommon$conf0 = elementorCommon.config.editor_events) === null || _elementorCommon$conf0 === void 0 ? void 0 : _elementorCommon$conf0.site_key,
2530 + app_version: (_elementorCommon$conf1 = elementorCommon.config.editor_events) === null || _elementorCommon$conf1 === void 0 ? void 0 : _elementorCommon$conf1.elementor_version,
2531 + site_language: (_elementorCommon$conf10 = elementorCommon.config.editor_events) === null || _elementorCommon$conf10 === void 0 ? void 0 : _elementorCommon$conf10.site_language
2565 2532 }, data);
2566 - mixpanelInstance.track(name, eventData, options);
2567 - var recordingDecision = (0, _sessionRecording.handleSessionRecording)(name, mixpanelInstance);
2568 - if (recordingDecision) {
2569 - mixpanelInstance.track(recordingDecision, eventData);
2570 - }
2533 + _mixpanelBrowser.default.track(name, eventData, options);
2571 2534 }
2572 2535 }, {
2573 2536 key: "featureFlagIsActive",
2574 2537 value: function () {
2575 2538 var _featureFlagIsActive = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(flagName) {
2576 - var _mixpanelInstance;
2539 + var _mixpanel$flags;
2577 2540 var isEnabled;
2578 2541 return _regenerator.default.wrap(function (_context) {
2579 2542 while (1) switch (_context.prev = _context.next) {
2580 2543 case 0:
2581 - if (!('function' !== typeof ((_mixpanelInstance = mixpanelInstance) === null || _mixpanelInstance === void 0 || (_mixpanelInstance = _mixpanelInstance.flags) === null || _mixpanelInstance === void 0 ? void 0 : _mixpanelInstance.is_enabled))) {
2544 + if (!('function' !== typeof (_mixpanelBrowser.default === null || _mixpanelBrowser.default === void 0 || (_mixpanel$flags = _mixpanelBrowser.default.flags) === null || _mixpanel$flags === void 0 ? void 0 : _mixpanel$flags.is_enabled))) {
2582 2545 _context.next = 1;
2583 2546 break;
2584 2547 }
2585 2548 return _context.abrupt("return", false);
@@ -2584,9 +2547,9 @@
2584 2547 }
2585 2548 return _context.abrupt("return", false);
2586 2549 case 1:
2587 2550 _context.next = 2;
2588 - return mixpanelInstance.flags.is_enabled(flagName, false);
2551 + return _mixpanelBrowser.default.flags.is_enabled(flagName, false);
2589 2552 case 2:
2590 2553 isEnabled = _context.sent;
2591 2554 return _context.abrupt("return", true === isEnabled);
2592 2555 case 3:
@@ -2604,10 +2567,10 @@
2604 2567 key: "getExperimentVariant",
2605 2568 value: function () {
2606 2569 var _getExperimentVariant = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(experimentName) {
2607 2570 var defaultValue,
2571 + _elementorCommon$conf11,
2608 2572 _elementorCommon$conf12,
2609 - _elementorCommon$conf13,
2610 2573 isAbTestingEnabled,
2611 2574 variant,
2612 2575 _args2 = arguments,
2613 2576 _t;
@@ -2621,9 +2584,9 @@
2621 2584 break;
2622 2585 }
2623 2586 return _context2.abrupt("return", defaultValue);
2624 2587 case 2:
2625 - isAbTestingEnabled = (_elementorCommon$conf12 = (_elementorCommon$conf13 = elementorCommon.config.editor_events) === null || _elementorCommon$conf13 === void 0 ? void 0 : _elementorCommon$conf13.flags_enabled) !== null && _elementorCommon$conf12 !== void 0 ? _elementorCommon$conf12 : false;
2588 + isAbTestingEnabled = (_elementorCommon$conf11 = (_elementorCommon$conf12 = elementorCommon.config.editor_events) === null || _elementorCommon$conf12 === void 0 ? void 0 : _elementorCommon$conf12.flags_enabled) !== null && _elementorCommon$conf11 !== void 0 ? _elementorCommon$conf11 : false;
2626 2589 if (isAbTestingEnabled) {
2627 2590 _context2.next = 3;
2628 2591 break;
2629 2592 }
@@ -2628,9 +2591,9 @@
2628 2591 break;
2629 2592 }
2630 2593 return _context2.abrupt("return", defaultValue);
2631 2594 case 3:
2632 - if (mixpanelInstance) {
2595 + if (_mixpanelBrowser.default) {
2633 2596 _context2.next = 4;
2634 2597 break;
2635 2598 }
2636 2599 return _context2.abrupt("return", defaultValue);
@@ -2637,15 +2600,15 @@
2637 2600 case 4:
2638 2601 if (!this.trackingEnabled) {
2639 2602 this.enableTracking();
2640 2603 }
2641 - if (mixpanelInstance.flags) {
2604 + if (_mixpanelBrowser.default.flags) {
2642 2605 _context2.next = 5;
2643 2606 break;
2644 2607 }
2645 2608 return _context2.abrupt("return", defaultValue);
2646 2609 case 5:
2647 - if (!('function' !== typeof mixpanelInstance.flags.get_variant_value)) {
2610 + if (!('function' !== typeof _mixpanelBrowser.default.flags.get_variant_value)) {
2648 2611 _context2.next = 6;
2649 2612 break;
2650 2613 }
2651 2614 return _context2.abrupt("return", defaultValue);
@@ -2650,9 +2613,9 @@
2650 2613 }
2651 2614 return _context2.abrupt("return", defaultValue);
2652 2615 case 6:
2653 2616 _context2.next = 7;
2654 - return mixpanelInstance.flags.get_variant_value(experimentName, defaultValue);
2617 + return _mixpanelBrowser.default.flags.get_variant_value(experimentName, defaultValue);
2655 2618 case 7:
2656 2619 variant = _context2.sent;
2657 2620 if (!(undefined === variant || null === variant)) {
2658 2621 _context2.next = 8;
@@ -2681,9 +2644,9 @@
2681 2644 value: function startExperiment(experimentName, experimentVariant) {
2682 2645 if (!this.trackingEnabled) {
2683 2646 return;
2684 2647 }
2685 - mixpanelInstance.track('$experiment_started', {
2648 + _mixpanelBrowser.default.track('$experiment_started', {
2686 2649 'Experiment name': experimentName,
2687 2650 'Variant name': experimentVariant
2688 2651 });
2689 2652 }
@@ -2689,13 +2652,13 @@
2689 2652 }
2690 2653 }, {
2691 2654 key: "isMixpanelReady",
2692 2655 value: function isMixpanelReady() {
2693 - if ('undefined' === typeof mixpanelInstance || !mixpanelInstance) {
2656 + if ('undefined' === typeof _mixpanelBrowser.default || !_mixpanelBrowser.default) {
2694 2657 return false;
2695 2658 }
2696 2659 try {
2697 - var distinctId = mixpanelInstance.get_distinct_id();
2660 + var distinctId = _mixpanelBrowser.default.get_distinct_id();
2698 2661 return distinctId !== undefined && distinctId !== null;
2699 2662 } catch (error) {
2700 2663 return false;
2701 2664 }
@@ -2708,91 +2671,12 @@
2708 2671 }
2709 2672 }, {
2710 2673 key: "getMixpanelInstance",
2711 2674 value: function getMixpanelInstance() {
2712 - return this.isMixpanelReady() ? mixpanelInstance : undefined;
2675 + return this.isMixpanelReady() ? _mixpanelBrowser.default : undefined;
2713 2676 }
2714 2677 }]);
2715 2678 }(elementorModules.Module);
2716 -
2717 -/***/ }),
2718 -
2719 -/***/ "../core/common/modules/events-manager/assets/js/session-recording.js":
2720 -/*!****************************************************************************!*\
2721 - !*** ../core/common/modules/events-manager/assets/js/session-recording.js ***!
2722 - \****************************************************************************/
2723 -/***/ ((__unused_webpack_module, exports) => {
2724 -
2725 -"use strict";
2726 -
2727 -
2728 -Object.defineProperty(exports, "__esModule", ({
2729 - value: true
2730 -}));
2731 -exports.configureSessionRecording = configureSessionRecording;
2732 -exports.getIsRecording = getIsRecording;
2733 -exports.handleSessionRecording = handleSessionRecording;
2734 -var RECORD_SESSION_PERCENT = 1;
2735 -var sessionRecordingPairs = [];
2736 -var activeEndEvent = null;
2737 -var isRecording = false;
2738 -function shouldRecordSession(distinctId, percent) {
2739 - var fraction = Math.min(Math.max(percent / 100, 0), 1);
2740 - var hash = 0;
2741 - for (var i = 0; i < distinctId.length; i++) {
2742 - // eslint-disable-next-line no-bitwise
2743 - hash = hash * 31 + distinctId.charCodeAt(i) >>> 0;
2744 - }
2745 - return hash / 4294967295 < fraction;
2746 -}
2747 -
2748 -/**
2749 - * @param {Array<{start: string, end?: string|null}>} pairs
2750 - */
2751 -function configureSessionRecording(pairs) {
2752 - if (!Array.isArray(pairs)) {
2753 - return;
2754 - }
2755 - sessionRecordingPairs = pairs.filter(function (pair) {
2756 - return 'string' === typeof (pair === null || pair === void 0 ? void 0 : pair.start) && pair.start;
2757 - });
2758 -}
2759 -
2760 -/**
2761 - * Evaluates whether to start/stop recording based on the event name.
2762 - *
2763 - * @param {string} name
2764 - * @param {import('mixpanel-browser').Mixpanel} mixpanelInstance
2765 - * @return {'recording_started'|'recording_skipped'|'recording_stopped'|null} The recording decision, or null if no action taken.
2766 - */
2767 -function handleSessionRecording(name, mixpanelInstance) {
2768 - var matchedPair = sessionRecordingPairs.find(function (pair) {
2769 - return pair.start === name;
2770 - });
2771 - if (matchedPair) {
2772 - var distinctId = mixpanelInstance.get_distinct_id();
2773 - if (shouldRecordSession(distinctId, RECORD_SESSION_PERCENT)) {
2774 - var _matchedPair$end;
2775 - mixpanelInstance.start_session_recording();
2776 - isRecording = true;
2777 - activeEndEvent = (_matchedPair$end = matchedPair.end) !== null && _matchedPair$end !== void 0 ? _matchedPair$end : null;
2778 - return 'recording_started';
2779 - }
2780 - isRecording = false;
2781 - activeEndEvent = null;
2782 - return 'recording_skipped';
2783 - }
2784 - if (activeEndEvent && name === activeEndEvent) {
2785 - mixpanelInstance.stop_session_recording();
2786 - isRecording = false;
2787 - activeEndEvent = null;
2788 - return 'recording_stopped';
2789 - }
2790 - return null;
2791 -}
2792 -function getIsRecording() {
2793 - return isRecording;
2794 -}
2795 2679
2796 2680 /***/ }),
2797 2681
2798 2682 /***/ "../core/common/modules/finder/assets/js/commands/index.js":