PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev4
Elementor Website Builder – more than just a page builder v3.35.0-dev4
4.3.0-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 3.35.0-dev4, at assets/js/admin.js

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