PluginProbe
Elementor Website Builder – more than just a page builder / 3.34.0-beta1
Elementor Website Builder – more than just a page builder v3.34.0-beta1
4.3.4 4.3.3 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 All 457 releases
← All changes | assets/js/common-modules.js +2201 -12 4.1.3 → 3.34.0-beta1 View file →
@@ -1,7 +1,1980 @@
1 1 /******/ (() => { // webpackBootstrap
2 2 /******/ var __webpack_modules__ = ({
3 3
4 +/***/ "../app/assets/js/event-track/apps-event-tracking.js":
5 +/*!***********************************************************!*\
6 + !*** ../app/assets/js/event-track/apps-event-tracking.js ***!
7 + \***********************************************************/
8 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9 +
10 +"use strict";
11 +
12 +
13 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
14 +Object.defineProperty(exports, "__esModule", ({
15 + value: true
16 +}));
17 +exports.appsEventTrackingDispatch = exports.AppsEventTracking = void 0;
18 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
19 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
20 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
21 +var _eventsConfig = _interopRequireDefault(__webpack_require__(/*! ../../../../core/common/modules/events-manager/assets/js/events-config */ "../core/common/modules/events-manager/assets/js/events-config.js"));
22 +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; }
23 +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; }
24 +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
25 +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
26 +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27 +var EVENTS_MAP = {
28 + PAGE_VIEWS_WEBSITE_TEMPLATES: 'page_views_website_templates',
29 + KITS_CLOUD_UPGRADE_CLICKED: 'kits_cloud_upgrade_clicked',
30 + EXPORT_KIT_CUSTOMIZATION: 'export_kit_customization',
31 + IMPORT_KIT_CUSTOMIZATION: 'import_kit_customization',
32 + KIT_IMPORT_STATUS: 'kit_import_status',
33 + KIT_CLOUD_LIBRARY_APPLY: 'kit_cloud_library_apply',
34 + KIT_CLOUD_LIBRARY_DELETE: 'kit_cloud_library_delete',
35 + IMPORT_EXPORT_ADMIN_ACTION: 'ie_admin_action',
36 + KIT_IMPORT_UPLOAD_FILE: 'kit_import_upload_file'
37 +};
38 +var appsEventTrackingDispatch = exports.appsEventTrackingDispatch = function appsEventTrackingDispatch(command, eventParams) {
39 + // Add existing eventParams key value pair to the data/details object.
40 + var objectCreator = function objectCreator(array, obj) {
41 + var _iterator = _createForOfIteratorHelper(array),
42 + _step;
43 + try {
44 + for (_iterator.s(); !(_step = _iterator.n()).done;) {
45 + var key = _step.value;
46 + if (eventParams.hasOwnProperty(key) && eventParams[key] !== null) {
47 + obj[key] = eventParams[key];
48 + }
49 + }
50 + } catch (err) {
51 + _iterator.e(err);
52 + } finally {
53 + _iterator.f();
54 + }
55 + return obj;
56 + };
57 + var dataKeys = [];
58 + var detailsKeys = ['layout', 'site_part', 'error', 'document_name', 'document_type', 'view_type_clicked', 'tag', 'sort_direction', 'sort_type', 'action', 'grid_location', 'kit_name', 'page_source', 'element_position', 'element', 'event_type', 'modal_type', 'method', 'status', 'step', 'item', 'category', 'element_location', 'search_term', 'section', 'site_area'];
59 + var data = {};
60 + var details = {};
61 + var init = function init() {
62 + objectCreator(detailsKeys, details);
63 + objectCreator(dataKeys, data);
64 + var commandSplit = command.split('/');
65 + data.placement = commandSplit[0];
66 + data.event = commandSplit[1];
67 +
68 + // If 'details' is not empty, add the details object to the data object.
69 + if (Object.keys(details).length) {
70 + data.details = details;
71 + }
72 + };
73 + init();
74 + $e.run(command, data);
75 +};
76 +var AppsEventTracking = exports.AppsEventTracking = /*#__PURE__*/function () {
77 + function AppsEventTracking() {
78 + (0, _classCallCheck2.default)(this, AppsEventTracking);
79 + }
80 + return (0, _createClass2.default)(AppsEventTracking, null, [{
81 + key: "dispatchEvent",
82 + value: function dispatchEvent(eventName, payload) {
83 + return elementorCommon.eventsManager.dispatchEvent(eventName, payload);
84 + }
85 + }, {
86 + key: "sendPageViewsWebsiteTemplates",
87 + value: function sendPageViewsWebsiteTemplates(page) {
88 + return this.dispatchEvent(EVENTS_MAP.PAGE_VIEWS_WEBSITE_TEMPLATES, {
89 + trigger: _eventsConfig.default.triggers.pageLoaded,
90 + page_loaded: page,
91 + secondary_location: page
92 + });
93 + }
94 + }, {
95 + key: "sendKitsCloudUpgradeClicked",
96 + value: function sendKitsCloudUpgradeClicked(upgradeLocation) {
97 + return this.dispatchEvent(EVENTS_MAP.KITS_CLOUD_UPGRADE_CLICKED, {
98 + trigger: _eventsConfig.default.triggers.click,
99 + secondary_location: upgradeLocation,
100 + upgrade_location: upgradeLocation
101 + });
102 + }
103 + }, {
104 + key: "sendExportKitCustomization",
105 + value: function sendExportKitCustomization(payload) {
106 + return this.dispatchEvent(EVENTS_MAP.EXPORT_KIT_CUSTOMIZATION, _objectSpread({
107 + trigger: _eventsConfig.default.triggers.click
108 + }, payload));
109 + }
110 + }, {
111 + key: "sendImportKitCustomization",
112 + value: function sendImportKitCustomization(payload) {
113 + return this.dispatchEvent(EVENTS_MAP.IMPORT_KIT_CUSTOMIZATION, _objectSpread({
114 + trigger: _eventsConfig.default.triggers.click
115 + }, payload));
116 + }
117 + }, {
118 + key: "sendKitImportStatus",
119 + value: function sendKitImportStatus() {
120 + var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
121 + var isError = !!error;
122 + return this.dispatchEvent(EVENTS_MAP.KIT_IMPORT_STATUS, _objectSpread({
123 + kit_import_status: !isError
124 + }, isError && {
125 + kit_import_error: error.message
126 + }));
127 + }
128 + }, {
129 + key: "sendKitCloudLibraryApply",
130 + value: function sendKitCloudLibraryApply(kitId, kitApplyUrl) {
131 + return this.dispatchEvent(EVENTS_MAP.KIT_CLOUD_LIBRARY_APPLY, _objectSpread({
132 + trigger: _eventsConfig.default.triggers.click,
133 + kit_cloud_id: kitId
134 + }, kitApplyUrl && {
135 + kit_apply_url: kitApplyUrl
136 + }));
137 + }
138 + }, {
139 + key: "sendKitCloudLibraryDelete",
140 + value: function sendKitCloudLibraryDelete() {
141 + return this.dispatchEvent(EVENTS_MAP.KIT_CLOUD_LIBRARY_DELETE, {
142 + trigger: _eventsConfig.default.triggers.click
143 + });
144 + }
145 + }, {
146 + key: "sendImportExportAdminAction",
147 + value: function sendImportExportAdminAction(actionType) {
148 + return this.dispatchEvent(EVENTS_MAP.IMPORT_EXPORT_ADMIN_ACTION, {
149 + trigger: _eventsConfig.default.triggers.click,
150 + action_type: actionType
151 + });
152 + }
153 + }, {
154 + key: "sendKitImportUploadFile",
155 + value: function sendKitImportUploadFile(status) {
156 + return this.dispatchEvent(EVENTS_MAP.KIT_IMPORT_UPLOAD_FILE, {
157 + kit_import_upload_file_status: status
158 + });
159 + }
160 + }]);
161 +}();
162 +
163 +/***/ }),
164 +
165 +/***/ "../app/assets/js/event-track/dashboard/action-controls.js":
166 +/*!*****************************************************************!*\
167 + !*** ../app/assets/js/event-track/dashboard/action-controls.js ***!
168 + \*****************************************************************/
169 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
170 +
171 +"use strict";
172 +
173 +
174 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
175 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
176 +Object.defineProperty(exports, "__esModule", ({
177 + value: true
178 +}));
179 +exports["default"] = void 0;
180 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
181 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
182 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
183 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
184 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
185 +var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
186 +var _utils = __webpack_require__(/*! ./utils */ "../app/assets/js/event-track/dashboard/utils.js");
187 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
188 +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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
189 +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
190 +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
191 +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
192 +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)); }
193 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
194 +var EXCLUDED_SELECTORS = {
195 + ADMIN_MENU: '#adminmenu',
196 + TOP_BAR: '.e-admin-top-bar',
197 + WP_ADMIN_BAR: '#wpadminbar',
198 + SUBMENU: '.wp-submenu',
199 + PROMO_PAGE: '.e-feature-promotion',
200 + PROMO_BLANK_STATE: '.elementor-blank_state',
201 + APP: '.e-app'
202 +};
203 +var ActionControlTracking = /*#__PURE__*/function (_BaseTracking) {
204 + function ActionControlTracking() {
205 + (0, _classCallCheck2.default)(this, ActionControlTracking);
206 + return _callSuper(this, ActionControlTracking, arguments);
207 + }
208 + (0, _inherits2.default)(ActionControlTracking, _BaseTracking);
209 + return (0, _createClass2.default)(ActionControlTracking, null, [{
210 + key: "init",
211 + value: function init() {
212 + if (!_utils.DashboardUtils.isElementorPage()) {
213 + return;
214 + }
215 + this.attachDelegatedHandlers();
216 + this.addTrackingAttributesToFilterButtons();
217 + this.initializeLinkDataIds();
218 + }
219 + }, {
220 + key: "initializeLinkDataIds",
221 + value: function initializeLinkDataIds() {
222 + var _this = this;
223 + var initializeLinks = function initializeLinks() {
224 + var links = document.querySelectorAll('a[href]');
225 + links.forEach(function (link) {
226 + if (_this.isExcludedElement(link) || _this.isNavigationLink(link) || link.hasAttribute('data-id')) {
227 + return;
228 + }
229 + var href = link.getAttribute('href');
230 + if (!href) {
231 + return;
232 + }
233 + var cleanedHref = _this.removeNonceFromUrl(href);
234 + if (cleanedHref) {
235 + link.setAttribute('data-id', cleanedHref);
236 + }
237 + });
238 + };
239 + if ('loading' === document.readyState) {
240 + document.addEventListener('DOMContentLoaded', initializeLinks);
241 + } else {
242 + initializeLinks();
243 + }
244 + }
245 + }, {
246 + key: "addTrackingAttributesToFilterButtons",
247 + value: function addTrackingAttributesToFilterButtons() {
248 + var body = document.body;
249 + if (!body) {
250 + return;
251 + }
252 + var screenPrefix = '';
253 + switch (true) {
254 + case body.classList.contains('post-type-elementor_library'):
255 + screenPrefix = 'elementor_library-library';
256 + break;
257 + case body.classList.contains('post-type-e-floating-buttons'):
258 + screenPrefix = 'e-floating-buttons';
259 + break;
260 + default:
261 + return;
262 + }
263 + var addDataIdToListTableButtons = function addDataIdToListTableButtons() {
264 + var buttonConfigs = [{
265 + id: 'post-query-submit',
266 + suffix: 'filter'
267 + }, {
268 + id: 'search-submit',
269 + suffix: 'search'
270 + }, {
271 + id: 'doaction',
272 + suffix: 'apply'
273 + }, {
274 + id: 'doaction2',
275 + suffix: 'apply-bottom'
276 + }];
277 + buttonConfigs.forEach(function (config) {
278 + var button = document.getElementById(config.id);
279 + if (!button || button.hasAttribute('data-id')) {
280 + return;
281 + }
282 + button.setAttribute('data-id', "".concat(screenPrefix, "-button-").concat(config.suffix));
283 + });
284 + };
285 + if ('loading' === document.readyState) {
286 + document.addEventListener('DOMContentLoaded', addDataIdToListTableButtons);
287 + } else {
288 + addDataIdToListTableButtons();
289 + }
290 + }
291 + }, {
292 + key: "isExcludedElement",
293 + value: function isExcludedElement(element) {
294 + for (var _i = 0, _Object$values = Object.values(EXCLUDED_SELECTORS); _i < _Object$values.length; _i++) {
295 + var selector = _Object$values[_i];
296 + if (element.closest(selector)) {
297 + return true;
298 + }
299 + }
300 + if (element.classList.contains('go-pro')) {
301 + return true;
302 + }
303 + return false;
304 + }
305 + }, {
306 + key: "attachDelegatedHandlers",
307 + value: function attachDelegatedHandlers() {
308 + var _this2 = this;
309 + var FILTER_BUTTON_IDS = ['search-submit', 'post-query-submit'];
310 + this.addEventListenerTracked(document, 'click', function (event) {
311 + var _event$target;
312 + var base = event.target && 1 === event.target.nodeType ? event.target : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.parentElement;
313 + if (!base) {
314 + return;
315 + }
316 + var button = base.closest('button, input[type="submit"], input[type="button"], .button, .e-btn');
317 + if (button && !_this2.isExcludedElement(button)) {
318 + if (FILTER_BUTTON_IDS.includes(button.id)) {
319 + _this2.trackControl(button, _wpDashboardTracking.CONTROL_TYPES.FILTER);
320 + return;
321 + }
322 + _this2.trackControl(button, _wpDashboardTracking.CONTROL_TYPES.BUTTON);
323 + return;
324 + }
325 + var link = base.closest('a');
326 + if (link && !_this2.isExcludedElement(link) && !_this2.isNavigationLink(link)) {
327 + _this2.trackControl(link, _wpDashboardTracking.CONTROL_TYPES.LINK);
328 + }
329 + }, {
330 + capture: false
331 + });
332 + this.addEventListenerTracked(document, 'change', function (event) {
333 + var _event$target2;
334 + var base = event.target && 1 === event.target.nodeType ? event.target : (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.parentElement;
335 + if (!base) {
336 + return;
337 + }
338 + var toggle = base.closest('.components-toggle-control');
339 + if (toggle && !_this2.isExcludedElement(toggle)) {
340 + _this2.trackControl(toggle, _wpDashboardTracking.CONTROL_TYPES.TOGGLE);
341 + return;
342 + }
343 + var checkbox = base.closest('input[type="checkbox"]');
344 + if (checkbox && !_this2.isExcludedElement(checkbox)) {
345 + _this2.trackControl(checkbox, _wpDashboardTracking.CONTROL_TYPES.CHECKBOX);
346 + return;
347 + }
348 + var radio = base.closest('input[type="radio"]');
349 + if (radio && !_this2.isExcludedElement(radio)) {
350 + _this2.trackControl(radio, _wpDashboardTracking.CONTROL_TYPES.RADIO);
351 + return;
352 + }
353 + var select = base.closest('select');
354 + if (select && !_this2.isExcludedElement(select)) {
355 + _this2.trackControl(select, _wpDashboardTracking.CONTROL_TYPES.SELECT);
356 + }
357 + });
358 + }
359 + }, {
360 + key: "isNavigationLink",
361 + value: function isNavigationLink(link) {
362 + var href = link.getAttribute('href');
363 + if (!href) {
364 + return false;
365 + }
366 + if (href.startsWith('#') && href.includes('tab')) {
367 + return true;
368 + }
369 + if (link.classList.contains('nav-tab')) {
370 + return true;
371 + }
372 + var isInNavigation = link.closest('.wp-submenu, #adminmenu, .e-admin-top-bar, #wpadminbar');
373 + return !!isInNavigation;
374 + }
375 + }, {
376 + key: "trackControl",
377 + value: function trackControl(element, controlType) {
378 + var controlIdentifier = this.extractControlIdentifier(element, controlType);
379 + if (!controlIdentifier) {
380 + return;
381 + }
382 + _wpDashboardTracking.default.trackActionControl(controlIdentifier, controlType);
383 + }
384 + }, {
385 + key: "extractControlIdentifier",
386 + value: function extractControlIdentifier(element, controlType) {
387 + if (_wpDashboardTracking.CONTROL_TYPES.RADIO === controlType) {
388 + var name = element.getAttribute('name');
389 + var value = element.value || element.getAttribute('value');
390 + if (name && value) {
391 + return "".concat(name, "-").concat(value);
392 + }
393 + if (name) {
394 + return name;
395 + }
396 + }
397 + if (_wpDashboardTracking.CONTROL_TYPES.SELECT === controlType) {
398 + var _name = element.getAttribute('name');
399 + if (_name) {
400 + return _name;
401 + }
402 + }
403 + if (_wpDashboardTracking.CONTROL_TYPES.CHECKBOX === controlType) {
404 + var _name2 = element.getAttribute('name');
405 + if (_name2) {
406 + var checkboxesWithSameName = document.querySelectorAll("input[type=\"checkbox\"][name=\"".concat(CSS.escape(_name2), "\"]"));
407 + if (checkboxesWithSameName.length > 1) {
408 + var _value = element.value || element.getAttribute('value');
409 + if (_value) {
410 + return "".concat(_name2, "-").concat(_value);
411 + }
412 + }
413 + return _name2;
414 + }
415 + }
416 + if (_wpDashboardTracking.CONTROL_TYPES.LINK === controlType) {
417 + var dataId = element.getAttribute('data-id');
418 + if (dataId) {
419 + return dataId;
420 + }
421 + var href = element.getAttribute('href');
422 + if (href) {
423 + return this.removeNonceFromUrl(href);
424 + }
425 + }
426 + if (_wpDashboardTracking.CONTROL_TYPES.BUTTON === controlType || _wpDashboardTracking.CONTROL_TYPES.TOGGLE === controlType || _wpDashboardTracking.CONTROL_TYPES.FILTER === controlType) {
427 + var _dataId = element.getAttribute('data-id');
428 + if (_dataId) {
429 + return _dataId;
430 + }
431 + var classIdMatch = this.extractClassId(element);
432 + if (classIdMatch) {
433 + return classIdMatch;
434 + }
435 + }
436 + return '';
437 + }
438 + }, {
439 + key: "extractClassId",
440 + value: function extractClassId(element) {
441 + var classes = element.className;
442 + if (!classes || 'string' !== typeof classes) {
443 + return '';
444 + }
445 + var classList = classes.split(' ');
446 + var _iterator = _createForOfIteratorHelper(classList),
447 + _step;
448 + try {
449 + for (_iterator.s(); !(_step = _iterator.n()).done;) {
450 + var cls = _step.value;
451 + if (cls.startsWith('e-id-')) {
452 + return cls.substring(5);
453 + }
454 + }
455 + } catch (err) {
456 + _iterator.e(err);
457 + } finally {
458 + _iterator.f();
459 + }
460 + return '';
461 + }
462 + }, {
463 + key: "removeNonceFromUrl",
464 + value: function removeNonceFromUrl(url) {
465 + try {
466 + var urlObj = new URL(url, window.location.origin);
467 + urlObj.searchParams.delete('_wpnonce');
468 + var postParam = urlObj.searchParams.get('post');
469 + if (postParam !== null && /^[0-9]+$/.test(postParam)) {
470 + urlObj.searchParams.delete('post');
471 + }
472 + return urlObj.pathname + urlObj.search + urlObj.hash;
473 + } catch (e) {
474 + return url;
475 + }
476 + }
477 + }]);
478 +}(_baseTracking.default);
479 +var _default = exports["default"] = ActionControlTracking;
480 +
481 +/***/ }),
482 +
483 +/***/ "../app/assets/js/event-track/dashboard/base-tracking.js":
484 +/*!***************************************************************!*\
485 + !*** ../app/assets/js/event-track/dashboard/base-tracking.js ***!
486 + \***************************************************************/
487 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
488 +
489 +"use strict";
490 +
491 +
492 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
493 +Object.defineProperty(exports, "__esModule", ({
494 + value: true
495 +}));
496 +exports["default"] = void 0;
497 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
498 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
499 +var BaseTracking = /*#__PURE__*/function () {
500 + function BaseTracking() {
501 + (0, _classCallCheck2.default)(this, BaseTracking);
502 + }
503 + return (0, _createClass2.default)(BaseTracking, null, [{
504 + key: "ensureOwnArrays",
505 + value: function ensureOwnArrays() {
506 + if (!Object.prototype.hasOwnProperty.call(this, 'observers')) {
507 + this.observers = [];
508 + }
509 + if (!Object.prototype.hasOwnProperty.call(this, 'eventListeners')) {
510 + this.eventListeners = [];
511 + }
512 + }
513 + }, {
514 + key: "destroy",
515 + value: function destroy() {
516 + this.ensureOwnArrays();
517 + this.observers.forEach(function (observer) {
518 + return observer.disconnect();
519 + });
520 + this.observers = [];
521 + this.eventListeners.forEach(function (_ref) {
522 + var target = _ref.target,
523 + type = _ref.type,
524 + handler = _ref.handler,
525 + options = _ref.options;
526 + target.removeEventListener(type, handler, options);
527 + });
528 + this.eventListeners = [];
529 + }
530 + }, {
531 + key: "addObserver",
532 + value: function addObserver(target, options, callback) {
533 + this.ensureOwnArrays();
534 + var observer = new MutationObserver(callback);
535 + observer.observe(target, options);
536 + this.observers.push(observer);
537 + return observer;
538 + }
539 + }, {
540 + key: "addEventListenerTracked",
541 + value: function addEventListenerTracked(target, type, handler) {
542 + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
543 + this.ensureOwnArrays();
544 + target.addEventListener(type, handler, options);
545 + this.eventListeners.push({
546 + target: target,
547 + type: type,
548 + handler: handler,
549 + options: options
550 + });
551 + }
552 + }]);
553 +}();
554 +var _default = exports["default"] = BaseTracking;
555 +
556 +/***/ }),
557 +
558 +/***/ "../app/assets/js/event-track/dashboard/menu-promotion.js":
559 +/*!****************************************************************!*\
560 + !*** ../app/assets/js/event-track/dashboard/menu-promotion.js ***!
561 + \****************************************************************/
562 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
563 +
564 +"use strict";
565 +
566 +
567 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
568 +Object.defineProperty(exports, "__esModule", ({
569 + value: true
570 +}));
571 +exports["default"] = void 0;
572 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
573 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
574 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
575 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
576 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
577 +var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
578 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
579 +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)); }
580 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
581 +var PROMO_MENU_ITEMS = {
582 + go_elementor_pro: 'Upgrade'
583 +};
584 +var MenuPromotionTracking = /*#__PURE__*/function (_BaseTracking) {
585 + function MenuPromotionTracking() {
586 + (0, _classCallCheck2.default)(this, MenuPromotionTracking);
587 + return _callSuper(this, MenuPromotionTracking, arguments);
588 + }
589 + (0, _inherits2.default)(MenuPromotionTracking, _BaseTracking);
590 + return (0, _createClass2.default)(MenuPromotionTracking, null, [{
591 + key: "init",
592 + value: function init() {
593 + this.attachDelegatedTracking();
594 + }
595 + }, {
596 + key: "attachDelegatedTracking",
597 + value: function attachDelegatedTracking() {
598 + var _this = this;
599 + this.addEventListenerTracked(document, 'click', function (event) {
600 + var target = event.target;
601 + if (!target) {
602 + return;
603 + }
604 + var link = target.closest('a');
605 + if (!link) {
606 + return;
607 + }
608 + var href = link.getAttribute('href');
609 + if (!href) {
610 + return;
611 + }
612 + var menuItemKey = _this.extractPromoMenuKey(href);
613 + if (!menuItemKey) {
614 + return;
615 + }
616 + _this.handleMenuPromoClick(link, menuItemKey);
617 + }, {
618 + capture: true
619 + });
620 + }
621 + }, {
622 + key: "extractPromoMenuKey",
623 + value: function extractPromoMenuKey(href) {
624 + for (var _i = 0, _Object$keys = Object.keys(PROMO_MENU_ITEMS); _i < _Object$keys.length; _i++) {
625 + var menuItemKey = _Object$keys[_i];
626 + if (href.includes("page=".concat(menuItemKey))) {
627 + return menuItemKey;
628 + }
629 + }
630 + return null;
631 + }
632 + }, {
633 + key: "handleMenuPromoClick",
634 + value: function handleMenuPromoClick(menuItem, menuItemKey) {
635 + var destination = menuItem.getAttribute('href');
636 + var promoName = PROMO_MENU_ITEMS[menuItemKey];
637 + var path = menuItemKey.replace('elementor_', '').replace(/_/g, '/');
638 + _wpDashboardTracking.default.trackPromoClicked(promoName, destination, path);
639 + }
640 + }]);
641 +}(_baseTracking.default);
642 +var _default = exports["default"] = MenuPromotionTracking;
643 +
644 +/***/ }),
645 +
646 +/***/ "../app/assets/js/event-track/dashboard/navigation.js":
647 +/*!************************************************************!*\
648 + !*** ../app/assets/js/event-track/dashboard/navigation.js ***!
649 + \************************************************************/
650 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
651 +
652 +"use strict";
653 +
654 +
655 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
656 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
657 +Object.defineProperty(exports, "__esModule", ({
658 + value: true
659 +}));
660 +exports["default"] = void 0;
661 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
662 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
663 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
664 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
665 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
666 +var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
667 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
668 +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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
669 +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)); }
670 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
671 +var ELEMENTOR_MENU_SELECTORS = {
672 + ELEMENTOR_TOP_LEVEL: 'li#toplevel_page_elementor',
673 + TEMPLATES_TOP_LEVEL: 'li#menu-posts-elementor_library',
674 + ADMIN_MENU: '#adminmenu',
675 + TOP_LEVEL_LINK: '.wp-menu-name',
676 + SUBMENU_CONTAINER: '.wp-submenu',
677 + SUBMENU_ITEM: '.wp-submenu li a',
678 + SUBMENU_ITEM_TOP_LEVEL: '.wp-has-submenu'
679 +};
680 +var NavigationTracking = /*#__PURE__*/function (_BaseTracking) {
681 + function NavigationTracking() {
682 + (0, _classCallCheck2.default)(this, NavigationTracking);
683 + return _callSuper(this, NavigationTracking, arguments);
684 + }
685 + (0, _inherits2.default)(NavigationTracking, _BaseTracking);
686 + return (0, _createClass2.default)(NavigationTracking, null, [{
687 + key: "init",
688 + value: function init() {
689 + this.attachElementorMenuTracking();
690 + this.attachTemplatesMenuTracking();
691 + }
692 + }, {
693 + key: "attachElementorMenuTracking",
694 + value: function attachElementorMenuTracking() {
695 + var elementorMenu = document.querySelector(ELEMENTOR_MENU_SELECTORS.ELEMENTOR_TOP_LEVEL);
696 + if (!elementorMenu) {
697 + return;
698 + }
699 + this.attachMenuTracking(elementorMenu, 'Elementor');
700 + }
701 + }, {
702 + key: "attachTemplatesMenuTracking",
703 + value: function attachTemplatesMenuTracking() {
704 + var templatesMenu = document.querySelector(ELEMENTOR_MENU_SELECTORS.TEMPLATES_TOP_LEVEL);
705 + if (!templatesMenu) {
706 + return;
707 + }
708 + this.attachMenuTracking(templatesMenu, 'Templates');
709 + }
710 + }, {
711 + key: "attachMenuTracking",
712 + value: function attachMenuTracking(menuElement, menuName) {
713 + var _this = this;
714 + this.addEventListenerTracked(menuElement, 'click', function (event) {
715 + _this.handleMenuClick(event, menuName);
716 + });
717 + }
718 + }, {
719 + key: "handleMenuClick",
720 + value: function handleMenuClick(event, menuName) {
721 + var link = event.target.closest('a');
722 + if (!link) {
723 + return;
724 + }
725 + var isTopLevel = link.classList.contains('menu-top');
726 + var itemId = this.extractItemId(link);
727 + var area = this.determineNavArea(link);
728 + _wpDashboardTracking.default.trackNavClicked(itemId, isTopLevel ? null : menuName, area);
729 + }
730 + }, {
731 + key: "extractItemId",
732 + value: function extractItemId(link) {
733 + var textContent = link.textContent.trim();
734 + if (textContent) {
735 + return textContent;
736 + }
737 + var href = link.getAttribute('href');
738 + if (href) {
739 + var urlParams = new URLSearchParams(href.split('?')[1] || '');
740 + var page = urlParams.get('page');
741 + var postType = urlParams.get('post_type');
742 + if (page) {
743 + return page;
744 + }
745 + if (postType) {
746 + return postType;
747 + }
748 + }
749 + var id = link.getAttribute('id');
750 + if (id) {
751 + return id;
752 + }
753 + return 'unknown';
754 + }
755 + }, {
756 + key: "determineNavArea",
757 + value: function determineNavArea(link) {
758 + var parentMenu = link.closest('li.menu-top');
759 + if (parentMenu) {
760 + var isSubmenuItem = link.closest(ELEMENTOR_MENU_SELECTORS.SUBMENU_CONTAINER);
761 + if (isSubmenuItem) {
762 + var submenuElement = link.closest(ELEMENTOR_MENU_SELECTORS.SUBMENU_ITEM_TOP_LEVEL);
763 + if (submenuElement.classList.contains('wp-not-current-submenu')) {
764 + return _wpDashboardTracking.NAV_AREAS.HOVER_MENU;
765 + }
766 + return _wpDashboardTracking.NAV_AREAS.SUBMENU;
767 + }
768 + return _wpDashboardTracking.NAV_AREAS.LEFT_MENU;
769 + }
770 + return _wpDashboardTracking.NAV_AREAS.LEFT_MENU;
771 + }
772 + }]);
773 +}(_baseTracking.default);
774 +var _default = exports["default"] = NavigationTracking;
775 +
776 +/***/ }),
777 +
778 +/***/ "../app/assets/js/event-track/dashboard/plugin-actions.js":
779 +/*!****************************************************************!*\
780 + !*** ../app/assets/js/event-track/dashboard/plugin-actions.js ***!
781 + \****************************************************************/
782 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
783 +
784 +"use strict";
785 +
786 +
787 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
788 +Object.defineProperty(exports, "__esModule", ({
789 + value: true
790 +}));
791 +exports["default"] = void 0;
792 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
793 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
794 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
795 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
796 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
797 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
798 +var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
799 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
800 +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)); }
801 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
802 +var PLUGIN_TYPE = {
803 + ELEMENTOR: 'core',
804 + ELEMENTOR_PRO: 'pro'
805 +};
806 +var PluginActions = /*#__PURE__*/function (_BaseTracking) {
807 + function PluginActions() {
808 + (0, _classCallCheck2.default)(this, PluginActions);
809 + return _callSuper(this, PluginActions, arguments);
810 + }
811 + (0, _inherits2.default)(PluginActions, _BaseTracking);
812 + return (0, _createClass2.default)(PluginActions, null, [{
813 + key: "init",
814 + value: function init() {
815 + this.attachCoreDeactivationTracking();
816 + this.attachProDeactivationTracking();
817 + this.attachProDeletionTracking();
818 + }
819 + }, {
820 + key: "attachCoreDeactivationTracking",
821 + value: function attachCoreDeactivationTracking() {
822 + var _this = this;
823 + var dialogForm = document.querySelector('#elementor-deactivate-feedback-dialog-form');
824 + if (!dialogForm) {
825 + return;
826 + }
827 + this.addEventListenerTracked(dialogForm, 'change', function (event) {
828 + var target = event.target;
829 + if (target.classList.contains('elementor-deactivate-feedback-dialog-input')) {
830 + _this.selectedReason = target.value;
831 + }
832 + });
833 + this.observeModalButtons();
834 + }
835 + }, {
836 + key: "attachProDeactivationTracking",
837 + value: function attachProDeactivationTracking() {
838 + var _this2 = this;
839 + var pluginsTable = document.querySelector('.plugins');
840 + if (!pluginsTable) {
841 + return;
842 + }
843 + this.addEventListenerTracked(pluginsTable, 'click', function (event) {
844 + var link = event.target.closest('a');
845 + if (link && 'deactivate-elementor-pro' === link.id) {
846 + _this2.trackProDeactivation();
847 + }
848 + }, {
849 + capture: true
850 + });
851 + }
852 + }, {
853 + key: "observeModalButtons",
854 + value: function observeModalButtons() {
855 + var _this3 = this;
856 + var checkAndAttachDelegation = function checkAndAttachDelegation() {
857 + var modal = document.querySelector('#elementor-deactivate-feedback-modal');
858 + if (!modal) {
859 + return false;
860 + }
861 + _this3.addEventListenerTracked(modal, 'click', function (event) {
862 + var submitButton = event.target.closest('.dialog-submit');
863 + var skipButton = event.target.closest('.dialog-skip');
864 + if (submitButton) {
865 + _this3.trackCoreDeactivation('submit&deactivate');
866 + } else if (skipButton) {
867 + _this3.trackCoreDeactivation('skip&deactivate');
868 + }
869 + }, {
870 + capture: true
871 + });
872 + return true;
873 + };
874 + if (checkAndAttachDelegation()) {
875 + return;
876 + }
877 + this.addObserver(document.body, {
878 + childList: true,
879 + subtree: true
880 + }, function (mutations, observer) {
881 + if (checkAndAttachDelegation()) {
882 + observer.disconnect();
883 + }
884 + });
885 + }
886 + }, {
887 + key: "getUserInput",
888 + value: function getUserInput() {
889 + var reasonsWithInput = ['found_a_better_plugin', 'other'];
890 + if (!this.selectedReason || !reasonsWithInput.includes(this.selectedReason)) {
891 + return null;
892 + }
893 + var inputField = document.querySelector("input[name=\"reason_".concat(this.selectedReason, "\"]"));
894 + if (inputField && inputField.value) {
895 + return inputField.value;
896 + }
897 + return null;
898 + }
899 + }, {
900 + key: "trackCoreDeactivation",
901 + value: function trackCoreDeactivation(action) {
902 + var properties = {
903 + deactivate_form_submit: action,
904 + deactivate_plugin_type: PLUGIN_TYPE.ELEMENTOR
905 + };
906 + if (this.selectedReason) {
907 + properties.deactivate_feedback_reason = this.selectedReason;
908 + }
909 + var userInput = this.getUserInput();
910 + if (userInput) {
911 + properties.deactivate_feedback_reason += "/".concat(userInput);
912 + }
913 + _wpDashboardTracking.default.dispatchEvent('wpdash_deactivate_plugin', properties, {
914 + send_immediately: true
915 + });
916 + }
917 + }, {
918 + key: "trackProDeactivation",
919 + value: function trackProDeactivation() {
920 + this.trackProAction('deactivate');
921 + }
922 + }, {
923 + key: "attachProDeletionTracking",
924 + value: function attachProDeletionTracking() {
925 + var _this4 = this;
926 + if ('undefined' === typeof jQuery) {
927 + return;
928 + }
929 + jQuery(document).on('wp-plugin-deleting', function (event, args) {
930 + if ('elementor-pro' === (args === null || args === void 0 ? void 0 : args.slug)) {
931 + _this4.trackProAction('delete');
932 + }
933 + });
934 + }
935 + }, {
936 + key: "destroy",
937 + value: function destroy() {
938 + if ('undefined' !== typeof jQuery) {
939 + jQuery(document).off('wp-plugin-deleting');
940 + }
941 + _baseTracking.default.destroy.call(this);
942 + }
943 + }, {
944 + key: "trackProAction",
945 + value: function trackProAction(action) {
946 + var eventMap = {
947 + deactivate: {
948 + eventName: 'wpdash_deactivate_plugin',
949 + propertyKey: 'deactivate_plugin_type'
950 + },
951 + delete: {
952 + eventName: 'wpdash_delete_plugin',
953 + propertyKey: 'plugin_delete'
954 + }
955 + };
956 + var config = eventMap[action];
957 + if (!config) {
958 + return;
959 + }
960 + var properties = (0, _defineProperty2.default)({}, config.propertyKey, PLUGIN_TYPE.ELEMENTOR_PRO);
961 + _wpDashboardTracking.default.dispatchEvent(config.eventName, properties, {
962 + send_immediately: true
963 + });
964 + }
965 + }]);
966 +}(_baseTracking.default);
967 +(0, _defineProperty2.default)(PluginActions, "selectedReason", null);
968 +var _default = exports["default"] = PluginActions;
969 +
970 +/***/ }),
971 +
972 +/***/ "../app/assets/js/event-track/dashboard/promotion.js":
973 +/*!***********************************************************!*\
974 + !*** ../app/assets/js/event-track/dashboard/promotion.js ***!
975 + \***********************************************************/
976 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
977 +
978 +"use strict";
979 +
980 +
981 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
982 +Object.defineProperty(exports, "__esModule", ({
983 + value: true
984 +}));
985 +exports["default"] = void 0;
986 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
987 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
988 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
989 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
990 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
991 +var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
992 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
993 +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)); }
994 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
995 +var PROMO_SELECTORS = {
996 + PROMO_PAGE: '.e-feature-promotion, .elementor-settings-form-page, #elementor-element-manager-wrap',
997 + PROMO_BLANK_STATE: '.elementor-blank_state',
998 + CTA_BUTTON: '.go-pro',
999 + TITLE: 'h3'
1000 +};
1001 +var PromotionTracking = /*#__PURE__*/function (_BaseTracking) {
1002 + function PromotionTracking() {
1003 + (0, _classCallCheck2.default)(this, PromotionTracking);
1004 + return _callSuper(this, PromotionTracking, arguments);
1005 + }
1006 + (0, _inherits2.default)(PromotionTracking, _BaseTracking);
1007 + return (0, _createClass2.default)(PromotionTracking, null, [{
1008 + key: "init",
1009 + value: function init() {
1010 + this.attachDelegatedTracking();
1011 + }
1012 + }, {
1013 + key: "attachDelegatedTracking",
1014 + value: function attachDelegatedTracking() {
1015 + var _this = this;
1016 + this.addEventListenerTracked(document, 'click', function (event) {
1017 + var target = event.target;
1018 + if (!target) {
1019 + return;
1020 + }
1021 + var button = target.closest("a".concat(PROMO_SELECTORS.CTA_BUTTON));
1022 + if (!button) {
1023 + return;
1024 + }
1025 + var promoPage = button.closest("".concat(PROMO_SELECTORS.PROMO_PAGE, ", ").concat(PROMO_SELECTORS.PROMO_BLANK_STATE));
1026 + if (!promoPage) {
1027 + return;
1028 + }
1029 + _this.handlePromoClick(button, promoPage);
1030 + }, {
1031 + capture: true
1032 + });
1033 + }
1034 + }, {
1035 + key: "handlePromoClick",
1036 + value: function handlePromoClick(button, promoPage) {
1037 + var promoTitle = this.extractPromoTitle(promoPage, button);
1038 + var destination = button.getAttribute('href');
1039 + var path = this.extractPromoPath();
1040 + _wpDashboardTracking.default.trackPromoClicked(promoTitle, destination, path);
1041 + }
1042 + }, {
1043 + key: "extractPromoTitle",
1044 + value: function extractPromoTitle(promoPage, button) {
1045 + var titleElement = promoPage.querySelector(PROMO_SELECTORS.TITLE);
1046 + return titleElement ? titleElement.textContent.trim() : button.textContent.trim();
1047 + }
1048 + }, {
1049 + key: "extractPromoPath",
1050 + value: function extractPromoPath() {
1051 + var urlParams = new URLSearchParams(window.location.search);
1052 + var page = urlParams.get('page');
1053 + if (!page) {
1054 + return 'elementor';
1055 + }
1056 + return page.replace('elementor_', '').replace(/_/g, '/');
1057 + }
1058 + }]);
1059 +}(_baseTracking.default);
1060 +var _default = exports["default"] = PromotionTracking;
1061 +
1062 +/***/ }),
1063 +
1064 +/***/ "../app/assets/js/event-track/dashboard/screen-view.js":
1065 +/*!*************************************************************!*\
1066 + !*** ../app/assets/js/event-track/dashboard/screen-view.js ***!
1067 + \*************************************************************/
1068 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1069 +
1070 +"use strict";
1071 +
1072 +
1073 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1074 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1075 +Object.defineProperty(exports, "__esModule", ({
1076 + value: true
1077 +}));
1078 +exports["default"] = void 0;
1079 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1080 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1081 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1082 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1083 +var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
1084 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1085 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1086 +var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
1087 +var _utils = __webpack_require__(/*! ./utils */ "../app/assets/js/event-track/dashboard/utils.js");
1088 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
1089 +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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1090 +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
1091 +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
1092 +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1093 +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)); }
1094 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1095 +function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
1096 +var SCREEN_SELECTORS = {
1097 + NAV_TAB_WRAPPER: '.nav-tab-wrapper',
1098 + NAV_TAB: '.nav-tab',
1099 + NAV_TAB_ACTIVE: '.nav-tab-active',
1100 + SETTINGS_FORM_PAGE: '.elementor-settings-form-page',
1101 + SETTINGS_FORM_PAGE_ACTIVE: '.elementor-settings-form-page.elementor-active',
1102 + FLOATING_ELEMENTS_MODAL: '#elementor-new-floating-elements-modal',
1103 + TEMPLATE_DIALOG_MODAL: '#elementor-new-template-dialog-content'
1104 +};
1105 +var TRACKED_MODALS = [SCREEN_SELECTORS.FLOATING_ELEMENTS_MODAL, SCREEN_SELECTORS.TEMPLATE_DIALOG_MODAL];
1106 +var ScreenViewTracking = /*#__PURE__*/function (_BaseTracking) {
1107 + function ScreenViewTracking() {
1108 + (0, _classCallCheck2.default)(this, ScreenViewTracking);
1109 + return _callSuper(this, ScreenViewTracking, arguments);
1110 + }
1111 + (0, _inherits2.default)(ScreenViewTracking, _BaseTracking);
1112 + return (0, _createClass2.default)(ScreenViewTracking, null, [{
1113 + key: "init",
1114 + value: function init() {
1115 + if (!_utils.DashboardUtils.isElementorPage()) {
1116 + return;
1117 + }
1118 + this.attachTabChangeTracking();
1119 + }
1120 + }, {
1121 + key: "destroy",
1122 + value: function destroy() {
1123 + _superPropGet(ScreenViewTracking, "destroy", this, 2)([]);
1124 + this.trackedScreens.clear();
1125 + }
1126 + }, {
1127 + key: "getScreenData",
1128 + value: function getScreenData() {
1129 + var urlParams = new URLSearchParams(window.location.search);
1130 + var page = urlParams.get('page');
1131 + var postType = urlParams.get('post_type');
1132 + var hash = window.location.hash;
1133 + var screenId = '';
1134 + var screenType = '';
1135 + if (page) {
1136 + screenId = page;
1137 + } else if (postType) {
1138 + screenId = postType;
1139 + } else {
1140 + screenId = this.getScreenIdFromBody();
1141 + }
1142 + if (this.isElementorAppPage()) {
1143 + var appScreenData = this.getAppScreenData(hash);
1144 + if (appScreenData) {
1145 + return appScreenData;
1146 + }
1147 + }
1148 + var hasNavTabs = document.querySelector(SCREEN_SELECTORS.NAV_TAB_WRAPPER);
1149 + var hasSettingsTabs = document.querySelectorAll(SCREEN_SELECTORS.SETTINGS_FORM_PAGE).length > 1;
1150 + if (hasNavTabs || hasSettingsTabs || hash && !this.isElementorAppPage()) {
1151 + screenType = _wpDashboardTracking.SCREEN_TYPES.TAB;
1152 + if (hash) {
1153 + var tabId = hash.replace(/^#(tab-)?/, '');
1154 + screenId = "".concat(screenId, "-").concat(tabId);
1155 + } else if (hasNavTabs) {
1156 + var activeTab = document.querySelector(SCREEN_SELECTORS.NAV_TAB_ACTIVE);
1157 + if (activeTab) {
1158 + var tabText = activeTab.textContent.trim();
1159 + var tabHref = activeTab.getAttribute('href');
1160 + if (tabText) {
1161 + screenId = "".concat(screenId, "-").concat(this.sanitizeScreenId(tabText));
1162 + } else if (tabHref && tabHref.includes('#')) {
1163 + var _tabId = tabHref.split('#')[1];
1164 + screenId = "".concat(screenId, "-").concat(_tabId);
1165 + }
1166 + }
1167 + } else if (hasSettingsTabs) {
1168 + var activeSettingsTab = document.querySelector(SCREEN_SELECTORS.SETTINGS_FORM_PAGE_ACTIVE);
1169 + if (activeSettingsTab) {
1170 + var _tabId2 = activeSettingsTab.id;
1171 + if (_tabId2) {
1172 + screenId = "".concat(screenId, "-").concat(_tabId2);
1173 + }
1174 + }
1175 + }
1176 + }
1177 + return {
1178 + screenId: screenId,
1179 + screenType: screenType
1180 + };
1181 + }
1182 + }, {
1183 + key: "isElementorAppPage",
1184 + value: function isElementorAppPage() {
1185 + var urlParams = new URLSearchParams(window.location.search);
1186 + return 'elementor-app' === urlParams.get('page');
1187 + }
1188 + }, {
1189 + key: "getAppScreenData",
1190 + value: function getAppScreenData(hash) {
1191 + if (!hash) {
1192 + return null;
1193 + }
1194 + var cleanHash = hash.replace(/^#/, '');
1195 + if (!cleanHash.startsWith('/')) {
1196 + return null;
1197 + }
1198 + var pathParts = cleanHash.split('/').filter(Boolean);
1199 + if (0 === pathParts.length) {
1200 + return null;
1201 + }
1202 + var screenId = pathParts.join('/');
1203 + var screenType = _wpDashboardTracking.SCREEN_TYPES.APP_SCREEN;
1204 + return {
1205 + screenId: screenId,
1206 + screenType: screenType
1207 + };
1208 + }
1209 + }, {
1210 + key: "getScreenIdFromBody",
1211 + value: function getScreenIdFromBody() {
1212 + var body = document.body;
1213 + var bodyClasses = body.className.split(' ');
1214 + var _iterator = _createForOfIteratorHelper(bodyClasses),
1215 + _step;
1216 + try {
1217 + for (_iterator.s(); !(_step = _iterator.n()).done;) {
1218 + var cls = _step.value;
1219 + if (cls.startsWith('elementor') && (cls.includes('page') || cls.includes('post-type'))) {
1220 + return cls;
1221 + }
1222 + }
1223 + } catch (err) {
1224 + _iterator.e(err);
1225 + } finally {
1226 + _iterator.f();
1227 + }
1228 + return 'elementor-unknown';
1229 + }
1230 + }, {
1231 + key: "sanitizeScreenId",
1232 + value: function sanitizeScreenId(text) {
1233 + return text.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
1234 + }
1235 + }, {
1236 + key: "attachTabChangeTracking",
1237 + value: function attachTabChangeTracking() {
1238 + this.attachNavTabTracking();
1239 + this.attachHashChangeTracking();
1240 + this.attachSettingsTabTracking();
1241 + this.attachModalTracking();
1242 + }
1243 + }, {
1244 + key: "attachNavTabTracking",
1245 + value: function attachNavTabTracking() {
1246 + var _this = this;
1247 + var wrapper = document.querySelector(SCREEN_SELECTORS.NAV_TAB_WRAPPER);
1248 + if (!wrapper) {
1249 + return;
1250 + }
1251 + this.addEventListenerTracked(wrapper, 'click', function (event) {
1252 + var navTab = event.target.closest(SCREEN_SELECTORS.NAV_TAB);
1253 + if (navTab && !navTab.classList.contains('nav-tab-active')) {
1254 + var screenData = _this.getScreenData();
1255 + if (screenData) {
1256 + _this.trackScreen(screenData.screenId, screenData.screenType);
1257 + }
1258 + }
1259 + });
1260 + }
1261 + }, {
1262 + key: "attachHashChangeTracking",
1263 + value: function attachHashChangeTracking() {
1264 + var _this2 = this;
1265 + this.addEventListenerTracked(window, 'hashchange', function () {
1266 + var screenData = _this2.getScreenData();
1267 + if (screenData) {
1268 + _this2.trackScreen(screenData.screenId, screenData.screenType);
1269 + }
1270 + });
1271 + }
1272 + }, {
1273 + key: "attachSettingsTabTracking",
1274 + value: function attachSettingsTabTracking() {
1275 + var _this3 = this;
1276 + var settingsPages = document.querySelectorAll(SCREEN_SELECTORS.SETTINGS_FORM_PAGE);
1277 + if (0 === settingsPages.length) {
1278 + return;
1279 + }
1280 + settingsPages.forEach(function (page) {
1281 + _this3.addObserver(page, {
1282 + attributes: true,
1283 + attributeFilter: ['class']
1284 + }, function () {
1285 + var screenData = _this3.getScreenData();
1286 + if (screenData) {
1287 + _this3.trackScreen(screenData.screenId, screenData.screenType);
1288 + }
1289 + });
1290 + });
1291 + }
1292 + }, {
1293 + key: "attachModalTracking",
1294 + value: function attachModalTracking() {
1295 + var _this4 = this;
1296 + this.addObserver(document.body, {
1297 + childList: true,
1298 + subtree: true
1299 + }, function (mutations) {
1300 + var _iterator2 = _createForOfIteratorHelper(mutations),
1301 + _step2;
1302 + try {
1303 + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1304 + var mutation = _step2.value;
1305 + if ('childList' === mutation.type) {
1306 + TRACKED_MODALS.forEach(function (modalSelector) {
1307 + var modal = document.querySelector(modalSelector);
1308 + if (modal && _this4.isModalVisible(modal)) {
1309 + var modalId = modalSelector.replace('#', '');
1310 + _this4.trackScreen(modalId, _wpDashboardTracking.SCREEN_TYPES.POPUP);
1311 + }
1312 + });
1313 + }
1314 + }
1315 + } catch (err) {
1316 + _iterator2.e(err);
1317 + } finally {
1318 + _iterator2.f();
1319 + }
1320 + });
1321 + }
1322 + }, {
1323 + key: "isModalVisible",
1324 + value: function isModalVisible(element) {
1325 + if (!element) {
1326 + return false;
1327 + }
1328 + var style = window.getComputedStyle(element);
1329 + return 'none' !== style.display && 0 !== parseFloat(style.opacity);
1330 + }
1331 + }, {
1332 + key: "trackScreen",
1333 + value: function trackScreen(screenId) {
1334 + var screenType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _wpDashboardTracking.SCREEN_TYPES.TOP_LEVEL_PAGE;
1335 + var trackingKey = "".concat(screenId, "-").concat(screenType);
1336 + if (this.trackedScreens.has(trackingKey)) {
1337 + return;
1338 + }
1339 + this.trackedScreens.add(trackingKey);
1340 + _wpDashboardTracking.default.trackScreenViewed(screenId, screenType);
1341 + }
1342 + }]);
1343 +}(_baseTracking.default);
1344 +(0, _defineProperty2.default)(ScreenViewTracking, "trackedScreens", new Set());
1345 +var _default = exports["default"] = ScreenViewTracking;
1346 +
1347 +/***/ }),
1348 +
1349 +/***/ "../app/assets/js/event-track/dashboard/top-bar.js":
1350 +/*!*********************************************************!*\
1351 + !*** ../app/assets/js/event-track/dashboard/top-bar.js ***!
1352 + \*********************************************************/
1353 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1354 +
1355 +"use strict";
1356 +
1357 +
1358 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1359 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1360 +Object.defineProperty(exports, "__esModule", ({
1361 + value: true
1362 +}));
1363 +exports["default"] = void 0;
1364 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1365 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1366 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1367 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1368 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1369 +var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
1370 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
1371 +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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
1372 +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)); }
1373 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1374 +var TOP_BAR_SELECTORS = {
1375 + TOP_BAR_ROOT: '.e-admin-top-bar',
1376 + BAR_BUTTON: '.e-admin-top-bar__bar-button',
1377 + BUTTON_TITLE: '.e-admin-top-bar__bar-button-title',
1378 + MAIN_AREA: '.e-admin-top-bar__main-area',
1379 + SECONDARY_AREA: '.e-admin-top-bar__secondary-area'
1380 +};
1381 +var TopBarTracking = /*#__PURE__*/function (_BaseTracking) {
1382 + function TopBarTracking() {
1383 + (0, _classCallCheck2.default)(this, TopBarTracking);
1384 + return _callSuper(this, TopBarTracking, arguments);
1385 + }
1386 + (0, _inherits2.default)(TopBarTracking, _BaseTracking);
1387 + return (0, _createClass2.default)(TopBarTracking, null, [{
1388 + key: "init",
1389 + value: function init() {
1390 + this.waitForTopBar();
1391 + }
1392 + }, {
1393 + key: "waitForTopBar",
1394 + value: function waitForTopBar() {
1395 + var _this = this;
1396 + var topBar = document.querySelector(TOP_BAR_SELECTORS.TOP_BAR_ROOT);
1397 + if (topBar) {
1398 + this.attachTopBarTracking(topBar);
1399 + return;
1400 + }
1401 + var observer = this.addObserver(document.body, {
1402 + childList: true,
1403 + subtree: true
1404 + }, function () {
1405 + var foundTopBar = document.querySelector(TOP_BAR_SELECTORS.TOP_BAR_ROOT);
1406 + if (foundTopBar) {
1407 + _this.attachTopBarTracking(foundTopBar);
1408 + observer.disconnect();
1409 + clearTimeout(timeoutId);
1410 + }
1411 + });
1412 + var timeoutId = setTimeout(function () {
1413 + observer.disconnect();
1414 + }, 10000);
1415 + }
1416 + }, {
1417 + key: "attachTopBarTracking",
1418 + value: function attachTopBarTracking(topBar) {
1419 + var _this2 = this;
1420 + var buttons = topBar.querySelectorAll(TOP_BAR_SELECTORS.BAR_BUTTON);
1421 + buttons.forEach(function (button) {
1422 + _this2.addEventListenerTracked(button, 'click', function (event) {
1423 + _this2.handleTopBarClick(event);
1424 + });
1425 + });
1426 + this.observeTopBarChanges(topBar);
1427 + }
1428 + }, {
1429 + key: "observeTopBarChanges",
1430 + value: function observeTopBarChanges(topBar) {
1431 + var _this3 = this;
1432 + this.addObserver(topBar, {
1433 + childList: true,
1434 + subtree: true
1435 + }, function (mutations) {
1436 + mutations.forEach(function (mutation) {
1437 + if ('childList' === mutation.type) {
1438 + mutation.addedNodes.forEach(function (node) {
1439 + if (1 === node.nodeType) {
1440 + if (node.matches && node.matches(TOP_BAR_SELECTORS.BAR_BUTTON)) {
1441 + _this3.addEventListenerTracked(node, 'click', function (event) {
1442 + _this3.handleTopBarClick(event);
1443 + });
1444 + } else {
1445 + var buttons = node.querySelectorAll ? node.querySelectorAll(TOP_BAR_SELECTORS.BAR_BUTTON) : [];
1446 + buttons.forEach(function (button) {
1447 + _this3.addEventListenerTracked(button, 'click', function (event) {
1448 + _this3.handleTopBarClick(event);
1449 + });
1450 + });
1451 + }
1452 + }
1453 + });
1454 + }
1455 + });
1456 + });
1457 + }
1458 + }, {
1459 + key: "handleTopBarClick",
1460 + value: function handleTopBarClick(event) {
1461 + var button = event.currentTarget;
1462 + var itemId = this.extractItemId(button);
1463 + _wpDashboardTracking.default.trackNavClicked(itemId, null, _wpDashboardTracking.NAV_AREAS.TOP_BAR);
1464 + }
1465 + }, {
1466 + key: "extractItemId",
1467 + value: function extractItemId(button) {
1468 + var titleElement = button.querySelector(TOP_BAR_SELECTORS.BUTTON_TITLE);
1469 + if (titleElement && titleElement.textContent.trim()) {
1470 + return titleElement.textContent.trim();
1471 + }
1472 + var textContent = button.textContent.trim();
1473 + if (textContent) {
1474 + return textContent;
1475 + }
1476 + var href = button.getAttribute('href');
1477 + if (href) {
1478 + var urlParams = new URLSearchParams(href.split('?')[1] || '');
1479 + var page = urlParams.get('page');
1480 + if (page) {
1481 + return page;
1482 + }
1483 + if (href.includes('/wp-admin/')) {
1484 + var pathParts = href.split('/wp-admin/')[1];
1485 + if (pathParts) {
1486 + return pathParts.split('?')[0];
1487 + }
1488 + }
1489 + try {
1490 + var url = new URL(href, window.location.origin);
1491 + return url.pathname.split('/').filter(Boolean).pop() || url.hostname;
1492 + } catch (error) {
1493 + return href;
1494 + }
1495 + }
1496 + var dataInfo = button.getAttribute('data-info');
1497 + if (dataInfo) {
1498 + return dataInfo;
1499 + }
1500 + var classes = button.className.split(' ').filter(function (cls) {
1501 + return cls && 'e-admin-top-bar__bar-button' !== cls;
1502 + });
1503 + if (classes.length > 0) {
1504 + return classes.join('-');
1505 + }
1506 + return 'unknown-top-bar-button';
1507 + }
1508 + }]);
1509 +}(_baseTracking.default);
1510 +var _default = exports["default"] = TopBarTracking;
1511 +
1512 +/***/ }),
1513 +
1514 +/***/ "../app/assets/js/event-track/dashboard/utils.js":
1515 +/*!*******************************************************!*\
1516 + !*** ../app/assets/js/event-track/dashboard/utils.js ***!
1517 + \*******************************************************/
1518 +/***/ ((__unused_webpack_module, exports) => {
1519 +
1520 +"use strict";
1521 +
1522 +
1523 +Object.defineProperty(exports, "__esModule", ({
1524 + value: true
1525 +}));
1526 +exports.DashboardUtils = void 0;
1527 +var DashboardUtils = exports.DashboardUtils = {
1528 + isElementorPage: function isElementorPage() {
1529 + var urlParams = new URLSearchParams(window.location.search);
1530 + var page = urlParams.get('page');
1531 + if (page && (page.startsWith('elementor') || page.includes('elementor'))) {
1532 + return true;
1533 + }
1534 + var postType = urlParams.get('post_type');
1535 + if ('elementor_library' === postType || 'e-floating-buttons' === postType) {
1536 + return true;
1537 + }
1538 + var body = document.body;
1539 + var bodyClasses = body.className.split(' ');
1540 + return bodyClasses.some(function (cls) {
1541 + return cls.includes('elementor') && (cls.includes('page') || cls.includes('post-type'));
1542 + });
1543 + }
1544 +};
1545 +
1546 +/***/ }),
1547 +
1548 +/***/ "../app/assets/js/event-track/wp-dashboard-tracking.js":
1549 +/*!*************************************************************!*\
1550 + !*** ../app/assets/js/event-track/wp-dashboard-tracking.js ***!
1551 + \*************************************************************/
1552 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1553 +
1554 +"use strict";
1555 +
1556 +
1557 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1558 +Object.defineProperty(exports, "__esModule", ({
1559 + value: true
1560 +}));
1561 +exports["default"] = exports.SCREEN_TYPES = exports.NAV_AREAS = exports.CONTROL_TYPES = void 0;
1562 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1563 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1564 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1565 +var _navigation = _interopRequireDefault(__webpack_require__(/*! ./dashboard/navigation */ "../app/assets/js/event-track/dashboard/navigation.js"));
1566 +var _pluginActions = _interopRequireDefault(__webpack_require__(/*! ./dashboard/plugin-actions */ "../app/assets/js/event-track/dashboard/plugin-actions.js"));
1567 +var _promotion = _interopRequireDefault(__webpack_require__(/*! ./dashboard/promotion */ "../app/assets/js/event-track/dashboard/promotion.js"));
1568 +var _screenView = _interopRequireDefault(__webpack_require__(/*! ./dashboard/screen-view */ "../app/assets/js/event-track/dashboard/screen-view.js"));
1569 +var _topBar = _interopRequireDefault(__webpack_require__(/*! ./dashboard/top-bar */ "../app/assets/js/event-track/dashboard/top-bar.js"));
1570 +var _menuPromotion = _interopRequireDefault(__webpack_require__(/*! ./dashboard/menu-promotion */ "../app/assets/js/event-track/dashboard/menu-promotion.js"));
1571 +var _actionControls = _interopRequireDefault(__webpack_require__(/*! ./dashboard/action-controls */ "../app/assets/js/event-track/dashboard/action-controls.js"));
1572 +var SESSION_TIMEOUT_MINUTES = 30;
1573 +var MINUTE_MS = 60 * 1000;
1574 +var SESSION_TIMEOUT = SESSION_TIMEOUT_MINUTES * MINUTE_MS;
1575 +var ACTIVITY_CHECK_INTERVAL = 1 * MINUTE_MS;
1576 +var SESSION_STORAGE_KEY = 'elementor_wpdash_session';
1577 +var PENDING_NAV_CLICK_KEY = 'elementor_wpdash_pending_nav';
1578 +var CONTROL_TYPES = exports.CONTROL_TYPES = {
1579 + BUTTON: 'button',
1580 + CHECKBOX: 'checkbox',
1581 + RADIO: 'radio',
1582 + LINK: 'link',
1583 + SELECT: 'select',
1584 + TOGGLE: 'toggle',
1585 + FILTER: 'filter'
1586 +};
1587 +var NAV_AREAS = exports.NAV_AREAS = {
1588 + LEFT_MENU: 'left_menu',
1589 + SUBMENU: 'submenu',
1590 + HOVER_MENU: 'hover_menu',
1591 + TOP_BAR: 'top_bar'
1592 +};
1593 +var SCREEN_TYPES = exports.SCREEN_TYPES = {
1594 + TAB: 'tab',
1595 + POPUP: 'popup',
1596 + APP_SCREEN: 'app_screen'
1597 +};
1598 +var WpDashboardTracking = exports["default"] = /*#__PURE__*/function () {
1599 + function WpDashboardTracking() {
1600 + (0, _classCallCheck2.default)(this, WpDashboardTracking);
1601 + }
1602 + return (0, _createClass2.default)(WpDashboardTracking, null, [{
1603 + key: "init",
1604 + value: function init() {
1605 + if (this.initialized) {
1606 + return;
1607 + }
1608 + this.restoreOrCreateSession();
1609 + if (this.isEventsManagerAvailable()) {
1610 + this.startSessionMonitoring();
1611 + this.attachActivityListeners();
1612 + this.attachNavigationListener();
1613 + this.initialized = true;
1614 + }
1615 + }
1616 + }, {
1617 + key: "restoreOrCreateSession",
1618 + value: function restoreOrCreateSession() {
1619 + var storedSession = this.getStoredSession();
1620 + if (storedSession) {
1621 + this.sessionStartTime = storedSession.sessionStartTime;
1622 + this.navItemsVisited = new Set(storedSession.navItemsVisited);
1623 + this.lastActivityTime = Date.now();
1624 + this.sessionEnded = false;
1625 + } else {
1626 + this.sessionStartTime = Date.now();
1627 + this.lastActivityTime = Date.now();
1628 + this.sessionEnded = false;
1629 + this.navItemsVisited = new Set();
1630 + }
1631 + this.processPendingNavClick();
1632 + this.saveSessionToStorage();
1633 + }
1634 + }, {
1635 + key: "processPendingNavClick",
1636 + value: function processPendingNavClick() {
1637 + try {
1638 + var pendingNav = sessionStorage.getItem(PENDING_NAV_CLICK_KEY);
1639 + if (pendingNav) {
1640 + var _JSON$parse = JSON.parse(pendingNav),
1641 + itemId = _JSON$parse.itemId,
1642 + rootItem = _JSON$parse.rootItem,
1643 + area = _JSON$parse.area;
1644 + this.navItemsVisited.add(itemId);
1645 + var properties = {
1646 + wpdash_nav_item_id: itemId,
1647 + wpdash_nav_area: area
1648 + };
1649 + if (rootItem) {
1650 + properties.wpdash_nav_item_root = rootItem;
1651 + }
1652 + this.dispatchEvent('wpdash_nav_clicked', properties, {
1653 + send_immediately: true
1654 + });
1655 + sessionStorage.removeItem(PENDING_NAV_CLICK_KEY);
1656 + }
1657 + } catch (error) {
1658 + sessionStorage.removeItem(PENDING_NAV_CLICK_KEY);
1659 + }
1660 + }
1661 + }, {
1662 + key: "getStoredSession",
1663 + value: function getStoredSession() {
1664 + try {
1665 + var stored = sessionStorage.getItem(SESSION_STORAGE_KEY);
1666 + return stored ? JSON.parse(stored) : null;
1667 + } catch (error) {
1668 + return null;
1669 + }
1670 + }
1671 + }, {
1672 + key: "saveSessionToStorage",
1673 + value: function saveSessionToStorage() {
1674 + var sessionData = {
1675 + sessionStartTime: this.sessionStartTime,
1676 + navItemsVisited: Array.from(this.navItemsVisited)
1677 + };
1678 + sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(sessionData));
1679 + }
1680 + }, {
1681 + key: "clearStoredSession",
1682 + value: function clearStoredSession() {
1683 + sessionStorage.removeItem(SESSION_STORAGE_KEY);
1684 + }
1685 + }, {
1686 + key: "isEventsManagerAvailable",
1687 + value: function isEventsManagerAvailable() {
1688 + var _elementorCommon;
1689 + return ((_elementorCommon = elementorCommon) === null || _elementorCommon === void 0 ? void 0 : _elementorCommon.eventsManager) && 'function' === typeof elementorCommon.eventsManager.dispatchEvent;
1690 + }
1691 + }, {
1692 + key: "canSendEvents",
1693 + value: function canSendEvents() {
1694 + var _elementorCommon2;
1695 + return ((_elementorCommon2 = elementorCommon) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.config) === null || _elementorCommon2 === void 0 || (_elementorCommon2 = _elementorCommon2.editor_events) === null || _elementorCommon2 === void 0 ? void 0 : _elementorCommon2.can_send_events) || false;
1696 + }
1697 + }, {
1698 + key: "dispatchEvent",
1699 + value: function dispatchEvent(eventName) {
1700 + var properties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1701 + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1702 + if (!this.isEventsManagerAvailable() || !this.canSendEvents()) {
1703 + return;
1704 + }
1705 + elementorCommon.eventsManager.dispatchEvent(eventName, properties, options);
1706 + }
1707 + }, {
1708 + key: "updateActivity",
1709 + value: function updateActivity() {
1710 + this.lastActivityTime = Date.now();
1711 + }
1712 + }, {
1713 + key: "startSessionMonitoring",
1714 + value: function startSessionMonitoring() {
1715 + var _this = this;
1716 + this.activityCheckInterval = setInterval(function () {
1717 + _this.checkSessionTimeout();
1718 + }, ACTIVITY_CHECK_INTERVAL);
1719 + window.addEventListener('beforeunload', function () {
1720 + if (!_this.sessionEnded && !_this.isNavigatingToElementor) {
1721 + _this.trackSessionEnd('tab_closed');
1722 + }
1723 + });
1724 + document.addEventListener('visibilitychange', function () {
1725 + if (!_this.sessionEnded && document.hidden) {
1726 + var timeSinceLastActivity = Date.now() - _this.lastActivityTime;
1727 + if (timeSinceLastActivity > SESSION_TIMEOUT) {
1728 + _this.trackSessionEnd('tab_inactive');
1729 + }
1730 + }
1731 + });
1732 + }
1733 + }, {
1734 + key: "isElementorPage",
1735 + value: function isElementorPage(url) {
1736 + try {
1737 + var urlObj = new URL(url, window.location.origin);
1738 + var params = urlObj.searchParams;
1739 + var page = params.get('page');
1740 + var postType = params.get('post_type');
1741 + var action = params.get('action');
1742 + var elementorPages = ['elementor', 'go_knowledge_base_site', 'e-form-submissions'];
1743 + var elementorPostTypes = ['elementor_library', 'e-floating-buttons'];
1744 + return page && elementorPages.some(function (p) {
1745 + return page.includes(p);
1746 + }) || postType && elementorPostTypes.includes(postType) || action && action.includes('elementor');
1747 + } catch (error) {
1748 + return false;
1749 + }
1750 + }
1751 + }, {
1752 + key: "isPluginsPage",
1753 + value: function isPluginsPage(url) {
1754 + try {
1755 + var urlObj = new URL(url, window.location.origin);
1756 + return urlObj.pathname.includes('plugins.php');
1757 + } catch (error) {
1758 + return false;
1759 + }
1760 + }
1761 + }, {
1762 + key: "isNavigatingAwayFromElementor",
1763 + value: function isNavigatingAwayFromElementor(targetUrl) {
1764 + if (!targetUrl) {
1765 + return false;
1766 + }
1767 + if (targetUrl.startsWith('#')) {
1768 + return false;
1769 + }
1770 + return !this.isElementorPage(targetUrl);
1771 + }
1772 + }, {
1773 + key: "isLinkOpeningInNewTab",
1774 + value: function isLinkOpeningInNewTab(link) {
1775 + var target = link.getAttribute('target');
1776 + return '_blank' === target || '_new' === target;
1777 + }
1778 + }, {
1779 + key: "attachNavigationListener",
1780 + value: function attachNavigationListener() {
1781 + var _this2 = this;
1782 + var handleLinkClick = function handleLinkClick(event) {
1783 + var link = event.target.closest('a');
1784 + if (link && link.href) {
1785 + if (_this2.isLinkOpeningInNewTab(link)) {
1786 + return;
1787 + }
1788 + if (!_this2.sessionEnded && _this2.isNavigatingAwayFromElementor(link.href)) {
1789 + _this2.trackSessionEnd('navigate_away');
1790 + } else if (_this2.isElementorPage(link.href)) {
1791 + _this2.isNavigatingToElementor = true;
1792 + }
1793 + }
1794 + };
1795 + var handleFormSubmit = function handleFormSubmit(event) {
1796 + var form = event.target;
1797 + if (form.action) {
1798 + if (!_this2.sessionEnded && _this2.isNavigatingAwayFromElementor(form.action)) {
1799 + _this2.trackSessionEnd('navigate_away');
1800 + } else if (_this2.isElementorPage(form.action)) {
1801 + _this2.isNavigatingToElementor = true;
1802 + }
1803 + }
1804 + };
1805 + document.addEventListener('click', handleLinkClick, true);
1806 + document.addEventListener('submit', handleFormSubmit, true);
1807 + this.navigationListeners.push({
1808 + type: 'click',
1809 + handler: handleLinkClick
1810 + }, {
1811 + type: 'submit',
1812 + handler: handleFormSubmit
1813 + });
1814 + }
1815 + }, {
1816 + key: "checkSessionTimeout",
1817 + value: function checkSessionTimeout() {
1818 + var timeSinceLastActivity = Date.now() - this.lastActivityTime;
1819 + if (timeSinceLastActivity > SESSION_TIMEOUT && !this.sessionEnded) {
1820 + this.trackSessionEnd('timeout');
1821 + }
1822 + }
1823 + }, {
1824 + key: "attachActivityListeners",
1825 + value: function attachActivityListeners() {
1826 + var _this3 = this;
1827 + var events = ['mousedown', 'keydown', 'scroll', 'touchstart', 'click'];
1828 + events.forEach(function (event) {
1829 + document.addEventListener(event, function () {
1830 + _this3.updateActivity();
1831 + }, {
1832 + capture: true,
1833 + passive: true
1834 + });
1835 + });
1836 + }
1837 + }, {
1838 + key: "formatDuration",
1839 + value: function formatDuration(milliseconds) {
1840 + var totalSeconds = Math.floor(milliseconds / 1000);
1841 + return Number(totalSeconds.toFixed(2));
1842 + }
1843 + }, {
1844 + key: "trackNavClicked",
1845 + value: function trackNavClicked(itemId) {
1846 + var rootItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1847 + var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NAV_AREAS.LEFT_MENU;
1848 + if (!this.initialized) {
1849 + var pendingNav = {
1850 + itemId: itemId,
1851 + rootItem: rootItem,
1852 + area: area
1853 + };
1854 + sessionStorage.setItem(PENDING_NAV_CLICK_KEY, JSON.stringify(pendingNav));
1855 + return;
1856 + }
1857 + this.updateActivity();
1858 + this.navItemsVisited.add(itemId);
1859 + this.saveSessionToStorage();
1860 + var properties = {
1861 + wpdash_nav_item_id: itemId,
1862 + wpdash_nav_area: area
1863 + };
1864 + if (rootItem) {
1865 + properties.wpdash_nav_item_root = rootItem;
1866 + }
1867 + this.dispatchEvent('wpdash_nav_clicked', properties);
1868 + }
1869 + }, {
1870 + key: "trackScreenViewed",
1871 + value: function trackScreenViewed(screenId) {
1872 + var screenType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SCREEN_TYPES.TAB;
1873 + this.updateActivity();
1874 + var properties = {
1875 + wpdash_screen_id: screenId,
1876 + wpdash_screen_type: screenType
1877 + };
1878 + this.dispatchEvent('wpdash_screen_viewed', properties);
1879 + }
1880 + }, {
1881 + key: "trackActionControl",
1882 + value: function trackActionControl(controlIdentifier, controlType) {
1883 + this.updateActivity();
1884 + var properties = {
1885 + wpdash_action_control_interacted: controlIdentifier,
1886 + wpdash_control_type: controlType
1887 + };
1888 + this.dispatchEvent('wpdash_action_control', properties);
1889 + }
1890 + }, {
1891 + key: "trackPromoClicked",
1892 + value: function trackPromoClicked(promoName, destination, clickPath) {
1893 + this.updateActivity();
1894 + var properties = {
1895 + wpdash_promo_name: promoName,
1896 + wpdash_promo_destination: destination,
1897 + wpdash_promo_clicked_path: clickPath
1898 + };
1899 + this.dispatchEvent('wpdash_promo_clicked', properties);
1900 + }
1901 + }, {
1902 + key: "trackSessionEnd",
1903 + value: function trackSessionEnd() {
1904 + var reason = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'timeout';
1905 + if (this.sessionEnded) {
1906 + return;
1907 + }
1908 + this.sessionEnded = true;
1909 + if (this.activityCheckInterval) {
1910 + clearInterval(this.activityCheckInterval);
1911 + this.activityCheckInterval = null;
1912 + }
1913 + var duration = Date.now() - this.sessionStartTime;
1914 + var properties = {
1915 + wpdash_endstate_nav_summary: Array.from(this.navItemsVisited),
1916 + wpdash_endstate_nav_count: this.navItemsVisited.size,
1917 + wpdash_endstate_duration: this.formatDuration(duration),
1918 + reason: reason
1919 + };
1920 + this.dispatchEvent('wpdash_session_end_state', properties);
1921 + this.clearStoredSession();
1922 + }
1923 + }, {
1924 + key: "destroy",
1925 + value: function destroy() {
1926 + if (this.activityCheckInterval) {
1927 + clearInterval(this.activityCheckInterval);
1928 + }
1929 + this.navigationListeners.forEach(function (_ref) {
1930 + var type = _ref.type,
1931 + handler = _ref.handler;
1932 + document.removeEventListener(type, handler, true);
1933 + });
1934 + this.navigationListeners = [];
1935 + _topBar.default.destroy();
1936 + _screenView.default.destroy();
1937 + _promotion.default.destroy();
1938 + _menuPromotion.default.destroy();
1939 + _actionControls.default.destroy();
1940 + this.initialized = false;
1941 + }
1942 + }]);
1943 +}();
1944 +(0, _defineProperty2.default)(WpDashboardTracking, "sessionStartTime", Date.now());
1945 +(0, _defineProperty2.default)(WpDashboardTracking, "lastActivityTime", Date.now());
1946 +(0, _defineProperty2.default)(WpDashboardTracking, "sessionEnded", false);
1947 +(0, _defineProperty2.default)(WpDashboardTracking, "navItemsVisited", new Set());
1948 +(0, _defineProperty2.default)(WpDashboardTracking, "activityCheckInterval", null);
1949 +(0, _defineProperty2.default)(WpDashboardTracking, "initialized", false);
1950 +(0, _defineProperty2.default)(WpDashboardTracking, "navigationListeners", []);
1951 +(0, _defineProperty2.default)(WpDashboardTracking, "isNavigatingToElementor", false);
1952 +window.addEventListener('elementor/admin/init', function () {
1953 + var currentUrl = window.location.href;
1954 + var isPluginsPage = WpDashboardTracking.isPluginsPage(currentUrl);
1955 + var isElementorPage = WpDashboardTracking.isElementorPage(currentUrl);
1956 + if (isPluginsPage) {
1957 + _pluginActions.default.init();
1958 + }
1959 + _navigation.default.init();
1960 + if (isElementorPage) {
1961 + WpDashboardTracking.init();
1962 + _topBar.default.init();
1963 + _screenView.default.init();
1964 + _promotion.default.init();
1965 + _menuPromotion.default.init();
1966 + _actionControls.default.init();
1967 + }
1968 +});
1969 +window.addEventListener('beforeunload', function () {
1970 + _navigation.default.destroy();
1971 + _pluginActions.default.destroy();
1972 + WpDashboardTracking.destroy();
1973 +});
1974 +
1975 +/***/ }),
1976 +
4 1977 /***/ "../app/modules/import-export-customization/assets/js/shared/registry/base.js":
5 1978 /*!************************************************************************************!*\
6 1979 !*** ../app/modules/import-export-customization/assets/js/shared/registry/base.js ***!
7 1980 \************************************************************************************/
@@ -883,9 +2856,11 @@
883 2856 var _scroll = _interopRequireDefault(__webpack_require__(/*! ./imports/utils/scroll */ "../assets/dev/js/modules/imports/utils/scroll.js"));
884 2857 var _forceMethodImplementation = _interopRequireDefault(__webpack_require__(/*! ./imports/force-method-implementation */ "../assets/dev/js/modules/imports/force-method-implementation.js"));
885 2858 var _templateRegistryHelpers = __webpack_require__(/*! ../../../../app/modules/import-export-customization/assets/js/shared/utils/template-registry-helpers */ "../app/modules/import-export-customization/assets/js/shared/utils/template-registry-helpers.js");
886 2859 var _customizationDialogs = __webpack_require__(/*! ../../../../app/modules/import-export-customization/assets/js/shared/registry/customization-dialogs */ "../app/modules/import-export-customization/assets/js/shared/registry/customization-dialogs.js");
887 -var baseModules = {
2860 +var _appsEventTracking = __webpack_require__(/*! elementor-app/event-track/apps-event-tracking */ "../app/assets/js/event-track/apps-event-tracking.js");
2861 +var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! elementor-app/event-track/wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
2862 +var _default = exports["default"] = window.elementorModules = {
888 2863 Module: _module.default,
889 2864 ViewModule: _viewModule.default,
890 2865 ArgsObject: _argsObject.default,
891 2866 ForceMethodImplementation: _forceMethodImplementation.default,
@@ -895,16 +2870,16 @@
895 2870 },
896 2871 importExport: {
897 2872 createGetInitialState: _templateRegistryHelpers.createGetInitialState,
898 2873 customizationDialogsRegistry: _customizationDialogs.customizationDialogsRegistry
2874 + },
2875 + appsEventTracking: {
2876 + AppsEventTracking: _appsEventTracking.AppsEventTracking
2877 + },
2878 + wpDashboardTracking: {
2879 + WpDashboardTracking: _wpDashboardTracking.default
899 2880 }
900 2881 };
901 -if (!window.elementorModules) {
902 - window.elementorModules = baseModules;
903 -} else {
904 - Object.assign(window.elementorModules, baseModules);
905 -}
906 -var _default = exports["default"] = window.elementorModules;
907 2882
908 2883 /***/ }),
909 2884
910 2885 /***/ "../core/common/assets/js/views/modal/header.js":
@@ -934,13 +2909,8 @@
934 2909 return _callSuper(this, _default, arguments);
935 2910 }
936 2911 (0, _inherits2.default)(_default, _Marionette$LayoutVie);
937 2912 return (0, _createClass2.default)(_default, [{
938 - key: "tagName",
939 - value: function tagName() {
940 - return 'header';
941 - }
942 - }, {
943 2913 key: "className",
944 2914 value: function className() {
945 2915 return 'elementor-templates-modal__header';
946 2916 }
@@ -1282,8 +3252,227 @@
1282 3252 }
1283 3253 }
1284 3254 }]);
1285 3255 }(Marionette.ItemView);
3256 +
3257 +/***/ }),
3258 +
3259 +/***/ "../core/common/modules/events-manager/assets/js/events-config.js":
3260 +/*!************************************************************************!*\
3261 + !*** ../core/common/modules/events-manager/assets/js/events-config.js ***!
3262 + \************************************************************************/
3263 +/***/ ((__unused_webpack_module, exports) => {
3264 +
3265 +"use strict";
3266 +
3267 +
3268 +Object.defineProperty(exports, "__esModule", ({
3269 + value: true
3270 +}));
3271 +exports["default"] = void 0;
3272 +var eventsConfig = {
3273 + triggers: {
3274 + click: 'Click',
3275 + rightClick: 'Right Click',
3276 + doubleClick: 'Double Click',
3277 + accordionClick: 'Accordion Click',
3278 + toggleClick: 'Toggle Click',
3279 + dropdownClick: 'Click Dropdown',
3280 + editorLoaded: 'Editor Loaded',
3281 + visible: 'Visible',
3282 + pageLoaded: 'Page Loaded'
3283 + },
3284 + locations: {
3285 + widgetPanel: 'Widget Panel',
3286 + topBar: 'Top Bar',
3287 + elementorEditor: 'Elementor Editor',
3288 + templatesLibrary: {
3289 + library: 'Templates Library'
3290 + },
3291 + app: {
3292 + import: 'Import Kit',
3293 + export: 'Export Kit',
3294 + kitLibrary: 'Kit Library',
3295 + cloudKitLibrary: 'Cloud Kit Library'
3296 + },
3297 + variables: 'Variables Panel',
3298 + variablesManager: 'Variables Manager',
3299 + admin: 'WP admin',
3300 + structurePanel: 'Structure Panel',
3301 + canvas: 'Canvas'
3302 + },
3303 + secondaryLocations: {
3304 + layout: 'Layout Section',
3305 + basic: 'Basic Section',
3306 + 'pro-elements': 'Pro Section',
3307 + general: 'General Section',
3308 + 'theme-elements': 'Site Section',
3309 + 'theme-elements-single': 'Single Section',
3310 + 'woocommerce-elements': 'WooCommerce Section',
3311 + wordpress: 'WordPress Section',
3312 + categories: 'Widgets Tab',
3313 + global: 'Globals Tab',
3314 + 'whats-new': 'What\'s New',
3315 + 'document-settings': 'Document Settings icon',
3316 + 'preview-page': 'Preview Page',
3317 + 'publish-button': 'Publish Button',
3318 + 'widget-panel': 'Widget Panel Icon',
3319 + finder: 'Finder',
3320 + help: 'Help',
3321 + elementorLogoDropdown: 'top_bar_elementor_logo_dropdown',
3322 + elementorLogo: 'Elementor Logo',
3323 + eLogoMenu: 'E-logo Menu',
3324 + notes: 'Notes',
3325 + siteSettings: 'Site Settings',
3326 + structure: 'Structure',
3327 + documentNameDropdown: 'Document Name dropdown',
3328 + responsiveControls: 'Responsive controls',
3329 + launchpad: 'launchpad',
3330 + checklistHeader: 'Checklist Header',
3331 + checklistSteps: 'Checklist Steps',
3332 + userPreferences: 'User Preferences',
3333 + contextMenu: 'Context Menu',
3334 + templateLibrary: {
3335 + saveModal: 'Save to Modal',
3336 + moveModal: 'Move to Modal',
3337 + bulkMoveModal: 'Bulk Move to Modal',
3338 + copyModal: 'Copy to Modal',
3339 + bulkCopyModal: 'Bulk Copy to Modal',
3340 + saveModalSelectFolder: 'Save to Modal - select folder',
3341 + saveModalSelectConnect: 'Save to Modal - connect',
3342 + saveModalSelectUpgrade: 'Save to Modal - upgrade',
3343 + importModal: 'Import Modal',
3344 + newFolderModal: 'New Folder Modal',
3345 + deleteDialog: 'Delete Dialog',
3346 + deleteFolderDialog: 'Delete Folder Dialog',
3347 + renameDialog: 'Rename Dialog',
3348 + createFolderDialog: 'Create Folder Dialog',
3349 + applySettingsDialog: 'Apply Settings Dialog',
3350 + cloudTab: 'Cloud Tab',
3351 + siteTab: 'Site Tab',
3352 + cloudTabFolder: 'Cloud Tab - Folder',
3353 + cloudTabConnect: 'Cloud Tab - Connect',
3354 + cloudTabUpgrade: 'Cloud Tab - Upgrade',
3355 + morePopup: 'Context Menu',
3356 + quotaBar: 'Quota Bar'
3357 + },
3358 + kitLibrary: {
3359 + cloudKitLibrary: 'kits_cloud_library',
3360 + cloudKitLibraryConnect: 'kits_cloud_library_connect',
3361 + cloudKitLibraryUpgrade: 'kits_cloud_library_upgrade',
3362 + kitExportCustomization: 'kit_export_customization',
3363 + kitExport: 'kit_export',
3364 + kitExportCustomizationEdit: 'kit_export_customization_edit',
3365 + kitExportSummary: 'kit_export_summary',
3366 + kitImportUploadBox: 'kit_import_upload_box',
3367 + kitImportCustomization: 'kit_import_customization',
3368 + kitImportSummary: 'kit_import_summary'
3369 + },
3370 + variablesPopover: 'Variables Popover',
3371 + admin: {
3372 + pluginToolsTab: 'plugin_tools_tab',
3373 + pluginWebsiteTemplatesTab: 'plugin_website_templates_tab'
3374 + },
3375 + componentsTab: 'Components Tab',
3376 + canvasElement: 'Canvas Element'
3377 + },
3378 + elements: {
3379 + accordionSection: 'Accordion section',
3380 + buttonIcon: 'Button Icon',
3381 + mainCta: 'Main CTA',
3382 + button: 'Button',
3383 + link: 'Link',
3384 + dropdown: 'Dropdown',
3385 + toggle: 'Toggle',
3386 + launchpadChecklist: 'Checklist popup'
3387 + },
3388 + names: {
3389 + v1: {
3390 + layout: 'v1_widgets_tab_layout_section',
3391 + basic: 'v1_widgets_tab_basic_section',
3392 + 'pro-elements': 'v1_widgets_tab_pro_section',
3393 + general: 'v1_widgets_tab_general_section',
3394 + 'theme-elements': 'v1_widgets_tab_site_section',
3395 + 'theme-elements-single': 'v1_widgets_tab_single_section',
3396 + 'woocommerce-elements': 'v1_widgets_tab_woocommerce_section',
3397 + wordpress: 'v1_widgets_tab_wordpress_section',
3398 + categories: 'v1_widgets_tab',
3399 + global: 'v1_globals_tab'
3400 + },
3401 + topBar: {
3402 + whatsNew: 'top_bar_whats_new',
3403 + documentSettings: 'top_bar_document_settings_icon',
3404 + previewPage: 'top_bar_preview_page',
3405 + publishButton: 'top_bar_publish_button',
3406 + widgetPanel: 'top_bar_widget_panel_icon',
3407 + finder: 'top_bar_finder',
3408 + help: 'top_bar_help',
3409 + history: 'top_bar_elementor_logo_dropdown_history',
3410 + userPreferences: 'top_bar_elementor_logo_dropdown_user_preferences',
3411 + keyboardShortcuts: 'top_bar_elementor_logo_dropdown_keyboard_shortcuts',
3412 + exitToWordpress: 'top_bar_elementor_logo_dropdown_exit_to_wordpress',
3413 + themeBuilder: 'top_bar_elementor_logo_dropdown_theme_builder',
3414 + notes: 'top_bar_notes',
3415 + siteSettings: 'top_bar_site_setting',
3416 + structure: 'top_bar_structure',
3417 + documentNameDropdown: 'top_bar_document_name_dropdown',
3418 + responsiveControls: 'top_bar_responsive_controls',
3419 + launchpadOn: 'top_bar_checklist_icon_show',
3420 + launchpadOff: 'top_bar_checklist_icon_hide',
3421 + elementorLogoDropdown: 'open_e_menu',
3422 + connectAccount: 'connect_account',
3423 + accountConnected: 'account_connected'
3424 + },
3425 + // ChecklistSteps event names are generated dynamically, based on stepId and action type taken: title, action, done, undone, upgrade
3426 + elementorEditor: {
3427 + checklist: {
3428 + checklistHeaderClose: 'checklist_header_close_icon',
3429 + checklistFirstPopup: 'checklist popup triggered'
3430 + },
3431 + userPreferences: {
3432 + checklistShow: 'checklist_userpreferences_toggle_show',
3433 + checklistHide: 'checklist_userpreferences_toggle_hide'
3434 + }
3435 + },
3436 + variables: {
3437 + open: 'open_variables_popover',
3438 + add: 'add_new_variable',
3439 + connect: 'connect_variable',
3440 + save: 'save_new_variable',
3441 + openManager: 'open_variables_manager',
3442 + saveChanges: 'save_variables_changes',
3443 + delete: 'delete_variable'
3444 + },
3445 + components: {
3446 + createClicked: 'component_create_clicked',
3447 + createCancelled: 'component_creation_cancelled',
3448 + created: 'component_created',
3449 + instanceAdded: 'component_instance_added',
3450 + edited: 'component_edited'
3451 + },
3452 + global_classes: {
3453 + classApplied: 'class_applied',
3454 + classRemoved: 'class_removed',
3455 + classManagerFilterCleared: 'class_manager_filter_cleared',
3456 + classDeleted: 'class_deleted',
3457 + classPublishConflict: 'class_publish_conflict',
3458 + classRenamed: 'class_renamed',
3459 + classCreated: 'class_created',
3460 + classManagerSearched: 'class_manager_searched',
3461 + classManagerFiltersOpened: 'class_manager_filters_opened',
3462 + classManagerOpened: 'class_manager_opened',
3463 + classManagerReorder: 'class_manager_reorder',
3464 + classManagerFilterUsed: 'class_manager_filter_used',
3465 + classUsageLocate: 'class_usage_locate',
3466 + classUsageHovered: 'class_usage_hovered',
3467 + classStyled: 'class_styled',
3468 + classStateClicked: 'class_state_clicked',
3469 + classUsageClicked: 'class_usage_clicked',
3470 + classDuplicate: 'class_duplicate'
3471 + }
3472 + }
3473 +};
3474 +var _default = exports["default"] = eventsConfig;
1286 3475
1287 3476 /***/ }),
1288 3477
1289 3478 /***/ "../modules/web-cli/assets/js/modules/command-base.js":