PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.1
Elementor Website Builder – more than just a page builder v4.2.1
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 4.0.7 All 451 releases
elementor / assets / js / admin.js

admin.js in Elementor Website Builder – more than just a page builder 4.2.1, at assets/js/admin.js

4,323 lines 192.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "../app/assets/js/event-track/dashboard/action-controls.js":
5 /*!*****************************************************************!*\
6 !*** ../app/assets/js/event-track/dashboard/action-controls.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 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
15 Object.defineProperty(exports, "__esModule", ({
16 value: true
17 }));
18 exports["default"] = void 0;
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 _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
22 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
23 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
24 var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
25 var _utils = __webpack_require__(/*! ./utils */ "../app/assets/js/event-track/dashboard/utils.js");
26 var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
27 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); }
28 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; } } }; }
29 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; } }
30 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; }
31 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)); }
32 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
33 var EXCLUDED_SELECTORS = {
34 ADMIN_MENU: '#adminmenu',
35 TOP_BAR: '.e-admin-top-bar',
36 TOP_BAR_EDITOR_ONE: '#editor-one-top-bar',
37 WP_ADMIN_BAR: '#wpadminbar',
38 SUBMENU: '.wp-submenu',
39 PROMO_PAGE: '.e-feature-promotion',
40 PROMO_BLANK_STATE: '.elementor-blank_state',
41 APP: '.e-app',
42 SIDEBAR_NAVIGATION: '#editor-one-sidebar-navigation',
43 FLYOUT_MENU: '.elementor-submenu-flyout'
44 };
45 var ActionControlTracking = /*#__PURE__*/function (_BaseTracking) {
46 function ActionControlTracking() {
47 (0, _classCallCheck2.default)(this, ActionControlTracking);
48 return _callSuper(this, ActionControlTracking, arguments);
49 }
50 (0, _inherits2.default)(ActionControlTracking, _BaseTracking);
51 return (0, _createClass2.default)(ActionControlTracking, null, [{
52 key: "init",
53 value: function init() {
54 if (!_utils.DashboardUtils.isElementorPage()) {
55 return;
56 }
57 this.attachDelegatedHandlers();
58 this.addTrackingAttributesToFilterButtons();
59 this.initializeLinkDataIds();
60 }
61 }, {
62 key: "initializeLinkDataIds",
63 value: function initializeLinkDataIds() {
64 var _this = this;
65 var initializeLinks = function initializeLinks() {
66 var links = document.querySelectorAll('a[href]');
67 links.forEach(function (link) {
68 if (_this.isExcludedElement(link) || _this.isNavigationLink(link) || link.hasAttribute('data-id')) {
69 return;
70 }
71 var href = link.getAttribute('href');
72 if (!href) {
73 return;
74 }
75 var cleanedHref = _this.removeNonceFromUrl(href);
76 if (cleanedHref) {
77 link.setAttribute('data-id', cleanedHref);
78 }
79 });
80 };
81 if ('loading' === document.readyState) {
82 document.addEventListener('DOMContentLoaded', initializeLinks);
83 } else {
84 initializeLinks();
85 }
86 }
87 }, {
88 key: "addTrackingAttributesToFilterButtons",
89 value: function addTrackingAttributesToFilterButtons() {
90 var body = document.body;
91 if (!body) {
92 return;
93 }
94 var screenPrefix = '';
95 switch (true) {
96 case body.classList.contains('post-type-elementor_library'):
97 screenPrefix = 'elementor_library-library';
98 break;
99 case body.classList.contains('post-type-e-floating-buttons'):
100 screenPrefix = 'e-floating-buttons';
101 break;
102 default:
103 return;
104 }
105 var addDataIdToListTableButtons = function addDataIdToListTableButtons() {
106 var buttonConfigs = [{
107 id: 'post-query-submit',
108 suffix: 'filter'
109 }, {
110 id: 'search-submit',
111 suffix: 'search'
112 }, {
113 id: 'doaction',
114 suffix: 'apply'
115 }, {
116 id: 'doaction2',
117 suffix: 'apply-bottom'
118 }];
119 buttonConfigs.forEach(function (config) {
120 var button = document.getElementById(config.id);
121 if (!button || button.hasAttribute('data-id')) {
122 return;
123 }
124 button.setAttribute('data-id', "".concat(screenPrefix, "-button-").concat(config.suffix));
125 });
126 };
127 if ('loading' === document.readyState) {
128 document.addEventListener('DOMContentLoaded', addDataIdToListTableButtons);
129 } else {
130 addDataIdToListTableButtons();
131 }
132 }
133 }, {
134 key: "isExcludedElement",
135 value: function isExcludedElement(element) {
136 for (var _i = 0, _Object$values = Object.values(EXCLUDED_SELECTORS); _i < _Object$values.length; _i++) {
137 var selector = _Object$values[_i];
138 if (element.closest(selector)) {
139 return true;
140 }
141 }
142 if (element.classList.contains('go-pro')) {
143 return true;
144 }
145 return false;
146 }
147 }, {
148 key: "attachDelegatedHandlers",
149 value: function attachDelegatedHandlers() {
150 var _this2 = this;
151 var FILTER_BUTTON_IDS = ['search-submit', 'post-query-submit'];
152 this.addEventListenerTracked(document, 'click', function (event) {
153 var _event$target;
154 var base = event.target && 1 === event.target.nodeType ? event.target : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.parentElement;
155 if (!base) {
156 return;
157 }
158 var toggle = base.closest('.elementor-role-toggle');
159 if (toggle && !_this2.isExcludedElement(toggle)) {
160 _this2.trackControl(toggle, _wpDashboardTracking.CONTROL_TYPES.TOGGLE);
161 return;
162 }
163 var button = base.closest('button, input[type="submit"], input[type="button"], .button, .e-btn');
164 if (button && !_this2.isExcludedElement(button)) {
165 if (FILTER_BUTTON_IDS.includes(button.id)) {
166 _this2.trackControl(button, _wpDashboardTracking.CONTROL_TYPES.FILTER);
167 return;
168 }
169 _this2.trackControl(button, _wpDashboardTracking.CONTROL_TYPES.BUTTON);
170 return;
171 }
172 var link = base.closest('a');
173 if (link && !_this2.isExcludedElement(link) && !_this2.isNavigationLink(link)) {
174 _this2.trackControl(link, _wpDashboardTracking.CONTROL_TYPES.LINK);
175 }
176 }, {
177 capture: false
178 });
179 this.addEventListenerTracked(document, 'change', function (event) {
180 var _event$target2;
181 var base = event.target && 1 === event.target.nodeType ? event.target : (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.parentElement;
182 if (!base) {
183 return;
184 }
185 var toggle = null;
186 if (_wpDashboardTracking.default.isEditorOneActive()) {
187 toggle = base.closest('.MuiSwitch-switchBase');
188 } else {
189 toggle = base.closest('.components-toggle-control');
190 }
191 if (toggle && !_this2.isExcludedElement(toggle)) {
192 _this2.trackControl(toggle, _wpDashboardTracking.CONTROL_TYPES.TOGGLE);
193 return;
194 }
195 var checkbox = base.closest('input[type="checkbox"]');
196 if (checkbox && !_this2.isExcludedElement(checkbox)) {
197 _this2.trackControl(checkbox, _wpDashboardTracking.CONTROL_TYPES.CHECKBOX);
198 return;
199 }
200 var radio = base.closest('input[type="radio"]');
201 if (radio && !_this2.isExcludedElement(radio)) {
202 _this2.trackControl(radio, _wpDashboardTracking.CONTROL_TYPES.RADIO);
203 return;
204 }
205 var select = base.closest('select');
206 if (select && !_this2.isExcludedElement(select)) {
207 _this2.trackControl(select, _wpDashboardTracking.CONTROL_TYPES.SELECT);
208 }
209 });
210 }
211 }, {
212 key: "isNavigationLink",
213 value: function isNavigationLink(link) {
214 var href = link.getAttribute('href');
215 if (!href) {
216 return false;
217 }
218 if (href.startsWith('#') && href.includes('tab')) {
219 return true;
220 }
221 if (link.classList.contains('nav-tab')) {
222 return true;
223 }
224 var isInNavigation = link.closest('.wp-submenu, #adminmenu, .e-admin-top-bar, #wpadminbar');
225 return !!isInNavigation;
226 }
227 }, {
228 key: "trackControl",
229 value: function trackControl(element, controlType) {
230 var controlIdentifier = this.extractControlIdentifier(element, controlType);
231 if (!controlIdentifier) {
232 return;
233 }
234 _wpDashboardTracking.default.trackActionControl(controlIdentifier, controlType);
235 }
236 }, {
237 key: "extractControlIdentifier",
238 value: function extractControlIdentifier(element, controlType) {
239 if (_wpDashboardTracking.CONTROL_TYPES.RADIO === controlType) {
240 var name = element.getAttribute('name');
241 var value = element.value || element.getAttribute('value');
242 if (name && value) {
243 return "".concat(name, "-").concat(value);
244 }
245 if (name) {
246 return name;
247 }
248 }
249 if (_wpDashboardTracking.CONTROL_TYPES.SELECT === controlType) {
250 var _name = element.getAttribute('name');
251 if (_name) {
252 return _name;
253 }
254 }
255 if (_wpDashboardTracking.CONTROL_TYPES.CHECKBOX === controlType) {
256 var _name2 = element.getAttribute('name');
257 if (_name2) {
258 var checkboxesWithSameName = document.querySelectorAll("input[type=\"checkbox\"][name=\"".concat(CSS.escape(_name2), "\"]"));
259 if (checkboxesWithSameName.length > 1) {
260 var _value = element.value || element.getAttribute('value');
261 if (_value) {
262 return "".concat(_name2, "-").concat(_value);
263 }
264 }
265 return _name2;
266 }
267 }
268 if (_wpDashboardTracking.CONTROL_TYPES.LINK === controlType) {
269 var dataId = element.getAttribute('data-id');
270 if (dataId) {
271 return dataId;
272 }
273 var href = element.getAttribute('href');
274 if (href) {
275 return this.removeNonceFromUrl(href);
276 }
277 }
278 if (_wpDashboardTracking.CONTROL_TYPES.BUTTON === controlType || _wpDashboardTracking.CONTROL_TYPES.TOGGLE === controlType || _wpDashboardTracking.CONTROL_TYPES.FILTER === controlType) {
279 var _dataId = element.getAttribute('data-id');
280 if (_dataId) {
281 return _dataId;
282 }
283 var classIdMatch = this.extractClassId(element);
284 if (classIdMatch) {
285 return classIdMatch;
286 }
287 }
288 return '';
289 }
290 }, {
291 key: "extractClassId",
292 value: function extractClassId(element) {
293 var classes = element.className;
294 if (!classes || 'string' !== typeof classes) {
295 return '';
296 }
297 var classList = classes.split(' ');
298 var _iterator = _createForOfIteratorHelper(classList),
299 _step;
300 try {
301 for (_iterator.s(); !(_step = _iterator.n()).done;) {
302 var cls = _step.value;
303 if (cls.startsWith('e-id-')) {
304 return cls.substring(5);
305 }
306 }
307 } catch (err) {
308 _iterator.e(err);
309 } finally {
310 _iterator.f();
311 }
312 return '';
313 }
314 }, {
315 key: "removeNonceFromUrl",
316 value: function removeNonceFromUrl(url) {
317 try {
318 var urlObj = new URL(url, window.location.origin);
319 urlObj.searchParams.delete('_wpnonce');
320 var postParam = urlObj.searchParams.get('post');
321 if (postParam !== null && /^[0-9]+$/.test(postParam)) {
322 urlObj.searchParams.delete('post');
323 }
324 return urlObj.pathname + urlObj.search + urlObj.hash;
325 } catch (e) {
326 return url;
327 }
328 }
329 }]);
330 }(_baseTracking.default);
331 var _default = exports["default"] = ActionControlTracking;
332
333 /***/ }),
334
335 /***/ "../app/assets/js/event-track/dashboard/base-tracking.js":
336 /*!***************************************************************!*\
337 !*** ../app/assets/js/event-track/dashboard/base-tracking.js ***!
338 \***************************************************************/
339 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
340
341 "use strict";
342
343
344 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
345 Object.defineProperty(exports, "__esModule", ({
346 value: true
347 }));
348 exports["default"] = void 0;
349 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
350 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
351 var BaseTracking = /*#__PURE__*/function () {
352 function BaseTracking() {
353 (0, _classCallCheck2.default)(this, BaseTracking);
354 }
355 return (0, _createClass2.default)(BaseTracking, null, [{
356 key: "ensureOwnArrays",
357 value: function ensureOwnArrays() {
358 if (!Object.prototype.hasOwnProperty.call(this, 'observers')) {
359 this.observers = [];
360 }
361 if (!Object.prototype.hasOwnProperty.call(this, 'eventListeners')) {
362 this.eventListeners = [];
363 }
364 }
365 }, {
366 key: "destroy",
367 value: function destroy() {
368 this.ensureOwnArrays();
369 this.observers.forEach(function (observer) {
370 return observer.disconnect();
371 });
372 this.observers = [];
373 this.eventListeners.forEach(function (_ref) {
374 var target = _ref.target,
375 type = _ref.type,
376 handler = _ref.handler,
377 options = _ref.options;
378 target.removeEventListener(type, handler, options);
379 });
380 this.eventListeners = [];
381 }
382 }, {
383 key: "addObserver",
384 value: function addObserver(target, options, callback) {
385 this.ensureOwnArrays();
386 var observer = new MutationObserver(callback);
387 observer.observe(target, options);
388 this.observers.push(observer);
389 return observer;
390 }
391 }, {
392 key: "addEventListenerTracked",
393 value: function addEventListenerTracked(target, type, handler) {
394 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
395 this.ensureOwnArrays();
396 target.addEventListener(type, handler, options);
397 this.eventListeners.push({
398 target: target,
399 type: type,
400 handler: handler,
401 options: options
402 });
403 }
404 }]);
405 }();
406 var _default = exports["default"] = BaseTracking;
407
408 /***/ }),
409
410 /***/ "../app/assets/js/event-track/dashboard/menu-promotion.js":
411 /*!****************************************************************!*\
412 !*** ../app/assets/js/event-track/dashboard/menu-promotion.js ***!
413 \****************************************************************/
414 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
415
416 "use strict";
417
418
419 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
420 Object.defineProperty(exports, "__esModule", ({
421 value: true
422 }));
423 exports["default"] = void 0;
424 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
425 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
426 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
427 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
428 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
429 var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
430 var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
431 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)); }
432 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
433 var PROMO_MENU_ITEMS = {
434 go_elementor_pro: 'Upgrade',
435 'elementor-one-upgrade': 'Upgrade'
436 };
437 var MenuPromotionTracking = /*#__PURE__*/function (_BaseTracking) {
438 function MenuPromotionTracking() {
439 (0, _classCallCheck2.default)(this, MenuPromotionTracking);
440 return _callSuper(this, MenuPromotionTracking, arguments);
441 }
442 (0, _inherits2.default)(MenuPromotionTracking, _BaseTracking);
443 return (0, _createClass2.default)(MenuPromotionTracking, null, [{
444 key: "init",
445 value: function init() {
446 this.attachDelegatedTracking();
447 }
448 }, {
449 key: "attachDelegatedTracking",
450 value: function attachDelegatedTracking() {
451 var _this = this;
452 this.addEventListenerTracked(document, 'click', function (event) {
453 var target = event.target;
454 if (!target) {
455 return;
456 }
457 var link = target.closest('a');
458 if (!link) {
459 return;
460 }
461 var href = link.getAttribute('href');
462 if (!href) {
463 return;
464 }
465 var menuItemKey = _this.extractPromoMenuKey(href);
466 if (!menuItemKey) {
467 return;
468 }
469 _this.handleMenuPromoClick(link, menuItemKey);
470 }, {
471 capture: true
472 });
473 }
474 }, {
475 key: "extractPromoMenuKey",
476 value: function extractPromoMenuKey(href) {
477 for (var _i = 0, _Object$keys = Object.keys(PROMO_MENU_ITEMS); _i < _Object$keys.length; _i++) {
478 var menuItemKey = _Object$keys[_i];
479 if (href.includes("page=".concat(menuItemKey))) {
480 return menuItemKey;
481 }
482 }
483 return null;
484 }
485 }, {
486 key: "handleMenuPromoClick",
487 value: function handleMenuPromoClick(menuItem, menuItemKey) {
488 var destination = menuItem.getAttribute('href');
489 var promoName = PROMO_MENU_ITEMS[menuItemKey];
490 var path = menuItemKey.replace('elementor_', '').replace(/_/g, '/');
491 _wpDashboardTracking.default.trackPromoClicked(promoName, destination, path);
492 }
493 }]);
494 }(_baseTracking.default);
495 var _default = exports["default"] = MenuPromotionTracking;
496
497 /***/ }),
498
499 /***/ "../app/assets/js/event-track/dashboard/navigation.js":
500 /*!************************************************************!*\
501 !*** ../app/assets/js/event-track/dashboard/navigation.js ***!
502 \************************************************************/
503 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
504
505 "use strict";
506
507
508 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
509 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
510 Object.defineProperty(exports, "__esModule", ({
511 value: true
512 }));
513 exports["default"] = void 0;
514 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
515 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
516 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
517 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
518 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
519 var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
520 var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
521 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); }
522 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)); }
523 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
524 var ELEMENTOR_MENU_SELECTORS = {
525 ELEMENTOR_TOP_LEVEL: 'li#toplevel_page_elementor',
526 TEMPLATES_TOP_LEVEL: 'li#menu-posts-elementor_library',
527 ELEMENTOR_HOME_TOP_LEVEL: 'li#toplevel_page_elementor-home',
528 ADMIN_MENU: '#adminmenu',
529 TOP_LEVEL_LINK: '.wp-menu-name',
530 SUBMENU_CONTAINER: '.wp-submenu',
531 SUBMENU_ITEM: '.wp-submenu li a',
532 SUBMENU_ITEM_TOP_LEVEL: '.wp-has-submenu',
533 SIDEBAR_NAVIGATION: '#editor-one-sidebar-navigation'
534 };
535 var NavigationTracking = /*#__PURE__*/function (_BaseTracking) {
536 function NavigationTracking() {
537 (0, _classCallCheck2.default)(this, NavigationTracking);
538 return _callSuper(this, NavigationTracking, arguments);
539 }
540 (0, _inherits2.default)(NavigationTracking, _BaseTracking);
541 return (0, _createClass2.default)(NavigationTracking, null, [{
542 key: "init",
543 value: function init() {
544 if (_wpDashboardTracking.default.isEditorOneActive()) {
545 this.attachSidebarNavigationTracking();
546 this.attachElementorHomeMenuTracking();
547 } else {
548 this.attachElementorMenuTracking();
549 this.attachTemplatesMenuTracking();
550 }
551 }
552 }, {
553 key: "attachTemplatesMenuTracking",
554 value: function attachTemplatesMenuTracking() {
555 var templatesMenu = document.querySelector(ELEMENTOR_MENU_SELECTORS.TEMPLATES_TOP_LEVEL);
556 if (!templatesMenu) {
557 return;
558 }
559 this.attachMenuTracking(templatesMenu, 'Templates');
560 }
561 }, {
562 key: "attachElementorHomeMenuTracking",
563 value: function attachElementorHomeMenuTracking() {
564 var elementorHomeMenu = document.querySelector(ELEMENTOR_MENU_SELECTORS.ELEMENTOR_HOME_TOP_LEVEL);
565 if (!elementorHomeMenu) {
566 return;
567 }
568 this.attachMenuTracking(elementorHomeMenu, 'Elementor');
569 }
570 }, {
571 key: "attachElementorMenuTracking",
572 value: function attachElementorMenuTracking() {
573 var elementorMenu = document.querySelector(ELEMENTOR_MENU_SELECTORS.ELEMENTOR_TOP_LEVEL);
574 if (!elementorMenu) {
575 return;
576 }
577 this.attachMenuTracking(elementorMenu, 'Elementor');
578 }
579 }, {
580 key: "attachSidebarNavigationTracking",
581 value: function attachSidebarNavigationTracking() {
582 var sidebar = document.querySelector(ELEMENTOR_MENU_SELECTORS.SIDEBAR_NAVIGATION);
583 if (sidebar) {
584 this.attachSidebarClickListener(sidebar);
585 }
586 }
587 }, {
588 key: "attachSidebarClickListener",
589 value: function attachSidebarClickListener(sidebar) {
590 var _this = this;
591 this.addEventListenerTracked(sidebar, 'click', function (event) {
592 _this.handleSidebarClick(event);
593 }, {
594 capture: true
595 });
596 }
597 }, {
598 key: "attachMenuTracking",
599 value: function attachMenuTracking(menuElement, menuName) {
600 var _this2 = this;
601 this.addEventListenerTracked(menuElement, 'click', function (event) {
602 _this2.handleMenuClick(event, menuName);
603 });
604 }
605 }, {
606 key: "handleMenuClick",
607 value: function handleMenuClick(event, menuName) {
608 var link = event.target.closest('a');
609 if (!link) {
610 return;
611 }
612 var isTopLevel = link.classList.contains('menu-top');
613 var itemId = this.extractItemId(link);
614 var area = this.determineNavArea(link);
615 _wpDashboardTracking.default.trackNavClicked(itemId, isTopLevel ? null : menuName, area);
616 }
617 }, {
618 key: "handleSidebarClick",
619 value: function handleSidebarClick(event) {
620 var clickedElement = event.target.closest('a, button, [role="button"]');
621 if (!clickedElement) {
622 return;
623 }
624 var itemId = this.extractSidebarItemId(clickedElement);
625 _wpDashboardTracking.default.trackNavClicked(itemId, null, _wpDashboardTracking.NAV_AREAS.SIDEBAR_MENU);
626 }
627 }, {
628 key: "extractSidebarItemId",
629 value: function extractSidebarItemId(element) {
630 var paragraph = element.querySelector('p');
631 if (paragraph) {
632 return paragraph.textContent.trim();
633 }
634 var textContent = element.textContent.trim();
635 if (textContent) {
636 return textContent;
637 }
638 return 'unknown';
639 }
640 }, {
641 key: "extractPageFromUrl",
642 value: function extractPageFromUrl(href) {
643 var urlParams = new URLSearchParams(href.split('?')[1] || '');
644 var page = urlParams.get('page');
645 if (page) {
646 return page;
647 }
648 var postType = urlParams.get('post_type');
649 if (postType) {
650 return postType;
651 }
652 return 'unknown';
653 }
654 }, {
655 key: "extractItemId",
656 value: function extractItemId(link) {
657 var textContent = link.textContent.trim();
658 if (textContent) {
659 return textContent;
660 }
661 var href = link.getAttribute('href');
662 if (href) {
663 return this.extractPageFromUrl(href);
664 }
665 var linkId = link.getAttribute('id');
666 if (linkId) {
667 return linkId;
668 }
669 return 'unknown';
670 }
671 }, {
672 key: "determineNavArea",
673 value: function determineNavArea(link) {
674 var parentMenu = link.closest('li.menu-top');
675 if (parentMenu) {
676 var isSubmenuItem = link.closest(ELEMENTOR_MENU_SELECTORS.SUBMENU_CONTAINER);
677 if (isSubmenuItem) {
678 var submenuElement = link.closest(ELEMENTOR_MENU_SELECTORS.SUBMENU_ITEM_TOP_LEVEL);
679 if (submenuElement.classList.contains('wp-not-current-submenu')) {
680 return _wpDashboardTracking.NAV_AREAS.HOVER_MENU;
681 }
682 return _wpDashboardTracking.NAV_AREAS.SUBMENU;
683 }
684 return _wpDashboardTracking.NAV_AREAS.LEFT_MENU;
685 }
686 return _wpDashboardTracking.NAV_AREAS.LEFT_MENU;
687 }
688 }]);
689 }(_baseTracking.default);
690 var _default = exports["default"] = NavigationTracking;
691
692 /***/ }),
693
694 /***/ "../app/assets/js/event-track/dashboard/plugin-actions.js":
695 /*!****************************************************************!*\
696 !*** ../app/assets/js/event-track/dashboard/plugin-actions.js ***!
697 \****************************************************************/
698 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
699
700 "use strict";
701
702
703 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
704 Object.defineProperty(exports, "__esModule", ({
705 value: true
706 }));
707 exports["default"] = void 0;
708 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
709 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
710 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
711 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
712 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
713 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
714 var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
715 var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
716 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)); }
717 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
718 var PLUGIN_TYPE = {
719 ELEMENTOR: 'core',
720 ELEMENTOR_PRO: 'pro'
721 };
722 var PluginActions = /*#__PURE__*/function (_BaseTracking) {
723 function PluginActions() {
724 (0, _classCallCheck2.default)(this, PluginActions);
725 return _callSuper(this, PluginActions, arguments);
726 }
727 (0, _inherits2.default)(PluginActions, _BaseTracking);
728 return (0, _createClass2.default)(PluginActions, null, [{
729 key: "init",
730 value: function init() {
731 this.attachCoreDeactivationTracking();
732 this.attachProDeactivationTracking();
733 this.attachProDeletionTracking();
734 }
735 }, {
736 key: "attachCoreDeactivationTracking",
737 value: function attachCoreDeactivationTracking() {
738 var _this = this;
739 var dialogForm = document.querySelector('#elementor-deactivate-feedback-dialog-form');
740 if (!dialogForm) {
741 return;
742 }
743 this.addEventListenerTracked(dialogForm, 'change', function (event) {
744 var target = event.target;
745 if (target.classList.contains('elementor-deactivate-feedback-dialog-input')) {
746 _this.selectedReason = target.value;
747 }
748 });
749 this.observeModalButtons();
750 }
751 }, {
752 key: "attachProDeactivationTracking",
753 value: function attachProDeactivationTracking() {
754 var _this2 = this;
755 var pluginsTable = document.querySelector('.plugins');
756 if (!pluginsTable) {
757 return;
758 }
759 this.addEventListenerTracked(pluginsTable, 'click', function (event) {
760 var link = event.target.closest('a');
761 if (link && 'deactivate-elementor-pro' === link.id) {
762 _this2.trackProDeactivation();
763 }
764 }, {
765 capture: true
766 });
767 }
768 }, {
769 key: "observeModalButtons",
770 value: function observeModalButtons() {
771 var _this3 = this;
772 var checkAndAttachDelegation = function checkAndAttachDelegation() {
773 var modal = document.querySelector('#elementor-deactivate-feedback-modal');
774 if (!modal) {
775 return false;
776 }
777 _this3.addEventListenerTracked(modal, 'click', function (event) {
778 var submitButton = event.target.closest('.dialog-submit');
779 var skipButton = event.target.closest('.dialog-skip');
780 if (submitButton) {
781 _this3.trackCoreDeactivation('submit&deactivate');
782 } else if (skipButton) {
783 _this3.trackCoreDeactivation('skip&deactivate');
784 }
785 }, {
786 capture: true
787 });
788 return true;
789 };
790 if (checkAndAttachDelegation()) {
791 return;
792 }
793 this.addObserver(document.body, {
794 childList: true,
795 subtree: true
796 }, function (mutations, observer) {
797 if (checkAndAttachDelegation()) {
798 observer.disconnect();
799 }
800 });
801 }
802 }, {
803 key: "getUserInput",
804 value: function getUserInput() {
805 var reasonsWithInput = ['found_a_better_plugin', 'other'];
806 if (!this.selectedReason || !reasonsWithInput.includes(this.selectedReason)) {
807 return null;
808 }
809 var inputField = document.querySelector("input[name=\"reason_".concat(this.selectedReason, "\"]"));
810 if (inputField && inputField.value) {
811 return inputField.value;
812 }
813 return null;
814 }
815 }, {
816 key: "trackCoreDeactivation",
817 value: function trackCoreDeactivation(action) {
818 var properties = {
819 deactivate_form_submit: action,
820 deactivate_plugin_type: PLUGIN_TYPE.ELEMENTOR
821 };
822 if (this.selectedReason) {
823 properties.deactivate_feedback_reason = this.selectedReason;
824 }
825 var userInput = this.getUserInput();
826 if (userInput) {
827 properties.deactivate_feedback_reason += "/".concat(userInput);
828 }
829 _wpDashboardTracking.default.dispatchEvent('wpdash_deactivate_plugin', properties, {
830 send_immediately: true
831 });
832 }
833 }, {
834 key: "trackProDeactivation",
835 value: function trackProDeactivation() {
836 this.trackProAction('deactivate');
837 }
838 }, {
839 key: "attachProDeletionTracking",
840 value: function attachProDeletionTracking() {
841 var _this4 = this;
842 if ('undefined' === typeof jQuery) {
843 return;
844 }
845 jQuery(document).on('wp-plugin-deleting', function (event, args) {
846 if ('elementor-pro' === (args === null || args === void 0 ? void 0 : args.slug)) {
847 _this4.trackProAction('delete');
848 }
849 });
850 }
851 }, {
852 key: "destroy",
853 value: function destroy() {
854 if ('undefined' !== typeof jQuery) {
855 jQuery(document).off('wp-plugin-deleting');
856 }
857 _baseTracking.default.destroy.call(this);
858 }
859 }, {
860 key: "trackProAction",
861 value: function trackProAction(action) {
862 var eventMap = {
863 deactivate: {
864 eventName: 'wpdash_deactivate_plugin',
865 propertyKey: 'deactivate_plugin_type'
866 },
867 delete: {
868 eventName: 'wpdash_delete_plugin',
869 propertyKey: 'plugin_delete'
870 }
871 };
872 var config = eventMap[action];
873 if (!config) {
874 return;
875 }
876 var properties = (0, _defineProperty2.default)({}, config.propertyKey, PLUGIN_TYPE.ELEMENTOR_PRO);
877 _wpDashboardTracking.default.dispatchEvent(config.eventName, properties, {
878 send_immediately: true
879 });
880 }
881 }]);
882 }(_baseTracking.default);
883 (0, _defineProperty2.default)(PluginActions, "selectedReason", null);
884 var _default = exports["default"] = PluginActions;
885
886 /***/ }),
887
888 /***/ "../app/assets/js/event-track/dashboard/promotion.js":
889 /*!***********************************************************!*\
890 !*** ../app/assets/js/event-track/dashboard/promotion.js ***!
891 \***********************************************************/
892 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
893
894 "use strict";
895
896
897 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
898 Object.defineProperty(exports, "__esModule", ({
899 value: true
900 }));
901 exports["default"] = void 0;
902 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
903 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
904 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
905 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
906 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
907 var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
908 var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
909 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)); }
910 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
911 var PROMO_SELECTORS = {
912 PROMO_PAGE: '.e-feature-promotion, .elementor-settings-form-page, #elementor-element-manager-wrap',
913 PROMO_BLANK_STATE: '.elementor-blank_state',
914 CTA_BUTTON: '.go-pro',
915 TITLE: 'h3'
916 };
917 var PromotionTracking = /*#__PURE__*/function (_BaseTracking) {
918 function PromotionTracking() {
919 (0, _classCallCheck2.default)(this, PromotionTracking);
920 return _callSuper(this, PromotionTracking, arguments);
921 }
922 (0, _inherits2.default)(PromotionTracking, _BaseTracking);
923 return (0, _createClass2.default)(PromotionTracking, null, [{
924 key: "init",
925 value: function init() {
926 this.attachDelegatedTracking();
927 }
928 }, {
929 key: "attachDelegatedTracking",
930 value: function attachDelegatedTracking() {
931 var _this = this;
932 this.addEventListenerTracked(document, 'click', function (event) {
933 var target = event.target;
934 if (!target) {
935 return;
936 }
937 var button = target.closest("a".concat(PROMO_SELECTORS.CTA_BUTTON));
938 if (!button) {
939 return;
940 }
941 var promoPage = button.closest("".concat(PROMO_SELECTORS.PROMO_PAGE, ", ").concat(PROMO_SELECTORS.PROMO_BLANK_STATE));
942 if (!promoPage) {
943 return;
944 }
945 _this.handlePromoClick(button, promoPage);
946 }, {
947 capture: true
948 });
949 }
950 }, {
951 key: "handlePromoClick",
952 value: function handlePromoClick(button, promoPage) {
953 var promoTitle = this.extractPromoTitle(promoPage, button);
954 var destination = button.getAttribute('href');
955 var path = this.extractPromoPath();
956 _wpDashboardTracking.default.trackPromoClicked(promoTitle, destination, path);
957 }
958 }, {
959 key: "extractPromoTitle",
960 value: function extractPromoTitle(promoPage, button) {
961 var titleElement = promoPage.querySelector(PROMO_SELECTORS.TITLE);
962 return titleElement ? titleElement.textContent.trim() : button.textContent.trim();
963 }
964 }, {
965 key: "extractPromoPath",
966 value: function extractPromoPath() {
967 var urlParams = new URLSearchParams(window.location.search);
968 var page = urlParams.get('page');
969 if (!page) {
970 return 'elementor';
971 }
972 return page.replace('elementor_', '').replace(/_/g, '/');
973 }
974 }]);
975 }(_baseTracking.default);
976 var _default = exports["default"] = PromotionTracking;
977
978 /***/ }),
979
980 /***/ "../app/assets/js/event-track/dashboard/screen-view.js":
981 /*!*************************************************************!*\
982 !*** ../app/assets/js/event-track/dashboard/screen-view.js ***!
983 \*************************************************************/
984 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
985
986 "use strict";
987
988
989 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
990 var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
991 Object.defineProperty(exports, "__esModule", ({
992 value: true
993 }));
994 exports["default"] = void 0;
995 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
996 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
997 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
998 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
999 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
1000 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1001 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1002 var _wpDashboardTracking = _interopRequireWildcard(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
1003 var _utils = __webpack_require__(/*! ./utils */ "../app/assets/js/event-track/dashboard/utils.js");
1004 var _baseTracking = _interopRequireDefault(__webpack_require__(/*! ./base-tracking */ "../app/assets/js/event-track/dashboard/base-tracking.js"));
1005 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); }
1006 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; } } }; }
1007 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; } }
1008 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; }
1009 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)); }
1010 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1011 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; }
1012 var SCREEN_SELECTORS = {
1013 NAV_TAB_WRAPPER: '.nav-tab-wrapper',
1014 NAV_TAB: '.nav-tab',
1015 NAV_TAB_ACTIVE: '.nav-tab-active',
1016 SETTINGS_FORM_PAGE: '.elementor-settings-form-page',
1017 SETTINGS_FORM_PAGE_ACTIVE: '.elementor-settings-form-page.elementor-active',
1018 FLOATING_ELEMENTS_MODAL: '#elementor-new-floating-elements-modal',
1019 TEMPLATE_DIALOG_MODAL: '#elementor-new-template-dialog-content'
1020 };
1021 var TRACKED_MODALS = [SCREEN_SELECTORS.FLOATING_ELEMENTS_MODAL, SCREEN_SELECTORS.TEMPLATE_DIALOG_MODAL];
1022 var ScreenViewTracking = /*#__PURE__*/function (_BaseTracking) {
1023 function ScreenViewTracking() {
1024 (0, _classCallCheck2.default)(this, ScreenViewTracking);
1025 return _callSuper(this, ScreenViewTracking, arguments);
1026 }
1027 (0, _inherits2.default)(ScreenViewTracking, _BaseTracking);
1028 return (0, _createClass2.default)(ScreenViewTracking, null, [{
1029 key: "init",
1030 value: function init() {
1031 if (!_utils.DashboardUtils.isElementorPage()) {
1032 return;
1033 }
1034 var screenData = this.getScreenData();
1035 if (screenData) {
1036 this.trackScreen(screenData.screenId, screenData.screenType);
1037 }
1038 this.attachTabChangeTracking();
1039 }
1040 }, {
1041 key: "destroy",
1042 value: function destroy() {
1043 _superPropGet(ScreenViewTracking, "destroy", this, 2)([]);
1044 this.trackedScreens.clear();
1045 }
1046 }, {
1047 key: "getScreenData",
1048 value: function getScreenData() {
1049 var urlParams = new URLSearchParams(window.location.search);
1050 var page = urlParams.get('page');
1051 var postType = urlParams.get('post_type');
1052 var hash = window.location.hash;
1053 var screenId = '';
1054 var screenType = '';
1055 if (page) {
1056 screenId = page;
1057 } else if (postType) {
1058 screenId = postType;
1059 } else {
1060 screenId = this.getScreenIdFromBody();
1061 }
1062 if (this.isElementorAppPage()) {
1063 var appScreenData = this.getAppScreenData(hash);
1064 if (appScreenData) {
1065 return appScreenData;
1066 }
1067 }
1068 var hasNavTabs = document.querySelector(SCREEN_SELECTORS.NAV_TAB_WRAPPER);
1069 var hasSettingsTabs = document.querySelectorAll(SCREEN_SELECTORS.SETTINGS_FORM_PAGE).length > 1;
1070 if (hasNavTabs || hasSettingsTabs || hash && !this.isElementorAppPage()) {
1071 screenType = _wpDashboardTracking.SCREEN_TYPES.TAB;
1072 if (hash) {
1073 var tabId = hash.replace(/^#(tab-)?/, '');
1074 screenId = "".concat(screenId, "-").concat(tabId);
1075 } else if (hasNavTabs) {
1076 var activeTab = document.querySelector(SCREEN_SELECTORS.NAV_TAB_ACTIVE);
1077 if (activeTab) {
1078 var tabText = activeTab.textContent.trim();
1079 var tabHref = activeTab.getAttribute('href');
1080 if (tabText) {
1081 screenId = "".concat(screenId, "-").concat(this.sanitizeScreenId(tabText));
1082 } else if (tabHref && tabHref.includes('#')) {
1083 var _tabId = tabHref.split('#')[1];
1084 screenId = "".concat(screenId, "-").concat(_tabId);
1085 }
1086 }
1087 } else if (hasSettingsTabs) {
1088 var activeSettingsTab = document.querySelector(SCREEN_SELECTORS.SETTINGS_FORM_PAGE_ACTIVE);
1089 if (activeSettingsTab) {
1090 var _tabId2 = activeSettingsTab.id;
1091 if (_tabId2) {
1092 screenId = "".concat(screenId, "-").concat(_tabId2);
1093 }
1094 }
1095 }
1096 }
1097 return {
1098 screenId: screenId,
1099 screenType: screenType
1100 };
1101 }
1102 }, {
1103 key: "isElementorAppPage",
1104 value: function isElementorAppPage() {
1105 var urlParams = new URLSearchParams(window.location.search);
1106 return 'elementor-app' === urlParams.get('page');
1107 }
1108 }, {
1109 key: "getAppScreenData",
1110 value: function getAppScreenData(hash) {
1111 if (!hash) {
1112 return null;
1113 }
1114 var cleanHash = hash.replace(/^#/, '');
1115 if (!cleanHash.startsWith('/')) {
1116 return null;
1117 }
1118 var pathParts = cleanHash.split('/').filter(Boolean);
1119 if (0 === pathParts.length) {
1120 return null;
1121 }
1122 var screenId = pathParts.join('/');
1123 var screenType = _wpDashboardTracking.SCREEN_TYPES.APP_SCREEN;
1124 return {
1125 screenId: screenId,
1126 screenType: screenType
1127 };
1128 }
1129 }, {
1130 key: "getScreenIdFromBody",
1131 value: function getScreenIdFromBody() {
1132 var body = document.body;
1133 var bodyClasses = body.className.split(' ');
1134 var _iterator = _createForOfIteratorHelper(bodyClasses),
1135 _step;
1136 try {
1137 for (_iterator.s(); !(_step = _iterator.n()).done;) {
1138 var cls = _step.value;
1139 if (cls.startsWith('elementor') && (cls.includes('page') || cls.includes('post-type'))) {
1140 return cls;
1141 }
1142 }
1143 } catch (err) {
1144 _iterator.e(err);
1145 } finally {
1146 _iterator.f();
1147 }
1148 return 'elementor-unknown';
1149 }
1150 }, {
1151 key: "sanitizeScreenId",
1152 value: function sanitizeScreenId(text) {
1153 return text.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
1154 }
1155 }, {
1156 key: "attachTabChangeTracking",
1157 value: function attachTabChangeTracking() {
1158 this.attachNavTabTracking();
1159 this.attachHashChangeTracking();
1160 this.attachSettingsTabTracking();
1161 this.attachModalTracking();
1162 }
1163 }, {
1164 key: "attachNavTabTracking",
1165 value: function attachNavTabTracking() {
1166 var _this = this;
1167 var wrapper = document.querySelector(SCREEN_SELECTORS.NAV_TAB_WRAPPER);
1168 if (!wrapper) {
1169 return;
1170 }
1171 this.addEventListenerTracked(wrapper, 'click', function (event) {
1172 var navTab = event.target.closest(SCREEN_SELECTORS.NAV_TAB);
1173 if (navTab && !navTab.classList.contains('nav-tab-active')) {
1174 var screenData = _this.getScreenData();
1175 if (screenData) {
1176 _this.trackScreen(screenData.screenId, screenData.screenType);
1177 }
1178 }
1179 });
1180 }
1181 }, {
1182 key: "attachHashChangeTracking",
1183 value: function attachHashChangeTracking() {
1184 var _this2 = this;
1185 this.addEventListenerTracked(window, 'hashchange', function () {
1186 var screenData = _this2.getScreenData();
1187 if (screenData) {
1188 _this2.trackScreen(screenData.screenId, screenData.screenType);
1189 }
1190 });
1191 }
1192 }, {
1193 key: "attachSettingsTabTracking",
1194 value: function attachSettingsTabTracking() {
1195 var _this3 = this;
1196 var settingsPages = document.querySelectorAll(SCREEN_SELECTORS.SETTINGS_FORM_PAGE);
1197 if (0 === settingsPages.length) {
1198 return;
1199 }
1200 settingsPages.forEach(function (page) {
1201 _this3.addObserver(page, {
1202 attributes: true,
1203 attributeFilter: ['class']
1204 }, function () {
1205 var screenData = _this3.getScreenData();
1206 if (screenData) {
1207 _this3.trackScreen(screenData.screenId, screenData.screenType);
1208 }
1209 });
1210 });
1211 }
1212 }, {
1213 key: "attachModalTracking",
1214 value: function attachModalTracking() {
1215 var _this4 = this;
1216 this.addObserver(document.body, {
1217 childList: true,
1218 subtree: true
1219 }, function (mutations) {
1220 var _iterator2 = _createForOfIteratorHelper(mutations),
1221 _step2;
1222 try {
1223 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1224 var mutation = _step2.value;
1225 if ('childList' === mutation.type) {
1226 TRACKED_MODALS.forEach(function (modalSelector) {
1227 var modal = document.querySelector(modalSelector);
1228 if (modal && _this4.isModalVisible(modal)) {
1229 var modalId = modalSelector.replace('#', '');
1230 _this4.trackScreen(modalId, _wpDashboardTracking.SCREEN_TYPES.POPUP);
1231 }
1232 });
1233 }
1234 }
1235 } catch (err) {
1236 _iterator2.e(err);
1237 } finally {
1238 _iterator2.f();
1239 }
1240 });
1241 }
1242 }, {
1243 key: "isModalVisible",
1244 value: function isModalVisible(element) {
1245 if (!element) {
1246 return false;
1247 }
1248 var style = window.getComputedStyle(element);
1249 return 'none' !== style.display && 0 !== parseFloat(style.opacity);
1250 }
1251 }, {
1252 key: "trackScreen",
1253 value: function trackScreen(screenId) {
1254 var screenType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _wpDashboardTracking.SCREEN_TYPES.TOP_LEVEL_PAGE;
1255 var trackingKey = "".concat(screenId, "-").concat(screenType);
1256 if (this.trackedScreens.has(trackingKey)) {
1257 return;
1258 }
1259 this.trackedScreens.add(trackingKey);
1260 _wpDashboardTracking.default.trackScreenViewed(screenId, screenType);
1261 }
1262 }]);
1263 }(_baseTracking.default);
1264 (0, _defineProperty2.default)(ScreenViewTracking, "trackedScreens", new Set());
1265 var _default = exports["default"] = ScreenViewTracking;
1266
1267 /***/ }),
1268
1269 /***/ "../app/assets/js/event-track/dashboard/utils.js":
1270 /*!*******************************************************!*\
1271 !*** ../app/assets/js/event-track/dashboard/utils.js ***!
1272 \*******************************************************/
1273 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1274
1275 "use strict";
1276
1277
1278 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1279 Object.defineProperty(exports, "__esModule", ({
1280 value: true
1281 }));
1282 exports.DashboardUtils = void 0;
1283 var _wpDashboardTracking = _interopRequireDefault(__webpack_require__(/*! ../wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js"));
1284 var DashboardUtils = exports.DashboardUtils = {
1285 isElementorPage: function isElementorPage() {
1286 var urlParams = new URLSearchParams(window.location.search);
1287 var page = urlParams.get('page');
1288 if (page && _wpDashboardTracking.default.elementorPages.some(function (p) {
1289 return page.includes(p);
1290 })) {
1291 return true;
1292 }
1293 var postType = urlParams.get('post_type');
1294 if (_wpDashboardTracking.default.elementorPostTypes.includes(postType)) {
1295 return true;
1296 }
1297 var body = document.body;
1298 var bodyClasses = body.className.split(' ');
1299 return bodyClasses.some(function (cls) {
1300 return cls.includes('elementor') && (cls.includes('page') || cls.includes('post-type'));
1301 });
1302 }
1303 };
1304
1305 /***/ }),
1306
1307 /***/ "../app/assets/js/event-track/wp-dashboard-tracking.js":
1308 /*!*************************************************************!*\
1309 !*** ../app/assets/js/event-track/wp-dashboard-tracking.js ***!
1310 \*************************************************************/
1311 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1312
1313 "use strict";
1314
1315
1316 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1317 Object.defineProperty(exports, "__esModule", ({
1318 value: true
1319 }));
1320 exports["default"] = exports.SCREEN_TYPES = exports.NAV_AREAS = exports.CONTROL_TYPES = void 0;
1321 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1322 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1323 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
1324 var _navigation = _interopRequireDefault(__webpack_require__(/*! ./dashboard/navigation */ "../app/assets/js/event-track/dashboard/navigation.js"));
1325 var _pluginActions = _interopRequireDefault(__webpack_require__(/*! ./dashboard/plugin-actions */ "../app/assets/js/event-track/dashboard/plugin-actions.js"));
1326 var _promotion = _interopRequireDefault(__webpack_require__(/*! ./dashboard/promotion */ "../app/assets/js/event-track/dashboard/promotion.js"));
1327 var _screenView = _interopRequireDefault(__webpack_require__(/*! ./dashboard/screen-view */ "../app/assets/js/event-track/dashboard/screen-view.js"));
1328 var _menuPromotion = _interopRequireDefault(__webpack_require__(/*! ./dashboard/menu-promotion */ "../app/assets/js/event-track/dashboard/menu-promotion.js"));
1329 var _actionControls = _interopRequireDefault(__webpack_require__(/*! ./dashboard/action-controls */ "../app/assets/js/event-track/dashboard/action-controls.js"));
1330 var _WpDashboardTracking;
1331 var SESSION_TIMEOUT_MINUTES = 30;
1332 var MINUTE_MS = 60 * 1000;
1333 var SESSION_TIMEOUT = SESSION_TIMEOUT_MINUTES * MINUTE_MS;
1334 var ACTIVITY_CHECK_INTERVAL = 1 * MINUTE_MS;
1335 var SESSION_STORAGE_KEY = 'elementor_wpdash_session';
1336 var PENDING_NAV_CLICK_KEY = 'elementor_wpdash_pending_nav';
1337 var CONTROL_TYPES = exports.CONTROL_TYPES = {
1338 BUTTON: 'button',
1339 CHECKBOX: 'checkbox',
1340 RADIO: 'radio',
1341 LINK: 'link',
1342 SELECT: 'select',
1343 TOGGLE: 'toggle',
1344 FILTER: 'filter'
1345 };
1346 var NAV_AREAS = exports.NAV_AREAS = {
1347 LEFT_MENU: 'left_menu',
1348 SUBMENU: 'submenu',
1349 HOVER_MENU: 'hover_menu',
1350 TOP_BAR: 'top_bar',
1351 SIDEBAR_MENU: 'sidebar'
1352 };
1353 var SCREEN_TYPES = exports.SCREEN_TYPES = {
1354 TAB: 'tab',
1355 POPUP: 'popup',
1356 APP_SCREEN: 'app_screen'
1357 };
1358 var WpDashboardTracking = exports["default"] = /*#__PURE__*/function () {
1359 function WpDashboardTracking() {
1360 (0, _classCallCheck2.default)(this, WpDashboardTracking);
1361 }
1362 return (0, _createClass2.default)(WpDashboardTracking, null, [{
1363 key: "getElementorCommon",
1364 value: function getElementorCommon() {
1365 return window.elementorCommon;
1366 }
1367 }, {
1368 key: "init",
1369 value: function init() {
1370 if (this.initialized) {
1371 return;
1372 }
1373 this.restoreOrCreateSession();
1374 if (this.isEventsManagerAvailable()) {
1375 this.startSessionMonitoring();
1376 this.attachActivityListeners();
1377 this.attachNavigationListener();
1378 this.initialized = true;
1379 }
1380 }
1381 }, {
1382 key: "restoreOrCreateSession",
1383 value: function restoreOrCreateSession() {
1384 var storedSession = this.getStoredSession();
1385 if (storedSession) {
1386 this.sessionStartTime = storedSession.sessionStartTime;
1387 this.navItemsVisited = new Set(storedSession.navItemsVisited);
1388 this.lastActivityTime = Date.now();
1389 this.sessionEnded = false;
1390 } else {
1391 this.sessionStartTime = Date.now();
1392 this.lastActivityTime = Date.now();
1393 this.sessionEnded = false;
1394 this.navItemsVisited = new Set();
1395 }
1396 this.processPendingNavClick();
1397 this.saveSessionToStorage();
1398 }
1399 }, {
1400 key: "isEditorOneActive",
1401 value: function isEditorOneActive() {
1402 var _elementorCommon$conf, _elementorCommon$conf2;
1403 var elementorCommon = this.getElementorCommon();
1404 return (_elementorCommon$conf = elementorCommon === null || elementorCommon === void 0 || (_elementorCommon$conf2 = elementorCommon.config) === null || _elementorCommon$conf2 === void 0 || (_elementorCommon$conf2 = _elementorCommon$conf2.editor_events) === null || _elementorCommon$conf2 === void 0 ? void 0 : _elementorCommon$conf2.isEditorOneActive) !== null && _elementorCommon$conf !== void 0 ? _elementorCommon$conf : false;
1405 }
1406 }, {
1407 key: "processPendingNavClick",
1408 value: function processPendingNavClick() {
1409 try {
1410 var pendingNav = sessionStorage.getItem(PENDING_NAV_CLICK_KEY);
1411 if (pendingNav) {
1412 var _JSON$parse = JSON.parse(pendingNav),
1413 itemId = _JSON$parse.itemId,
1414 rootItem = _JSON$parse.rootItem,
1415 area = _JSON$parse.area;
1416 this.navItemsVisited.add(itemId);
1417 var properties = {
1418 wpdash_nav_item_id: itemId,
1419 wpdash_nav_area: area
1420 };
1421 if (rootItem) {
1422 properties.wpdash_nav_item_root = rootItem;
1423 }
1424 this.dispatchEvent('wpdash_nav_clicked', properties, {
1425 send_immediately: true
1426 });
1427 sessionStorage.removeItem(PENDING_NAV_CLICK_KEY);
1428 }
1429 } catch (error) {
1430 sessionStorage.removeItem(PENDING_NAV_CLICK_KEY);
1431 }
1432 }
1433 }, {
1434 key: "getStoredSession",
1435 value: function getStoredSession() {
1436 try {
1437 var stored = sessionStorage.getItem(SESSION_STORAGE_KEY);
1438 return stored ? JSON.parse(stored) : null;
1439 } catch (error) {
1440 return null;
1441 }
1442 }
1443 }, {
1444 key: "saveSessionToStorage",
1445 value: function saveSessionToStorage() {
1446 var sessionData = {
1447 sessionStartTime: this.sessionStartTime,
1448 navItemsVisited: Array.from(this.navItemsVisited)
1449 };
1450 sessionStorage.setItem(SESSION_STORAGE_KEY, JSON.stringify(sessionData));
1451 }
1452 }, {
1453 key: "clearStoredSession",
1454 value: function clearStoredSession() {
1455 sessionStorage.removeItem(SESSION_STORAGE_KEY);
1456 }
1457 }, {
1458 key: "isEventsManagerAvailable",
1459 value: function isEventsManagerAvailable() {
1460 var elementorCommon = this.getElementorCommon();
1461 return (elementorCommon === null || elementorCommon === void 0 ? void 0 : elementorCommon.eventsManager) && 'function' === typeof elementorCommon.eventsManager.dispatchEvent;
1462 }
1463 }, {
1464 key: "canSendEvents",
1465 value: function canSendEvents() {
1466 var _elementorCommon$conf3, _elementorCommon$conf4;
1467 var elementorCommon = this.getElementorCommon();
1468 return (_elementorCommon$conf3 = elementorCommon === null || elementorCommon === void 0 || (_elementorCommon$conf4 = elementorCommon.config) === null || _elementorCommon$conf4 === void 0 || (_elementorCommon$conf4 = _elementorCommon$conf4.editor_events) === null || _elementorCommon$conf4 === void 0 ? void 0 : _elementorCommon$conf4.can_send_events) !== null && _elementorCommon$conf3 !== void 0 ? _elementorCommon$conf3 : false;
1469 }
1470 }, {
1471 key: "dispatchEvent",
1472 value: function dispatchEvent(eventName) {
1473 var _elementorCommon$even;
1474 var properties = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1475 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1476 if (!this.isEventsManagerAvailable() || !this.canSendEvents()) {
1477 return;
1478 }
1479 var elementorCommon = this.getElementorCommon();
1480 elementorCommon === null || elementorCommon === void 0 || (_elementorCommon$even = elementorCommon.eventsManager) === null || _elementorCommon$even === void 0 || _elementorCommon$even.dispatchEvent(eventName, properties, options);
1481 }
1482 }, {
1483 key: "updateActivity",
1484 value: function updateActivity() {
1485 this.lastActivityTime = Date.now();
1486 }
1487 }, {
1488 key: "startSessionMonitoring",
1489 value: function startSessionMonitoring() {
1490 var _this = this;
1491 this.activityCheckInterval = setInterval(function () {
1492 _this.checkSessionTimeout();
1493 }, ACTIVITY_CHECK_INTERVAL);
1494 window.addEventListener('beforeunload', function () {
1495 if (!_this.sessionEnded && !_this.isNavigatingToElementor) {
1496 _this.trackSessionEnd('tab_closed');
1497 }
1498 });
1499 document.addEventListener('visibilitychange', function () {
1500 if (!_this.sessionEnded && document.hidden) {
1501 var timeSinceLastActivity = Date.now() - _this.lastActivityTime;
1502 if (timeSinceLastActivity > SESSION_TIMEOUT) {
1503 _this.trackSessionEnd('tab_inactive');
1504 }
1505 }
1506 });
1507 }
1508 }, {
1509 key: "isElementorPage",
1510 value: function isElementorPage(url) {
1511 try {
1512 var urlObj = new URL(url, window.location.origin);
1513 var params = urlObj.searchParams;
1514 var page = params.get('page');
1515 var postType = params.get('post_type');
1516 var action = params.get('action');
1517 return !!(page && this.elementorPages.some(function (p) {
1518 return page.includes(p);
1519 }) || postType && this.elementorPostTypes.includes(postType) || action && action.includes(this.anyPageWithElementorString));
1520 } catch (error) {
1521 return false;
1522 }
1523 }
1524 }, {
1525 key: "isPluginsPage",
1526 value: function isPluginsPage(url) {
1527 try {
1528 var urlObj = new URL(url, window.location.origin);
1529 return urlObj.pathname.includes('plugins.php');
1530 } catch (error) {
1531 return false;
1532 }
1533 }
1534 }, {
1535 key: "isNavigatingAwayFromElementor",
1536 value: function isNavigatingAwayFromElementor(targetUrl) {
1537 if (!targetUrl) {
1538 return false;
1539 }
1540 if (targetUrl.startsWith('#')) {
1541 return false;
1542 }
1543 return !this.isElementorPage(targetUrl);
1544 }
1545 }, {
1546 key: "isLinkOpeningInNewTab",
1547 value: function isLinkOpeningInNewTab(link) {
1548 var target = link.getAttribute('target');
1549 return '_blank' === target || '_new' === target;
1550 }
1551 }, {
1552 key: "attachNavigationListener",
1553 value: function attachNavigationListener() {
1554 var _this2 = this;
1555 var handleLinkClick = function handleLinkClick(event) {
1556 var link = event.target.closest('a');
1557 if (link && link.href) {
1558 if (_this2.isLinkOpeningInNewTab(link)) {
1559 return;
1560 }
1561 if (!_this2.sessionEnded && _this2.isNavigatingAwayFromElementor(link.href)) {
1562 _this2.trackSessionEnd('navigate_away');
1563 } else if (_this2.isElementorPage(link.href)) {
1564 _this2.isNavigatingToElementor = true;
1565 }
1566 }
1567 var isSidebar = event.target.closest('#editor-one-sidebar-navigation');
1568 if (isSidebar) {
1569 _this2.isNavigatingToElementor = true;
1570 }
1571 };
1572 var handleFormSubmit = function handleFormSubmit(event) {
1573 var form = event.target;
1574 if (form.action) {
1575 if (!_this2.sessionEnded && _this2.isNavigatingAwayFromElementor(form.action)) {
1576 _this2.trackSessionEnd('navigate_away');
1577 } else if (_this2.isElementorPage(form.action)) {
1578 _this2.isNavigatingToElementor = true;
1579 }
1580 }
1581 };
1582 document.addEventListener('click', handleLinkClick, true);
1583 document.addEventListener('submit', handleFormSubmit, true);
1584 this.navigationListeners.push({
1585 type: 'click',
1586 handler: handleLinkClick
1587 }, {
1588 type: 'submit',
1589 handler: handleFormSubmit
1590 });
1591 }
1592 }, {
1593 key: "checkSessionTimeout",
1594 value: function checkSessionTimeout() {
1595 var timeSinceLastActivity = Date.now() - this.lastActivityTime;
1596 if (timeSinceLastActivity > SESSION_TIMEOUT && !this.sessionEnded) {
1597 this.trackSessionEnd('timeout');
1598 }
1599 }
1600 }, {
1601 key: "attachActivityListeners",
1602 value: function attachActivityListeners() {
1603 var _this3 = this;
1604 var events = ['mousedown', 'keydown', 'scroll', 'touchstart', 'click'];
1605 events.forEach(function (event) {
1606 document.addEventListener(event, function () {
1607 _this3.updateActivity();
1608 }, {
1609 capture: true,
1610 passive: true
1611 });
1612 });
1613 }
1614 }, {
1615 key: "formatDuration",
1616 value: function formatDuration(milliseconds) {
1617 var totalSeconds = Math.floor(milliseconds / 1000);
1618 return Number(totalSeconds.toFixed(2));
1619 }
1620 }, {
1621 key: "trackNavClicked",
1622 value: function trackNavClicked(itemId) {
1623 var rootItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1624 var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : NAV_AREAS.LEFT_MENU;
1625 if (!this.initialized) {
1626 var pendingNav = {
1627 itemId: itemId,
1628 rootItem: rootItem,
1629 area: area
1630 };
1631 sessionStorage.setItem(PENDING_NAV_CLICK_KEY, JSON.stringify(pendingNav));
1632 return;
1633 }
1634 this.updateActivity();
1635 this.navItemsVisited.add(itemId);
1636 this.saveSessionToStorage();
1637 var properties = {
1638 wpdash_nav_item_id: itemId,
1639 wpdash_nav_area: area
1640 };
1641 if (rootItem) {
1642 properties.wpdash_nav_item_root = rootItem;
1643 }
1644 this.dispatchEvent('wpdash_nav_clicked', properties);
1645 }
1646 }, {
1647 key: "trackScreenViewed",
1648 value: function trackScreenViewed(screenId) {
1649 var screenType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SCREEN_TYPES.TAB;
1650 this.updateActivity();
1651 var properties = {
1652 wpdash_screen_id: screenId,
1653 wpdash_screen_type: screenType
1654 };
1655 this.dispatchEvent('wpdash_screen_viewed', properties);
1656 }
1657 }, {
1658 key: "trackActionControl",
1659 value: function trackActionControl(controlIdentifier, controlType) {
1660 this.updateActivity();
1661 var properties = {
1662 wpdash_action_control_interacted: controlIdentifier,
1663 wpdash_control_type: controlType
1664 };
1665 this.dispatchEvent('wpdash_action_control', properties);
1666 }
1667 }, {
1668 key: "trackPromoClicked",
1669 value: function trackPromoClicked(promoName, destination, clickPath) {
1670 this.updateActivity();
1671 var properties = {
1672 wpdash_promo_name: promoName,
1673 wpdash_promo_destination: destination,
1674 wpdash_promo_clicked_path: clickPath
1675 };
1676 this.dispatchEvent('wpdash_promo_clicked', properties);
1677 }
1678 }, {
1679 key: "trackSessionEnd",
1680 value: function trackSessionEnd() {
1681 var reason = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'timeout';
1682 if (this.sessionEnded) {
1683 return;
1684 }
1685 this.sessionEnded = true;
1686 if (this.activityCheckInterval) {
1687 clearInterval(this.activityCheckInterval);
1688 this.activityCheckInterval = null;
1689 }
1690 var duration = Date.now() - this.sessionStartTime;
1691 var properties = {
1692 wpdash_endstate_nav_summary: Array.from(this.navItemsVisited),
1693 wpdash_endstate_nav_count: this.navItemsVisited.size,
1694 wpdash_endstate_duration: this.formatDuration(duration),
1695 reason: reason
1696 };
1697 this.dispatchEvent('wpdash_session_end_state', properties);
1698 this.clearStoredSession();
1699 }
1700 }, {
1701 key: "destroy",
1702 value: function destroy() {
1703 if (this.activityCheckInterval) {
1704 clearInterval(this.activityCheckInterval);
1705 }
1706 this.navigationListeners.forEach(function (_ref) {
1707 var type = _ref.type,
1708 handler = _ref.handler;
1709 document.removeEventListener(type, handler, true);
1710 });
1711 this.navigationListeners = [];
1712 _screenView.default.destroy();
1713 _promotion.default.destroy();
1714 _menuPromotion.default.destroy();
1715 _actionControls.default.destroy();
1716 this.initialized = false;
1717 }
1718 }]);
1719 }();
1720 _WpDashboardTracking = WpDashboardTracking;
1721 (0, _defineProperty2.default)(WpDashboardTracking, "anyPageWithElementorString", 'elementor');
1722 (0, _defineProperty2.default)(WpDashboardTracking, "elementorPages", [_WpDashboardTracking.anyPageWithElementorString, 'e-form-submissions', 'popup_templates']);
1723 (0, _defineProperty2.default)(WpDashboardTracking, "elementorPostTypes", ['elementor_library', 'e-floating-buttons', 'elementor_snippet', 'elementor_font', 'elementor_icons']);
1724 (0, _defineProperty2.default)(WpDashboardTracking, "sessionStartTime", Date.now());
1725 (0, _defineProperty2.default)(WpDashboardTracking, "lastActivityTime", Date.now());
1726 (0, _defineProperty2.default)(WpDashboardTracking, "sessionEnded", false);
1727 (0, _defineProperty2.default)(WpDashboardTracking, "navItemsVisited", new Set());
1728 (0, _defineProperty2.default)(WpDashboardTracking, "activityCheckInterval", null);
1729 (0, _defineProperty2.default)(WpDashboardTracking, "initialized", false);
1730 (0, _defineProperty2.default)(WpDashboardTracking, "navigationListeners", []);
1731 (0, _defineProperty2.default)(WpDashboardTracking, "isNavigatingToElementor", false);
1732 window.addEventListener('elementor/admin/init', function () {
1733 var currentUrl = window.location.href;
1734 var isPluginsPage = WpDashboardTracking.isPluginsPage(currentUrl);
1735 var isElementorPage = WpDashboardTracking.isElementorPage(currentUrl);
1736 if (isPluginsPage) {
1737 _pluginActions.default.init();
1738 }
1739 _navigation.default.init();
1740 if (isElementorPage) {
1741 WpDashboardTracking.init();
1742 _screenView.default.init();
1743 _promotion.default.init();
1744 _menuPromotion.default.init();
1745 _actionControls.default.init();
1746 }
1747 });
1748 window.addEventListener('beforeunload', function () {
1749 _navigation.default.destroy();
1750 _pluginActions.default.destroy();
1751 WpDashboardTracking.destroy();
1752 });
1753
1754 /***/ }),
1755
1756 /***/ "../assets/dev/js/admin/maintenance-mode.js":
1757 /*!**************************************************!*\
1758 !*** ../assets/dev/js/admin/maintenance-mode.js ***!
1759 \**************************************************/
1760 /***/ ((module) => {
1761
1762 "use strict";
1763
1764
1765 module.exports = elementorModules.ViewModule.extend({
1766 getDefaultSettings: function getDefaultSettings() {
1767 return {
1768 selectors: {
1769 modeSelect: '.elementor_maintenance_mode_mode select',
1770 maintenanceModeTable: '#tab-maintenance_mode table',
1771 maintenanceModeDescriptions: '.elementor-maintenance-mode-description',
1772 excludeModeSelect: '.elementor_maintenance_mode_exclude_mode select',
1773 excludeRolesArea: '.elementor_maintenance_mode_exclude_roles',
1774 templateSelect: '.elementor_maintenance_mode_template_id select',
1775 editTemplateButton: '.elementor-edit-template',
1776 maintenanceModeError: '.elementor-maintenance-mode-error'
1777 },
1778 classes: {
1779 isEnabled: 'elementor-maintenance-mode-is-enabled'
1780 }
1781 };
1782 },
1783 getDefaultElements: function getDefaultElements() {
1784 var elements = {},
1785 selectors = this.getSettings('selectors');
1786 elements.$modeSelect = jQuery(selectors.modeSelect);
1787 elements.$maintenanceModeTable = elements.$modeSelect.parents(selectors.maintenanceModeTable);
1788 elements.$excludeModeSelect = elements.$maintenanceModeTable.find(selectors.excludeModeSelect);
1789 elements.$excludeRolesArea = elements.$maintenanceModeTable.find(selectors.excludeRolesArea);
1790 elements.$templateSelect = elements.$maintenanceModeTable.find(selectors.templateSelect);
1791 elements.$editTemplateButton = elements.$maintenanceModeTable.find(selectors.editTemplateButton);
1792 elements.$maintenanceModeDescriptions = elements.$maintenanceModeTable.find(selectors.maintenanceModeDescriptions);
1793 elements.$maintenanceModeError = elements.$maintenanceModeTable.find(selectors.maintenanceModeError);
1794 return elements;
1795 },
1796 handleModeSelectChange: function handleModeSelectChange() {
1797 var settings = this.getSettings(),
1798 elements = this.elements;
1799 elements.$maintenanceModeTable.toggleClass(settings.classes.isEnabled, !!elements.$modeSelect.val());
1800 elements.$maintenanceModeDescriptions.hide();
1801 elements.$maintenanceModeDescriptions.filter('[data-value="' + elements.$modeSelect.val() + '"]').show();
1802 },
1803 handleExcludeModeSelectChange: function handleExcludeModeSelectChange() {
1804 var elements = this.elements;
1805 elements.$excludeRolesArea.toggle('custom' === elements.$excludeModeSelect.val());
1806 },
1807 handleTemplateSelectChange: function handleTemplateSelectChange() {
1808 var elements = this.elements;
1809 var templateID = elements.$templateSelect.val();
1810 if (!templateID) {
1811 elements.$editTemplateButton.hide();
1812 elements.$maintenanceModeError.show();
1813 return;
1814 }
1815 var editUrl = elementorAdmin.config.home_url + '?p=' + templateID + '&elementor';
1816 elements.$editTemplateButton.prop('href', editUrl).show();
1817 elements.$maintenanceModeError.hide();
1818 },
1819 bindEvents: function bindEvents() {
1820 var elements = this.elements;
1821 elements.$modeSelect.on('change', this.handleModeSelectChange.bind(this));
1822 elements.$excludeModeSelect.on('change', this.handleExcludeModeSelectChange.bind(this));
1823 elements.$templateSelect.on('change', this.handleTemplateSelectChange.bind(this));
1824 },
1825 onAdminInit: function onAdminInit() {
1826 this.handleModeSelectChange();
1827 this.handleExcludeModeSelectChange();
1828 this.handleTemplateSelectChange();
1829 },
1830 onInit: function onInit() {
1831 elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
1832 elementorCommon.elements.$window.on('elementor/admin/init', this.onAdminInit);
1833 }
1834 });
1835
1836 /***/ }),
1837
1838 /***/ "../assets/dev/js/admin/menu-handler.js":
1839 /*!**********************************************!*\
1840 !*** ../assets/dev/js/admin/menu-handler.js ***!
1841 \**********************************************/
1842 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1843
1844 "use strict";
1845
1846
1847 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1848 Object.defineProperty(exports, "__esModule", ({
1849 value: true
1850 }));
1851 exports["default"] = void 0;
1852 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1853 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1854 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1855 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1856 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
1857 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1858 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)); }
1859 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1860 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; }
1861 var MenuHandler = exports["default"] = /*#__PURE__*/function (_elementorModules$Vie) {
1862 function MenuHandler() {
1863 (0, _classCallCheck2.default)(this, MenuHandler);
1864 return _callSuper(this, MenuHandler, arguments);
1865 }
1866 (0, _inherits2.default)(MenuHandler, _elementorModules$Vie);
1867 return (0, _createClass2.default)(MenuHandler, [{
1868 key: "getDefaultSettings",
1869 value: function getDefaultSettings() {
1870 return {
1871 selectors: {
1872 currentSubmenuItems: '#adminmenu .current'
1873 }
1874 };
1875 }
1876 }, {
1877 key: "getDefaultElements",
1878 value: function getDefaultElements() {
1879 var settings = this.getSettings();
1880 return {
1881 $currentSubmenuItems: jQuery(settings.selectors.currentSubmenuItems),
1882 $adminPageMenuLink: jQuery("a[href=\"".concat(settings.path, "\"]"))
1883 };
1884 }
1885
1886 // This method highlights the currently visited submenu item for the slug provided as an argument to this handler.
1887 // This method also accepts a jQuery instance of a custom submenu item to highlight. If provided, the provided
1888 // item will be the one highlighted.
1889 }, {
1890 key: "highlightSubMenuItem",
1891 value: function highlightSubMenuItem() {
1892 var $element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1893 var $submenuItem = $element || this.elements.$adminPageMenuLink;
1894 if (this.elements.$currentSubmenuItems.length) {
1895 this.elements.$currentSubmenuItems.removeClass('current');
1896 }
1897 $submenuItem.addClass('current');
1898
1899 // Need to add the 'current' class to the link element's parent `<li>` element as well.
1900 $submenuItem.parent().addClass('current');
1901 }
1902 }, {
1903 key: "highlightTopLevelMenuItem",
1904 value: function highlightTopLevelMenuItem($elementToHighlight) {
1905 var $elementToRemove = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1906 var activeClasses = 'wp-has-current-submenu wp-menu-open current';
1907 $elementToHighlight.parent().addClass(activeClasses).removeClass('wp-not-current-submenu');
1908 if ($elementToRemove) {
1909 $elementToRemove.removeClass(activeClasses);
1910 }
1911 }
1912 }, {
1913 key: "onInit",
1914 value: function onInit() {
1915 _superPropGet(MenuHandler, "onInit", this, 3)([]);
1916 var settings = this.getSettings();
1917 if (window.location.href.includes(settings.path)) {
1918 this.highlightSubMenuItem();
1919 }
1920 }
1921 }]);
1922 }(elementorModules.ViewModule);
1923
1924 /***/ }),
1925
1926 /***/ "../assets/dev/js/admin/new-template/template-controls.js":
1927 /*!****************************************************************!*\
1928 !*** ../assets/dev/js/admin/new-template/template-controls.js ***!
1929 \****************************************************************/
1930 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1931
1932 "use strict";
1933
1934
1935 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1936 Object.defineProperty(exports, "__esModule", ({
1937 value: true
1938 }));
1939 exports["default"] = void 0;
1940 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1941 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1942 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1943 var TemplateControls = exports["default"] = /*#__PURE__*/function () {
1944 function TemplateControls() {
1945 (0, _classCallCheck2.default)(this, TemplateControls);
1946 }
1947 return (0, _createClass2.default)(TemplateControls, [{
1948 key: "setDynamicControlsVisibility",
1949 value: function setDynamicControlsVisibility(lookupControlIdPrefix, controls) {
1950 if (undefined === controls) {
1951 return;
1952 }
1953 var controlsArray = Object.entries(controls);
1954 for (var _i = 0, _controlsArray = controlsArray; _i < _controlsArray.length; _i++) {
1955 var _controlsArray$_i = (0, _slicedToArray2.default)(_controlsArray[_i], 2),
1956 controlId = _controlsArray$_i[0],
1957 controlSettings = _controlsArray$_i[1];
1958 this.setVisibilityForControl(lookupControlIdPrefix, controlSettings, controlId);
1959 }
1960 }
1961 }, {
1962 key: "setVisibilityForControl",
1963 value: function setVisibilityForControl(lookupControlIdPrefix, controlSettings, controlId) {
1964 var _controlSettings$cond,
1965 _this = this;
1966 var conditions = Object.entries((_controlSettings$cond = controlSettings.conditions) !== null && _controlSettings$cond !== void 0 ? _controlSettings$cond : {});
1967 conditions.forEach(function (condition) {
1968 _this.changeVisibilityBasedOnCondition(lookupControlIdPrefix, condition, controlId);
1969 });
1970 }
1971 }, {
1972 key: "changeVisibilityBasedOnCondition",
1973 value: function changeVisibilityBasedOnCondition(lookupControlIdPrefix, condition, controlId) {
1974 var _condition = (0, _slicedToArray2.default)(condition, 2),
1975 conditionKey = _condition[0],
1976 conditionValue = _condition[1];
1977 var targetControlWrapper = document.getElementById(lookupControlIdPrefix + controlId + '__wrapper');
1978 var lookupControl = document.getElementById(lookupControlIdPrefix + conditionKey);
1979 targetControlWrapper.classList.toggle('elementor-hidden', !lookupControl || conditionValue !== lookupControl.value);
1980 }
1981 }]);
1982 }();
1983
1984 /***/ }),
1985
1986 /***/ "../assets/dev/js/editor/utils/files-upload-handler.js":
1987 /*!*************************************************************!*\
1988 !*** ../assets/dev/js/editor/utils/files-upload-handler.js ***!
1989 \*************************************************************/
1990 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1991
1992 "use strict";
1993 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1994
1995
1996 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1997 Object.defineProperty(exports, "__esModule", ({
1998 value: true
1999 }));
2000 exports["default"] = void 0;
2001 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2002 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2003 var FilesUploadHandler = exports["default"] = /*#__PURE__*/function () {
2004 function FilesUploadHandler() {
2005 (0, _classCallCheck2.default)(this, FilesUploadHandler);
2006 }
2007 return (0, _createClass2.default)(FilesUploadHandler, null, [{
2008 key: "isUploadEnabled",
2009 value: function isUploadEnabled(mediaType) {
2010 var unfilteredFilesTypes = ['svg', 'application/json'];
2011 if (!unfilteredFilesTypes.includes(mediaType)) {
2012 return true;
2013 }
2014 return elementorCommon.config.filesUpload.unfilteredFiles;
2015 }
2016 }, {
2017 key: "setUploadTypeCaller",
2018 value: function setUploadTypeCaller(frame) {
2019 frame.uploader.uploader.param('uploadTypeCaller', 'elementor-wp-media-upload');
2020 }
2021 }, {
2022 key: "getUnfilteredFilesNonAdminDialog",
2023 value: function getUnfilteredFilesNonAdminDialog() {
2024 return elementorCommon.dialogsManager.createWidget('alert', {
2025 id: 'e-unfiltered-files-disabled-dialog',
2026 headerMessage: __('Sorry, you can\'t upload that file yet', 'elementor'),
2027 message: __('This is because JSON files may pose a security risk.', 'elementor') + '<br><br>' + __('To upload them anyway, ask the site administrator to enable unfiltered file uploads.', 'elementor'),
2028 strings: {
2029 confirm: __('Got it', 'elementor')
2030 }
2031 });
2032 }
2033 }, {
2034 key: "getUnfilteredFilesNotEnabledDialog",
2035 value: function getUnfilteredFilesNotEnabledDialog(callback) {
2036 var elementorInstance = window.elementorAdmin || window.elementor;
2037 if (!elementorInstance.config.user.is_administrator) {
2038 return this.getUnfilteredFilesNonAdminDialog();
2039 }
2040 var onConfirm = function onConfirm() {
2041 elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {}, true);
2042 elementorCommon.config.filesUpload.unfilteredFiles = true;
2043 callback();
2044 };
2045 return elementorInstance.helpers.getSimpleDialog('e-enable-unfiltered-files-dialog', __('Enable Unfiltered File Uploads', 'elementor'), __('Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.', 'elementor'), __('Enable', 'elementor'), onConfirm);
2046 }
2047 }, {
2048 key: "getUnfilteredFilesNotEnabledImportTemplateDialog",
2049 value: function getUnfilteredFilesNotEnabledImportTemplateDialog(callback) {
2050 if (!(window.elementorAdmin || window.elementor).config.user.is_administrator) {
2051 return this.getUnfilteredFilesNonAdminDialog();
2052 }
2053 return elementorCommon.dialogsManager.createWidget('confirm', {
2054 id: 'e-enable-unfiltered-files-dialog-import-template',
2055 headerMessage: __('Enable Unfiltered File Uploads', 'elementor'),
2056 message: __('Before you enable unfiltered files upload, note that such files include a security risk. Elementor does run a process to remove possible malicious code, but there is still risk involved when using such files.', 'elementor') + '<br /><br />' + __('If you do not enable uploading unfiltered files, any SVG or JSON (including lottie) files used in the uploaded template will not be imported.', 'elementor'),
2057 position: {
2058 my: 'center center',
2059 at: 'center center'
2060 },
2061 strings: {
2062 confirm: __('Enable and Import', 'elementor'),
2063 cancel: __('Import Without Enabling', 'elementor')
2064 },
2065 onConfirm: function onConfirm() {
2066 elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {
2067 success: function success() {
2068 // This utility is used in both the admin and the Editor.
2069 elementorCommon.config.filesUpload.unfilteredFiles = true;
2070 callback();
2071 }
2072 }, true);
2073 },
2074 onCancel: function onCancel() {
2075 return callback();
2076 }
2077 });
2078 }
2079 }]);
2080 }();
2081
2082 /***/ }),
2083
2084 /***/ "../assets/dev/js/utils/events.js":
2085 /*!****************************************!*\
2086 !*** ../assets/dev/js/utils/events.js ***!
2087 \****************************************/
2088 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2089
2090 "use strict";
2091
2092
2093 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2094 Object.defineProperty(exports, "__esModule", ({
2095 value: true
2096 }));
2097 exports["default"] = exports.Events = void 0;
2098 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2099 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2100 var Events = exports.Events = /*#__PURE__*/function () {
2101 function Events() {
2102 (0, _classCallCheck2.default)(this, Events);
2103 }
2104 return (0, _createClass2.default)(Events, null, [{
2105 key: "dispatch",
2106 value:
2107 /**
2108 * Dispatch an Elementor event.
2109 *
2110 * Will dispatch both native event & jQuery event (as BC).
2111 * By default, `bcEvent` is `null`.
2112 *
2113 * @param {Object} context - The context that will dispatch the event.
2114 * @param {string} event - Event to dispatch.
2115 * @param {*} data - Data to pass to the event, default to `null`.
2116 * @param {string|null} bcEvent - BC event to dispatch, default to `null`.
2117 *
2118 * @return {void}
2119 */
2120 function dispatch(context, event) {
2121 var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
2122 var bcEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
2123 // Make sure to use the native context if it's a jQuery instance.
2124 context = context instanceof jQuery ? context[0] : context;
2125
2126 // Dispatch the BC event only if exists.
2127 if (bcEvent) {
2128 context.dispatchEvent(new CustomEvent(bcEvent, {
2129 detail: data
2130 }));
2131 }
2132
2133 // jQuery's `.on()` listens also to native custom events, so there is no need
2134 // to dispatch also a jQuery event.
2135 context.dispatchEvent(new CustomEvent(event, {
2136 detail: data
2137 }));
2138 }
2139 }]);
2140 }();
2141 var _default = exports["default"] = Events;
2142
2143 /***/ }),
2144
2145 /***/ "../assets/dev/js/utils/json-upload-warning-message.js":
2146 /*!*************************************************************!*\
2147 !*** ../assets/dev/js/utils/json-upload-warning-message.js ***!
2148 \*************************************************************/
2149 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2150
2151 "use strict";
2152 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2153
2154
2155 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2156 Object.defineProperty(exports, "__esModule", ({
2157 value: true
2158 }));
2159 exports.showJsonUploadWarningMessageIfNeeded = showJsonUploadWarningMessageIfNeeded;
2160 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
2161 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
2162 var genericMessageIntroductionKey = 'upload_json_warning_generic_message';
2163 /**
2164 * @type {import('../utils/introduction').default | null}
2165 */
2166 var genericWarningModal = null;
2167 function showJsonUploadWarningMessageIfNeeded(_ref) {
2168 var introductionMap = _ref.introductionMap,
2169 IntroductionClass = _ref.IntroductionClass,
2170 _ref$waitForSetViewed = _ref.waitForSetViewed,
2171 waitForSetViewed = _ref$waitForSetViewed === void 0 ? false : _ref$waitForSetViewed;
2172 if (!genericWarningModal) {
2173 genericWarningModal = createGenericWarningModal(IntroductionClass);
2174 }
2175 genericWarningModal.setIntroductionMap(introductionMap);
2176 if (genericWarningModal.introductionViewed) {
2177 return Promise.resolve();
2178 }
2179 var dialog = genericWarningModal.getDialog();
2180 return new Promise(function (resolve, reject) {
2181 dialog.onHide = function () {
2182 // When closing the dialog (esc, click on background, etc.) we need to reject the promise.
2183 reject();
2184 };
2185 dialog.onConfirm = /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
2186 return _regenerator.default.wrap(function (_context) {
2187 while (1) switch (_context.prev = _context.next) {
2188 case 0:
2189 if (!dialog.getElements('checkbox-dont-show-again').prop('checked')) {
2190 _context.next = 3;
2191 break;
2192 }
2193 if (!waitForSetViewed) {
2194 _context.next = 2;
2195 break;
2196 }
2197 _context.next = 1;
2198 return genericWarningModal.setViewed();
2199 case 1:
2200 _context.next = 3;
2201 break;
2202 case 2:
2203 genericWarningModal.setViewed();
2204 case 3:
2205 // Hack: we need to resolve the promise and then hide it manually, to avoid rejecting the promise.
2206 // this because when closing the dialog (esc, click on background, etc.) it does not trigger `onCancel` method.
2207 resolve();
2208 dialog.hide();
2209 case 4:
2210 case "end":
2211 return _context.stop();
2212 }
2213 }, _callee);
2214 }));
2215 dialog.onCancel = function () {
2216 dialog.hide();
2217 };
2218 genericWarningModal.show();
2219 });
2220 }
2221
2222 /**
2223 * @param {import('../utils/introduction').default.prototype.constructor} IntroductionClass
2224 *
2225 * @return {import('../utils/introduction').default}
2226 */
2227 function createGenericWarningModal(IntroductionClass) {
2228 var _introduction$getDial, _introduction$getDial2;
2229 var dialogId = 'e-generic-warning-modal-for-json-upload';
2230 var introduction = new IntroductionClass({
2231 introductionKey: genericMessageIntroductionKey,
2232 dialogType: 'confirm',
2233 dialogOptions: {
2234 id: dialogId,
2235 headerMessage: __('Warning: JSON files may be unsafe', 'elementor'),
2236 message: __('Uploading JSON files from unknown sources can be harmful and put your site at risk. For maximum safety, only install JSON files from trusted sources.', 'elementor'),
2237 effects: {
2238 show: 'fadeIn',
2239 hide: 'fadeOut'
2240 },
2241 hide: {
2242 onBackgroundClick: true,
2243 onButtonClick: false
2244 },
2245 strings: {
2246 confirm: __('Continue', 'elementor'),
2247 cancel: __('Cancel', 'elementor')
2248 }
2249 }
2250 });
2251 var _createCheckboxAndLab = createCheckboxAndLabel(dialogId),
2252 checkbox = _createCheckboxAndLab.checkbox,
2253 label = _createCheckboxAndLab.label;
2254 introduction.getDialog().addElement('checkbox-dont-show-again', checkbox);
2255 (_introduction$getDial = introduction.getDialog().getElements('message')) === null || _introduction$getDial === void 0 || (_introduction$getDial2 = _introduction$getDial.append) === null || _introduction$getDial2 === void 0 || _introduction$getDial2.call(_introduction$getDial, label); // `getElements` return JQuery object.
2256
2257 return introduction;
2258 }
2259 function createCheckboxAndLabel(dialogId) {
2260 var checkboxId = "".concat(dialogId, "-dont-show-again");
2261 var checkbox = document.createElement('input');
2262 checkbox.type = 'checkbox';
2263 checkbox.name = checkboxId;
2264 checkbox.id = checkboxId;
2265 var label = document.createElement('label');
2266 label.htmlFor = checkboxId;
2267 label.textContent = __('Do not show this message again', 'elementor');
2268 label.style.display = 'block';
2269 label.style.marginTop = '20px';
2270 label.style.marginBottom = '20px';
2271 label.prepend(checkbox);
2272 return {
2273 checkbox: checkbox,
2274 label: label
2275 };
2276 }
2277
2278 /***/ }),
2279
2280 /***/ "../core/common/assets/js/utils/environment.js":
2281 /*!*****************************************************!*\
2282 !*** ../core/common/assets/js/utils/environment.js ***!
2283 \*****************************************************/
2284 /***/ ((__unused_webpack_module, exports) => {
2285
2286 "use strict";
2287
2288
2289 Object.defineProperty(exports, "__esModule", ({
2290 value: true
2291 }));
2292 exports["default"] = void 0;
2293 var matchUserAgent = function matchUserAgent(UserAgentStr) {
2294 return userAgent.indexOf(UserAgentStr) >= 0;
2295 },
2296 userAgent = navigator.userAgent,
2297 // Solution influenced by https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
2298
2299 // Opera 8.0+
2300 isOpera = !!window.opr && !!opr.addons || !!window.opera || matchUserAgent(' OPR/'),
2301 // Firefox 1.0+
2302 isFirefox = matchUserAgent('Firefox'),
2303 // Safari 3.0+ "[object HTMLElementConstructor]"
2304 isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) || /constructor/i.test(window.HTMLElement) || function (p) {
2305 return '[object SafariRemoteNotification]' === p.toString();
2306 }(!window.safari || typeof safari !== 'undefined' && safari.pushNotification),
2307 // Internet Explorer 6-11
2308 isIE = /Trident|MSIE/.test(userAgent) && (/* @cc_on!@*/ false || !!document.documentMode),
2309 // Edge 20+
2310 isEdge = !isIE && !!window.StyleMedia || matchUserAgent('Edg'),
2311 // Google Chrome (Not accurate)
2312 isChrome = !!window.chrome && matchUserAgent('Chrome') && !(isEdge || isOpera),
2313 // Blink engine
2314 isBlink = matchUserAgent('Chrome') && !!window.CSS,
2315 // Apple Webkit engine
2316 isAppleWebkit = matchUserAgent('AppleWebKit') && !isBlink,
2317 isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0,
2318 environment = {
2319 isTouchDevice: isTouchDevice,
2320 appleWebkit: isAppleWebkit,
2321 blink: isBlink,
2322 chrome: isChrome,
2323 edge: isEdge,
2324 firefox: isFirefox,
2325 ie: isIE,
2326 mac: matchUserAgent('Macintosh'),
2327 opera: isOpera,
2328 safari: isSafari,
2329 webkit: matchUserAgent('AppleWebKit')
2330 };
2331 var _default = exports["default"] = environment;
2332
2333 /***/ }),
2334
2335 /***/ "../core/experiments/assets/js/admin/behaviors/experiments-messages.js":
2336 /*!*****************************************************************************!*\
2337 !*** ../core/experiments/assets/js/admin/behaviors/experiments-messages.js ***!
2338 \*****************************************************************************/
2339 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2340
2341 "use strict";
2342 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
2343
2344
2345 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2346 Object.defineProperty(exports, "__esModule", ({
2347 value: true
2348 }));
2349 exports["default"] = void 0;
2350 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
2351 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2352 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2353 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
2354 var STATE_ACTIVE = 'active';
2355 var STATE_INACTIVE = 'inactive';
2356 var STATE_DEFAULT = 'default';
2357 var ExperimentsMessages = exports["default"] = /*#__PURE__*/function () {
2358 function ExperimentsMessages(_ref) {
2359 var selects = _ref.selects,
2360 submit = _ref.submit;
2361 (0, _classCallCheck2.default)(this, ExperimentsMessages);
2362 (0, _defineProperty2.default)(this, "elements", {});
2363 this.elements = {
2364 /**
2365 * @type {HTMLSelectElement[]}
2366 */
2367 selects: selects,
2368 /**
2369 * @type {HTMLInputElement}
2370 */
2371 submit: submit
2372 };
2373 }
2374 return (0, _createClass2.default)(ExperimentsMessages, [{
2375 key: "bindEvents",
2376 value: function bindEvents() {
2377 var _this = this;
2378 this.elements.selects.forEach(function (select) {
2379 select.addEventListener('change', function (e) {
2380 return _this.onExperimentStateChange(e);
2381 });
2382 });
2383 }
2384 }, {
2385 key: "onExperimentStateChange",
2386 value: function onExperimentStateChange(e) {
2387 var experimentId = e.currentTarget.dataset.experimentId,
2388 experimentNewState = this.getExperimentActualState(experimentId);
2389 switch (experimentNewState) {
2390 case STATE_ACTIVE:
2391 if (this.shouldShowDependenciesDialog(experimentId)) {
2392 this.showDependenciesDialog(experimentId);
2393 }
2394 break;
2395 case STATE_INACTIVE:
2396 if (this.shouldShowDeactivationDialog(experimentId)) {
2397 this.showDeactivationDialog(experimentId);
2398 } else {
2399 this.deactivateDependantExperiments(experimentId);
2400 }
2401 break;
2402 default:
2403 break;
2404 }
2405 }
2406 }, {
2407 key: "getExperimentData",
2408 value: function getExperimentData(experimentId) {
2409 return elementorAdminConfig.experiments[experimentId];
2410 }
2411 }, {
2412 key: "getExperimentDependencies",
2413 value: function getExperimentDependencies(experimentId) {
2414 var _this2 = this;
2415 return this.getExperimentData(experimentId).dependencies.map(function (dependencyId) {
2416 return _this2.getExperimentData(dependencyId);
2417 });
2418 }
2419 }, {
2420 key: "getExperimentSelect",
2421 value: function getExperimentSelect(experimentId) {
2422 return this.elements.selects.find(function (select) {
2423 return select.matches("[data-experiment-id=\"".concat(experimentId, "\"]"));
2424 });
2425 }
2426 }, {
2427 key: "setExperimentState",
2428 value: function setExperimentState(experimentId, state) {
2429 this.getExperimentSelect(experimentId).value = state;
2430 }
2431 }, {
2432 key: "getExperimentActualState",
2433 value: function getExperimentActualState(experimentId) {
2434 var _this$getExperimentSe;
2435 var state = (_this$getExperimentSe = this.getExperimentSelect(experimentId)) === null || _this$getExperimentSe === void 0 ? void 0 : _this$getExperimentSe.value;
2436 if (!state) {
2437 return this.getExperimentData(experimentId).state;
2438 }
2439 if (state !== STATE_DEFAULT) {
2440 return state;
2441 }
2442
2443 // Normalize the "default" state to the actual state value.
2444 return this.isExperimentActiveByDefault(experimentId) ? STATE_ACTIVE : STATE_INACTIVE;
2445 }
2446 }, {
2447 key: "isExperimentActive",
2448 value: function isExperimentActive(experimentId) {
2449 return this.getExperimentActualState(experimentId) === STATE_ACTIVE;
2450 }
2451 }, {
2452 key: "isExperimentActiveByDefault",
2453 value: function isExperimentActiveByDefault(experimentId) {
2454 return this.getExperimentData(experimentId).default === STATE_ACTIVE;
2455 }
2456 }, {
2457 key: "areAllDependenciesActive",
2458 value: function areAllDependenciesActive(dependencies) {
2459 var _this3 = this;
2460 return dependencies.every(function (dependency) {
2461 return _this3.isExperimentActive(dependency.name);
2462 });
2463 }
2464 }, {
2465 key: "deactivateDependantExperiments",
2466 value: function deactivateDependantExperiments(experimentId) {
2467 var _this4 = this;
2468 Object.entries(elementorAdminConfig.experiments).forEach(function (_ref2) {
2469 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
2470 id = _ref3[0],
2471 experimentData = _ref3[1];
2472 var isDependant = experimentData.dependencies.includes(experimentId),
2473 isActive = _this4.getExperimentActualState(id) === STATE_ACTIVE;
2474 if (isDependant && isActive) {
2475 _this4.setExperimentState(id, STATE_INACTIVE);
2476 }
2477 });
2478 }
2479 }, {
2480 key: "shouldShowDependenciesDialog",
2481 value: function shouldShowDependenciesDialog(experimentId) {
2482 var dependencies = this.getExperimentDependencies(experimentId);
2483 return !this.areAllDependenciesActive(dependencies);
2484 }
2485 }, {
2486 key: "shouldShowDeactivationDialog",
2487 value: function shouldShowDeactivationDialog(experimentId) {
2488 var getExperimentData = this.getExperimentData(experimentId),
2489 isInitialStateActive = getExperimentData.state === STATE_ACTIVE || getExperimentData.state === STATE_DEFAULT && getExperimentData.default === STATE_ACTIVE,
2490 hasMessage = !!this.getMessage(experimentId, 'on_deactivate');
2491 return hasMessage && isInitialStateActive;
2492 }
2493 }, {
2494 key: "showDialog",
2495 value: function showDialog(dialog) {
2496 return elementorCommon.dialogsManager.createWidget('confirm', {
2497 id: 'e-experiments-messages-dialog',
2498 headerMessage: dialog.headerMessage,
2499 message: dialog.message,
2500 position: {
2501 my: 'center center',
2502 at: 'center center'
2503 },
2504 strings: {
2505 confirm: dialog.strings.confirm,
2506 cancel: dialog.strings.cancel
2507 },
2508 hide: {
2509 onOutsideClick: false,
2510 onBackgroundClick: false,
2511 onEscKeyPress: false
2512 },
2513 onConfirm: dialog.onConfirm,
2514 onCancel: dialog.onCancel
2515 }).show();
2516 }
2517 }, {
2518 key: "getSiteLanguageCode",
2519 value: function getSiteLanguageCode() {
2520 var languageCode = document.querySelector('html').getAttribute('lang');
2521 return languageCode !== null && languageCode !== void 0 ? languageCode : 'en'; // Fallback to English if no language code found.
2522 }
2523 }, {
2524 key: "formatDependenciesList",
2525 value: function formatDependenciesList(dependencies) {
2526 var dependenciesTitles = dependencies.map(function (d) {
2527 return d.title;
2528 });
2529 var languageCode = this.getSiteLanguageCode();
2530 return new Intl.ListFormat(languageCode).format(dependenciesTitles);
2531 }
2532 }, {
2533 key: "showDependenciesDialog",
2534 value: function showDependenciesDialog(experimentId) {
2535 var _this5 = this;
2536 var experiment = this.getExperimentData(experimentId),
2537 experimentName = experiment.title,
2538 dependenciesList = this.formatDependenciesList(this.getExperimentDependencies(experimentId));
2539
2540 // Translators: %1$s: Experiment title, %2$s: Comma-separated dependencies list
2541 var message = __('In order to use %1$s, first you need to activate %2$s.', 'elementor').replace('%1$s', "<strong>".concat(experimentName, "</strong>")).replace('%2$s', dependenciesList);
2542 this.showDialog({
2543 message: message,
2544 headerMessage: __('First, activate another experiment.', 'elementor'),
2545 strings: {
2546 confirm: __('Activate', 'elementor'),
2547 cancel: __('Cancel', 'elementor')
2548 },
2549 onConfirm: function onConfirm() {
2550 _this5.getExperimentDependencies(experimentId).forEach(function (dependency) {
2551 _this5.setExperimentState(dependency.name, STATE_ACTIVE);
2552 });
2553 _this5.elements.submit.click();
2554 },
2555 onCancel: function onCancel() {
2556 _this5.setExperimentState(experimentId, STATE_INACTIVE);
2557 }
2558 });
2559 }
2560 }, {
2561 key: "showDeactivationDialog",
2562 value: function showDeactivationDialog(experimentId) {
2563 var _this6 = this;
2564 this.showDialog({
2565 message: this.getMessage(experimentId, 'on_deactivate'),
2566 headerMessage: __('Are you sure?', 'elementor'),
2567 strings: {
2568 confirm: __('Deactivate', 'elementor'),
2569 cancel: __('Cancel', 'elementor')
2570 },
2571 onConfirm: function onConfirm() {
2572 _this6.setExperimentState(experimentId, STATE_INACTIVE);
2573 _this6.deactivateDependantExperiments(experimentId);
2574 _this6.elements.submit.click();
2575 },
2576 onCancel: function onCancel() {
2577 _this6.setExperimentState(experimentId, STATE_ACTIVE);
2578 }
2579 });
2580 }
2581 }, {
2582 key: "getMessage",
2583 value: function getMessage(experimentId, messageId) {
2584 var _this$getExperimentDa;
2585 return (_this$getExperimentDa = this.getExperimentData(experimentId)) === null || _this$getExperimentDa === void 0 ? void 0 : _this$getExperimentDa.messages[messageId];
2586 }
2587 }]);
2588 }();
2589
2590 /***/ }),
2591
2592 /***/ "../core/experiments/assets/js/admin/module.js":
2593 /*!*****************************************************!*\
2594 !*** ../core/experiments/assets/js/admin/module.js ***!
2595 \*****************************************************/
2596 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2597
2598 "use strict";
2599
2600
2601 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2602 Object.defineProperty(exports, "__esModule", ({
2603 value: true
2604 }));
2605 exports["default"] = void 0;
2606 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2607 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2608 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
2609 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2610 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
2611 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2612 var _experimentsMessages = _interopRequireDefault(__webpack_require__(/*! ./behaviors/experiments-messages */ "../core/experiments/assets/js/admin/behaviors/experiments-messages.js"));
2613 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)); }
2614 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2615 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; }
2616 var ExperimentsModule = exports["default"] = /*#__PURE__*/function (_elementorModules$Vie) {
2617 function ExperimentsModule() {
2618 (0, _classCallCheck2.default)(this, ExperimentsModule);
2619 return _callSuper(this, ExperimentsModule, arguments);
2620 }
2621 (0, _inherits2.default)(ExperimentsModule, _elementorModules$Vie);
2622 return (0, _createClass2.default)(ExperimentsModule, [{
2623 key: "getDefaultSettings",
2624 value: function getDefaultSettings() {
2625 return {
2626 selectors: {
2627 experimentIndicators: '.e-experiment__title__indicator',
2628 experimentForm: '#elementor-settings-form',
2629 experimentSelects: '.e-experiment__select',
2630 experimentsButtons: '.e-experiment__button'
2631 }
2632 };
2633 }
2634 }, {
2635 key: "getDefaultElements",
2636 value: function getDefaultElements() {
2637 var _this$getSettings = this.getSettings(),
2638 selectors = _this$getSettings.selectors;
2639 return {
2640 $experimentIndicators: jQuery(selectors.experimentIndicators),
2641 $experimentForm: jQuery(selectors.experimentForm),
2642 $experimentSelects: jQuery(selectors.experimentSelects),
2643 $experimentsButtons: jQuery(selectors.experimentsButtons)
2644 };
2645 }
2646 }, {
2647 key: "bindEvents",
2648 value: function bindEvents() {
2649 var _this = this;
2650 this.elements.$experimentsButtons.on('click', function (event) {
2651 return _this.onExperimentsButtonsClick(event);
2652 });
2653 }
2654 }, {
2655 key: "onExperimentsButtonsClick",
2656 value: function onExperimentsButtonsClick(event) {
2657 var submitButton = jQuery(event.currentTarget);
2658 this.elements.$experimentSelects.val(submitButton.val());
2659 this.elements.$experimentForm.find('#submit').trigger('click');
2660 }
2661 }, {
2662 key: "addTipsy",
2663 value: function addTipsy($element) {
2664 $element.tipsy({
2665 gravity: 's',
2666 offset: 8,
2667 title: function title() {
2668 return this.getAttribute('data-tooltip');
2669 }
2670 });
2671 }
2672 }, {
2673 key: "addIndicatorsTooltips",
2674 value: function addIndicatorsTooltips() {
2675 var _this2 = this;
2676 this.elements.$experimentIndicators.each(function (index, experimentIndicator) {
2677 return _this2.addTipsy(jQuery(experimentIndicator));
2678 });
2679 }
2680 }, {
2681 key: "onInit",
2682 value: function onInit() {
2683 var _this3 = this;
2684 _superPropGet(ExperimentsModule, "onInit", this, 3)([]);
2685 this.experimentsDependency = new _experimentsMessages.default({
2686 selects: this.elements.$experimentSelects.toArray(),
2687 submit: this.elements.$experimentForm.find('#submit').get(0)
2688 });
2689 this.experimentsDependency.bindEvents();
2690 if (this.elements.$experimentIndicators.length) {
2691 import(/* webpackIgnore: true */"".concat(elementorCommon.config.urls.assets, "lib/tipsy/tipsy.min.js?ver=1.0.0")).then(function () {
2692 return _this3.addIndicatorsTooltips();
2693 });
2694 }
2695 }
2696 }]);
2697 }(elementorModules.ViewModule);
2698
2699 /***/ }),
2700
2701 /***/ "../modules/floating-buttons/assets/js/floating-buttons/admin/floating-buttons.js":
2702 /*!****************************************************************************************!*\
2703 !*** ../modules/floating-buttons/assets/js/floating-buttons/admin/floating-buttons.js ***!
2704 \****************************************************************************************/
2705 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2706
2707 "use strict";
2708
2709
2710 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2711 Object.defineProperty(exports, "__esModule", ({
2712 value: true
2713 }));
2714 exports["default"] = void 0;
2715 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2716 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2717 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
2718 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2719 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
2720 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2721 var _menuHandler = _interopRequireDefault(__webpack_require__(/*! elementor-admin/menu-handler */ "../assets/dev/js/admin/menu-handler.js"));
2722 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)); }
2723 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2724 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; }
2725 var FloatingButtonsHandler = exports["default"] = /*#__PURE__*/function (_AdminMenuHandler) {
2726 function FloatingButtonsHandler() {
2727 (0, _classCallCheck2.default)(this, FloatingButtonsHandler);
2728 return _callSuper(this, FloatingButtonsHandler, arguments);
2729 }
2730 (0, _inherits2.default)(FloatingButtonsHandler, _AdminMenuHandler);
2731 return (0, _createClass2.default)(FloatingButtonsHandler, [{
2732 key: "getDefaultSettings",
2733 value: function getDefaultSettings() {
2734 var pageName = 'e-floating-buttons',
2735 adminMenuSelectors = {
2736 // The escaping is done because jQuery requires it for selectors.
2737 contactPagesTablePage: 'a[href="edit.php?post_type=' + pageName + '"]',
2738 contactPagesAddNewPage: 'a[href="edit.php?post_type=elementor_library&page=' + pageName + '"]'
2739 };
2740 return {
2741 selectors: {
2742 addButton: '.page-title-action:first',
2743 templatesMenuItem: '.menu-icon-elementor_library',
2744 contactPagesMenuItem: "".concat(adminMenuSelectors.contactPagesTablePage, ", ").concat(adminMenuSelectors.contactPagesAddNewPage)
2745 }
2746 };
2747 }
2748 }, {
2749 key: "getDefaultElements",
2750 value: function getDefaultElements() {
2751 var selectors = this.getSettings('selectors'),
2752 elements = _superPropGet(FloatingButtonsHandler, "getDefaultElements", this, 3)([]);
2753 elements.$templatesMenuItem = jQuery(selectors.templatesMenuItem);
2754 elements.$contactPagesMenuItem = jQuery(selectors.contactPagesMenuItem);
2755 return elements;
2756 }
2757 }, {
2758 key: "onInit",
2759 value: function onInit() {
2760 var _elementorAdminConfig;
2761 _superPropGet(FloatingButtonsHandler, "onInit", this, 3)([]);
2762 var settings = this.getSettings(),
2763 isContactPagesTablePage = !!window.location.href.includes(settings.paths.contactPagesTablePage),
2764 isContactPagesTrashPage = !!window.location.href.includes(settings.paths.contactPagesTrashPage),
2765 isLContactPagesCreateYourFirstPage = !!window.location.href.includes(settings.paths.contactPagesAddNewPage);
2766
2767 // We need this because there is a complex bug in the WordPress admin menu that causes the Contact Menu to be broken
2768 // When the links page has at least one post and the contact page has none.
2769 if ((_elementorAdminConfig = elementorAdminConfig.urls) !== null && _elementorAdminConfig !== void 0 && _elementorAdminConfig.viewContactPageUrl) {
2770 this.elements.$templatesMenuItem.find('li.submenu-e-contact a').attr('href', elementorAdminConfig.urls.viewContactPageUrl);
2771 }
2772 if (isContactPagesTablePage || isContactPagesTrashPage || isLContactPagesCreateYourFirstPage) {
2773 this.highlightTopLevelMenuItem(this.elements.$templatesMenuItem, this.elements.$pagesMenuItemAndLink);
2774 this.highlightSubMenuItem(this.elements.$contactPagesMenuItem);
2775 jQuery(settings.selectors.addButton).attr('href', elementorAdminConfig.urls.addNewLinkUrlContact);
2776 }
2777 }
2778 }]);
2779 }(_menuHandler.default);
2780
2781 /***/ }),
2782
2783 /***/ "../modules/floating-buttons/assets/js/floating-buttons/admin/module.js":
2784 /*!******************************************************************************!*\
2785 !*** ../modules/floating-buttons/assets/js/floating-buttons/admin/module.js ***!
2786 \******************************************************************************/
2787 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2788
2789 "use strict";
2790
2791
2792 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2793 Object.defineProperty(exports, "__esModule", ({
2794 value: true
2795 }));
2796 exports["default"] = void 0;
2797 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2798 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2799 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
2800 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2801 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2802 var _floatingButtons = _interopRequireDefault(__webpack_require__(/*! ./floating-buttons */ "../modules/floating-buttons/assets/js/floating-buttons/admin/floating-buttons.js"));
2803 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)); }
2804 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2805 var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
2806 function _default() {
2807 var _this;
2808 (0, _classCallCheck2.default)(this, _default);
2809 _this = _callSuper(this, _default);
2810 elementorCommon.elements.$window.on('elementor/admin/init', function () {
2811 _this.runHandler();
2812 });
2813 return _this;
2814 }
2815 (0, _inherits2.default)(_default, _elementorModules$Mod);
2816 return (0, _createClass2.default)(_default, [{
2817 key: "runHandler",
2818 value: function runHandler() {
2819 var pageNameContact = 'e-floating-buttons',
2820 paths = {
2821 contactPagesTablePage: 'edit.php?post_type=' + pageNameContact,
2822 contactPagesAddNewPage: 'edit.php?post_type=elementor_library&page=' + pageNameContact,
2823 contactPagesTrashPage: 'edit.php?post_status=trash&post_type=' + pageNameContact
2824 },
2825 args = {
2826 paths: paths
2827 };
2828
2829 // This class modifies elements in the WordPress admin that are rendered "wrong" by the WordPress core
2830 // and could not be modified in the backend.
2831 new _floatingButtons.default(args);
2832 }
2833 }]);
2834 }(elementorModules.Module);
2835
2836 /***/ }),
2837
2838 /***/ "../modules/landing-pages/assets/js/admin/landing-pages.js":
2839 /*!*****************************************************************!*\
2840 !*** ../modules/landing-pages/assets/js/admin/landing-pages.js ***!
2841 \*****************************************************************/
2842 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2843
2844 "use strict";
2845
2846
2847 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2848 Object.defineProperty(exports, "__esModule", ({
2849 value: true
2850 }));
2851 exports["default"] = void 0;
2852 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2853 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2854 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
2855 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2856 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
2857 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2858 var _menuHandler = _interopRequireDefault(__webpack_require__(/*! elementor-admin/menu-handler */ "../assets/dev/js/admin/menu-handler.js"));
2859 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)); }
2860 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2861 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; }
2862 var LandingPagesHandler = exports["default"] = /*#__PURE__*/function (_AdminMenuHandler) {
2863 function LandingPagesHandler() {
2864 (0, _classCallCheck2.default)(this, LandingPagesHandler);
2865 return _callSuper(this, LandingPagesHandler, arguments);
2866 }
2867 (0, _inherits2.default)(LandingPagesHandler, _AdminMenuHandler);
2868 return (0, _createClass2.default)(LandingPagesHandler, [{
2869 key: "getDefaultSettings",
2870 value: function getDefaultSettings() {
2871 var pageName = 'e-landing-page',
2872 adminMenuSelectors = {
2873 // The escaping is done because jQuery requires it for selectors.
2874 landingPagesTablePage: 'a[href="edit.php?post_type=' + pageName + '"]',
2875 landingPagesAddNewPage: 'a[href="edit.php?post_type=elementor_library&page=' + pageName + '"]'
2876 };
2877 return {
2878 selectors: {
2879 addButton: '.page-title-action:first',
2880 pagesMenuItemAndLink: '#menu-pages, #menu-pages > a',
2881 landingPagesMenuItem: "".concat(adminMenuSelectors.landingPagesTablePage, ", ").concat(adminMenuSelectors.landingPagesAddNewPage),
2882 templatesMenuItem: '.menu-icon-elementor_library'
2883 }
2884 };
2885 }
2886 }, {
2887 key: "getDefaultElements",
2888 value: function getDefaultElements() {
2889 var selectors = this.getSettings('selectors'),
2890 elements = _superPropGet(LandingPagesHandler, "getDefaultElements", this, 3)([]);
2891 elements.$landingPagesMenuItem = jQuery(selectors.landingPagesMenuItem);
2892 elements.$templatesMenuItem = jQuery(selectors.templatesMenuItem);
2893 elements.$pagesMenuItemAndLink = jQuery(selectors.pagesMenuItemAndLink);
2894 return elements;
2895 }
2896 }, {
2897 key: "onInit",
2898 value: function onInit() {
2899 _superPropGet(LandingPagesHandler, "onInit", this, 3)([]);
2900 var settings = this.getSettings(),
2901 isLandingPagesTablePage = !!window.location.href.includes(settings.paths.landingPagesTablePage),
2902 isLandingPagesTrashPage = !!window.location.href.includes(settings.paths.landingPagesTrashPage),
2903 isLandingPagesCreateYourFirstPage = !!window.location.href.includes(settings.paths.landingPagesAddNewPage);
2904
2905 // If the current page is a Landing Pages Page (the Posts Table page, "Create Your First.." page, or a native
2906 // WordPress dashboard page edit screen when using WordPress' Classic Editor).
2907 if (isLandingPagesTablePage || isLandingPagesTrashPage || isLandingPagesCreateYourFirstPage || settings.isLandingPageAdminEdit) {
2908 // Make sure the active admin top level menu item is 'Templates', and not 'Pages'.
2909 this.highlightTopLevelMenuItem(this.elements.$templatesMenuItem, this.elements.$pagesMenuItemAndLink);
2910 this.highlightSubMenuItem(this.elements.$landingPagesMenuItem);
2911
2912 // Overwrite the 'Add New' button at the top of the page to open in Elementor with the library module open.
2913 jQuery(settings.selectors.addButton).attr('href', elementorAdminConfig.urls.addNewLandingPageUrl);
2914 }
2915 }
2916 }]);
2917 }(_menuHandler.default);
2918
2919 /***/ }),
2920
2921 /***/ "../modules/landing-pages/assets/js/admin/module.js":
2922 /*!**********************************************************!*\
2923 !*** ../modules/landing-pages/assets/js/admin/module.js ***!
2924 \**********************************************************/
2925 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2926
2927 "use strict";
2928
2929
2930 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
2931 Object.defineProperty(exports, "__esModule", ({
2932 value: true
2933 }));
2934 exports["default"] = void 0;
2935 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
2936 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
2937 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
2938 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
2939 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
2940 var _landingPages = _interopRequireDefault(__webpack_require__(/*! ./landing-pages */ "../modules/landing-pages/assets/js/admin/landing-pages.js"));
2941 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)); }
2942 function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2943 var _default = exports["default"] = /*#__PURE__*/function (_elementorModules$Mod) {
2944 function _default() {
2945 var _this;
2946 (0, _classCallCheck2.default)(this, _default);
2947 _this = _callSuper(this, _default);
2948 elementorCommon.elements.$window.on('elementor/admin/init', function () {
2949 _this.runHandler();
2950 });
2951 return _this;
2952 }
2953 (0, _inherits2.default)(_default, _elementorModules$Mod);
2954 return (0, _createClass2.default)(_default, [{
2955 key: "runHandler",
2956 value: function runHandler() {
2957 var _elementorAdmin$confi, _elementorAdmin$confi2;
2958 var pageName = 'e-landing-page',
2959 paths = {
2960 landingPagesTablePage: 'edit.php?post_type=' + pageName,
2961 landingPagesAddNewPage: 'edit.php?post_type=elementor_library&page=' + pageName,
2962 landingPagesTrashPage: 'edit.php?post_status=trash&post_type=' + pageName
2963 },
2964 args = {
2965 path: (_elementorAdmin$confi = elementorAdmin.config.landingPages) !== null && _elementorAdmin$confi !== void 0 && _elementorAdmin$confi.landingPagesHasPages ? paths.landingPagesTablePage : paths.landingPagesAddNewPage,
2966 isLandingPageAdminEdit: (_elementorAdmin$confi2 = elementorAdmin.config.landingPages) === null || _elementorAdmin$confi2 === void 0 ? void 0 : _elementorAdmin$confi2.isLandingPageAdminEdit,
2967 paths: paths
2968 };
2969
2970 // This class modifies elements in the WordPress admin that are rendered "wrong" by the WordPress core
2971 // and could not be modified in the backend.
2972 new _landingPages.default(args);
2973 }
2974 }]);
2975 }(elementorModules.Module);
2976
2977 /***/ }),
2978
2979 /***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
2980 /*!***************************************************************!*\
2981 !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
2982 \***************************************************************/
2983 /***/ ((module) => {
2984
2985 function _OverloadYield(e, d) {
2986 this.v = e, this.k = d;
2987 }
2988 module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
2989
2990 /***/ }),
2991
2992 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
2993 /*!******************************************************************!*\
2994 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
2995 \******************************************************************/
2996 /***/ ((module) => {
2997
2998 function _arrayLikeToArray(r, a) {
2999 (null == a || a > r.length) && (a = r.length);
3000 for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
3001 return n;
3002 }
3003 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
3004
3005 /***/ }),
3006
3007 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
3008 /*!****************************************************************!*\
3009 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
3010 \****************************************************************/
3011 /***/ ((module) => {
3012
3013 function _arrayWithHoles(r) {
3014 if (Array.isArray(r)) return r;
3015 }
3016 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
3017
3018 /***/ }),
3019
3020 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
3021 /*!***********************************************************************!*\
3022 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
3023 \***********************************************************************/
3024 /***/ ((module) => {
3025
3026 function _assertThisInitialized(e) {
3027 if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
3028 return e;
3029 }
3030 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
3031
3032 /***/ }),
3033
3034 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
3035 /*!******************************************************************!*\
3036 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
3037 \******************************************************************/
3038 /***/ ((module) => {
3039
3040 function asyncGeneratorStep(n, t, e, r, o, a, c) {
3041 try {
3042 var i = n[a](c),
3043 u = i.value;
3044 } catch (n) {
3045 return void e(n);
3046 }
3047 i.done ? t(u) : Promise.resolve(u).then(r, o);
3048 }
3049 function _asyncToGenerator(n) {
3050 return function () {
3051 var t = this,
3052 e = arguments;
3053 return new Promise(function (r, o) {
3054 var a = n.apply(t, e);
3055 function _next(n) {
3056 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
3057 }
3058 function _throw(n) {
3059 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
3060 }
3061 _next(void 0);
3062 });
3063 };
3064 }
3065 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
3066
3067 /***/ }),
3068
3069 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
3070 /*!****************************************************************!*\
3071 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
3072 \****************************************************************/
3073 /***/ ((module) => {
3074
3075 function _classCallCheck(a, n) {
3076 if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
3077 }
3078 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
3079
3080 /***/ }),
3081
3082 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
3083 /*!*************************************************************!*\
3084 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
3085 \*************************************************************/
3086 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3087
3088 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
3089 function _defineProperties(e, r) {
3090 for (var t = 0; t < r.length; t++) {
3091 var o = r[t];
3092 o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);
3093 }
3094 }
3095 function _createClass(e, r, t) {
3096 return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
3097 writable: !1
3098 }), e;
3099 }
3100 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
3101
3102 /***/ }),
3103
3104 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
3105 /*!****************************************************************!*\
3106 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
3107 \****************************************************************/
3108 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3109
3110 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
3111 function _defineProperty(e, r, t) {
3112 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
3113 value: t,
3114 enumerable: !0,
3115 configurable: !0,
3116 writable: !0
3117 }) : e[r] = t, e;
3118 }
3119 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
3120
3121 /***/ }),
3122
3123 /***/ "../node_modules/@babel/runtime/helpers/get.js":
3124 /*!*****************************************************!*\
3125 !*** ../node_modules/@babel/runtime/helpers/get.js ***!
3126 \*****************************************************/
3127 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3128
3129 var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime/helpers/superPropBase.js");
3130 function _get() {
3131 return module.exports = _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {
3132 var p = superPropBase(e, t);
3133 if (p) {
3134 var n = Object.getOwnPropertyDescriptor(p, t);
3135 return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
3136 }
3137 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _get.apply(null, arguments);
3138 }
3139 module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports;
3140
3141 /***/ }),
3142
3143 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
3144 /*!****************************************************************!*\
3145 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
3146 \****************************************************************/
3147 /***/ ((module) => {
3148
3149 function _getPrototypeOf(t) {
3150 return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
3151 return t.__proto__ || Object.getPrototypeOf(t);
3152 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _getPrototypeOf(t);
3153 }
3154 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
3155
3156 /***/ }),
3157
3158 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
3159 /*!**********************************************************!*\
3160 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
3161 \**********************************************************/
3162 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3163
3164 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
3165 function _inherits(t, e) {
3166 if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
3167 t.prototype = Object.create(e && e.prototype, {
3168 constructor: {
3169 value: t,
3170 writable: !0,
3171 configurable: !0
3172 }
3173 }), Object.defineProperty(t, "prototype", {
3174 writable: !1
3175 }), e && setPrototypeOf(t, e);
3176 }
3177 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
3178
3179 /***/ }),
3180
3181 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
3182 /*!***********************************************************************!*\
3183 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
3184 \***********************************************************************/
3185 /***/ ((module) => {
3186
3187 function _interopRequireDefault(e) {
3188 return e && e.__esModule ? e : {
3189 "default": e
3190 };
3191 }
3192 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
3193
3194 /***/ }),
3195
3196 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
3197 /*!**********************************************************************!*\
3198 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
3199 \**********************************************************************/
3200 /***/ ((module) => {
3201
3202 function _iterableToArrayLimit(r, l) {
3203 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
3204 if (null != t) {
3205 var e,
3206 n,
3207 i,
3208 u,
3209 a = [],
3210 f = !0,
3211 o = !1;
3212 try {
3213 if (i = (t = t.call(r)).next, 0 === l) {
3214 if (Object(t) !== t) return;
3215 f = !1;
3216 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
3217 } catch (r) {
3218 o = !0, n = r;
3219 } finally {
3220 try {
3221 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
3222 } finally {
3223 if (o) throw n;
3224 }
3225 }
3226 return a;
3227 }
3228 }
3229 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
3230
3231 /***/ }),
3232
3233 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
3234 /*!*****************************************************************!*\
3235 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
3236 \*****************************************************************/
3237 /***/ ((module) => {
3238
3239 function _nonIterableRest() {
3240 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3241 }
3242 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
3243
3244 /***/ }),
3245
3246 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
3247 /*!***************************************************************************!*\
3248 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
3249 \***************************************************************************/
3250 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3251
3252 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
3253 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
3254 function _possibleConstructorReturn(t, e) {
3255 if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
3256 if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
3257 return assertThisInitialized(t);
3258 }
3259 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
3260
3261 /***/ }),
3262
3263 /***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
3264 /*!*************************************************************!*\
3265 !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
3266 \*************************************************************/
3267 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3268
3269 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
3270 function _regenerator() {
3271 /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
3272 var e,
3273 t,
3274 r = "function" == typeof Symbol ? Symbol : {},
3275 n = r.iterator || "@@iterator",
3276 o = r.toStringTag || "@@toStringTag";
3277 function i(r, n, o, i) {
3278 var c = n && n.prototype instanceof Generator ? n : Generator,
3279 u = Object.create(c.prototype);
3280 return regeneratorDefine(u, "_invoke", function (r, n, o) {
3281 var i,
3282 c,
3283 u,
3284 f = 0,
3285 p = o || [],
3286 y = !1,
3287 G = {
3288 p: 0,
3289 n: 0,
3290 v: e,
3291 a: d,
3292 f: d.bind(e, 4),
3293 d: function d(t, r) {
3294 return i = t, c = 0, u = e, G.n = r, a;
3295 }
3296 };
3297 function d(r, n) {
3298 for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
3299 var o,
3300 i = p[t],
3301 d = G.p,
3302 l = i[2];
3303 r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
3304 }
3305 if (o || r > 1) return a;
3306 throw y = !0, n;
3307 }
3308 return function (o, p, l) {
3309 if (f > 1) throw TypeError("Generator is already running");
3310 for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
3311 i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
3312 try {
3313 if (f = 2, i) {
3314 if (c || (o = "next"), t = i[o]) {
3315 if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
3316 if (!t.done) return t;
3317 u = t.value, c < 2 && (c = 0);
3318 } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
3319 i = e;
3320 } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
3321 } catch (t) {
3322 i = e, c = 1, u = t;
3323 } finally {
3324 f = 1;
3325 }
3326 }
3327 return {
3328 value: t,
3329 done: y
3330 };
3331 };
3332 }(r, o, i), !0), u;
3333 }
3334 var a = {};
3335 function Generator() {}
3336 function GeneratorFunction() {}
3337 function GeneratorFunctionPrototype() {}
3338 t = Object.getPrototypeOf;
3339 var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
3340 return this;
3341 }), t),
3342 u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
3343 function f(e) {
3344 return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
3345 }
3346 return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
3347 return this;
3348 }), regeneratorDefine(u, "toString", function () {
3349 return "[object Generator]";
3350 }), (module.exports = _regenerator = function _regenerator() {
3351 return {
3352 w: i,
3353 m: f
3354 };
3355 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
3356 }
3357 module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
3358
3359 /***/ }),
3360
3361 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
3362 /*!******************************************************************!*\
3363 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
3364 \******************************************************************/
3365 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3366
3367 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
3368 function _regeneratorAsync(n, e, r, t, o) {
3369 var a = regeneratorAsyncGen(n, e, r, t, o);
3370 return a.next().then(function (n) {
3371 return n.done ? n.value : a.next();
3372 });
3373 }
3374 module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
3375
3376 /***/ }),
3377
3378 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
3379 /*!*********************************************************************!*\
3380 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
3381 \*********************************************************************/
3382 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3383
3384 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
3385 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
3386 function _regeneratorAsyncGen(r, e, t, o, n) {
3387 return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
3388 }
3389 module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
3390
3391 /***/ }),
3392
3393 /***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
3394 /*!**************************************************************************!*\
3395 !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
3396 \**************************************************************************/
3397 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3398
3399 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
3400 var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
3401 function AsyncIterator(t, e) {
3402 function n(r, o, i, f) {
3403 try {
3404 var c = t[r](o),
3405 u = c.value;
3406 return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
3407 n("next", t, i, f);
3408 }, function (t) {
3409 n("throw", t, i, f);
3410 }) : e.resolve(u).then(function (t) {
3411 c.value = t, i(c);
3412 }, function (t) {
3413 return n("throw", t, i, f);
3414 });
3415 } catch (t) {
3416 f(t);
3417 }
3418 }
3419 var r;
3420 this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
3421 return this;
3422 })), regeneratorDefine(this, "_invoke", function (t, o, i) {
3423 function f() {
3424 return new e(function (e, r) {
3425 n(t, i, e, r);
3426 });
3427 }
3428 return r = r ? r.then(f, f) : f();
3429 }, !0);
3430 }
3431 module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
3432
3433 /***/ }),
3434
3435 /***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
3436 /*!*******************************************************************!*\
3437 !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
3438 \*******************************************************************/
3439 /***/ ((module) => {
3440
3441 function _regeneratorDefine(e, r, n, t) {
3442 var i = Object.defineProperty;
3443 try {
3444 i({}, "", {});
3445 } catch (e) {
3446 i = 0;
3447 }
3448 module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
3449 function o(r, n) {
3450 _regeneratorDefine(e, r, function (e) {
3451 return this._invoke(r, n, e);
3452 });
3453 }
3454 r ? i ? i(e, r, {
3455 value: n,
3456 enumerable: !t,
3457 configurable: !t,
3458 writable: !t
3459 }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
3460 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
3461 }
3462 module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
3463
3464 /***/ }),
3465
3466 /***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
3467 /*!*****************************************************************!*\
3468 !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
3469 \*****************************************************************/
3470 /***/ ((module) => {
3471
3472 function _regeneratorKeys(e) {
3473 var n = Object(e),
3474 r = [];
3475 for (var t in n) r.unshift(t);
3476 return function e() {
3477 for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
3478 return e.done = !0, e;
3479 };
3480 }
3481 module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
3482
3483 /***/ }),
3484
3485 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
3486 /*!********************************************************************!*\
3487 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
3488 \********************************************************************/
3489 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3490
3491 var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
3492 var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
3493 var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
3494 var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
3495 var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
3496 var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
3497 var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
3498 function _regeneratorRuntime() {
3499 "use strict";
3500
3501 var r = regenerator(),
3502 e = r.m(_regeneratorRuntime),
3503 t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
3504 function n(r) {
3505 var e = "function" == typeof r && r.constructor;
3506 return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
3507 }
3508 var o = {
3509 "throw": 1,
3510 "return": 2,
3511 "break": 3,
3512 "continue": 3
3513 };
3514 function a(r) {
3515 var e, t;
3516 return function (n) {
3517 e || (e = {
3518 stop: function stop() {
3519 return t(n.a, 2);
3520 },
3521 "catch": function _catch() {
3522 return n.v;
3523 },
3524 abrupt: function abrupt(r, e) {
3525 return t(n.a, o[r], e);
3526 },
3527 delegateYield: function delegateYield(r, o, a) {
3528 return e.resultName = o, t(n.d, regeneratorValues(r), a);
3529 },
3530 finish: function finish(r) {
3531 return t(n.f, r);
3532 }
3533 }, t = function t(r, _t, o) {
3534 n.p = e.prev, n.n = e.next;
3535 try {
3536 return r(_t, o);
3537 } finally {
3538 e.next = n.n;
3539 }
3540 }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
3541 try {
3542 return r.call(this, e);
3543 } finally {
3544 n.p = e.prev, n.n = e.next;
3545 }
3546 };
3547 }
3548 return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
3549 return {
3550 wrap: function wrap(e, t, n, o) {
3551 return r.w(a(e), t, n, o && o.reverse());
3552 },
3553 isGeneratorFunction: n,
3554 mark: r.m,
3555 awrap: function awrap(r, e) {
3556 return new OverloadYield(r, e);
3557 },
3558 AsyncIterator: regeneratorAsyncIterator,
3559 async: function async(r, e, t, o, u) {
3560 return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
3561 },
3562 keys: regeneratorKeys,
3563 values: regeneratorValues
3564 };
3565 }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
3566 }
3567 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
3568
3569 /***/ }),
3570
3571 /***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
3572 /*!*******************************************************************!*\
3573 !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
3574 \*******************************************************************/
3575 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3576
3577 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
3578 function _regeneratorValues(e) {
3579 if (null != e) {
3580 var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
3581 r = 0;
3582 if (t) return t.call(e);
3583 if ("function" == typeof e.next) return e;
3584 if (!isNaN(e.length)) return {
3585 next: function next() {
3586 return e && r >= e.length && (e = void 0), {
3587 value: e && e[r++],
3588 done: !e
3589 };
3590 }
3591 };
3592 }
3593 throw new TypeError(_typeof(e) + " is not iterable");
3594 }
3595 module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
3596
3597 /***/ }),
3598
3599 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
3600 /*!****************************************************************!*\
3601 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
3602 \****************************************************************/
3603 /***/ ((module) => {
3604
3605 function _setPrototypeOf(t, e) {
3606 return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
3607 return t.__proto__ = e, t;
3608 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _setPrototypeOf(t, e);
3609 }
3610 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
3611
3612 /***/ }),
3613
3614 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
3615 /*!***************************************************************!*\
3616 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
3617 \***************************************************************/
3618 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3619
3620 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
3621 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
3622 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
3623 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
3624 function _slicedToArray(r, e) {
3625 return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
3626 }
3627 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
3628
3629 /***/ }),
3630
3631 /***/ "../node_modules/@babel/runtime/helpers/superPropBase.js":
3632 /*!***************************************************************!*\
3633 !*** ../node_modules/@babel/runtime/helpers/superPropBase.js ***!
3634 \***************************************************************/
3635 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3636
3637 var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js");
3638 function _superPropBase(t, o) {
3639 for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););
3640 return t;
3641 }
3642 module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
3643
3644 /***/ }),
3645
3646 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
3647 /*!*************************************************************!*\
3648 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
3649 \*************************************************************/
3650 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3651
3652 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
3653 function toPrimitive(t, r) {
3654 if ("object" != _typeof(t) || !t) return t;
3655 var e = t[Symbol.toPrimitive];
3656 if (void 0 !== e) {
3657 var i = e.call(t, r || "default");
3658 if ("object" != _typeof(i)) return i;
3659 throw new TypeError("@@toPrimitive must return a primitive value.");
3660 }
3661 return ("string" === r ? String : Number)(t);
3662 }
3663 module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
3664
3665 /***/ }),
3666
3667 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
3668 /*!***************************************************************!*\
3669 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
3670 \***************************************************************/
3671 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3672
3673 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
3674 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
3675 function toPropertyKey(t) {
3676 var i = toPrimitive(t, "string");
3677 return "symbol" == _typeof(i) ? i : i + "";
3678 }
3679 module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
3680
3681 /***/ }),
3682
3683 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
3684 /*!********************************************************!*\
3685 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
3686 \********************************************************/
3687 /***/ ((module) => {
3688
3689 function _typeof(o) {
3690 "@babel/helpers - typeof";
3691
3692 return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
3693 return typeof o;
3694 } : function (o) {
3695 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
3696 }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
3697 }
3698 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
3699
3700 /***/ }),
3701
3702 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
3703 /*!****************************************************************************!*\
3704 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
3705 \****************************************************************************/
3706 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3707
3708 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
3709 function _unsupportedIterableToArray(r, a) {
3710 if (r) {
3711 if ("string" == typeof r) return arrayLikeToArray(r, a);
3712 var t = {}.toString.call(r).slice(8, -1);
3713 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;
3714 }
3715 }
3716 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
3717
3718 /***/ }),
3719
3720 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
3721 /*!***********************************************************!*\
3722 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
3723 \***********************************************************/
3724 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3725
3726 // TODO(Babel 8): Remove this file.
3727
3728 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
3729 module.exports = runtime;
3730
3731 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
3732 try {
3733 regeneratorRuntime = runtime;
3734 } catch (accidentalStrictMode) {
3735 if (typeof globalThis === "object") {
3736 globalThis.regeneratorRuntime = runtime;
3737 } else {
3738 Function("r", "regeneratorRuntime = r")(runtime);
3739 }
3740 }
3741
3742
3743 /***/ }),
3744
3745 /***/ "@wordpress/i18n":
3746 /*!**************************!*\
3747 !*** external "wp.i18n" ***!
3748 \**************************/
3749 /***/ ((module) => {
3750
3751 "use strict";
3752 module.exports = wp.i18n;
3753
3754 /***/ })
3755
3756 /******/ });
3757 /************************************************************************/
3758 /******/ // The module cache
3759 /******/ var __webpack_module_cache__ = {};
3760 /******/
3761 /******/ // The require function
3762 /******/ function __webpack_require__(moduleId) {
3763 /******/ // Check if module is in cache
3764 /******/ var cachedModule = __webpack_module_cache__[moduleId];
3765 /******/ if (cachedModule !== undefined) {
3766 /******/ return cachedModule.exports;
3767 /******/ }
3768 /******/ // Create a new module (and put it into the cache)
3769 /******/ var module = __webpack_module_cache__[moduleId] = {
3770 /******/ // no module.id needed
3771 /******/ // no module.loaded needed
3772 /******/ exports: {}
3773 /******/ };
3774 /******/
3775 /******/ // Execute the module function
3776 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
3777 /******/
3778 /******/ // Return the exports of the module
3779 /******/ return module.exports;
3780 /******/ }
3781 /******/
3782 /************************************************************************/
3783 var __webpack_exports__ = {};
3784 // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
3785 (() => {
3786 "use strict";
3787 /*!***************************************!*\
3788 !*** ../assets/dev/js/admin/admin.js ***!
3789 \***************************************/
3790 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
3791
3792
3793 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
3794 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
3795 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
3796 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
3797 var _module = _interopRequireDefault(__webpack_require__(/*! elementor/modules/landing-pages/assets/js/admin/module */ "../modules/landing-pages/assets/js/admin/module.js"));
3798 var _module2 = _interopRequireDefault(__webpack_require__(/*! elementor/core/experiments/assets/js/admin/module */ "../core/experiments/assets/js/admin/module.js"));
3799 var _environment = _interopRequireDefault(__webpack_require__(/*! ../../../../core/common/assets/js/utils/environment */ "../core/common/assets/js/utils/environment.js"));
3800 var _events = _interopRequireDefault(__webpack_require__(/*! elementor-utils/events */ "../assets/dev/js/utils/events.js"));
3801 var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../editor/utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js"));
3802 var _templateControls = _interopRequireDefault(__webpack_require__(/*! ./new-template/template-controls.js */ "../assets/dev/js/admin/new-template/template-controls.js"));
3803 var _jsonUploadWarningMessage = __webpack_require__(/*! elementor-utils/json-upload-warning-message */ "../assets/dev/js/utils/json-upload-warning-message.js");
3804 var _module3 = _interopRequireDefault(__webpack_require__(/*! elementor/modules/floating-buttons/assets/js/floating-buttons/admin/module */ "../modules/floating-buttons/assets/js/floating-buttons/admin/module.js"));
3805 __webpack_require__(/*! elementor-app/event-track/wp-dashboard-tracking */ "../app/assets/js/event-track/wp-dashboard-tracking.js");
3806 (function ($) {
3807 var ElementorAdmin = elementorModules.ViewModule.extend({
3808 maintenanceMode: null,
3809 config: elementorAdminConfig,
3810 getDefaultElements: function getDefaultElements() {
3811 var elements = {
3812 $switchMode: $('#elementor-switch-mode'),
3813 $goToEditLink: $('#elementor-go-to-edit-page-link'),
3814 $switchModeInput: $('#elementor-switch-mode-input'),
3815 $switchModeButton: $('#elementor-switch-mode-button'),
3816 $elementorLoader: $('.elementor-loader'),
3817 $builderEditor: $('#elementor-editor'),
3818 $importButton: $('#elementor-import-template-trigger'),
3819 $importNowButton: $('#e-import-template-action'),
3820 $importArea: $('#elementor-import-template-area'),
3821 $importForm: $('#elementor-import-template-form'),
3822 $importFormFileInput: $('#elementor-import-template-form input[type="file"]'),
3823 $settingsForm: $('#elementor-settings-form'),
3824 $settingsTabsWrapper: $('#elementor-settings-tabs-wrapper'),
3825 $menuGoProLink: $('a[href="admin.php?page=go_elementor_pro"], a[href*="admin.php?page=elementor-one-upgrade"]'),
3826 $reMigrateGlobalsButton: $('.elementor-re-migrate-globals-button')
3827 };
3828 elements.$settingsFormPages = elements.$settingsForm.find('.elementor-settings-form-page');
3829 elements.$activeSettingsPage = elements.$settingsFormPages.filter('.elementor-active');
3830 elements.$settingsTabs = elements.$settingsTabsWrapper.children();
3831 elements.$activeSettingsTab = elements.$settingsTabs.filter('.nav-tab-active');
3832 return elements;
3833 },
3834 toggleStatus: function toggleStatus() {
3835 var isElementorMode = this.isElementorMode();
3836 elementorCommon.elements.$body.toggleClass('elementor-editor-active', isElementorMode).toggleClass('elementor-editor-inactive', !isElementorMode);
3837 },
3838 bindEvents: function bindEvents() {
3839 var self = this;
3840 self.elements.$switchModeButton.on('click', function (event) {
3841 event.preventDefault();
3842 if (self.isElementorMode()) {
3843 elementorCommon.dialogsManager.createWidget('confirm', {
3844 message: __('Please note that you are switching to WordPress default editor. Your current layout, design and content might break.', 'elementor'),
3845 headerMessage: __('Back to WordPress Editor', 'elementor'),
3846 strings: {
3847 confirm: __('Continue', 'elementor'),
3848 cancel: __('Cancel', 'elementor')
3849 },
3850 defaultOption: 'confirm',
3851 onConfirm: function onConfirm() {
3852 self.elements.$switchModeInput.val('');
3853 self.toggleStatus();
3854 }
3855 }).show();
3856 } else {
3857 self.elements.$switchModeInput.val(true);
3858 var $wpTitle = $('#title');
3859 if (!$wpTitle.val()) {
3860 $wpTitle.val('Elementor #' + $('#post_ID').val());
3861 }
3862 if (wp.autosave) {
3863 wp.autosave.server.triggerSave();
3864 }
3865 self.animateLoader();
3866 $(document).on('heartbeat-tick.autosave', function () {
3867 elementorCommon.elements.$window.off('beforeunload.edit-post');
3868 location.href = self.elements.$goToEditLink.attr('href');
3869 });
3870 self.toggleStatus();
3871 }
3872 });
3873 self.elements.$goToEditLink.on('click', function () {
3874 self.animateLoader();
3875 });
3876 $('.e-notice--dismissible').on('click', '.e-notice__dismiss, .e-notice-dismiss', function (event) {
3877 event.preventDefault();
3878 var $wrapperElm = $(this).closest('.e-notice--dismissible');
3879 $.post(ajaxurl, {
3880 action: 'elementor_set_admin_notice_viewed',
3881 notice_id: $wrapperElm.data('notice_id'),
3882 _wpnonce: $wrapperElm.data('nonce')
3883 });
3884 $wrapperElm.fadeTo(100, 0, function () {
3885 $wrapperElm.slideUp(100, function () {
3886 $wrapperElm.remove();
3887 });
3888 });
3889 });
3890 var campaignNotices = {
3891 plugin_image_optimization: 'elementor_image_optimization_campaign',
3892 site_mailer_promotion: 'elementor_core_site_mailer_campaign'
3893 };
3894 Object.keys(campaignNotices).forEach(function (noticeId) {
3895 $(".e-notice--cta.e-notice--dismissible[data-notice_id=\"".concat(noticeId, "\"] a.e-button--cta")).on('click', function () {
3896 var $button = $(this);
3897 elementorCommon.ajax.addRequest(campaignNotices[noticeId], {
3898 data: {
3899 campaign: ($button === null || $button === void 0 ? void 0 : $button.data('campaign')) || '',
3900 source: ($button === null || $button === void 0 ? void 0 : $button.data('source')) || '',
3901 medium: ($button === null || $button === void 0 ? void 0 : $button.data('medium')) || ''
3902 }
3903 });
3904 });
3905 });
3906 $('.e-a-apps .e-a-item[data-plugin="image-optimization/image-optimization.php"] a.e-btn').on('click', function () {
3907 var $button = $(this);
3908 elementorCommon.ajax.addRequest('elementor_image_optimization_campaign', {
3909 data: {
3910 campaign: ($button === null || $button === void 0 ? void 0 : $button.data('campaign')) || '',
3911 source: ($button === null || $button === void 0 ? void 0 : $button.data('source')) || '',
3912 medium: ($button === null || $button === void 0 ? void 0 : $button.data('medium')) || ''
3913 }
3914 });
3915 });
3916 $('#elementor-clear-cache-button').on('click', function (event) {
3917 event.preventDefault();
3918 var $thisButton = $(this);
3919 $thisButton.removeClass('success').addClass('loading');
3920 $.post(ajaxurl, {
3921 action: 'elementor_clear_cache',
3922 _nonce: $thisButton.data('nonce')
3923 }).done(function () {
3924 $thisButton.removeClass('loading').addClass('success');
3925 });
3926 });
3927 $('#elementor-library-sync-button').on('click', function (event) {
3928 event.preventDefault();
3929 var $thisButton = $(this);
3930 $thisButton.removeClass('success').addClass('loading');
3931 $.post(ajaxurl, {
3932 action: 'elementor_reset_library',
3933 _nonce: $thisButton.data('nonce')
3934 }).done(function () {
3935 $thisButton.removeClass('loading').addClass('success');
3936 });
3937 });
3938 $('#elementor-recreate-kit-button').on('click', function (event) {
3939 event.preventDefault();
3940 var $thisButton = $(this);
3941 $thisButton.removeClass('success error').addClass('loading').next('.e-recreate-kit-error-message').remove();
3942 $.post(ajaxurl, {
3943 action: 'elementor_recreate_kit',
3944 _nonce: $thisButton.data('nonce')
3945 }).done(function () {
3946 $thisButton.removeClass('loading').addClass('success');
3947 }).fail(function (_ref) {
3948 var _responseJSON$data;
3949 var responseJSON = _ref.responseJSON;
3950 $thisButton.removeClass('loading').addClass('error');
3951 if ((_responseJSON$data = responseJSON.data) !== null && _responseJSON$data !== void 0 && _responseJSON$data.message) {
3952 $thisButton.after("<div class=\"e-recreate-kit-error-message\">".concat(responseJSON.data.message, "</div>"));
3953 }
3954 });
3955 });
3956 $('#elementor-replace-url-button').on('click', function (event) {
3957 event.preventDefault();
3958 var $this = $(this),
3959 $tr = $this.parents('tr'),
3960 $from = $tr.find('[name="from"]'),
3961 $to = $tr.find('[name="to"]');
3962 $this.removeClass('success').addClass('loading');
3963 $.post(ajaxurl, {
3964 action: 'elementor_replace_url',
3965 from: $from.val(),
3966 to: $to.val(),
3967 _nonce: $this.data('nonce')
3968 }).done(function (response) {
3969 $this.removeClass('loading');
3970 if (response.success) {
3971 $this.addClass('success');
3972 }
3973 elementorCommon.dialogsManager.createWidget('alert', {
3974 message: response.data
3975 }).show();
3976 });
3977 });
3978 $('#elementor_upgrade_fa_button').on('click', function (event) {
3979 event.preventDefault();
3980 var $updateButton = $(this);
3981 $updateButton.addClass('loading');
3982 elementorCommon.dialogsManager.createWidget('confirm', {
3983 id: 'confirm_fa_migration_admin_modal',
3984 message: __('I understand that by upgrading to Font Awesome 5,', 'elementor') + '<br>' + __('I acknowledge that some changes may affect my website and that this action cannot be undone.', 'elementor'),
3985 headerMessage: __('Font Awesome 5 Migration', 'elementor'),
3986 strings: {
3987 confirm: __('Continue', 'elementor'),
3988 cancel: __('Cancel', 'elementor')
3989 },
3990 defaultOption: 'confirm',
3991 onConfirm: function onConfirm() {
3992 $updateButton.removeClass('error').addClass('loading');
3993 var _$updateButton$data = $updateButton.data(),
3994 _nonce = _$updateButton$data._nonce,
3995 action = _$updateButton$data.action,
3996 redirectUrl = _$updateButton$data.redirectUrl;
3997 $.post(ajaxurl, {
3998 action: action,
3999 _nonce: _nonce
4000 }).done(function (response) {
4001 $updateButton.removeClass('loading').addClass('success');
4002 var messageElement = document.createElement('p');
4003 messageElement.appendChild(document.createTextNode(response.data.message));
4004 $('#elementor_upgrade_fa_button').parent().append(messageElement);
4005 if (redirectUrl) {
4006 location.href = decodeURIComponent(redirectUrl);
4007 return;
4008 }
4009 history.go(-1);
4010 }).fail(function () {
4011 $updateButton.removeClass('loading').addClass('error');
4012 });
4013 },
4014 onCancel: function onCancel() {
4015 $updateButton.removeClass('loading').addClass('error');
4016 }
4017 }).show();
4018 });
4019 self.elements.$settingsTabs.on({
4020 click: function click(event) {
4021 event.preventDefault();
4022 event.currentTarget.focus(); // Safari does not focus the tab automatically
4023 },
4024 focus: function focus() {
4025 // Using focus event to enable navigation by tab key
4026 var hrefWithoutHash = location.href.replace(/#.*/, '');
4027 history.pushState({}, '', hrefWithoutHash + this.hash);
4028 self.goToSettingsTabFromHash();
4029 }
4030 });
4031 $('select.elementor-rollback-select').on('change', function () {
4032 var $this = $(this),
4033 $rollbackButton = $this.next('.elementor-rollback-button'),
4034 placeholderText = $rollbackButton.data('placeholder-text'),
4035 placeholderUrl = $rollbackButton.data('placeholder-url');
4036 $rollbackButton.html(placeholderText.replace('{VERSION}', $this.val()));
4037 $rollbackButton.data('href', placeholderUrl.replace('VERSION', $this.val()));
4038 }).trigger('change');
4039 $('.elementor-rollback-button').on('click', function (event) {
4040 event.preventDefault();
4041 var $this = $(this);
4042 elementorCommon.dialogsManager.createWidget('confirm', {
4043 headerMessage: __('Rollback to Previous Version', 'elementor'),
4044 message: __('Are you sure you want to reinstall previous version?', 'elementor'),
4045 strings: {
4046 confirm: __('Continue', 'elementor'),
4047 cancel: __('Cancel', 'elementor')
4048 },
4049 onConfirm: function onConfirm() {
4050 $this.addClass('loading');
4051 location.href = $this.data('href');
4052 }
4053 }).show();
4054 });
4055 self.elements.$reMigrateGlobalsButton.on('click', function (event) {
4056 event.preventDefault();
4057 var $this = $(event.currentTarget);
4058 elementorCommon.dialogsManager.createWidget('confirm', {
4059 headerMessage: __('Migrate to v3.0', 'elementor'),
4060 message: __('Please note that this process will revert all changes made to Global Colors and Fonts since upgrading to v3.x.', 'elementor'),
4061 strings: {
4062 confirm: __('Continue', 'elementor'),
4063 cancel: __('Cancel', 'elementor')
4064 },
4065 onConfirm: function onConfirm() {
4066 $this.removeClass('success').addClass('loading');
4067 elementorCommon.ajax.addRequest('re_migrate_globals', {
4068 success: function success() {
4069 return $this.removeClass('loading').addClass('success');
4070 }
4071 });
4072 }
4073 }).show();
4074 });
4075 $('.elementor_google_font select').on('change', function () {
4076 $('.elementor_font_display').toggle('1' === $(this).val());
4077 }).trigger('change');
4078 },
4079 onInit: function onInit() {
4080 elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
4081 this.initTemplatesImport();
4082 this.initMaintenanceMode();
4083 this.goToSettingsTabFromHash();
4084 this.openLinksInNewTab();
4085 this.addUserAgentClasses();
4086 this.roleManager.init();
4087 if (elementorCommon.config.experimentalFeatures['landing-pages']) {
4088 new _module.default();
4089 }
4090 if (elementorCommon.config.experimentalFeatures.container) {
4091 new _module3.default();
4092 }
4093 this.templateControls = new _templateControls.default();
4094 new _module2.default();
4095 },
4096 addUserAgentClasses: function addUserAgentClasses() {
4097 var body = document.querySelector('body');
4098 Object.entries(_environment.default).forEach(function (_ref2) {
4099 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
4100 key = _ref3[0],
4101 value = _ref3[1];
4102 if (!value) {
4103 return;
4104 }
4105 body.classList.add('e--ua-' + key);
4106 });
4107 },
4108 /**
4109 * Open Links in New Tab
4110 *
4111 * Adds a `target="_blank"` attribute to the Admin Dashboard menu items specified in the `elements` array,
4112 * if the elements are found in the DOM. The items in the `elements` array should be jQuery instances.
4113 *
4114 * @since 3.6.0
4115 */
4116 openLinksInNewTab: function openLinksInNewTab() {
4117 var elements = [this.elements.$menuGoProLink];
4118 elements.forEach(function ($element) {
4119 // Only add the attribute if the element is found.
4120 if ($element.length) {
4121 $element.attr('target', '_blank');
4122 }
4123 });
4124 },
4125 initTemplatesImport: function initTemplatesImport() {
4126 var _elementorAdminConfig, _elementorAdminConfig2;
4127 var canImport = elementorAdminConfig.user.is_administrator || ((_elementorAdminConfig = (_elementorAdminConfig2 = elementorAdminConfig.user.restrictions) === null || _elementorAdminConfig2 === void 0 ? void 0 : _elementorAdminConfig2.includes('json-upload')) !== null && _elementorAdminConfig !== void 0 ? _elementorAdminConfig : false);
4128 if (!canImport || !elementorCommon.elements.$body.hasClass('post-type-elementor_library')) {
4129 return;
4130 }
4131 if (0 === this.elements.$importNowButton.length) {
4132 return;
4133 }
4134 var self = this,
4135 $importForm = self.elements.$importForm,
4136 $importButton = self.elements.$importButton,
4137 $importArea = self.elements.$importArea,
4138 $importNowButton = self.elements.$importNowButton,
4139 $importFormFileInput = self.elements.$importFormFileInput;
4140 self.elements.$formAnchor = $('.wp-header-end');
4141 $('#wpbody-content').find('.page-title-action').first().before($importButton);
4142 self.elements.$formAnchor.after($importArea);
4143 $importButton.on('click', function () {
4144 $('#elementor-import-template-area').toggle();
4145 });
4146 var messages = {
4147 jsonUploadWarning: {
4148 shown: false
4149 },
4150 enableUnfilteredFiles: {
4151 shown: false
4152 }
4153 };
4154 var originalButtonValue = $importNowButton[0].value;
4155 $importForm.on('submit', /*#__PURE__*/function () {
4156 var _ref4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(event) {
4157 var hasImportedFiles, areUnfilteredFilesEnabled, enableUnfilteredFilesModal, _t;
4158 return _regenerator.default.wrap(function (_context) {
4159 while (1) switch (_context.prev = _context.next) {
4160 case 0:
4161 $importNowButton[0].disabled = true;
4162 $importNowButton[0].value = __('Importing...', 'elementor');
4163 if (messages.jsonUploadWarning.shown) {
4164 _context.next = 5;
4165 break;
4166 }
4167 event.preventDefault();
4168 _context.prev = 1;
4169 _context.next = 2;
4170 return (0, _jsonUploadWarningMessage.showJsonUploadWarningMessageIfNeeded)({
4171 IntroductionClass: window.elementorModules.admin.utils.Introduction,
4172 introductionMap: window.elementorAdmin.config.user.introduction,
4173 waitForSetViewed: true
4174 });
4175 case 2:
4176 messages.jsonUploadWarning.shown = true;
4177 $importForm.trigger('submit');
4178 _context.next = 4;
4179 break;
4180 case 3:
4181 _context.prev = 3;
4182 _t = _context["catch"](1);
4183 $importNowButton[0].disabled = false;
4184 $importNowButton[0].value = originalButtonValue;
4185 case 4:
4186 return _context.abrupt("return");
4187 case 5:
4188 hasImportedFiles = $importFormFileInput[0].files.length;
4189 areUnfilteredFilesEnabled = elementorCommon.config.filesUpload.unfilteredFiles;
4190 if (!(hasImportedFiles && !areUnfilteredFilesEnabled && !messages.enableUnfilteredFiles.shown)) {
4191 _context.next = 6;
4192 break;
4193 }
4194 event.preventDefault();
4195 enableUnfilteredFilesModal = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(function () {
4196 messages.enableUnfilteredFiles.shown = true;
4197 $importForm.trigger('submit');
4198 });
4199 enableUnfilteredFilesModal.show();
4200 return _context.abrupt("return");
4201 case 6:
4202 messages.jsonUploadWarning.shown = false;
4203 messages.enableUnfilteredFiles.shown = false;
4204 case 7:
4205 case "end":
4206 return _context.stop();
4207 }
4208 }, _callee, null, [[1, 3]]);
4209 }));
4210 return function (_x) {
4211 return _ref4.apply(this, arguments);
4212 };
4213 }());
4214 },
4215 initMaintenanceMode: function initMaintenanceMode() {
4216 var MaintenanceMode = __webpack_require__(/*! elementor-admin/maintenance-mode */ "../assets/dev/js/admin/maintenance-mode.js");
4217 this.maintenanceMode = new MaintenanceMode();
4218 },
4219 isElementorMode: function isElementorMode() {
4220 return !!this.elements.$switchModeInput.val();
4221 },
4222 animateLoader: function animateLoader() {
4223 this.elements.$goToEditLink.addClass('elementor-animate');
4224 },
4225 goToSettingsTabFromHash: function goToSettingsTabFromHash() {
4226 var hash = location.hash.slice(1);
4227 if (hash) {
4228 this.goToSettingsTab(hash);
4229 }
4230 },
4231 goToSettingsTab: function goToSettingsTab(tabName) {
4232 var $pages = this.elements.$settingsFormPages;
4233 if (!$pages.length) {
4234 return;
4235 }
4236 var $activePage = $pages.filter('#' + tabName);
4237 this.elements.$activeSettingsPage.removeClass('elementor-active');
4238 this.elements.$activeSettingsTab.removeClass('nav-tab-active');
4239 var $activeTab = this.elements.$settingsTabs.filter('#elementor-settings-' + tabName);
4240 $activePage.addClass('elementor-active');
4241 $activeTab.addClass('nav-tab-active');
4242 this.elements.$settingsForm.attr('action', 'options.php#' + tabName);
4243 this.elements.$activeSettingsPage = $activePage;
4244 this.elements.$activeSettingsTab = $activeTab;
4245 },
4246 translate: function translate(stringKey, templateArgs) {
4247 return elementorCommon.translate(stringKey, null, templateArgs, this.config.i18n);
4248 },
4249 roleManager: {
4250 selectors: {
4251 body: 'elementor-role-manager',
4252 row: '.elementor-role-row',
4253 label: '.elementor-role-label',
4254 excludedIndicator: '.elementor-role-excluded-indicator',
4255 excludedField: 'input[name="elementor_exclude_user_roles[]"]',
4256 controlsContainer: '.elementor-role-controls',
4257 toggleHandle: '.elementor-role-toggle',
4258 arrowUp: 'dashicons-arrow-up',
4259 arrowDown: 'dashicons-arrow-down'
4260 },
4261 toggle: function toggle($trigger) {
4262 var self = this,
4263 $row = $trigger.closest(self.selectors.row),
4264 $toggleHandleIcon = $row.find(self.selectors.toggleHandle).find('.dashicons'),
4265 $controls = $row.find(self.selectors.controlsContainer);
4266 $controls.toggleClass('hidden');
4267 if ($controls.hasClass('hidden')) {
4268 $toggleHandleIcon.removeClass(self.selectors.arrowUp).addClass(self.selectors.arrowDown);
4269 } else {
4270 $toggleHandleIcon.removeClass(self.selectors.arrowDown).addClass(self.selectors.arrowUp);
4271 }
4272 self.updateLabel($row);
4273 },
4274 updateLabel: function updateLabel($row) {
4275 var self = this,
4276 $indicator = $row.find(self.selectors.excludedIndicator),
4277 excluded = $row.find(self.selectors.excludedField).is(':checked');
4278 if (excluded) {
4279 $indicator.html($indicator.data('excluded-label'));
4280 } else {
4281 $indicator.html('');
4282 }
4283 self.setAdvancedState($row, excluded);
4284 },
4285 setAdvancedState: function setAdvancedState($row, state) {
4286 var self = this,
4287 $controls = $row.find('input[type="checkbox"]').not(self.selectors.excludedField);
4288 $controls.each(function (index, input) {
4289 $(input).prop('disabled', state);
4290 });
4291 },
4292 bind: function bind() {
4293 var self = this;
4294 $(document).on('click', self.selectors.label + ',' + self.selectors.toggleHandle, function (event) {
4295 event.stopPropagation();
4296 event.preventDefault();
4297 self.toggle($(this));
4298 }).on('change', self.selectors.excludedField, function () {
4299 self.updateLabel($(this).closest(self.selectors.row));
4300 });
4301 },
4302 init: function init() {
4303 var self = this;
4304 if (!$('body[class*="' + self.selectors.body + '"]').length) {
4305 return;
4306 }
4307 self.bind();
4308 $(self.selectors.row).each(function (index, row) {
4309 self.updateLabel($(row));
4310 });
4311 }
4312 }
4313 });
4314 $(function () {
4315 window.elementorAdmin = new ElementorAdmin();
4316 _events.default.dispatch(elementorCommon.elements.$window, 'elementor/admin/init');
4317 });
4318 })(jQuery);
4319 })();
4320
4321 /******/ })()
4322 ;
4323 //# sourceMappingURL=admin.js.map