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

2,419 lines 105.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*! elementor - v3.19.0 - 07-02-2024 */
2 /******/ (() => { // webpackBootstrap
3 /******/ var __webpack_modules__ = ({
4
5 /***/ "../assets/dev/js/admin/maintenance-mode.js":
6 /*!**************************************************!*\
7 !*** ../assets/dev/js/admin/maintenance-mode.js ***!
8 \**************************************************/
9 /***/ ((module) => {
10
11 "use strict";
12
13
14 module.exports = elementorModules.ViewModule.extend({
15 getDefaultSettings: function getDefaultSettings() {
16 return {
17 selectors: {
18 modeSelect: '.elementor_maintenance_mode_mode select',
19 maintenanceModeTable: '#tab-maintenance_mode table',
20 maintenanceModeDescriptions: '.elementor-maintenance-mode-description',
21 excludeModeSelect: '.elementor_maintenance_mode_exclude_mode select',
22 excludeRolesArea: '.elementor_maintenance_mode_exclude_roles',
23 templateSelect: '.elementor_maintenance_mode_template_id select',
24 editTemplateButton: '.elementor-edit-template',
25 maintenanceModeError: '.elementor-maintenance-mode-error'
26 },
27 classes: {
28 isEnabled: 'elementor-maintenance-mode-is-enabled'
29 }
30 };
31 },
32 getDefaultElements: function getDefaultElements() {
33 var elements = {},
34 selectors = this.getSettings('selectors');
35 elements.$modeSelect = jQuery(selectors.modeSelect);
36 elements.$maintenanceModeTable = elements.$modeSelect.parents(selectors.maintenanceModeTable);
37 elements.$excludeModeSelect = elements.$maintenanceModeTable.find(selectors.excludeModeSelect);
38 elements.$excludeRolesArea = elements.$maintenanceModeTable.find(selectors.excludeRolesArea);
39 elements.$templateSelect = elements.$maintenanceModeTable.find(selectors.templateSelect);
40 elements.$editTemplateButton = elements.$maintenanceModeTable.find(selectors.editTemplateButton);
41 elements.$maintenanceModeDescriptions = elements.$maintenanceModeTable.find(selectors.maintenanceModeDescriptions);
42 elements.$maintenanceModeError = elements.$maintenanceModeTable.find(selectors.maintenanceModeError);
43 return elements;
44 },
45 handleModeSelectChange: function handleModeSelectChange() {
46 var settings = this.getSettings(),
47 elements = this.elements;
48 elements.$maintenanceModeTable.toggleClass(settings.classes.isEnabled, !!elements.$modeSelect.val());
49 elements.$maintenanceModeDescriptions.hide();
50 elements.$maintenanceModeDescriptions.filter('[data-value="' + elements.$modeSelect.val() + '"]').show();
51 },
52 handleExcludeModeSelectChange: function handleExcludeModeSelectChange() {
53 var elements = this.elements;
54 elements.$excludeRolesArea.toggle('custom' === elements.$excludeModeSelect.val());
55 },
56 handleTemplateSelectChange: function handleTemplateSelectChange() {
57 var elements = this.elements;
58 var templateID = elements.$templateSelect.val();
59 if (!templateID) {
60 elements.$editTemplateButton.hide();
61 elements.$maintenanceModeError.show();
62 return;
63 }
64 var editUrl = elementorAdmin.config.home_url + '?p=' + templateID + '&elementor';
65 elements.$editTemplateButton.prop('href', editUrl).show();
66 elements.$maintenanceModeError.hide();
67 },
68 bindEvents: function bindEvents() {
69 var elements = this.elements;
70 elements.$modeSelect.on('change', this.handleModeSelectChange.bind(this));
71 elements.$excludeModeSelect.on('change', this.handleExcludeModeSelectChange.bind(this));
72 elements.$templateSelect.on('change', this.handleTemplateSelectChange.bind(this));
73 },
74 onAdminInit: function onAdminInit() {
75 this.handleModeSelectChange();
76 this.handleExcludeModeSelectChange();
77 this.handleTemplateSelectChange();
78 },
79 onInit: function onInit() {
80 elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
81 elementorCommon.elements.$window.on('elementor/admin/init', this.onAdminInit);
82 }
83 });
84
85 /***/ }),
86
87 /***/ "../assets/dev/js/admin/menu-handler.js":
88 /*!**********************************************!*\
89 !*** ../assets/dev/js/admin/menu-handler.js ***!
90 \**********************************************/
91 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
92
93 "use strict";
94
95
96 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
97 Object.defineProperty(exports, "__esModule", ({
98 value: true
99 }));
100 exports["default"] = void 0;
101 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
102 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
103 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
104 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
105 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
106 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
107 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
108 function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
109 var MenuHandler = /*#__PURE__*/function (_elementorModules$Vie) {
110 (0, _inherits2.default)(MenuHandler, _elementorModules$Vie);
111 var _super = _createSuper(MenuHandler);
112 function MenuHandler() {
113 (0, _classCallCheck2.default)(this, MenuHandler);
114 return _super.apply(this, arguments);
115 }
116 (0, _createClass2.default)(MenuHandler, [{
117 key: "getDefaultSettings",
118 value: function getDefaultSettings() {
119 return {
120 selectors: {
121 currentSubmenuItems: '#adminmenu .current'
122 }
123 };
124 }
125 }, {
126 key: "getDefaultElements",
127 value: function getDefaultElements() {
128 var settings = this.getSettings();
129 return {
130 $currentSubmenuItems: jQuery(settings.selectors.currentSubmenuItems),
131 $adminPageMenuLink: jQuery("a[href=\"".concat(settings.path, "\"]"))
132 };
133 }
134
135 // This method highlights the currently visited submenu item for the slug provided as an argument to this handler.
136 // This method also accepts a jQuery instance of a custom submenu item to highlight. If provided, the provided
137 // item will be the one highlighted.
138 }, {
139 key: "highlightSubMenuItem",
140 value: function highlightSubMenuItem() {
141 var $element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
142 var $submenuItem = $element || this.elements.$adminPageMenuLink;
143 if (this.elements.$currentSubmenuItems.length) {
144 this.elements.$currentSubmenuItems.removeClass('current');
145 }
146 $submenuItem.addClass('current');
147
148 // Need to add the 'current' class to the link element's parent `<li>` element as well.
149 $submenuItem.parent().addClass('current');
150 }
151 }, {
152 key: "highlightTopLevelMenuItem",
153 value: function highlightTopLevelMenuItem($elementToHighlight) {
154 var $elementToRemove = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
155 var activeClasses = 'wp-has-current-submenu wp-menu-open current';
156 $elementToHighlight.parent().addClass(activeClasses).removeClass('wp-not-current-submenu');
157 if ($elementToRemove) {
158 $elementToRemove.removeClass(activeClasses);
159 }
160 }
161 }, {
162 key: "onInit",
163 value: function onInit() {
164 (0, _get2.default)((0, _getPrototypeOf2.default)(MenuHandler.prototype), "onInit", this).call(this);
165 var settings = this.getSettings();
166 if (window.location.href.includes(settings.path)) {
167 this.highlightSubMenuItem();
168 }
169 }
170 }]);
171 return MenuHandler;
172 }(elementorModules.ViewModule);
173 exports["default"] = MenuHandler;
174
175 /***/ }),
176
177 /***/ "../assets/dev/js/admin/new-template/template-controls.js":
178 /*!****************************************************************!*\
179 !*** ../assets/dev/js/admin/new-template/template-controls.js ***!
180 \****************************************************************/
181 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
182
183 "use strict";
184
185
186 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
187 Object.defineProperty(exports, "__esModule", ({
188 value: true
189 }));
190 exports["default"] = void 0;
191 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
192 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
193 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
194 var TemplateControls = /*#__PURE__*/function () {
195 function TemplateControls() {
196 (0, _classCallCheck2.default)(this, TemplateControls);
197 }
198 (0, _createClass2.default)(TemplateControls, [{
199 key: "setDynamicControlsVisibility",
200 value: function setDynamicControlsVisibility(lookupControlIdPrefix, controls) {
201 if (undefined === controls) {
202 return;
203 }
204 var controlsArray = Object.entries(controls);
205 for (var _i = 0, _controlsArray = controlsArray; _i < _controlsArray.length; _i++) {
206 var _controlsArray$_i = (0, _slicedToArray2.default)(_controlsArray[_i], 2),
207 controlId = _controlsArray$_i[0],
208 controlSettings = _controlsArray$_i[1];
209 this.setVisibilityForControl(lookupControlIdPrefix, controlSettings, controlId);
210 }
211 }
212 }, {
213 key: "setVisibilityForControl",
214 value: function setVisibilityForControl(lookupControlIdPrefix, controlSettings, controlId) {
215 var _controlSettings$cond,
216 _this = this;
217 var conditions = Object.entries((_controlSettings$cond = controlSettings.conditions) !== null && _controlSettings$cond !== void 0 ? _controlSettings$cond : {});
218 conditions.forEach(function (condition) {
219 _this.changeVisibilityBasedOnCondition(lookupControlIdPrefix, condition, controlId);
220 });
221 }
222 }, {
223 key: "changeVisibilityBasedOnCondition",
224 value: function changeVisibilityBasedOnCondition(lookupControlIdPrefix, condition, controlId) {
225 var _condition = (0, _slicedToArray2.default)(condition, 2),
226 conditionKey = _condition[0],
227 conditionValue = _condition[1];
228 var targetControlWrapper = document.getElementById(lookupControlIdPrefix + controlId + '__wrapper');
229 var lookupControl = document.getElementById(lookupControlIdPrefix + conditionKey);
230 targetControlWrapper.classList.toggle('elementor-hidden', !lookupControl || conditionValue !== lookupControl.value);
231 }
232 }]);
233 return TemplateControls;
234 }();
235 exports["default"] = TemplateControls;
236
237 /***/ }),
238
239 /***/ "../assets/dev/js/editor/utils/files-upload-handler.js":
240 /*!*************************************************************!*\
241 !*** ../assets/dev/js/editor/utils/files-upload-handler.js ***!
242 \*************************************************************/
243 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
244
245 "use strict";
246 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
247
248
249 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
250 Object.defineProperty(exports, "__esModule", ({
251 value: true
252 }));
253 exports["default"] = void 0;
254 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
255 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
256 var FilesUploadHandler = /*#__PURE__*/function () {
257 function FilesUploadHandler() {
258 (0, _classCallCheck2.default)(this, FilesUploadHandler);
259 }
260 (0, _createClass2.default)(FilesUploadHandler, null, [{
261 key: "isUploadEnabled",
262 value: function isUploadEnabled(mediaType) {
263 var unfilteredFilesTypes = ['svg', 'application/json'];
264 if (!unfilteredFilesTypes.includes(mediaType)) {
265 return true;
266 }
267 return elementorCommon.config.filesUpload.unfilteredFiles;
268 }
269 }, {
270 key: "setUploadTypeCaller",
271 value: function setUploadTypeCaller(frame) {
272 frame.uploader.uploader.param('uploadTypeCaller', 'elementor-wp-media-upload');
273 }
274 }, {
275 key: "getUnfilteredFilesNonAdminDialog",
276 value: function getUnfilteredFilesNonAdminDialog() {
277 return elementorCommon.dialogsManager.createWidget('alert', {
278 id: 'e-unfiltered-files-disabled-dialog',
279 headerMessage: __('Sorry, you can\'t upload that file yet', 'elementor'),
280 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'),
281 strings: {
282 confirm: __('Got it', 'elementor')
283 }
284 });
285 }
286 }, {
287 key: "getUnfilteredFilesNotEnabledDialog",
288 value: function getUnfilteredFilesNotEnabledDialog(callback) {
289 if (!elementor.config.user.is_administrator) {
290 return this.getUnfilteredFilesNonAdminDialog();
291 }
292 var onConfirm = function onConfirm() {
293 elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {}, true);
294 elementorCommon.config.filesUpload.unfilteredFiles = true;
295 callback();
296 };
297 return elementor.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);
298 }
299 }, {
300 key: "getUnfilteredFilesNotEnabledImportTemplateDialog",
301 value: function getUnfilteredFilesNotEnabledImportTemplateDialog(callback) {
302 if (!elementor.config.user.is_administrator) {
303 return this.getUnfilteredFilesNonAdminDialog();
304 }
305 return elementorCommon.dialogsManager.createWidget('confirm', {
306 id: 'e-enable-unfiltered-files-dialog-import-template',
307 headerMessage: __('Enable Unfiltered File Uploads', 'elementor'),
308 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'),
309 position: {
310 my: 'center center',
311 at: 'center center'
312 },
313 strings: {
314 confirm: __('Enable and Import', 'elementor'),
315 cancel: __('Import Without Enabling', 'elementor')
316 },
317 onConfirm: function onConfirm() {
318 elementorCommon.ajax.addRequest('enable_unfiltered_files_upload', {
319 success: function success() {
320 // This utility is used in both the admin and the Editor.
321 elementorCommon.config.filesUpload.unfilteredFiles = true;
322 callback();
323 }
324 }, true);
325 },
326 onCancel: function onCancel() {
327 return callback();
328 }
329 });
330 }
331 }]);
332 return FilesUploadHandler;
333 }();
334 exports["default"] = FilesUploadHandler;
335
336 /***/ }),
337
338 /***/ "../assets/dev/js/utils/events.js":
339 /*!****************************************!*\
340 !*** ../assets/dev/js/utils/events.js ***!
341 \****************************************/
342 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
343
344 "use strict";
345
346
347 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
348 Object.defineProperty(exports, "__esModule", ({
349 value: true
350 }));
351 exports["default"] = exports.Events = void 0;
352 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
353 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
354 var Events = /*#__PURE__*/function () {
355 function Events() {
356 (0, _classCallCheck2.default)(this, Events);
357 }
358 (0, _createClass2.default)(Events, null, [{
359 key: "dispatch",
360 value:
361 /**
362 * Dispatch an Elementor event.
363 *
364 * Will dispatch both native event & jQuery event (as BC).
365 * By default, `bcEvent` is `null`.
366 *
367 * @param {Object} context - The context that will dispatch the event.
368 * @param {string} event - Event to dispatch.
369 * @param {*} data - Data to pass to the event, default to `null`.
370 * @param {string|null} bcEvent - BC event to dispatch, default to `null`.
371 *
372 * @return {void}
373 */
374 function dispatch(context, event) {
375 var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
376 var bcEvent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
377 // Make sure to use the native context if it's a jQuery instance.
378 context = context instanceof jQuery ? context[0] : context;
379
380 // Dispatch the BC event only if exists.
381 if (bcEvent) {
382 context.dispatchEvent(new CustomEvent(bcEvent, {
383 detail: data
384 }));
385 }
386
387 // jQuery's `.on()` listens also to native custom events, so there is no need
388 // to dispatch also a jQuery event.
389 context.dispatchEvent(new CustomEvent(event, {
390 detail: data
391 }));
392 }
393 }]);
394 return Events;
395 }();
396 exports.Events = Events;
397 var _default = Events;
398 exports["default"] = _default;
399
400 /***/ }),
401
402 /***/ "../assets/dev/js/utils/json-upload-warning-message.js":
403 /*!*************************************************************!*\
404 !*** ../assets/dev/js/utils/json-upload-warning-message.js ***!
405 \*************************************************************/
406 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
407
408 "use strict";
409 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
410
411
412 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
413 Object.defineProperty(exports, "__esModule", ({
414 value: true
415 }));
416 exports.showJsonUploadWarningMessageIfNeeded = showJsonUploadWarningMessageIfNeeded;
417 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
418 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
419 var genericMessageIntroductionKey = 'upload_json_warning_generic_message';
420 /**
421 * @type {import('../utils/introduction').default | null}
422 */
423 var genericWarningModal = null;
424 function showJsonUploadWarningMessageIfNeeded(_ref) {
425 var introductionMap = _ref.introductionMap,
426 IntroductionClass = _ref.IntroductionClass,
427 _ref$waitForSetViewed = _ref.waitForSetViewed,
428 waitForSetViewed = _ref$waitForSetViewed === void 0 ? false : _ref$waitForSetViewed;
429 if (!genericWarningModal) {
430 genericWarningModal = createGenericWarningModal(IntroductionClass);
431 }
432 genericWarningModal.setIntroductionMap(introductionMap);
433 if (genericWarningModal.introductionViewed) {
434 return Promise.resolve();
435 }
436 var dialog = genericWarningModal.getDialog();
437 return new Promise(function (resolve, reject) {
438 dialog.onHide = function () {
439 // When closing the dialog (esc, click on background, etc.) we need to reject the promise.
440 reject();
441 };
442 dialog.onConfirm = /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
443 return _regenerator.default.wrap(function _callee$(_context) {
444 while (1) switch (_context.prev = _context.next) {
445 case 0:
446 if (!dialog.getElements('checkbox-dont-show-again').prop('checked')) {
447 _context.next = 7;
448 break;
449 }
450 if (!waitForSetViewed) {
451 _context.next = 6;
452 break;
453 }
454 _context.next = 4;
455 return genericWarningModal.setViewed();
456 case 4:
457 _context.next = 7;
458 break;
459 case 6:
460 genericWarningModal.setViewed();
461 case 7:
462 // Hack: we need to resolve the promise and then hide it manually, to avoid rejecting the promise.
463 // this because when closing the dialog (esc, click on background, etc.) it does not trigger `onCancel` method.
464 resolve();
465 dialog.hide();
466 case 9:
467 case "end":
468 return _context.stop();
469 }
470 }, _callee);
471 }));
472 dialog.onCancel = function () {
473 dialog.hide();
474 };
475 genericWarningModal.show();
476 });
477 }
478
479 /**
480 * @param {import('../utils/introduction').default.prototype.constructor} IntroductionClass
481 *
482 * @return {import('../utils/introduction').default}
483 */
484 function createGenericWarningModal(IntroductionClass) {
485 var _introduction$getDial, _introduction$getDial2;
486 var dialogId = 'e-generic-warning-modal-for-json-upload';
487 var introduction = new IntroductionClass({
488 introductionKey: genericMessageIntroductionKey,
489 dialogType: 'confirm',
490 dialogOptions: {
491 id: dialogId,
492 headerMessage: __('Warning: JSON files may be unsafe', 'elementor'),
493 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'),
494 effects: {
495 show: 'fadeIn',
496 hide: 'fadeOut'
497 },
498 hide: {
499 onBackgroundClick: true,
500 onButtonClick: false
501 },
502 strings: {
503 confirm: __('Continue', 'elementor'),
504 cancel: __('Cancel', 'elementor')
505 }
506 }
507 });
508 var _createCheckboxAndLab = createCheckboxAndLabel(dialogId),
509 checkbox = _createCheckboxAndLab.checkbox,
510 label = _createCheckboxAndLab.label;
511 introduction.getDialog().addElement('checkbox-dont-show-again', checkbox);
512 (_introduction$getDial = introduction.getDialog().getElements('message')) === null || _introduction$getDial === void 0 ? void 0 : (_introduction$getDial2 = _introduction$getDial.append) === null || _introduction$getDial2 === void 0 ? void 0 : _introduction$getDial2.call(_introduction$getDial, label); // `getElements` return JQuery object.
513
514 return introduction;
515 }
516 function createCheckboxAndLabel(dialogId) {
517 var checkboxId = "".concat(dialogId, "-dont-show-again");
518 var checkbox = document.createElement('input');
519 checkbox.type = 'checkbox';
520 checkbox.name = checkboxId;
521 checkbox.id = checkboxId;
522 var label = document.createElement('label');
523 label.htmlFor = checkboxId;
524 label.textContent = __('Do not show this message again', 'elementor');
525 label.style.display = 'block';
526 label.style.marginTop = '20px';
527 label.style.marginBottom = '20px';
528 label.prepend(checkbox);
529 return {
530 checkbox: checkbox,
531 label: label
532 };
533 }
534
535 /***/ }),
536
537 /***/ "../core/common/assets/js/utils/environment.js":
538 /*!*****************************************************!*\
539 !*** ../core/common/assets/js/utils/environment.js ***!
540 \*****************************************************/
541 /***/ ((__unused_webpack_module, exports) => {
542
543 "use strict";
544
545
546 Object.defineProperty(exports, "__esModule", ({
547 value: true
548 }));
549 exports["default"] = void 0;
550 var matchUserAgent = function matchUserAgent(UserAgentStr) {
551 return userAgent.indexOf(UserAgentStr) >= 0;
552 },
553 userAgent = navigator.userAgent,
554 // Solution influenced by https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
555
556 // Opera 8.0+
557 isOpera = !!window.opr && !!opr.addons || !!window.opera || matchUserAgent(' OPR/'),
558 // Firefox 1.0+
559 isFirefox = matchUserAgent('Firefox'),
560 // Safari 3.0+ "[object HTMLElementConstructor]"
561 isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) || /constructor/i.test(window.HTMLElement) || function (p) {
562 return '[object SafariRemoteNotification]' === p.toString();
563 }(!window.safari || typeof safari !== 'undefined' && safari.pushNotification),
564 // Internet Explorer 6-11
565 isIE = /Trident|MSIE/.test(userAgent) && ( /* @cc_on!@*/ false || !!document.documentMode),
566 // Edge 20+
567 isEdge = !isIE && !!window.StyleMedia || matchUserAgent('Edg'),
568 // Google Chrome (Not accurate)
569 isChrome = !!window.chrome && matchUserAgent('Chrome') && !(isEdge || isOpera),
570 // Blink engine
571 isBlink = matchUserAgent('Chrome') && !!window.CSS,
572 // Apple Webkit engine
573 isAppleWebkit = matchUserAgent('AppleWebKit') && !isBlink,
574 isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0,
575 environment = {
576 isTouchDevice: isTouchDevice,
577 appleWebkit: isAppleWebkit,
578 blink: isBlink,
579 chrome: isChrome,
580 edge: isEdge,
581 firefox: isFirefox,
582 ie: isIE,
583 mac: matchUserAgent('Macintosh'),
584 opera: isOpera,
585 safari: isSafari,
586 webkit: matchUserAgent('AppleWebKit')
587 };
588 var _default = environment;
589 exports["default"] = _default;
590
591 /***/ }),
592
593 /***/ "../core/experiments/assets/js/admin/behaviors/experiments-messages.js":
594 /*!*****************************************************************************!*\
595 !*** ../core/experiments/assets/js/admin/behaviors/experiments-messages.js ***!
596 \*****************************************************************************/
597 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
598
599 "use strict";
600 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
601
602
603 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
604 Object.defineProperty(exports, "__esModule", ({
605 value: true
606 }));
607 exports["default"] = void 0;
608 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
609 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
610 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
611 var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
612 var STATE_ACTIVE = 'active';
613 var STATE_INACTIVE = 'inactive';
614 var STATE_DEFAULT = 'default';
615 var ExperimentsMessages = /*#__PURE__*/function () {
616 function ExperimentsMessages(_ref) {
617 var selects = _ref.selects,
618 submit = _ref.submit;
619 (0, _classCallCheck2.default)(this, ExperimentsMessages);
620 (0, _defineProperty2.default)(this, "elements", {});
621 this.elements = {
622 /**
623 * @type {HTMLSelectElement[]}
624 */
625 selects: selects,
626 /**
627 * @type {HTMLInputElement}
628 */
629 submit: submit
630 };
631 }
632 (0, _createClass2.default)(ExperimentsMessages, [{
633 key: "bindEvents",
634 value: function bindEvents() {
635 var _this = this;
636 this.elements.selects.forEach(function (select) {
637 select.addEventListener('change', function (e) {
638 return _this.onExperimentStateChange(e);
639 });
640 });
641 }
642 }, {
643 key: "onExperimentStateChange",
644 value: function onExperimentStateChange(e) {
645 var experimentId = e.currentTarget.dataset.experimentId,
646 experimentNewState = this.getExperimentActualState(experimentId);
647 switch (experimentNewState) {
648 case STATE_ACTIVE:
649 if (this.shouldShowDependenciesDialog(experimentId)) {
650 this.showDependenciesDialog(experimentId);
651 }
652 break;
653 case STATE_INACTIVE:
654 if (this.shouldShowDeactivationDialog(experimentId)) {
655 this.showDeactivationDialog(experimentId);
656 } else {
657 this.deactivateDependantExperiments(experimentId);
658 }
659 break;
660 default:
661 break;
662 }
663 }
664 }, {
665 key: "getExperimentData",
666 value: function getExperimentData(experimentId) {
667 return elementorAdminConfig.experiments[experimentId];
668 }
669 }, {
670 key: "getExperimentDependencies",
671 value: function getExperimentDependencies(experimentId) {
672 var _this2 = this;
673 return this.getExperimentData(experimentId).dependencies.map(function (dependencyId) {
674 return _this2.getExperimentData(dependencyId);
675 });
676 }
677 }, {
678 key: "getExperimentSelect",
679 value: function getExperimentSelect(experimentId) {
680 return this.elements.selects.find(function (select) {
681 return select.matches("[data-experiment-id=\"".concat(experimentId, "\"]"));
682 });
683 }
684 }, {
685 key: "setExperimentState",
686 value: function setExperimentState(experimentId, state) {
687 this.getExperimentSelect(experimentId).value = state;
688 }
689 }, {
690 key: "getExperimentActualState",
691 value: function getExperimentActualState(experimentId) {
692 var _this$getExperimentSe;
693 var state = (_this$getExperimentSe = this.getExperimentSelect(experimentId)) === null || _this$getExperimentSe === void 0 ? void 0 : _this$getExperimentSe.value;
694 if (!state) {
695 return this.getExperimentData(experimentId).state;
696 }
697 if (state !== STATE_DEFAULT) {
698 return state;
699 }
700
701 // Normalize the "default" state to the actual state value.
702 return this.isExperimentActiveByDefault(experimentId) ? STATE_ACTIVE : STATE_INACTIVE;
703 }
704 }, {
705 key: "isExperimentActive",
706 value: function isExperimentActive(experimentId) {
707 return this.getExperimentActualState(experimentId) === STATE_ACTIVE;
708 }
709 }, {
710 key: "isExperimentActiveByDefault",
711 value: function isExperimentActiveByDefault(experimentId) {
712 return this.getExperimentData(experimentId).default === STATE_ACTIVE;
713 }
714 }, {
715 key: "areAllDependenciesActive",
716 value: function areAllDependenciesActive(dependencies) {
717 var _this3 = this;
718 return dependencies.every(function (dependency) {
719 return _this3.isExperimentActive(dependency.name);
720 });
721 }
722 }, {
723 key: "deactivateDependantExperiments",
724 value: function deactivateDependantExperiments(experimentId) {
725 var _this4 = this;
726 Object.entries(elementorAdminConfig.experiments).forEach(function (_ref2) {
727 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
728 id = _ref3[0],
729 experimentData = _ref3[1];
730 var isDependant = experimentData.dependencies.includes(experimentId),
731 isActive = _this4.getExperimentActualState(id) === STATE_ACTIVE;
732 if (isDependant && isActive) {
733 _this4.setExperimentState(id, STATE_INACTIVE);
734 }
735 });
736 }
737 }, {
738 key: "shouldShowDependenciesDialog",
739 value: function shouldShowDependenciesDialog(experimentId) {
740 var dependencies = this.getExperimentDependencies(experimentId);
741 return !this.areAllDependenciesActive(dependencies);
742 }
743 }, {
744 key: "shouldShowDeactivationDialog",
745 value: function shouldShowDeactivationDialog(experimentId) {
746 var getExperimentData = this.getExperimentData(experimentId),
747 isInitialStateActive = getExperimentData.state === STATE_ACTIVE || getExperimentData.state === STATE_DEFAULT && getExperimentData.default === STATE_ACTIVE,
748 hasMessage = !!this.getMessage(experimentId, 'on_deactivate');
749 return hasMessage && isInitialStateActive;
750 }
751 }, {
752 key: "showDialog",
753 value: function showDialog(dialog) {
754 return elementorCommon.dialogsManager.createWidget('confirm', {
755 id: 'e-experiments-messages-dialog',
756 headerMessage: dialog.headerMessage,
757 message: dialog.message,
758 position: {
759 my: 'center center',
760 at: 'center center'
761 },
762 strings: {
763 confirm: dialog.strings.confirm,
764 cancel: dialog.strings.cancel
765 },
766 hide: {
767 onOutsideClick: false,
768 onBackgroundClick: false,
769 onEscKeyPress: false
770 },
771 onConfirm: dialog.onConfirm,
772 onCancel: dialog.onCancel
773 }).show();
774 }
775 }, {
776 key: "getSiteLanguageCode",
777 value: function getSiteLanguageCode() {
778 var languageCode = document.querySelector('html').getAttribute('lang');
779 return languageCode !== null && languageCode !== void 0 ? languageCode : 'en'; // Fallback to English if no language code found.
780 }
781 }, {
782 key: "formatDependenciesList",
783 value: function formatDependenciesList(dependencies) {
784 var dependenciesTitles = dependencies.map(function (d) {
785 return d.title;
786 });
787 var languageCode = this.getSiteLanguageCode();
788 return new Intl.ListFormat(languageCode).format(dependenciesTitles);
789 }
790 }, {
791 key: "showDependenciesDialog",
792 value: function showDependenciesDialog(experimentId) {
793 var _this5 = this;
794 var experiment = this.getExperimentData(experimentId),
795 experimentName = experiment.title,
796 dependenciesList = this.formatDependenciesList(this.getExperimentDependencies(experimentId));
797
798 // Translators: %1$s: Experiment title, %2$s: Comma-separated dependencies list
799 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);
800 this.showDialog({
801 message: message,
802 headerMessage: __('First, activate another experiment.', 'elementor'),
803 strings: {
804 confirm: __('Activate', 'elementor'),
805 cancel: __('Cancel', 'elementor')
806 },
807 onConfirm: function onConfirm() {
808 _this5.getExperimentDependencies(experimentId).forEach(function (dependency) {
809 _this5.setExperimentState(dependency.name, STATE_ACTIVE);
810 });
811 _this5.elements.submit.click();
812 },
813 onCancel: function onCancel() {
814 _this5.setExperimentState(experimentId, STATE_INACTIVE);
815 }
816 });
817 }
818 }, {
819 key: "showDeactivationDialog",
820 value: function showDeactivationDialog(experimentId) {
821 var _this6 = this;
822 this.showDialog({
823 message: this.getMessage(experimentId, 'on_deactivate'),
824 headerMessage: __('Are you sure?', 'elementor'),
825 strings: {
826 confirm: __('Deactivate', 'elementor'),
827 cancel: __('Cancel', 'elementor')
828 },
829 onConfirm: function onConfirm() {
830 _this6.setExperimentState(experimentId, STATE_INACTIVE);
831 _this6.deactivateDependantExperiments(experimentId);
832 _this6.elements.submit.click();
833 },
834 onCancel: function onCancel() {
835 _this6.setExperimentState(experimentId, STATE_ACTIVE);
836 }
837 });
838 }
839 }, {
840 key: "getMessage",
841 value: function getMessage(experimentId, messageId) {
842 var _this$getExperimentDa;
843 return (_this$getExperimentDa = this.getExperimentData(experimentId)) === null || _this$getExperimentDa === void 0 ? void 0 : _this$getExperimentDa.messages[messageId];
844 }
845 }]);
846 return ExperimentsMessages;
847 }();
848 exports["default"] = ExperimentsMessages;
849
850 /***/ }),
851
852 /***/ "../core/experiments/assets/js/admin/module.js":
853 /*!*****************************************************!*\
854 !*** ../core/experiments/assets/js/admin/module.js ***!
855 \*****************************************************/
856 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
857
858 "use strict";
859
860
861 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
862 Object.defineProperty(exports, "__esModule", ({
863 value: true
864 }));
865 exports["default"] = void 0;
866 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
867 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
868 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
869 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
870 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
871 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
872 var _experimentsMessages = _interopRequireDefault(__webpack_require__(/*! ./behaviors/experiments-messages */ "../core/experiments/assets/js/admin/behaviors/experiments-messages.js"));
873 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
874 function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
875 var ExperimentsModule = /*#__PURE__*/function (_elementorModules$Vie) {
876 (0, _inherits2.default)(ExperimentsModule, _elementorModules$Vie);
877 var _super = _createSuper(ExperimentsModule);
878 function ExperimentsModule() {
879 (0, _classCallCheck2.default)(this, ExperimentsModule);
880 return _super.apply(this, arguments);
881 }
882 (0, _createClass2.default)(ExperimentsModule, [{
883 key: "getDefaultSettings",
884 value: function getDefaultSettings() {
885 return {
886 selectors: {
887 experimentIndicators: '.e-experiment__title__indicator',
888 experimentForm: '#elementor-settings-form',
889 experimentSelects: '.e-experiment__select',
890 experimentsButtons: '.e-experiment__button'
891 }
892 };
893 }
894 }, {
895 key: "getDefaultElements",
896 value: function getDefaultElements() {
897 var _this$getSettings = this.getSettings(),
898 selectors = _this$getSettings.selectors;
899 return {
900 $experimentIndicators: jQuery(selectors.experimentIndicators),
901 $experimentForm: jQuery(selectors.experimentForm),
902 $experimentSelects: jQuery(selectors.experimentSelects),
903 $experimentsButtons: jQuery(selectors.experimentsButtons)
904 };
905 }
906 }, {
907 key: "bindEvents",
908 value: function bindEvents() {
909 var _this = this;
910 this.elements.$experimentsButtons.on('click', function (event) {
911 return _this.onExperimentsButtonsClick(event);
912 });
913 }
914 }, {
915 key: "onExperimentsButtonsClick",
916 value: function onExperimentsButtonsClick(event) {
917 var submitButton = jQuery(event.currentTarget);
918 this.elements.$experimentSelects.val(submitButton.val());
919 this.elements.$experimentForm.find('#submit').trigger('click');
920 }
921 }, {
922 key: "addTipsy",
923 value: function addTipsy($element) {
924 $element.tipsy({
925 gravity: 's',
926 offset: 8,
927 title: function title() {
928 return this.getAttribute('data-tooltip');
929 }
930 });
931 }
932 }, {
933 key: "addIndicatorsTooltips",
934 value: function addIndicatorsTooltips() {
935 var _this2 = this;
936 this.elements.$experimentIndicators.each(function (index, experimentIndicator) {
937 return _this2.addTipsy(jQuery(experimentIndicator));
938 });
939 }
940 }, {
941 key: "onInit",
942 value: function onInit() {
943 var _this3 = this;
944 (0, _get2.default)((0, _getPrototypeOf2.default)(ExperimentsModule.prototype), "onInit", this).call(this);
945 this.experimentsDependency = new _experimentsMessages.default({
946 selects: this.elements.$experimentSelects.toArray(),
947 submit: this.elements.$experimentForm.find('#submit').get(0)
948 });
949 this.experimentsDependency.bindEvents();
950 if (this.elements.$experimentIndicators.length) {
951 import( /* webpackIgnore: true */"".concat(elementorCommon.config.urls.assets, "lib/tipsy/tipsy.min.js?ver=1.0.0")).then(function () {
952 return _this3.addIndicatorsTooltips();
953 });
954 }
955 }
956 }]);
957 return ExperimentsModule;
958 }(elementorModules.ViewModule);
959 exports["default"] = ExperimentsModule;
960
961 /***/ }),
962
963 /***/ "../modules/landing-pages/assets/js/admin/landing-pages.js":
964 /*!*****************************************************************!*\
965 !*** ../modules/landing-pages/assets/js/admin/landing-pages.js ***!
966 \*****************************************************************/
967 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
968
969 "use strict";
970
971
972 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
973 Object.defineProperty(exports, "__esModule", ({
974 value: true
975 }));
976 exports["default"] = void 0;
977 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
978 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
979 var _get2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/get */ "../node_modules/@babel/runtime/helpers/get.js"));
980 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
981 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
982 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
983 var _menuHandler = _interopRequireDefault(__webpack_require__(/*! elementor-admin/menu-handler */ "../assets/dev/js/admin/menu-handler.js"));
984 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
985 function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
986 var LandingPagesHandler = /*#__PURE__*/function (_AdminMenuHandler) {
987 (0, _inherits2.default)(LandingPagesHandler, _AdminMenuHandler);
988 var _super = _createSuper(LandingPagesHandler);
989 function LandingPagesHandler() {
990 (0, _classCallCheck2.default)(this, LandingPagesHandler);
991 return _super.apply(this, arguments);
992 }
993 (0, _createClass2.default)(LandingPagesHandler, [{
994 key: "getDefaultSettings",
995 value: function getDefaultSettings() {
996 var pageName = 'e-landing-page',
997 adminMenuSelectors = {
998 // The escaping is done because jQuery requires it for selectors.
999 landingPagesTablePage: 'a[href="edit.php?post_type=' + pageName + '"]',
1000 landingPagesAddNewPage: 'a[href="edit.php?post_type=elementor_library&page=' + pageName + '"]'
1001 };
1002 return {
1003 selectors: {
1004 addButton: '.page-title-action:first',
1005 pagesMenuItemAndLink: '#menu-pages, #menu-pages > a',
1006 landingPagesMenuItem: "".concat(adminMenuSelectors.landingPagesTablePage, ", ").concat(adminMenuSelectors.landingPagesAddNewPage),
1007 templatesMenuItem: '.menu-icon-elementor_library'
1008 }
1009 };
1010 }
1011 }, {
1012 key: "getDefaultElements",
1013 value: function getDefaultElements() {
1014 var selectors = this.getSettings('selectors'),
1015 elements = (0, _get2.default)((0, _getPrototypeOf2.default)(LandingPagesHandler.prototype), "getDefaultElements", this).call(this);
1016 elements.$landingPagesMenuItem = jQuery(selectors.landingPagesMenuItem);
1017 elements.$templatesMenuItem = jQuery(selectors.templatesMenuItem);
1018 elements.$pagesMenuItemAndLink = jQuery(selectors.pagesMenuItemAndLink);
1019 return elements;
1020 }
1021 }, {
1022 key: "onInit",
1023 value: function onInit() {
1024 (0, _get2.default)((0, _getPrototypeOf2.default)(LandingPagesHandler.prototype), "onInit", this).call(this);
1025 var settings = this.getSettings(),
1026 isLandingPagesTablePage = !!window.location.href.includes(settings.paths.landingPagesTablePage),
1027 isLandingPagesTrashPage = !!window.location.href.includes(settings.paths.landingPagesTrashPage),
1028 isLandingPagesCreateYourFirstPage = !!window.location.href.includes(settings.paths.landingPagesAddNewPage);
1029
1030 // If the current page is a Landing Pages Page (the Posts Table page, "Create Your First.." page, or a native
1031 // WordPress dashboard page edit screen when using WordPress' Classic Editor).
1032 if (isLandingPagesTablePage || isLandingPagesTrashPage || isLandingPagesCreateYourFirstPage || settings.isLandingPageAdminEdit) {
1033 // Make sure the active admin top level menu item is 'Templates', and not 'Pages'.
1034 this.highlightTopLevelMenuItem(this.elements.$templatesMenuItem, this.elements.$pagesMenuItemAndLink);
1035 this.highlightSubMenuItem(this.elements.$landingPagesMenuItem);
1036
1037 // Overwrite the 'Add New' button at the top of the page to open in Elementor with the library module open.
1038 jQuery(settings.selectors.addButton).attr('href', elementorAdminConfig.urls.addNewLandingPageUrl);
1039 }
1040 }
1041 }]);
1042 return LandingPagesHandler;
1043 }(_menuHandler.default);
1044 exports["default"] = LandingPagesHandler;
1045
1046 /***/ }),
1047
1048 /***/ "../modules/landing-pages/assets/js/admin/module.js":
1049 /*!**********************************************************!*\
1050 !*** ../modules/landing-pages/assets/js/admin/module.js ***!
1051 \**********************************************************/
1052 /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1053
1054 "use strict";
1055
1056
1057 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1058 Object.defineProperty(exports, "__esModule", ({
1059 value: true
1060 }));
1061 exports["default"] = void 0;
1062 var _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "../node_modules/@babel/runtime/helpers/classCallCheck.js"));
1063 var _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ "../node_modules/@babel/runtime/helpers/createClass.js"));
1064 var _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ "../node_modules/@babel/runtime/helpers/inherits.js"));
1065 var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"));
1066 var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js"));
1067 var _landingPages = _interopRequireDefault(__webpack_require__(/*! ./landing-pages */ "../modules/landing-pages/assets/js/admin/landing-pages.js"));
1068 function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
1069 function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
1070 var _default = /*#__PURE__*/function (_elementorModules$Mod) {
1071 (0, _inherits2.default)(_default, _elementorModules$Mod);
1072 var _super = _createSuper(_default);
1073 function _default() {
1074 var _this;
1075 (0, _classCallCheck2.default)(this, _default);
1076 _this = _super.call(this);
1077 elementorCommon.elements.$window.on('elementor/admin/init', function () {
1078 _this.runHandler();
1079 });
1080 return _this;
1081 }
1082 (0, _createClass2.default)(_default, [{
1083 key: "runHandler",
1084 value: function runHandler() {
1085 var _elementorAdmin$confi, _elementorAdmin$confi2;
1086 var pageName = 'e-landing-page',
1087 paths = {
1088 landingPagesTablePage: 'edit.php?post_type=' + pageName,
1089 landingPagesAddNewPage: 'edit.php?post_type=elementor_library&page=' + pageName,
1090 landingPagesTrashPage: 'edit.php?post_status=trash&post_type=' + pageName
1091 },
1092 args = {
1093 path: (_elementorAdmin$confi = elementorAdmin.config.landingPages) !== null && _elementorAdmin$confi !== void 0 && _elementorAdmin$confi.landingPagesHasPages ? paths.landingPagesTablePage : paths.landingPagesAddNewPage,
1094 isLandingPageAdminEdit: (_elementorAdmin$confi2 = elementorAdmin.config.landingPages) === null || _elementorAdmin$confi2 === void 0 ? void 0 : _elementorAdmin$confi2.isLandingPageAdminEdit,
1095 paths: paths
1096 };
1097
1098 // This class modifies elements in the WordPress admin that are rendered "wrong" by the WordPress core
1099 // and could not be modified in the backend.
1100 new _landingPages.default(args);
1101 }
1102 }]);
1103 return _default;
1104 }(elementorModules.Module);
1105 exports["default"] = _default;
1106
1107 /***/ }),
1108
1109 /***/ "@wordpress/i18n":
1110 /*!**************************!*\
1111 !*** external "wp.i18n" ***!
1112 \**************************/
1113 /***/ ((module) => {
1114
1115 "use strict";
1116 module.exports = wp.i18n;
1117
1118 /***/ }),
1119
1120 /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
1121 /*!******************************************************************!*\
1122 !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
1123 \******************************************************************/
1124 /***/ ((module) => {
1125
1126 function _arrayLikeToArray(arr, len) {
1127 if (len == null || len > arr.length) len = arr.length;
1128 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
1129 return arr2;
1130 }
1131 module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1132
1133 /***/ }),
1134
1135 /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
1136 /*!****************************************************************!*\
1137 !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
1138 \****************************************************************/
1139 /***/ ((module) => {
1140
1141 function _arrayWithHoles(arr) {
1142 if (Array.isArray(arr)) return arr;
1143 }
1144 module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
1145
1146 /***/ }),
1147
1148 /***/ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js":
1149 /*!***********************************************************************!*\
1150 !*** ../node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
1151 \***********************************************************************/
1152 /***/ ((module) => {
1153
1154 function _assertThisInitialized(self) {
1155 if (self === void 0) {
1156 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1157 }
1158 return self;
1159 }
1160 module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports;
1161
1162 /***/ }),
1163
1164 /***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
1165 /*!******************************************************************!*\
1166 !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
1167 \******************************************************************/
1168 /***/ ((module) => {
1169
1170 function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
1171 try {
1172 var info = gen[key](arg);
1173 var value = info.value;
1174 } catch (error) {
1175 reject(error);
1176 return;
1177 }
1178 if (info.done) {
1179 resolve(value);
1180 } else {
1181 Promise.resolve(value).then(_next, _throw);
1182 }
1183 }
1184 function _asyncToGenerator(fn) {
1185 return function () {
1186 var self = this,
1187 args = arguments;
1188 return new Promise(function (resolve, reject) {
1189 var gen = fn.apply(self, args);
1190 function _next(value) {
1191 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
1192 }
1193 function _throw(err) {
1194 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
1195 }
1196 _next(undefined);
1197 });
1198 };
1199 }
1200 module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
1201
1202 /***/ }),
1203
1204 /***/ "../node_modules/@babel/runtime/helpers/classCallCheck.js":
1205 /*!****************************************************************!*\
1206 !*** ../node_modules/@babel/runtime/helpers/classCallCheck.js ***!
1207 \****************************************************************/
1208 /***/ ((module) => {
1209
1210 function _classCallCheck(instance, Constructor) {
1211 if (!(instance instanceof Constructor)) {
1212 throw new TypeError("Cannot call a class as a function");
1213 }
1214 }
1215 module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
1216
1217 /***/ }),
1218
1219 /***/ "../node_modules/@babel/runtime/helpers/createClass.js":
1220 /*!*************************************************************!*\
1221 !*** ../node_modules/@babel/runtime/helpers/createClass.js ***!
1222 \*************************************************************/
1223 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1224
1225 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1226 function _defineProperties(target, props) {
1227 for (var i = 0; i < props.length; i++) {
1228 var descriptor = props[i];
1229 descriptor.enumerable = descriptor.enumerable || false;
1230 descriptor.configurable = true;
1231 if ("value" in descriptor) descriptor.writable = true;
1232 Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);
1233 }
1234 }
1235 function _createClass(Constructor, protoProps, staticProps) {
1236 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1237 if (staticProps) _defineProperties(Constructor, staticProps);
1238 Object.defineProperty(Constructor, "prototype", {
1239 writable: false
1240 });
1241 return Constructor;
1242 }
1243 module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
1244
1245 /***/ }),
1246
1247 /***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
1248 /*!****************************************************************!*\
1249 !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
1250 \****************************************************************/
1251 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1252
1253 var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
1254 function _defineProperty(obj, key, value) {
1255 key = toPropertyKey(key);
1256 if (key in obj) {
1257 Object.defineProperty(obj, key, {
1258 value: value,
1259 enumerable: true,
1260 configurable: true,
1261 writable: true
1262 });
1263 } else {
1264 obj[key] = value;
1265 }
1266 return obj;
1267 }
1268 module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
1269
1270 /***/ }),
1271
1272 /***/ "../node_modules/@babel/runtime/helpers/get.js":
1273 /*!*****************************************************!*\
1274 !*** ../node_modules/@babel/runtime/helpers/get.js ***!
1275 \*****************************************************/
1276 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1277
1278 var superPropBase = __webpack_require__(/*! ./superPropBase.js */ "../node_modules/@babel/runtime/helpers/superPropBase.js");
1279 function _get() {
1280 if (typeof Reflect !== "undefined" && Reflect.get) {
1281 module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports;
1282 } else {
1283 module.exports = _get = function _get(target, property, receiver) {
1284 var base = superPropBase(target, property);
1285 if (!base) return;
1286 var desc = Object.getOwnPropertyDescriptor(base, property);
1287 if (desc.get) {
1288 return desc.get.call(arguments.length < 3 ? target : receiver);
1289 }
1290 return desc.value;
1291 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
1292 }
1293 return _get.apply(this, arguments);
1294 }
1295 module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports;
1296
1297 /***/ }),
1298
1299 /***/ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js":
1300 /*!****************************************************************!*\
1301 !*** ../node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
1302 \****************************************************************/
1303 /***/ ((module) => {
1304
1305 function _getPrototypeOf(o) {
1306 module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
1307 return o.__proto__ || Object.getPrototypeOf(o);
1308 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
1309 return _getPrototypeOf(o);
1310 }
1311 module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
1312
1313 /***/ }),
1314
1315 /***/ "../node_modules/@babel/runtime/helpers/inherits.js":
1316 /*!**********************************************************!*\
1317 !*** ../node_modules/@babel/runtime/helpers/inherits.js ***!
1318 \**********************************************************/
1319 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1320
1321 var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js");
1322 function _inherits(subClass, superClass) {
1323 if (typeof superClass !== "function" && superClass !== null) {
1324 throw new TypeError("Super expression must either be null or a function");
1325 }
1326 subClass.prototype = Object.create(superClass && superClass.prototype, {
1327 constructor: {
1328 value: subClass,
1329 writable: true,
1330 configurable: true
1331 }
1332 });
1333 Object.defineProperty(subClass, "prototype", {
1334 writable: false
1335 });
1336 if (superClass) setPrototypeOf(subClass, superClass);
1337 }
1338 module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports;
1339
1340 /***/ }),
1341
1342 /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
1343 /*!***********************************************************************!*\
1344 !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
1345 \***********************************************************************/
1346 /***/ ((module) => {
1347
1348 function _interopRequireDefault(obj) {
1349 return obj && obj.__esModule ? obj : {
1350 "default": obj
1351 };
1352 }
1353 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
1354
1355 /***/ }),
1356
1357 /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
1358 /*!**********************************************************************!*\
1359 !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
1360 \**********************************************************************/
1361 /***/ ((module) => {
1362
1363 function _iterableToArrayLimit(r, l) {
1364 var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1365 if (null != t) {
1366 var e,
1367 n,
1368 i,
1369 u,
1370 a = [],
1371 f = !0,
1372 o = !1;
1373 try {
1374 if (i = (t = t.call(r)).next, 0 === l) {
1375 if (Object(t) !== t) return;
1376 f = !1;
1377 } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
1378 } catch (r) {
1379 o = !0, n = r;
1380 } finally {
1381 try {
1382 if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
1383 } finally {
1384 if (o) throw n;
1385 }
1386 }
1387 return a;
1388 }
1389 }
1390 module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
1391
1392 /***/ }),
1393
1394 /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
1395 /*!*****************************************************************!*\
1396 !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
1397 \*****************************************************************/
1398 /***/ ((module) => {
1399
1400 function _nonIterableRest() {
1401 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1402 }
1403 module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
1404
1405 /***/ }),
1406
1407 /***/ "../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
1408 /*!***************************************************************************!*\
1409 !*** ../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
1410 \***************************************************************************/
1411 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1412
1413 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1414 var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ "../node_modules/@babel/runtime/helpers/assertThisInitialized.js");
1415 function _possibleConstructorReturn(self, call) {
1416 if (call && (_typeof(call) === "object" || typeof call === "function")) {
1417 return call;
1418 } else if (call !== void 0) {
1419 throw new TypeError("Derived constructors may only return object or undefined");
1420 }
1421 return assertThisInitialized(self);
1422 }
1423 module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports;
1424
1425 /***/ }),
1426
1427 /***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
1428 /*!********************************************************************!*\
1429 !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
1430 \********************************************************************/
1431 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1432
1433 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1434 function _regeneratorRuntime() {
1435 "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
1436 module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
1437 return e;
1438 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
1439 var t,
1440 e = {},
1441 r = Object.prototype,
1442 n = r.hasOwnProperty,
1443 o = Object.defineProperty || function (t, e, r) {
1444 t[e] = r.value;
1445 },
1446 i = "function" == typeof Symbol ? Symbol : {},
1447 a = i.iterator || "@@iterator",
1448 c = i.asyncIterator || "@@asyncIterator",
1449 u = i.toStringTag || "@@toStringTag";
1450 function define(t, e, r) {
1451 return Object.defineProperty(t, e, {
1452 value: r,
1453 enumerable: !0,
1454 configurable: !0,
1455 writable: !0
1456 }), t[e];
1457 }
1458 try {
1459 define({}, "");
1460 } catch (t) {
1461 define = function define(t, e, r) {
1462 return t[e] = r;
1463 };
1464 }
1465 function wrap(t, e, r, n) {
1466 var i = e && e.prototype instanceof Generator ? e : Generator,
1467 a = Object.create(i.prototype),
1468 c = new Context(n || []);
1469 return o(a, "_invoke", {
1470 value: makeInvokeMethod(t, r, c)
1471 }), a;
1472 }
1473 function tryCatch(t, e, r) {
1474 try {
1475 return {
1476 type: "normal",
1477 arg: t.call(e, r)
1478 };
1479 } catch (t) {
1480 return {
1481 type: "throw",
1482 arg: t
1483 };
1484 }
1485 }
1486 e.wrap = wrap;
1487 var h = "suspendedStart",
1488 l = "suspendedYield",
1489 f = "executing",
1490 s = "completed",
1491 y = {};
1492 function Generator() {}
1493 function GeneratorFunction() {}
1494 function GeneratorFunctionPrototype() {}
1495 var p = {};
1496 define(p, a, function () {
1497 return this;
1498 });
1499 var d = Object.getPrototypeOf,
1500 v = d && d(d(values([])));
1501 v && v !== r && n.call(v, a) && (p = v);
1502 var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
1503 function defineIteratorMethods(t) {
1504 ["next", "throw", "return"].forEach(function (e) {
1505 define(t, e, function (t) {
1506 return this._invoke(e, t);
1507 });
1508 });
1509 }
1510 function AsyncIterator(t, e) {
1511 function invoke(r, o, i, a) {
1512 var c = tryCatch(t[r], t, o);
1513 if ("throw" !== c.type) {
1514 var u = c.arg,
1515 h = u.value;
1516 return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
1517 invoke("next", t, i, a);
1518 }, function (t) {
1519 invoke("throw", t, i, a);
1520 }) : e.resolve(h).then(function (t) {
1521 u.value = t, i(u);
1522 }, function (t) {
1523 return invoke("throw", t, i, a);
1524 });
1525 }
1526 a(c.arg);
1527 }
1528 var r;
1529 o(this, "_invoke", {
1530 value: function value(t, n) {
1531 function callInvokeWithMethodAndArg() {
1532 return new e(function (e, r) {
1533 invoke(t, n, e, r);
1534 });
1535 }
1536 return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
1537 }
1538 });
1539 }
1540 function makeInvokeMethod(e, r, n) {
1541 var o = h;
1542 return function (i, a) {
1543 if (o === f) throw new Error("Generator is already running");
1544 if (o === s) {
1545 if ("throw" === i) throw a;
1546 return {
1547 value: t,
1548 done: !0
1549 };
1550 }
1551 for (n.method = i, n.arg = a;;) {
1552 var c = n.delegate;
1553 if (c) {
1554 var u = maybeInvokeDelegate(c, n);
1555 if (u) {
1556 if (u === y) continue;
1557 return u;
1558 }
1559 }
1560 if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
1561 if (o === h) throw o = s, n.arg;
1562 n.dispatchException(n.arg);
1563 } else "return" === n.method && n.abrupt("return", n.arg);
1564 o = f;
1565 var p = tryCatch(e, r, n);
1566 if ("normal" === p.type) {
1567 if (o = n.done ? s : l, p.arg === y) continue;
1568 return {
1569 value: p.arg,
1570 done: n.done
1571 };
1572 }
1573 "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
1574 }
1575 };
1576 }
1577 function maybeInvokeDelegate(e, r) {
1578 var n = r.method,
1579 o = e.iterator[n];
1580 if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
1581 var i = tryCatch(o, e.iterator, r.arg);
1582 if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
1583 var a = i.arg;
1584 return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
1585 }
1586 function pushTryEntry(t) {
1587 var e = {
1588 tryLoc: t[0]
1589 };
1590 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
1591 }
1592 function resetTryEntry(t) {
1593 var e = t.completion || {};
1594 e.type = "normal", delete e.arg, t.completion = e;
1595 }
1596 function Context(t) {
1597 this.tryEntries = [{
1598 tryLoc: "root"
1599 }], t.forEach(pushTryEntry, this), this.reset(!0);
1600 }
1601 function values(e) {
1602 if (e || "" === e) {
1603 var r = e[a];
1604 if (r) return r.call(e);
1605 if ("function" == typeof e.next) return e;
1606 if (!isNaN(e.length)) {
1607 var o = -1,
1608 i = function next() {
1609 for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
1610 return next.value = t, next.done = !0, next;
1611 };
1612 return i.next = i;
1613 }
1614 }
1615 throw new TypeError(_typeof(e) + " is not iterable");
1616 }
1617 return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
1618 value: GeneratorFunctionPrototype,
1619 configurable: !0
1620 }), o(GeneratorFunctionPrototype, "constructor", {
1621 value: GeneratorFunction,
1622 configurable: !0
1623 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
1624 var e = "function" == typeof t && t.constructor;
1625 return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
1626 }, e.mark = function (t) {
1627 return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
1628 }, e.awrap = function (t) {
1629 return {
1630 __await: t
1631 };
1632 }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
1633 return this;
1634 }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
1635 void 0 === i && (i = Promise);
1636 var a = new AsyncIterator(wrap(t, r, n, o), i);
1637 return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
1638 return t.done ? t.value : a.next();
1639 });
1640 }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
1641 return this;
1642 }), define(g, "toString", function () {
1643 return "[object Generator]";
1644 }), e.keys = function (t) {
1645 var e = Object(t),
1646 r = [];
1647 for (var n in e) r.push(n);
1648 return r.reverse(), function next() {
1649 for (; r.length;) {
1650 var t = r.pop();
1651 if (t in e) return next.value = t, next.done = !1, next;
1652 }
1653 return next.done = !0, next;
1654 };
1655 }, e.values = values, Context.prototype = {
1656 constructor: Context,
1657 reset: function reset(e) {
1658 if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
1659 },
1660 stop: function stop() {
1661 this.done = !0;
1662 var t = this.tryEntries[0].completion;
1663 if ("throw" === t.type) throw t.arg;
1664 return this.rval;
1665 },
1666 dispatchException: function dispatchException(e) {
1667 if (this.done) throw e;
1668 var r = this;
1669 function handle(n, o) {
1670 return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
1671 }
1672 for (var o = this.tryEntries.length - 1; o >= 0; --o) {
1673 var i = this.tryEntries[o],
1674 a = i.completion;
1675 if ("root" === i.tryLoc) return handle("end");
1676 if (i.tryLoc <= this.prev) {
1677 var c = n.call(i, "catchLoc"),
1678 u = n.call(i, "finallyLoc");
1679 if (c && u) {
1680 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
1681 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
1682 } else if (c) {
1683 if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
1684 } else {
1685 if (!u) throw new Error("try statement without catch or finally");
1686 if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
1687 }
1688 }
1689 }
1690 },
1691 abrupt: function abrupt(t, e) {
1692 for (var r = this.tryEntries.length - 1; r >= 0; --r) {
1693 var o = this.tryEntries[r];
1694 if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
1695 var i = o;
1696 break;
1697 }
1698 }
1699 i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
1700 var a = i ? i.completion : {};
1701 return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
1702 },
1703 complete: function complete(t, e) {
1704 if ("throw" === t.type) throw t.arg;
1705 return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
1706 },
1707 finish: function finish(t) {
1708 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
1709 var r = this.tryEntries[e];
1710 if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
1711 }
1712 },
1713 "catch": function _catch(t) {
1714 for (var e = this.tryEntries.length - 1; e >= 0; --e) {
1715 var r = this.tryEntries[e];
1716 if (r.tryLoc === t) {
1717 var n = r.completion;
1718 if ("throw" === n.type) {
1719 var o = n.arg;
1720 resetTryEntry(r);
1721 }
1722 return o;
1723 }
1724 }
1725 throw new Error("illegal catch attempt");
1726 },
1727 delegateYield: function delegateYield(e, r, n) {
1728 return this.delegate = {
1729 iterator: values(e),
1730 resultName: r,
1731 nextLoc: n
1732 }, "next" === this.method && (this.arg = t), y;
1733 }
1734 }, e;
1735 }
1736 module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
1737
1738 /***/ }),
1739
1740 /***/ "../node_modules/@babel/runtime/helpers/setPrototypeOf.js":
1741 /*!****************************************************************!*\
1742 !*** ../node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
1743 \****************************************************************/
1744 /***/ ((module) => {
1745
1746 function _setPrototypeOf(o, p) {
1747 module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
1748 o.__proto__ = p;
1749 return o;
1750 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
1751 return _setPrototypeOf(o, p);
1752 }
1753 module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
1754
1755 /***/ }),
1756
1757 /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
1758 /*!***************************************************************!*\
1759 !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
1760 \***************************************************************/
1761 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1762
1763 var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
1764 var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
1765 var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
1766 var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
1767 function _slicedToArray(arr, i) {
1768 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
1769 }
1770 module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1771
1772 /***/ }),
1773
1774 /***/ "../node_modules/@babel/runtime/helpers/superPropBase.js":
1775 /*!***************************************************************!*\
1776 !*** ../node_modules/@babel/runtime/helpers/superPropBase.js ***!
1777 \***************************************************************/
1778 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1779
1780 var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js");
1781 function _superPropBase(object, property) {
1782 while (!Object.prototype.hasOwnProperty.call(object, property)) {
1783 object = getPrototypeOf(object);
1784 if (object === null) break;
1785 }
1786 return object;
1787 }
1788 module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports;
1789
1790 /***/ }),
1791
1792 /***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
1793 /*!*************************************************************!*\
1794 !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
1795 \*************************************************************/
1796 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1797
1798 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1799 function _toPrimitive(input, hint) {
1800 if (_typeof(input) !== "object" || input === null) return input;
1801 var prim = input[Symbol.toPrimitive];
1802 if (prim !== undefined) {
1803 var res = prim.call(input, hint || "default");
1804 if (_typeof(res) !== "object") return res;
1805 throw new TypeError("@@toPrimitive must return a primitive value.");
1806 }
1807 return (hint === "string" ? String : Number)(input);
1808 }
1809 module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
1810
1811 /***/ }),
1812
1813 /***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
1814 /*!***************************************************************!*\
1815 !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
1816 \***************************************************************/
1817 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1818
1819 var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1820 var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
1821 function _toPropertyKey(arg) {
1822 var key = toPrimitive(arg, "string");
1823 return _typeof(key) === "symbol" ? key : String(key);
1824 }
1825 module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
1826
1827 /***/ }),
1828
1829 /***/ "../node_modules/@babel/runtime/helpers/typeof.js":
1830 /*!********************************************************!*\
1831 !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
1832 \********************************************************/
1833 /***/ ((module) => {
1834
1835 function _typeof(o) {
1836 "@babel/helpers - typeof";
1837
1838 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
1839 return typeof o;
1840 } : function (o) {
1841 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
1842 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o);
1843 }
1844 module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
1845
1846 /***/ }),
1847
1848 /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
1849 /*!****************************************************************************!*\
1850 !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
1851 \****************************************************************************/
1852 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1853
1854 var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
1855 function _unsupportedIterableToArray(o, minLen) {
1856 if (!o) return;
1857 if (typeof o === "string") return arrayLikeToArray(o, minLen);
1858 var n = Object.prototype.toString.call(o).slice(8, -1);
1859 if (n === "Object" && o.constructor) n = o.constructor.name;
1860 if (n === "Map" || n === "Set") return Array.from(o);
1861 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
1862 }
1863 module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1864
1865 /***/ }),
1866
1867 /***/ "../node_modules/@babel/runtime/regenerator/index.js":
1868 /*!***********************************************************!*\
1869 !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
1870 \***********************************************************/
1871 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1872
1873 // TODO(Babel 8): Remove this file.
1874
1875 var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
1876 module.exports = runtime;
1877
1878 // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
1879 try {
1880 regeneratorRuntime = runtime;
1881 } catch (accidentalStrictMode) {
1882 if (typeof globalThis === "object") {
1883 globalThis.regeneratorRuntime = runtime;
1884 } else {
1885 Function("r", "regeneratorRuntime = r")(runtime);
1886 }
1887 }
1888
1889
1890 /***/ })
1891
1892 /******/ });
1893 /************************************************************************/
1894 /******/ // The module cache
1895 /******/ var __webpack_module_cache__ = {};
1896 /******/
1897 /******/ // The require function
1898 /******/ function __webpack_require__(moduleId) {
1899 /******/ // Check if module is in cache
1900 /******/ var cachedModule = __webpack_module_cache__[moduleId];
1901 /******/ if (cachedModule !== undefined) {
1902 /******/ return cachedModule.exports;
1903 /******/ }
1904 /******/ // Create a new module (and put it into the cache)
1905 /******/ var module = __webpack_module_cache__[moduleId] = {
1906 /******/ // no module.id needed
1907 /******/ // no module.loaded needed
1908 /******/ exports: {}
1909 /******/ };
1910 /******/
1911 /******/ // Execute the module function
1912 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1913 /******/
1914 /******/ // Return the exports of the module
1915 /******/ return module.exports;
1916 /******/ }
1917 /******/
1918 /************************************************************************/
1919 var __webpack_exports__ = {};
1920 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
1921 (() => {
1922 "use strict";
1923 /*!***************************************!*\
1924 !*** ../assets/dev/js/admin/admin.js ***!
1925 \***************************************/
1926 /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
1927
1928
1929 var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
1930 var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
1931 var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
1932 var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
1933 var _module = _interopRequireDefault(__webpack_require__(/*! elementor/modules/landing-pages/assets/js/admin/module */ "../modules/landing-pages/assets/js/admin/module.js"));
1934 var _module2 = _interopRequireDefault(__webpack_require__(/*! elementor/core/experiments/assets/js/admin/module */ "../core/experiments/assets/js/admin/module.js"));
1935 var _environment = _interopRequireDefault(__webpack_require__(/*! ../../../../core/common/assets/js/utils/environment */ "../core/common/assets/js/utils/environment.js"));
1936 var _events = _interopRequireDefault(__webpack_require__(/*! elementor-utils/events */ "../assets/dev/js/utils/events.js"));
1937 var _filesUploadHandler = _interopRequireDefault(__webpack_require__(/*! ../editor/utils/files-upload-handler */ "../assets/dev/js/editor/utils/files-upload-handler.js"));
1938 var _templateControls = _interopRequireDefault(__webpack_require__(/*! ./new-template/template-controls.js */ "../assets/dev/js/admin/new-template/template-controls.js"));
1939 var _jsonUploadWarningMessage = __webpack_require__(/*! elementor-utils/json-upload-warning-message */ "../assets/dev/js/utils/json-upload-warning-message.js");
1940 (function ($) {
1941 var ElementorAdmin = elementorModules.ViewModule.extend({
1942 maintenanceMode: null,
1943 config: elementorAdminConfig,
1944 getDefaultElements: function getDefaultElements() {
1945 var elements = {
1946 $switchMode: $('#elementor-switch-mode'),
1947 $goToEditLink: $('#elementor-go-to-edit-page-link'),
1948 $switchModeInput: $('#elementor-switch-mode-input'),
1949 $switchModeButton: $('#elementor-switch-mode-button'),
1950 $elementorLoader: $('.elementor-loader'),
1951 $builderEditor: $('#elementor-editor'),
1952 $importButton: $('#elementor-import-template-trigger'),
1953 $importNowButton: $('#e-import-template-action'),
1954 $importArea: $('#elementor-import-template-area'),
1955 $importForm: $('#elementor-import-template-form'),
1956 $importFormFileInput: $('#elementor-import-template-form input[type="file"]'),
1957 $settingsForm: $('#elementor-settings-form'),
1958 $settingsTabsWrapper: $('#elementor-settings-tabs-wrapper'),
1959 $menuGetHelpLink: $('a[href="admin.php?page=go_knowledge_base_site"]'),
1960 $menuGoProLink: $('a[href="admin.php?page=go_elementor_pro"]'),
1961 $reMigrateGlobalsButton: $('.elementor-re-migrate-globals-button')
1962 };
1963 elements.$settingsFormPages = elements.$settingsForm.find('.elementor-settings-form-page');
1964 elements.$activeSettingsPage = elements.$settingsFormPages.filter('.elementor-active');
1965 elements.$settingsTabs = elements.$settingsTabsWrapper.children();
1966 elements.$activeSettingsTab = elements.$settingsTabs.filter('.nav-tab-active');
1967 return elements;
1968 },
1969 toggleStatus: function toggleStatus() {
1970 var isElementorMode = this.isElementorMode();
1971 elementorCommon.elements.$body.toggleClass('elementor-editor-active', isElementorMode).toggleClass('elementor-editor-inactive', !isElementorMode);
1972 },
1973 bindEvents: function bindEvents() {
1974 var self = this;
1975 self.elements.$switchModeButton.on('click', function (event) {
1976 event.preventDefault();
1977 if (self.isElementorMode()) {
1978 elementorCommon.dialogsManager.createWidget('confirm', {
1979 message: __('Please note that you are switching to WordPress default editor. Your current layout, design and content might break.', 'elementor'),
1980 headerMessage: __('Back to WordPress Editor', 'elementor'),
1981 strings: {
1982 confirm: __('Continue', 'elementor'),
1983 cancel: __('Cancel', 'elementor')
1984 },
1985 defaultOption: 'confirm',
1986 onConfirm: function onConfirm() {
1987 self.elements.$switchModeInput.val('');
1988 self.toggleStatus();
1989 }
1990 }).show();
1991 } else {
1992 self.elements.$switchModeInput.val(true);
1993 var $wpTitle = $('#title');
1994 if (!$wpTitle.val()) {
1995 $wpTitle.val('Elementor #' + $('#post_ID').val());
1996 }
1997 if (wp.autosave) {
1998 wp.autosave.server.triggerSave();
1999 }
2000 self.animateLoader();
2001 $(document).on('heartbeat-tick.autosave', function () {
2002 elementorCommon.elements.$window.off('beforeunload.edit-post');
2003 location.href = self.elements.$goToEditLink.attr('href');
2004 });
2005 self.toggleStatus();
2006 }
2007 });
2008 self.elements.$goToEditLink.on('click', function () {
2009 self.animateLoader();
2010 });
2011 $('.e-notice--dismissible').on('click', '.e-notice__dismiss, .e-notice-dismiss', function (event) {
2012 event.preventDefault();
2013 var $wrapperElm = $(this).closest('.e-notice--dismissible');
2014 $.post(ajaxurl, {
2015 action: 'elementor_set_admin_notice_viewed',
2016 notice_id: $wrapperElm.data('notice_id')
2017 });
2018 $wrapperElm.fadeTo(100, 0, function () {
2019 $wrapperElm.slideUp(100, function () {
2020 $wrapperElm.remove();
2021 });
2022 });
2023 });
2024 $('#elementor-clear-cache-button').on('click', function (event) {
2025 event.preventDefault();
2026 var $thisButton = $(this);
2027 $thisButton.removeClass('success').addClass('loading');
2028 $.post(ajaxurl, {
2029 action: 'elementor_clear_cache',
2030 _nonce: $thisButton.data('nonce')
2031 }).done(function () {
2032 $thisButton.removeClass('loading').addClass('success');
2033 });
2034 });
2035 $('#elementor-library-sync-button').on('click', function (event) {
2036 event.preventDefault();
2037 var $thisButton = $(this);
2038 $thisButton.removeClass('success').addClass('loading');
2039 $.post(ajaxurl, {
2040 action: 'elementor_reset_library',
2041 _nonce: $thisButton.data('nonce')
2042 }).done(function () {
2043 $thisButton.removeClass('loading').addClass('success');
2044 });
2045 });
2046 $('#elementor-recreate-kit-button').on('click', function (event) {
2047 event.preventDefault();
2048 var $thisButton = $(this);
2049 $thisButton.removeClass('success error').addClass('loading').next('.e-recreate-kit-error-message').remove();
2050 $.post(ajaxurl, {
2051 action: 'elementor_recreate_kit',
2052 _nonce: $thisButton.data('nonce')
2053 }).done(function () {
2054 $thisButton.removeClass('loading').addClass('success');
2055 }).fail(function (_ref) {
2056 var _responseJSON$data;
2057 var responseJSON = _ref.responseJSON;
2058 $thisButton.removeClass('loading').addClass('error');
2059 if ((_responseJSON$data = responseJSON.data) !== null && _responseJSON$data !== void 0 && _responseJSON$data.message) {
2060 $thisButton.after("<div class=\"e-recreate-kit-error-message\">".concat(responseJSON.data.message, "</div>"));
2061 }
2062 });
2063 });
2064 $('#elementor-replace-url-button').on('click', function (event) {
2065 event.preventDefault();
2066 var $this = $(this),
2067 $tr = $this.parents('tr'),
2068 $from = $tr.find('[name="from"]'),
2069 $to = $tr.find('[name="to"]');
2070 $this.removeClass('success').addClass('loading');
2071 $.post(ajaxurl, {
2072 action: 'elementor_replace_url',
2073 from: $from.val(),
2074 to: $to.val(),
2075 _nonce: $this.data('nonce')
2076 }).done(function (response) {
2077 $this.removeClass('loading');
2078 if (response.success) {
2079 $this.addClass('success');
2080 }
2081 elementorCommon.dialogsManager.createWidget('alert', {
2082 message: response.data
2083 }).show();
2084 });
2085 });
2086 $('#elementor_upgrade_fa_button').on('click', function (event) {
2087 event.preventDefault();
2088 var $updateButton = $(this);
2089 $updateButton.addClass('loading');
2090 elementorCommon.dialogsManager.createWidget('confirm', {
2091 id: 'confirm_fa_migration_admin_modal',
2092 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'),
2093 headerMessage: __('Font Awesome 5 Migration', 'elementor'),
2094 strings: {
2095 confirm: __('Continue', 'elementor'),
2096 cancel: __('Cancel', 'elementor')
2097 },
2098 defaultOption: 'confirm',
2099 onConfirm: function onConfirm() {
2100 $updateButton.removeClass('error').addClass('loading');
2101 var _$updateButton$data = $updateButton.data(),
2102 _nonce = _$updateButton$data._nonce,
2103 action = _$updateButton$data.action,
2104 redirectUrl = _$updateButton$data.redirectUrl;
2105 $.post(ajaxurl, {
2106 action: action,
2107 _nonce: _nonce
2108 }).done(function (response) {
2109 $updateButton.removeClass('loading').addClass('success');
2110 var messageElement = document.createElement('p');
2111 messageElement.appendChild(document.createTextNode(response.data.message));
2112 $('#elementor_upgrade_fa_button').parent().append(messageElement);
2113 if (redirectUrl) {
2114 location.href = decodeURIComponent(redirectUrl);
2115 return;
2116 }
2117 history.go(-1);
2118 }).fail(function () {
2119 $updateButton.removeClass('loading').addClass('error');
2120 });
2121 },
2122 onCancel: function onCancel() {
2123 $updateButton.removeClass('loading').addClass('error');
2124 }
2125 }).show();
2126 });
2127 self.elements.$settingsTabs.on({
2128 click: function click(event) {
2129 event.preventDefault();
2130 event.currentTarget.focus(); // Safari does not focus the tab automatically
2131 },
2132 focus: function focus() {
2133 // Using focus event to enable navigation by tab key
2134 var hrefWithoutHash = location.href.replace(/#.*/, '');
2135 history.pushState({}, '', hrefWithoutHash + this.hash);
2136 self.goToSettingsTabFromHash();
2137 }
2138 });
2139 $('select.elementor-rollback-select').on('change', function () {
2140 var $this = $(this),
2141 $rollbackButton = $this.next('.elementor-rollback-button'),
2142 placeholderText = $rollbackButton.data('placeholder-text'),
2143 placeholderUrl = $rollbackButton.data('placeholder-url');
2144 $rollbackButton.html(placeholderText.replace('{VERSION}', $this.val()));
2145 $rollbackButton.attr('href', placeholderUrl.replace('VERSION', $this.val()));
2146 }).trigger('change');
2147 $('.elementor-rollback-button').on('click', function (event) {
2148 event.preventDefault();
2149 var $this = $(this);
2150 elementorCommon.dialogsManager.createWidget('confirm', {
2151 headerMessage: __('Rollback to Previous Version', 'elementor'),
2152 message: __('Are you sure you want to reinstall previous version?', 'elementor'),
2153 strings: {
2154 confirm: __('Continue', 'elementor'),
2155 cancel: __('Cancel', 'elementor')
2156 },
2157 onConfirm: function onConfirm() {
2158 $this.addClass('loading');
2159 location.href = $this.attr('href');
2160 }
2161 }).show();
2162 });
2163 self.elements.$reMigrateGlobalsButton.on('click', function (event) {
2164 event.preventDefault();
2165 var $this = $(event.currentTarget);
2166 elementorCommon.dialogsManager.createWidget('confirm', {
2167 headerMessage: __('Migrate to v3.0', 'elementor'),
2168 message: __('Please note that this process will revert all changes made to Global Colors and Fonts since upgrading to v3.x.', 'elementor'),
2169 strings: {
2170 confirm: __('Continue', 'elementor'),
2171 cancel: __('Cancel', 'elementor')
2172 },
2173 onConfirm: function onConfirm() {
2174 $this.removeClass('success').addClass('loading');
2175 elementorCommon.ajax.addRequest('re_migrate_globals', {
2176 success: function success() {
2177 return $this.removeClass('loading').addClass('success');
2178 }
2179 });
2180 }
2181 }).show();
2182 });
2183 $('.elementor_css_print_method select').on('change', function () {
2184 var $descriptions = $('.elementor-css-print-method-description');
2185 $descriptions.hide();
2186 $descriptions.filter('[data-value="' + $(this).val() + '"]').show();
2187 }).trigger('change');
2188 $('.elementor_google_font select').on('change', function () {
2189 $('.elementor_font_display').toggle('1' === $(this).val());
2190 }).trigger('change');
2191 },
2192 onInit: function onInit() {
2193 elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
2194 this.initTemplatesImport();
2195 this.initMaintenanceMode();
2196 this.goToSettingsTabFromHash();
2197 this.openLinksInNewTab();
2198 this.addUserAgentClasses();
2199 this.roleManager.init();
2200 if (elementorCommon.config.experimentalFeatures['landing-pages']) {
2201 new _module.default();
2202 }
2203 this.templateControls = new _templateControls.default();
2204 new _module2.default();
2205 },
2206 addUserAgentClasses: function addUserAgentClasses() {
2207 var body = document.querySelector('body');
2208 Object.entries(_environment.default).forEach(function (_ref2) {
2209 var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
2210 key = _ref3[0],
2211 value = _ref3[1];
2212 if (!value) {
2213 return;
2214 }
2215 body.classList.add('e--ua-' + key);
2216 });
2217 },
2218 /**
2219 * Open Links in New Tab
2220 *
2221 * Adds a `target="_blank"` attribute to the Admin Dashboard menu items specified in the `elements` array,
2222 * if the elements are found in the DOM. The items in the `elements` array should be jQuery instances.
2223 *
2224 * @since 3.6.0
2225 */
2226 openLinksInNewTab: function openLinksInNewTab() {
2227 var elements = [this.elements.$menuGetHelpLink, this.elements.$menuGoProLink];
2228 elements.forEach(function ($element) {
2229 // Only add the attribute if the element is found.
2230 if ($element.length) {
2231 $element.attr('target', '_blank');
2232 }
2233 });
2234 },
2235 initTemplatesImport: function initTemplatesImport() {
2236 var _elementorAdminConfig, _elementorAdminConfig2;
2237 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);
2238 if (!canImport || !elementorCommon.elements.$body.hasClass('post-type-elementor_library')) {
2239 return;
2240 }
2241 var self = this,
2242 $importForm = self.elements.$importForm,
2243 $importButton = self.elements.$importButton,
2244 $importArea = self.elements.$importArea,
2245 $importNowButton = self.elements.$importNowButton,
2246 $importFormFileInput = self.elements.$importFormFileInput;
2247 self.elements.$formAnchor = $('.wp-header-end');
2248 $('#wpbody-content').find('.page-title-action').last().after($importButton);
2249 self.elements.$formAnchor.after($importArea);
2250 $importButton.on('click', function () {
2251 $('#elementor-import-template-area').toggle();
2252 });
2253 var messageShown = false;
2254 var originalButtonValue = $importNowButton[0].value;
2255 $importForm.on('submit', /*#__PURE__*/function () {
2256 var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(event) {
2257 var enableUnfilteredFilesModal;
2258 return _regenerator.default.wrap(function _callee$(_context) {
2259 while (1) switch (_context.prev = _context.next) {
2260 case 0:
2261 $importNowButton[0].disabled = true;
2262 $importNowButton[0].value = __('Importing...', 'elementor');
2263 if (messageShown) {
2264 _context.next = 16;
2265 break;
2266 }
2267 event.preventDefault();
2268 _context.prev = 4;
2269 _context.next = 7;
2270 return (0, _jsonUploadWarningMessage.showJsonUploadWarningMessageIfNeeded)({
2271 IntroductionClass: window.elementorModules.admin.utils.Introduction,
2272 introductionMap: window.elementorAdmin.config.user.introduction,
2273 waitForSetViewed: true
2274 });
2275 case 7:
2276 messageShown = true;
2277 $importForm.trigger('submit');
2278 _context.next = 15;
2279 break;
2280 case 11:
2281 _context.prev = 11;
2282 _context.t0 = _context["catch"](4);
2283 $importNowButton[0].disabled = false;
2284 $importNowButton[0].value = originalButtonValue;
2285 case 15:
2286 return _context.abrupt("return");
2287 case 16:
2288 if (!($importFormFileInput[0].files.length && !elementorCommon.config.filesUpload.unfilteredFiles)) {
2289 _context.next = 21;
2290 break;
2291 }
2292 event.preventDefault();
2293 enableUnfilteredFilesModal = _filesUploadHandler.default.getUnfilteredFilesNotEnabledImportTemplateDialog(function () {
2294 $importForm.trigger('submit');
2295 });
2296 enableUnfilteredFilesModal.show();
2297 return _context.abrupt("return");
2298 case 21:
2299 messageShown = false;
2300 case 22:
2301 case "end":
2302 return _context.stop();
2303 }
2304 }, _callee, null, [[4, 11]]);
2305 }));
2306 return function (_x) {
2307 return _ref4.apply(this, arguments);
2308 };
2309 }());
2310 },
2311 initMaintenanceMode: function initMaintenanceMode() {
2312 var MaintenanceMode = __webpack_require__(/*! elementor-admin/maintenance-mode */ "../assets/dev/js/admin/maintenance-mode.js");
2313 this.maintenanceMode = new MaintenanceMode();
2314 },
2315 isElementorMode: function isElementorMode() {
2316 return !!this.elements.$switchModeInput.val();
2317 },
2318 animateLoader: function animateLoader() {
2319 this.elements.$goToEditLink.addClass('elementor-animate');
2320 },
2321 goToSettingsTabFromHash: function goToSettingsTabFromHash() {
2322 var hash = location.hash.slice(1);
2323 if (hash) {
2324 this.goToSettingsTab(hash);
2325 }
2326 },
2327 goToSettingsTab: function goToSettingsTab(tabName) {
2328 var $pages = this.elements.$settingsFormPages;
2329 if (!$pages.length) {
2330 return;
2331 }
2332 var $activePage = $pages.filter('#' + tabName);
2333 this.elements.$activeSettingsPage.removeClass('elementor-active');
2334 this.elements.$activeSettingsTab.removeClass('nav-tab-active');
2335 var $activeTab = this.elements.$settingsTabs.filter('#elementor-settings-' + tabName);
2336 $activePage.addClass('elementor-active');
2337 $activeTab.addClass('nav-tab-active');
2338 this.elements.$settingsForm.attr('action', 'options.php#' + tabName);
2339 this.elements.$activeSettingsPage = $activePage;
2340 this.elements.$activeSettingsTab = $activeTab;
2341 },
2342 translate: function translate(stringKey, templateArgs) {
2343 return elementorCommon.translate(stringKey, null, templateArgs, this.config.i18n);
2344 },
2345 roleManager: {
2346 selectors: {
2347 body: 'elementor-role-manager',
2348 row: '.elementor-role-row',
2349 label: '.elementor-role-label',
2350 excludedIndicator: '.elementor-role-excluded-indicator',
2351 excludedField: 'input[name="elementor_exclude_user_roles[]"]',
2352 controlsContainer: '.elementor-role-controls',
2353 toggleHandle: '.elementor-role-toggle',
2354 arrowUp: 'dashicons-arrow-up',
2355 arrowDown: 'dashicons-arrow-down'
2356 },
2357 toggle: function toggle($trigger) {
2358 var self = this,
2359 $row = $trigger.closest(self.selectors.row),
2360 $toggleHandleIcon = $row.find(self.selectors.toggleHandle).find('.dashicons'),
2361 $controls = $row.find(self.selectors.controlsContainer);
2362 $controls.toggleClass('hidden');
2363 if ($controls.hasClass('hidden')) {
2364 $toggleHandleIcon.removeClass(self.selectors.arrowUp).addClass(self.selectors.arrowDown);
2365 } else {
2366 $toggleHandleIcon.removeClass(self.selectors.arrowDown).addClass(self.selectors.arrowUp);
2367 }
2368 self.updateLabel($row);
2369 },
2370 updateLabel: function updateLabel($row) {
2371 var self = this,
2372 $indicator = $row.find(self.selectors.excludedIndicator),
2373 excluded = $row.find(self.selectors.excludedField).is(':checked');
2374 if (excluded) {
2375 $indicator.html($indicator.data('excluded-label'));
2376 } else {
2377 $indicator.html('');
2378 }
2379 self.setAdvancedState($row, excluded);
2380 },
2381 setAdvancedState: function setAdvancedState($row, state) {
2382 var self = this,
2383 $controls = $row.find('input[type="checkbox"]').not(self.selectors.excludedField);
2384 $controls.each(function (index, input) {
2385 $(input).prop('disabled', state);
2386 });
2387 },
2388 bind: function bind() {
2389 var self = this;
2390 $(document).on('click', self.selectors.label + ',' + self.selectors.toggleHandle, function (event) {
2391 event.stopPropagation();
2392 event.preventDefault();
2393 self.toggle($(this));
2394 }).on('change', self.selectors.excludedField, function () {
2395 self.updateLabel($(this).closest(self.selectors.row));
2396 });
2397 },
2398 init: function init() {
2399 var self = this;
2400 if (!$('body[class*="' + self.selectors.body + '"]').length) {
2401 return;
2402 }
2403 self.bind();
2404 $(self.selectors.row).each(function (index, row) {
2405 self.updateLabel($(row));
2406 });
2407 }
2408 }
2409 });
2410 $(function () {
2411 window.elementorAdmin = new ElementorAdmin();
2412 _events.default.dispatch(elementorCommon.elements.$window, 'elementor/admin/init');
2413 });
2414 })(jQuery);
2415 })();
2416
2417 /******/ })()
2418 ;
2419 //# sourceMappingURL=admin.js.map