PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev4
Elementor Website Builder – more than just a page builder v3.35.0-dev4
4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | assets/js/admin.js +203 -39 4.1.33.35.0-dev4 View file →
@@ -1029,12 +1029,8 @@
1029 1029 value: function init() {
1030 1030 if (!_utils.DashboardUtils.isElementorPage()) {
1031 1031 return;
1032 1032 }
1033 - var screenData = this.getScreenData();
1034 - if (screenData) {
1035 - this.trackScreen(screenData.screenId, screenData.screenType);
1036 - }
1037 1033 this.attachTabChangeTracking();
1038 1034 }
1039 1035 }, {
1040 1036 key: "destroy",
@@ -1264,34 +1260,195 @@
1264 1260 var _default = exports["default"] = ScreenViewTracking;
1265 1261
1266 1262 /***/ }),
1267 1263
1264 +/***/ "../app/assets/js/event-track/dashboard/top-bar.js":
1265 +/*!*********************************************************!*\
1266 + !*** ../app/assets/js/event-track/dashboard/top-bar.js ***!
1267 + \*********************************************************/
1268 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1269 +
1270 +"use strict";
1271 +
1272 +
1273 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1274 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
1275 +Object.defineProperty(exports, "__esModule", ({
1276 + value: true
1277 +}));
1278 +exports["default"] = void 0;
1279 +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1280 +var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1281 +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1282 +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1283 +var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1284 +var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
1285 +var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
1286 +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); }
1287 +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)); }
1288 +function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1289 +var TOP_BAR_SELECTORS = {
1290 + TOP_BAR_ROOT: '.e-admin-top-bar',
1291 + BAR_BUTTON: '.e-admin-top-bar__bar-button',
1292 + BUTTON_TITLE: '.e-admin-top-bar__bar-button-title',
1293 + MAIN_AREA: '.e-admin-top-bar__main-area',
1294 + SECONDARY_AREA: '.e-admin-top-bar__secondary-area'
1295 +};
1296 +var TopBarTracking = /*#__PURE__*/function (_BaseTracking) {
1297 + function TopBarTracking() {
1298 + (0, _classCallCheck2.default)(this, TopBarTracking);
1299 + return _callSuper(this, TopBarTracking, arguments);
1300 + }
1301 + (0, _inherits2.default)(TopBarTracking, _BaseTracking);
1302 + return (0, _createClass2.default)(TopBarTracking, null, [{
1303 + key: "init",
1304 + value: function init() {
1305 + this.waitForTopBar();
1306 + }
1307 + }, {
1308 + key: "waitForTopBar",
1309 + value: function waitForTopBar() {
1310 + var _this = this;
1311 + var topBar = document.querySelector(TOP_BAR_SELECTORS.TOP_BAR_ROOT);
1312 + if (topBar) {
1313 + this.attachTopBarTracking(topBar);
1314 + return;
1315 + }
1316 + var observer = this.addObserver(document.body, {
1317 + childList: true,
1318 + subtree: true
1319 + }, function () {
1320 + var foundTopBar = document.querySelector(TOP_BAR_SELECTORS.TOP_BAR_ROOT);
1321 + if (foundTopBar) {
1322 + _this.attachTopBarTracking(foundTopBar);
1323 + observer.disconnect();
1324 + clearTimeout(timeoutId);
1325 + }
1326 + });
1327 + var timeoutId = setTimeout(function () {
1328 + observer.disconnect();
1329 + }, 10000);
1330 + }
1331 + }, {
1332 + key: "attachTopBarTracking",
1333 + value: function attachTopBarTracking(topBar) {
1334 + var _this2 = this;
1335 + var buttons = topBar.querySelectorAll(TOP_BAR_SELECTORS.BAR_BUTTON);
1336 + buttons.forEach(function (button) {
1337 + _this2.addEventListenerTracked(button, 'click', function (event) {
1338 + _this2.handleTopBarClick(event);
1339 + });
1340 + });
1341 + this.observeTopBarChanges(topBar);
1342 + }
1343 + }, {
1344 + key: "observeTopBarChanges",
1345 + value: function observeTopBarChanges(topBar) {
1346 + var _this3 = this;
1347 + this.addObserver(topBar, {
1348 + childList: true,
1349 + subtree: true
1350 + }, function (mutations) {
1351 + mutations.forEach(function (mutation) {
1352 + if ('childList' === mutation.type) {
1353 + mutation.addedNodes.forEach(function (node) {
1354 + if (1 === node.nodeType) {
1355 + if (node.matches && node.matches(TOP_BAR_SELECTORS.BAR_BUTTON)) {
1356 + _this3.addEventListenerTracked(node, 'click', function (event) {
1357 + _this3.handleTopBarClick(event);
1358 + });
1359 + } else {
1360 + var buttons = node.querySelectorAll ? node.querySelectorAll(TOP_BAR_SELECTORS.BAR_BUTTON) : [];
1361 + buttons.forEach(function (button) {
1362 + _this3.addEventListenerTracked(button, 'click', function (event) {
1363 + _this3.handleTopBarClick(event);
1364 + });
1365 + });
1366 + }
1367 + }
1368 + });
1369 + }
1370 + });
1371 + });
1372 + }
1373 + }, {
1374 + key: "handleTopBarClick",
1375 + value: function handleTopBarClick(event) {
1376 + var button = event.currentTarget;
1377 + var itemId = this.extractItemId(button);
1378 + _wpDashboardTracking.default.trackNavClicked(itemId, null, _wpDashboardTracking.NAV_AREAS.TOP_BAR);
1379 + }
1380 + }, {
1381 + key: "extractItemId",
1382 + value: function extractItemId(button) {
1383 + var titleElement = button.querySelector(TOP_BAR_SELECTORS.BUTTON_TITLE);
1384 + if (titleElement && titleElement.textContent.trim()) {
1385 + return titleElement.textContent.trim();
1386 + }
1387 + var textContent = button.textContent.trim();
1388 + if (textContent) {
1389 + return textContent;
1390 + }
1391 + var href = button.getAttribute('href');
1392 + if (href) {
1393 + var urlParams = new URLSearchParams(href.split('?')[1] || '');
1394 + var page = urlParams.get('page');
1395 + if (page) {
1396 + return page;
1397 + }
1398 + if (href.includes('/wp-admin/')) {
1399 + var pathParts = href.split('/wp-admin/')[1];
1400 + if (pathParts) {
1401 + return pathParts.split('?')[0];
1402 + }
1403 + }
1404 + try {
1405 + var url = new URL(href, window.location.origin);
1406 + return url.pathname.split('/').filter(Boolean).pop() || url.hostname;
1407 + } catch (error) {
1408 + return href;
1409 + }
1410 + }
1411 + var dataInfo = button.getAttribute('data-info');
1412 + if (dataInfo) {
1413 + return dataInfo;
1414 + }
1415 + var classes = button.className.split(' ').filter(function (cls) {
1416 + return cls && 'e-admin-top-bar__bar-button' !== cls;
1417 + });
1418 + if (classes.length > 0) {
1419 + return classes.join('-');
1420 + }
1421 + return 'unknown-top-bar-button';
1422 + }
1423 + }]);
1424 +}(_baseTracking.default);
1425 +var _default = exports["default"] = TopBarTracking;
1426 +
1427 +/***/ }),
1428 +
1268 1429 /***/ "../app/assets/js/event-track/dashboard/utils.js":
1269 1430 /*!*******************************************************!*\
1270 1431 !*** ../app/assets/js/event-track/dashboard/utils.js ***!
1271 1432 \*******************************************************/
1272 -/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1433 +/***/ ((__unused_webpack_module, exports) => {
1273 1434
1274 1435 "use strict";
1275 1436
1276 1437
1277 -var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1278 1438 Object.defineProperty(exports, "__esModule", ({
1279 1439 value: true
1280 1440 }));
1281 1441 exports.DashboardUtils = void 0;
1282 -var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
1283 1442 var DashboardUtils = exports.DashboardUtils = {
1284 1443 isElementorPage: function isElementorPage() {
1285 1444 var urlParams = new URLSearchParams(window.location.search);
1286 1445 var page = urlParams.get('page');
1287 - if (page && _wpDashboardTracking.default.elementorPages.some(function (p) {
1288 - return page.includes(p);
1289 - })) {
1446 + if (page && (page.startsWith('elementor') || page.includes('elementor'))) {
1290 1447 return true;
1291 1448 }
1292 1449 var postType = urlParams.get('post_type');
1293 - if (_wpDashboardTracking.default.elementorPostTypes.includes(postType)) {
1450 + if ('elementor_library' === postType || 'e-floating-buttons' === postType) {
1294 1451 return true;
1295 1452 }
1296 1453 var body = document.body;
1297 1454 var bodyClasses = body.className.split(' ');
@@ -1325,9 +1482,9 @@
1325 1482 var _promotion = _interopRequireDefault(__webpack_require__(/*! ./dashboard/promotion */ "../app/assets/js/event-track/dashboard/promotion.js"));
1326 1483 var _screenView = _interopRequireDefault(__webpack_require__(/*! ./dashboard/screen-view */ "../app/assets/js/event-track/dashboard/screen-view.js"));
1327 1484 var _menuPromotion = _interopRequireDefault(__webpack_require__(/*! ./dashboard/menu-promotion */ "../app/assets/js/event-track/dashboard/menu-promotion.js"));
1328 1485 var _actionControls = _interopRequireDefault(__webpack_require__(/*! ./dashboard/action-controls */ "../app/assets/js/event-track/dashboard/action-controls.js"));
1329 -var _WpDashboardTracking;
1486 +var _topBar = _interopRequireDefault(__webpack_require__(/*! ./dashboard/top-bar */ "../app/assets/js/event-track/dashboard/top-bar.js"));
1330 1487 var SESSION_TIMEOUT_MINUTES = 30;
1331 1488 var MINUTE_MS = 60 * 1000;
1332 1489 var SESSION_TIMEOUT = SESSION_TIMEOUT_MINUTES * MINUTE_MS;
1333 1490 var ACTIVITY_CHECK_INTERVAL = 1 * MINUTE_MS;
@@ -1512,11 +1669,13 @@
1512 1669 var params = urlObj.searchParams;
1513 1670 var page = params.get('page');
1514 1671 var postType = params.get('post_type');
1515 1672 var action = params.get('action');
1516 - return !!(page && this.elementorPages.some(function (p) {
1673 + var elementorPages = ['elementor', 'go_knowledge_base_site', 'e-form-submissions'];
1674 + var elementorPostTypes = ['elementor_library', 'e-floating-buttons'];
1675 + return page && elementorPages.some(function (p) {
1517 1676 return page.includes(p);
1518 - }) || postType && this.elementorPostTypes.includes(postType) || action && action.includes(this.anyPageWithElementorString));
1677 + }) || postType && elementorPostTypes.includes(postType) || action && action.includes('elementor');
1519 1678 } catch (error) {
1520 1679 return false;
1521 1680 }
1522 1681 }
@@ -1711,16 +1870,15 @@
1711 1870 _screenView.default.destroy();
1712 1871 _promotion.default.destroy();
1713 1872 _menuPromotion.default.destroy();
1714 1873 _actionControls.default.destroy();
1874 + if (!WpDashboardTracking.isEditorOneActive()) {
1875 + _topBar.default.destroy();
1876 + }
1715 1877 this.initialized = false;
1716 1878 }
1717 1879 }]);
1718 1880 }();
1719 -_WpDashboardTracking = WpDashboardTracking;
1720 -(0, _defineProperty2.default)(WpDashboardTracking, "anyPageWithElementorString", 'elementor');
1721 -(0, _defineProperty2.default)(WpDashboardTracking, "elementorPages", [_WpDashboardTracking.anyPageWithElementorString, 'e-form-submissions', 'popup_templates']);
1722 -(0, _defineProperty2.default)(WpDashboardTracking, "elementorPostTypes", ['elementor_library', 'e-floating-buttons', 'elementor_snippet', 'elementor_font', 'elementor_icons']);
1723 1881 (0, _defineProperty2.default)(WpDashboardTracking, "sessionStartTime", Date.now());
1724 1882 (0, _defineProperty2.default)(WpDashboardTracking, "lastActivityTime", Date.now());
1725 1883 (0, _defineProperty2.default)(WpDashboardTracking, "sessionEnded", false);
1726 1884 (0, _defineProperty2.default)(WpDashboardTracking, "navItemsVisited", new Set());
@@ -1741,8 +1899,11 @@
1741 1899 _screenView.default.init();
1742 1900 _promotion.default.init();
1743 1901 _menuPromotion.default.init();
1744 1902 _actionControls.default.init();
1903 + if (!WpDashboardTracking.isEditorOneActive()) {
1904 + _topBar.default.init();
1905 + }
1745 1906 }
1746 1907 });
1747 1908 window.addEventListener('beforeunload', function () {
1748 1909 _navigation.default.destroy();
@@ -3820,8 +3981,9 @@
3820 3981 $importForm: $('#elementor-import-template-form'),
3821 3982 $importFormFileInput: $('#elementor-import-template-form input[type="file"]'),
3822 3983 $settingsForm: $('#elementor-settings-form'),
3823 3984 $settingsTabsWrapper: $('#elementor-settings-tabs-wrapper'),
3985 + $menuGetHelpLink: $('a[href="admin.php?page=go_knowledge_base_site"]'),
3824 3986 $menuGoProLink: $('a[href="admin.php?page=go_elementor_pro"]'),
3825 3987 $reMigrateGlobalsButton: $('.elementor-re-migrate-globals-button')
3826 3988 };
3827 3989 elements.$settingsFormPages = elements.$settingsForm.find('.elementor-settings-form-page');
@@ -3885,31 +4047,33 @@
3885 4047 $wrapperElm.remove();
3886 4048 });
3887 4049 });
3888 4050 });
3889 - var campaignNotices = {
3890 - plugin_image_optimization: 'elementor_image_optimization_campaign',
3891 - site_mailer_promotion: 'elementor_core_site_mailer_campaign'
3892 - };
3893 - Object.keys(campaignNotices).forEach(function (noticeId) {
3894 - $(".e-notice--cta.e-notice--dismissible[data-notice_id=\"".concat(noticeId, "\"] a.e-button--cta")).on('click', function () {
3895 - var $button = $(this);
3896 - elementorCommon.ajax.addRequest(campaignNotices[noticeId], {
3897 - data: {
3898 - campaign: ($button === null || $button === void 0 ? void 0 : $button.data('campaign')) || '',
3899 - source: ($button === null || $button === void 0 ? void 0 : $button.data('source')) || '',
3900 - medium: ($button === null || $button === void 0 ? void 0 : $button.data('medium')) || ''
3901 - }
3902 - });
4051 + $('.e-notice--cta.e-notice--dismissible[data-notice_id="plugin_image_optimization"] a.e-button--cta').on('click', function () {
4052 + var $notice = $(this).closest('.e-notice');
4053 + var source = $notice.data('source') || 'io-wp-media-library-install';
4054 + elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', {
4055 + data: {
4056 + source: source
4057 + }
3903 4058 });
3904 4059 });
3905 4060 $('.e-a-apps .e-a-item[data-plugin="image-optimization/image-optimization.php"] a.e-btn').on('click', function () {
4061 + var $item = $(this).closest('.e-a-item');
4062 + var source = $item.data('source') || 'io-esetting-addons-install';
4063 + elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', {
4064 + data: {
4065 + source: source
4066 + }
4067 + });
4068 + });
4069 + $('.e-notice--cta.e-notice--dismissible[data-notice_id="site_mailer_promotion"] a.e-button--cta').on('click', function () {
3906 4070 var $button = $(this);
3907 - elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', {
4071 + var $notice = $button.closest('.e-notice');
4072 + var source = $button.data('source') || $notice.data('source') || ($notice.hasClass('sm-notice-wc') ? 'sm-core-woo-install' : 'sm-core-form-install');
4073 + elementorCommon.ajax.addRequest('elementor_core_site_mailer_campaign', {
3908 4074 data: {
3909 - campaign: ($button === null || $button === void 0 ? void 0 : $button.data('campaign')) || '',
3910 - source: ($button === null || $button === void 0 ? void 0 : $button.data('source')) || '',
3911 - medium: ($button === null || $button === void 0 ? void 0 : $button.data('medium')) || ''
4075 + source: source
3912 4076 }
3913 4077 });
3914 4078 });
3915 4079 $('#elementor-clear-cache-button').on('click', function (event) {
@@ -4032,9 +4196,9 @@
4032 4196 $rollbackButton = $this.next('.elementor-rollback-button'),
4033 4197 placeholderText = $rollbackButton.data('placeholder-text'),
4034 4198 placeholderUrl = $rollbackButton.data('placeholder-url');
4035 4199 $rollbackButton.html(placeholderText.replace('{VERSION}', $this.val()));
4036 - $rollbackButton.data('href', placeholderUrl.replace('VERSION', $this.val()));
4200 + $rollbackButton.attr('href', placeholderUrl.replace('VERSION', $this.val()));
4037 4201 }).trigger('change');
4038 4202 $('.elementor-rollback-button').on('click', function (event) {
4039 4203 event.preventDefault();
4040 4204 var $this = $(this);
@@ -4046,9 +4210,9 @@
4046 4210 cancel: __('Cancel', 'elementor')
4047 4211 },
4048 4212 onConfirm: function onConfirm() {
4049 4213 $this.addClass('loading');
4050 - location.href = $this.data('href');
4214 + location.href = $this.attr('href');
4051 4215 }
4052 4216 }).show();
4053 4217 });
4054 4218 self.elements.$reMigrateGlobalsButton.on('click', function (event) {
@@ -4112,9 +4276,9 @@
4112 4276 *
4113 4277 * @since 3.6.0
4114 4278 */
4115 4279 openLinksInNewTab: function openLinksInNewTab() {
4116 - var elements = [this.elements.$menuGoProLink];
4280 + var elements = [this.elements.$menuGetHelpLink, this.elements.$menuGoProLink];
4117 4281 elements.forEach(function ($element) {
4118 4282 // Only add the attribute if the element is found.
4119 4283 if ($element.length) {
4120 4284 $element.attr('target', '_blank');