403Webshell
Server IP : 108.167.142.43  /  Your IP : 216.73.216.237
Web Server : Apache
System : Linux gator4174.hostgator.com 5.14.0-687.39.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Aug 18 06:09:16 EDT 2026 x86_64
User : delarice ( 2406)
PHP Version : 8.3.36
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home2/delarice/www/wp-content/plugins/elementor-pro/assets/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home2/delarice/www/wp-content/plugins/elementor-pro/assets/js/editor.js
/*! elementor-pro - v4.3.0 - 13-10-2026 */
(function(_wordpress_i18n, react) {
	//#region \0rolldown/runtime.js
	var __create = Object.create;
	var __defProp$2 = Object.defineProperty;
	var __name = (target, value) => __defProp$2(target, "name", {
		value,
		configurable: true
	});
	var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
	var __getOwnPropNames = Object.getOwnPropertyNames;
	var __getProtoOf = Object.getPrototypeOf;
	var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
	var __esmMin = (fn, res, err) => () => {
		if (err) throw err[0];
		try {
			return fn && (res = fn(fn = 0)), res;
		} catch (e) {
			throw err = [e], e;
		}
	};
	var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
	var __exportAll = (all, no_symbols) => {
		let target = {};
		for (var name in all) __defProp$2(target, name, {
			get: all[name],
			enumerable: true
		});
		if (!no_symbols) __defProp$2(target, Symbol.toStringTag, { value: "Module" });
		return target;
	};
	var __copyProps = (to, from, except, desc) => {
		if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
			key = keys[i];
			if (!__hasOwnProp$1.call(to, key) && key !== except) __defProp$2(to, key, {
				get: ((k) => from[k]).bind(null, key),
				enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
			});
		}
		return to;
	};
	var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp$2(target, "default", {
		value: mod,
		enumerable: true
	}) : target, mod));
	var __toCommonJS = (mod) => __hasOwnProp$1.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp$2({}, "__esModule", { value: true }), mod);
	//#endregion
	react = __toESM(react);
	//#region modules/custom-css/assets/js/editor/editor.js
	var editor_default$1 = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "default");
		}
		addCustomCss(css, context) {
			if (!context) return;
			const model = context.model;
			const customCSS = model.get("settings").get("custom_css");
			let selector = ".elementor-element.elementor-element-" + model.get("id");
			if ("document" === model.get("elType")) selector = elementor.config.document.settings.cssWrapperSelector;
			if (customCSS) css += customCSS.replace(/selector/g, selector);
			return css;
		}
		onElementorInit() {
			elementor.hooks.addFilter("editor/style/styleText", this.addCustomCss);
			elementor.on("navigator:init", this.onNavigatorInit.bind(this));
		}
		onNavigatorInit() {
			elementor.navigator.indicators.customCSS = {
				icon: "code-bold",
				settingKeys: ["custom_css"],
				title: (0, _wordpress_i18n.__)("Custom CSS", "elementor-pro"),
				section: "section_custom_css"
			};
		}
	};
	//#endregion
	//#region modules/motion-fx/assets/js/editor/editor.js
	var editor_default = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "default");
		}
		onElementorInit() {
			elementor.on("navigator:init", this.onNavigatorInit.bind(this));
		}
		onNavigatorInit() {
			elementor.navigator.indicators.motionFX = {
				icon: "flash",
				title: (0, _wordpress_i18n.__)("Motion Effects", "elementor-pro"),
				settingKeys: [
					"motion_fx_motion_fx_scrolling",
					"motion_fx_motion_fx_mouse",
					"background_motion_fx_motion_fx_scrolling",
					"background_motion_fx_motion_fx_mouse"
				],
				section: "section_effects"
			};
		}
	};
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/data/save.js
	var PopupSave;
	var init_save = __esmMin((() => {
		PopupSave = class extends $e.modules.hookData.After {
			getCommand() {
				return "document/save/save";
			}
			getId() {
				return "elementor-pro-popup-save";
			}
			getConditions() {
				return "popup" === elementor.config.document.type;
			}
			apply() {
				const settings = {};
				jQuery.each(elementorPro.modules.popup.displaySettingsTypes, (type, data) => {
					settings[type] = data.model.toJSON({ remove: ["default"] });
				});
				elementorPro.ajax.addRequest("popup_save_display_settings", { data: { settings } });
			}
		};
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/data/index.js
	var init_data$1 = __esmMin((() => {
		init_save();
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-library-tab.js
	var PopupAddLibraryTab;
	var init_add_library_tab = __esmMin((() => {
		PopupAddLibraryTab = class extends $e.modules.hookUI.After {
			getCommand() {
				return "editor/documents/open";
			}
			getId() {
				return "elementor-pro-popup-add-library-tab";
			}
			getConditions(args) {
				return "popup" === elementor.documents.get(args.id).config.type;
			}
			apply() {
				$e.components.get("library").addTab("templates/popups", {
					title: (0, _wordpress_i18n.__)("Popups", "elementor-pro"),
					filter: {
						source: "remote",
						type: "popup"
					}
				}, 1);
			}
		};
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/controls/display-settings.js
	var display_settings_default;
	var init_display_settings = __esmMin((() => {
		display_settings_default = class extends elementorModules.editor.views.ControlsStack {
			static {
				__name(this, "default");
			}
			constructor(...args) {
				super(...args);
				this.template = _.noop;
				this.activeTab = "content";
				this.listenTo(this.model, "change", this.onModelChange);
			}
			getNamespaceArray() {
				return ["popup", "display-settings"];
			}
			className() {
				return super.className() + " elementor-popup__display-settings";
			}
			toggleGroup(groupName, $groupElement) {
				$groupElement.toggleClass("elementor-active", !!this.model.get(groupName));
			}
			onRenderTemplate() {
				this.activateFirstSection();
			}
			onRender() {
				const name = this.getOption("name");
				let $groupWrapper;
				this.children.each((child) => {
					if ("heading" !== child.model.get("type")) {
						if ($groupWrapper) $groupWrapper.append(child.$el);
						return;
					}
					const groupName = child.model.get("name").replace("_heading", "");
					$groupWrapper = jQuery("<div>", {
						id: `elementor-popup__${name}-controls-group--${groupName}`,
						class: "elementor-popup__display-settings_controls_group"
					});
					const $imageWrapper = jQuery("<div>", { class: "elementor-popup__display-settings_controls_group__icon" });
					const $image = jQuery("<img>", { src: elementorPro.config.urls.modules + `popup/assets/images/${name}/${groupName}.svg` });
					$imageWrapper.html($image);
					$groupWrapper.html($imageWrapper);
					child.$el.before($groupWrapper);
					$groupWrapper.append(child.$el);
					this.toggleGroup(groupName, $groupWrapper);
				});
			}
			onModelChange() {
				const changedControlName = Object.keys(this.model.changed)[0];
				const changedControlView = this.getControlViewByName(changedControlName);
				if ("switcher" !== changedControlView.model.get("type")) return;
				this.toggleGroup(changedControlName, changedControlView.$el.parent());
			}
		};
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/ui/editor/documents/open/add-triggers.js
	var PopupAddTriggers;
	var init_add_triggers = __esmMin((() => {
		init_display_settings();
		PopupAddTriggers = class extends $e.modules.hookUI.After {
			getCommand() {
				return "editor/documents/open";
			}
			getId() {
				return "elementor-pro-popup-add-triggers";
			}
			getConditions(args) {
				return "popup" === elementor.documents.get(args.id).config.type;
			}
			apply() {
				if (elementor.panel) this.addUI();
				else elementor.once("preview:loaded", this.addUI.bind(this));
			}
			addUI() {
				if ($e.routes.commands["theme-builder-publish/triggers"]) return;
				this.addPublishTabs();
			}
			addPublishTabs() {
				const config = elementor.config.document.displaySettings;
				const component = $e.components.get("theme-builder-publish");
				const module = elementorPro.modules.popup;
				jQuery.each(module.displaySettingsTypes, (type, data) => {
					data.model = new elementorModules.editor.elements.models.BaseSettings(config[type].settings, { controls: config[type].controls });
					component.addTab(type, {
						View: display_settings_default,
						viewOptions: {
							name: type,
							id: `elementor-popup-${type}__controls`,
							model: data.model,
							controls: data.model.controls
						},
						name: type,
						title: data.title,
						description: data.publishScreenDescription,
						image: elementorPro.config.urls.modules + `popup/assets/images/${type}-tab.svg`
					});
				});
			}
		};
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-library-tab.js
	var PopupRemoveLibraryTab;
	var init_remove_library_tab = __esmMin((() => {
		PopupRemoveLibraryTab = class extends $e.modules.hookUI.After {
			getCommand() {
				return "editor/documents/unload";
			}
			getId() {
				return "elementor-pro-popup-remove-library-tab";
			}
			getConditions(args) {
				const { document } = args;
				return "popup" === document.config.type;
			}
			apply() {
				$e.components.get("library").removeTab("templates/popups");
			}
		};
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/ui/editor/documents/close/remove-triggers.js
	var PopupRemoveTriggers;
	var init_remove_triggers = __esmMin((() => {
		PopupRemoveTriggers = class extends $e.modules.hookUI.After {
			getCommand() {
				return "editor/documents/unload";
			}
			getId() {
				return "elementor-pro-popup-remove-triggers";
			}
			getConditions(args) {
				const { document } = args;
				return "popup" === document.config.type;
			}
			apply() {
				this.removePublishTabs();
			}
			removePublishTabs() {
				const component = $e.components.get("theme-builder-publish");
				const displaySettingsTypes = elementorPro.modules.popup.displaySettingsTypes;
				jQuery.each(displaySettingsTypes, (type) => {
					component.removeTab(type);
				});
			}
		};
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/ui/index.js
	var init_ui = __esmMin((() => {
		init_add_library_tab();
		init_add_triggers();
		init_remove_library_tab();
		init_remove_triggers();
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/hooks/index.js
	var hooks_exports$6 = /* @__PURE__ */ __exportAll({
		PopupAddLibraryTab: () => PopupAddLibraryTab,
		PopupAddTriggers: () => PopupAddTriggers,
		PopupRemoveLibraryTab: () => PopupRemoveLibraryTab,
		PopupRemoveTriggers: () => PopupRemoveTriggers,
		PopupSave: () => PopupSave
	});
	var init_hooks$2 = __esmMin((() => {
		init_data$1();
		init_ui();
	}));
	//#endregion
	//#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
	function _typeof(o) {
		"@babel/helpers - typeof";
		return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
			return typeof o;
		} : function(o) {
			return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
		}, _typeof(o);
	}
	var init_typeof = __esmMin((() => {}));
	//#endregion
	//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
	function toPrimitive(t, r) {
		if ("object" != _typeof(t) || !t) return t;
		var e = t[Symbol.toPrimitive];
		if (void 0 !== e) {
			var i = e.call(t, r || "default");
			if ("object" != _typeof(i)) return i;
			throw new TypeError("@@toPrimitive must return a primitive value.");
		}
		return ("string" === r ? String : Number)(t);
	}
	var init_toPrimitive = __esmMin((() => {
		init_typeof();
	}));
	//#endregion
	//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
	function toPropertyKey(t) {
		var i = toPrimitive(t, "string");
		return "symbol" == _typeof(i) ? i : i + "";
	}
	var init_toPropertyKey = __esmMin((() => {
		init_typeof();
		init_toPrimitive();
	}));
	//#endregion
	//#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
	function _defineProperty(e, r, t) {
		return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
			value: t,
			enumerable: !0,
			configurable: !0,
			writable: !0
		}) : e[r] = t, e;
	}
	var init_defineProperty = __esmMin((() => {
		init_toPropertyKey();
	}));
	//#endregion
	//#region modules/popup/assets/js/editor/component.js
	var PopupComponent;
	var init_component$2 = __esmMin((() => {
		init_hooks$2();
		init_defineProperty();
		PopupComponent = class extends $e.modules.ComponentBase {
			constructor(..._args) {
				super(..._args);
				_defineProperty(
					this,
					/**
					* @type {null|Function}
					*/
					"onPageSettingsCloseHandler",
					null
				);
			}
			getNamespace() {
				return "document/popup";
			}
			defaultHooks() {
				return this.importHooks(hooks_exports$6);
			}
		};
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands/link.js
	var import_module = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
		init_component$2();
		var PopupModule = class extends elementorModules.editor.utils.Module {
			constructor(...args) {
				super(...args);
				this.displaySettingsTypes = {
					triggers: {
						icon: "eicon-click",
						title: (0, _wordpress_i18n.__)("Triggers", "elementor-pro"),
						publishScreenDescription: (0, _wordpress_i18n.__)("What action the user needs to do for the popup to open.", "elementor-pro")
					},
					timing: {
						icon: "eicon-cog",
						title: (0, _wordpress_i18n.__)("Advanced Rules", "elementor-pro"),
						publishScreenDescription: (0, _wordpress_i18n.__)("Requirements that have to be met for the popup to open.", "elementor-pro")
					}
				};
			}
			onElementorLoaded() {
				this.component = $e.components.register(new PopupComponent({ manager: this }));
			}
		};
		module.exports = PopupModule;
	})))());
	var Link = class extends $e.modules.editor.document.CommandHistoryBase {
		validateArgs(args) {
			this.requireContainer(args);
			this.requireArgumentConstructor("data", Object, args);
			const { containers = [args.container] } = args;
			containers.forEach((container) => {
				if ("global" === container.model.get("widgetType")) throw Error(`Invalid container, id: '${container.id}' is already global.`);
			});
		}
		getHistory(args) {
			const { data } = args;
			return {
				title: elementor.widgetsCache[data.widgetType].title,
				subTitle: data.title,
				type: (0, _wordpress_i18n.__)("Linked to Global", "elementor-pro")
			};
		}
		apply(args) {
			const { data, containers = [args.container] } = args;
			containers.forEach((container) => {
				const widgetModel = container.model;
				const widgetModelIndex = widgetModel.collection.indexOf(widgetModel);
				data.elType = data.type;
				data.settings = widgetModel.get("settings").attributes;
				data.widgetType = widgetModel.get("widgetType");
				const elementModelAttributes = elementorPro.modules.globalWidget.addGlobalWidget(data.template_id, data).attributes;
				$e.data.setCache(this.component, `document/global/global-widget/templates/${data.template_id}`, {}, data);
				$e.run("document/elements/create", {
					container: container.parent,
					model: {
						id: elementorCommon.helpers.getUniqueId(),
						elType: elementModelAttributes.elType,
						widgetType: elementModelAttributes.widgetType,
						templateID: data.template_id
					},
					options: { at: widgetModelIndex }
				});
				$e.run("document/elements/delete", { container });
			});
			$e.route("panel/elements/global");
		}
	};
	//#endregion
	//#region \0@oxc-project+runtime@0.140.0/helpers/esm/asyncToGenerator.js
	function asyncGeneratorStep(n, t, e, r, o, a, c) {
		try {
			var i = n[a](c);
			var u = i.value;
		} catch (n) {
			e(n);
			return;
		}
		i.done ? t(u) : Promise.resolve(u).then(r, o);
	}
	function _asyncToGenerator(n) {
		return function() {
			var t = this;
			var e = arguments;
			return new Promise(function(r, o) {
				var a = n.apply(t, e);
				function _next(n) {
					asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
				}
				function _throw(n) {
					asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
				}
				_next(void 0);
			});
		};
	}
	var init_asyncToGenerator = __esmMin((() => {}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands/unlink.js
	init_asyncToGenerator();
	var Unlink = class extends $e.modules.editor.document.CommandHistoryBase {
		validateArgs(args) {
			this.requireContainer(args);
		}
		getHistory(args) {
			const { containers = [args.container] } = args;
			return {
				title: elementor.helpers.getModelLabel(containers[0].model),
				type: (0, _wordpress_i18n.__)("Unlink Widget", "elementor-pro")
			};
		}
		apply(args) {
			return _asyncToGenerator(function* () {
				const { containers = [args.container] } = args;
				const ids = containers.map((container) => container.model.get("templateID"));
				const { data } = yield $e.data.get("document/global/templates", { ids });
				containers.forEach((container) => {
					const id = container.model.get("templateID");
					const elementModel = elementorPro.modules.globalWidget.createGlobalModel(id, data[id]);
					$e.run("document/elements/create", {
						container: container.parent,
						model: {
							id: elementorCommon.helpers.getUniqueId(),
							elType: "widget",
							widgetType: elementModel.get("widgetType"),
							settings: elementorCommon.helpers.cloneObject(elementModel.get("settings").attributes),
							defaultEditSettings: elementorCommon.helpers.cloneObject(elementModel.get("editSettings").attributes)
						},
						options: {
							at: container.model.collection.indexOf(container.model),
							edit: true
						}
					});
					$e.run("document/elements/delete", { container });
				});
			})();
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands/index.js
	var commands_exports$2 = /* @__PURE__ */ __exportAll({
		Link: () => Link,
		Unlink: () => Unlink
	});
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands-internal/save-templates.js
	/**
	* The command should run over all changed global widgets and
	* update the settings of the `document/global/global-widget/templates`,
	* And save cache templates according to the widget(s) which are under the save process.
	*/
	var SaveTemplates = class extends $e.modules.CommandInternalBase {
		apply() {
			const templateModels = this.getCurrentTemplatesModels(this.component.changedContainersId);
			if (!templateModels.length) return;
			return new Promise((resolve, reject) => {
				elementorCommon.ajax.addRequest("update_templates", {
					data: { templates: templateModels.map((templateModel) => {
						return {
							id: templateModel.get("id"),
							content: JSON.stringify([templateModel.toJSON()]),
							source: "local",
							type: "widget"
						};
					}) },
					error: reject,
					success: () => {
						/**
						* Since is used `document/global/global-widget/templates` to hold all globals template data.
						* And currently there are no request to update template data on each update of global widget,
						* editing the template will be not synced with The real latest data.
						* In other words, if dont update templates on each save,
						* Then the new created template will be different with the actual (saved) one, so updating the globals template
						* according to saved global widget is the solution.
						*/
						this.component.changedContainersId = {};
						templateModels.forEach((template) => {
							const settings = template.get("settings");
							$e.data.setCache(this.component, `document/global/global-widget/templates/${template.id}`, {}, { settings });
						});
						resolve(templateModels);
					}
				});
			});
		}
		getCurrentTemplatesModels(changedContainersId) {
			const templatesData = [];
			Object.entries(changedContainersId).forEach(([templateID, containerId]) => {
				if (!$e.data.getCache(this.component, `document/global/global-widget/templates/${templateID}`)) {
					if ($e.devTools) $e.devTools.log.warn(`$e.data.getCache( component, \`document/global/global-widget/templates/${templateID}\` ) - not found.`);
				}
				const container = elementor.getContainer(containerId);
				if (!container) return;
				templatesData.push(new Backbone.Model({
					id: templateID,
					elType: "widget",
					widgetType: container.model.get("widgetType"),
					settings: container.settings.toJSON({ remove: "default" }),
					templateID
				}));
			});
			return templatesData;
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands-internal/index.js
	var commands_internal_exports = /* @__PURE__ */ __exportAll({ SaveTemplates: () => SaveTemplates });
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands-data/templates.js
	/**
	* Data command: 'document/global/templates', accessing 'global-widget/templates' remote endpoint.
	* Used to get global templates from the backend/cache.
	*/
	var Templates$1 = class extends $e.modules.CommandData {
		static {
			__name(this, "Templates");
		}
		static getEndpointFormat() {
			return "global-widget/templates";
		}
		onAfterApply(args = {}, result) {
			$e.data.deleteCache(this.component, "document/global/global-widget/templates", args.query);
			Object.entries(result.data).forEach(([templateID, data]) => {
				$e.data.setCache(this.component, `document/global/global-widget/templates/${templateID}`, {}, data);
			});
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/commands-data/index.js
	var commands_data_exports = /* @__PURE__ */ __exportAll({ Templates: () => Templates$1 });
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/base-global-widget-prepare-update.js
	/**
	* Hook is responsible for saving last changed global widget and update
	* which containers are needed for updating the template.
	*/
	var BaseGlobalWidgetPrepareUpdate = class extends $e.modules.hookData.After {
		getConditions(args) {
			const { containers = [args.container] } = args;
			return containers.some((container) => {
				var _container$renderer;
				return (_container$renderer = container.renderer) === null || _container$renderer === void 0 || (_container$renderer = _container$renderer.model) === null || _container$renderer === void 0 ? void 0 : _container$renderer.get("templateID");
			});
		}
		apply(args) {
			const { containers = [args.container] } = args, component = $e.components.get("document/global");
			const globalWidgetContainers = containers.filter((container) => {
				var _container$renderer2;
				return (_container$renderer2 = container.renderer) === null || _container$renderer2 === void 0 || (_container$renderer2 = _container$renderer2.model) === null || _container$renderer2 === void 0 ? void 0 : _container$renderer2.get("templateID");
			});
			component.lastChangedContainers = globalWidgetContainers.map((container) => container.renderer);
			globalWidgetContainers.forEach((container) => {
				component.changedContainersId[container.renderer.model.get("templateID")] = container.renderer.id;
			});
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/document/elements/set-settings/global-widget-prepare-update-element-set-settings.js
	/**
	* Hook is responsible for saving last changed global widget and update
	* which containers are needed for updating the template.
	*/
	var GlobalWidgetPrepareUpdateElementSetSettings = class extends BaseGlobalWidgetPrepareUpdate {
		getCommand() {
			return "document/elements/set-settings";
		}
		getId() {
			return "elementor-pro-global-widget-prepare-update-element-set-settings";
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/document/repeater/insert/global-widget-prepare-update-repeater-insert.js
	/**
	* Hook is responsible for saving last changed global widget and update
	* which containers are needed for updating the template.
	*/
	var GlobalWidgetPrepareUpdateRepeaterInsert = class extends BaseGlobalWidgetPrepareUpdate {
		getCommand() {
			return "document/repeater/insert";
		}
		getId() {
			return "elementor-pro-global-widget-prepare-update-repeater-insert";
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/document/repeater/remove/global-widget-prepare-update-repeater-remove.js
	/**
	* Hook is responsible for saving last changed global widget and update
	* which containers are needed for updating the template.
	*/
	var GlobalWidgetPrepareUpdateRepeaterRemove = class extends BaseGlobalWidgetPrepareUpdate {
		getCommand() {
			return "document/repeater/remove";
		}
		getId() {
			return "elementor-pro-global-widget-prepare-update-repeater-remove";
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/document/history/end-log/global-widget-do-update.js
	/**
	* On after all `document/elements/set-settings` has stop, the history mechanism will call to
	* `document/history/end-log` the hook will update all other global widgets according to this last change.
	*/
	var GlobalWidgetDoUpdate = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/history/end-log";
		}
		getId() {
			return "elementor-pro-global-widget-do-update";
		}
		getConditions() {
			return $e.components.get("document/global").lastChangedContainers;
		}
		apply() {
			const component = $e.components.get("document/global");
			component.lastChangedContainers.forEach((container) => component.updateGlobalsRecursive(container));
			component.lastChangedContainers = null;
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/document/save/save/global-widget-save-templates.js
	/**
	* The hook is responsible for updating the global templates, on editor save,
	* hook will run 'document/global/save-templates' to handle the save.
	*/
	var GlobalWidgetSaveTemplates = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/save/save";
		}
		getId() {
			return "elementor-pro-global-widget-save-templates";
		}
		getConditions(args) {
			if (!Object.keys($e.components.get("document/global").changedContainersId).length) return false;
			const { document = elementor.documents.getCurrent() } = args;
			return document.config.panel.has_elements && args.status && -1 !== ["private", "publish"].indexOf(args.status);
		}
		apply() {
			$e.internal("document/global/save-templates");
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/data/editor/documents/attach-preview/global-widget-load-templates.js
	init_defineProperty();
	/**
	* Hook responsible to load current active templates ( global widget that are in used ) to `$e.data.cache`,
	* also it tells the component which templates are not active and required to be loaded from the backend.
	*/
	var GlobalWidgetLoadTemplates = class GlobalWidgetLoadTemplates extends $e.modules.hookData.After {
		initialize() {
			setTimeout(() => {
				this.component = $e.components.get("document/global");
			});
		}
		getCommand() {
			return "editor/documents/attach-preview";
		}
		getId() {
			return "elementor-pro-global-widget-load-templates";
		}
		getConditions() {
			return !GlobalWidgetLoadTemplates.calledOnce;
		}
		apply() {
			GlobalWidgetLoadTemplates.calledOnce = true;
			Object.entries(elementorPro.config.widget_templates).forEach(([id, data]) => {
				elementorPro.modules.globalWidget.addGlobalWidget(id, data);
				this.addTemplateToCache(id);
			});
		}
		addTemplateToCache(id) {
			const container = elementor.getPreviewContainer().children.findRecursive((i) => parseInt(i.model.get("templateID")) === parseInt(id));
			if (!container) return this.component.notLoadedTemplatesIds.push(id);
			const args = {
				id: container.model.get("templateID"),
				elType: "widget",
				widgetType: container.model.get("widgetType"),
				settings: container.settings.toJSON({ remove: "default" }),
				templateID: container.model.get("templateID")
			};
			$e.data.setCache(this.component, `document/global/global-widget/templates/${id}`, {}, args);
		}
	};
	_defineProperty(GlobalWidgetLoadTemplates, "calledOnce", false);
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/ui/document/elements/set-settings/global-widget-history-update.js
	/**
	* Since editing of global widget applies changes to the all widgets with the same template id,
	* the same needs to be done on undo/redo.
	*/
	var GlobalWidgetHistoryUpdate = class extends $e.modules.hookUI.After {
		getCommand() {
			return "document/elements/set-settings";
		}
		getId() {
			return "elementor-pro-global-widget-history-update";
		}
		getContainerType() {
			return "widget";
		}
		getConditions(args) {
			const { containers = [args.container] } = args;
			return !elementor.documents.getCurrent().history.getActive() && containers.some((container) => container.model.get("templateID"));
		}
		apply(args) {
			const { containers = [args.container] } = args;
			containers.forEach((container) => $e.components.get("document/global").updateGlobalsRecursive(container));
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/hooks/index.js
	var hooks_exports$5 = /* @__PURE__ */ __exportAll({
		GlobalWidgetDoUpdate: () => GlobalWidgetDoUpdate,
		GlobalWidgetHistoryUpdate: () => GlobalWidgetHistoryUpdate,
		GlobalWidgetLoadTemplates: () => GlobalWidgetLoadTemplates,
		GlobalWidgetPrepareUpdateElementSetSettings: () => GlobalWidgetPrepareUpdateElementSetSettings,
		GlobalWidgetPrepareUpdateRepeaterInsert: () => GlobalWidgetPrepareUpdateRepeaterInsert,
		GlobalWidgetPrepareUpdateRepeaterRemove: () => GlobalWidgetPrepareUpdateRepeaterRemove,
		GlobalWidgetSaveTemplates: () => GlobalWidgetSaveTemplates
	});
	//#endregion
	//#region modules/global-widget/assets/js/editor/component.js
	init_defineProperty();
	var Component$5 = class extends $e.modules.ComponentBase {
		static {
			__name(this, "Component");
		}
		constructor(..._args) {
			super(..._args);
			_defineProperty(
				this,
				/**
				* Holds all the template ids, which not available due they simply not exist in document data.
				* Those templates will be loaded later after requesting 'panel/elements/global' (global elements panel).
				*
				* @type {Array}
				*/
				"notLoadedTemplatesIds",
				[]
			);
			_defineProperty(
				this,
				/**
				* Last changed global widget(s).
				*
				* @type {null | Array} Container[]
				*/
				"lastChangedContainers",
				null
			);
			_defineProperty(
				this,
				/**
				* Hold unsaved changed container id for each template id.
				*
				* Each settings command that run over global widget, this logic is applied:
				* `changedContainersId[ templateId ] = containerId`.
				*
				* @type {{}}
				*/
				"changedContainersId",
				{}
			);
		}
		registerAPI() {
			super.registerAPI();
			$e.routes.on("run:after", (component, route) => {
				if ("panel/elements/global" === route) this.onRoutePanelElementsGlobal();
			});
		}
		getNamespace() {
			return "document/global";
		}
		defaultCommands() {
			return this.importCommands(commands_exports$2);
		}
		defaultCommandsInternal() {
			return this.importCommands(commands_internal_exports);
		}
		defaultData() {
			return this.importCommands(commands_data_exports);
		}
		defaultHooks() {
			return this.importHooks(hooks_exports$5);
		}
		onRoutePanelElementsGlobal() {
			if (this.notLoadedTemplatesIds.length) $e.data.get("document/global/templates", { ids: this.notLoadedTemplatesIds }).then(() => {
				this.notLoadedTemplatesIds = [];
			});
		}
		/**
		* Update each 'Backbone.Model' will handle issue when the global widget saved only in draft.
		* Scenario for better understanding the issue:
		* - Have global widget save with custom color, refresh the editor.
		* - Change it to global global color and save as draft (no update template).
		* - Create another global-widget from same template.
		* - Update one of first global widget that saved in draft to use custom color.
		* - By dependency of only 'container.settings' the new template will have the new custom color,
		*      but new custom color will unseen (since it has global).
		*
		* @param {Object} targetContainer Container class
		*/
		updateGlobalsRecursive(targetContainer) {
			const modelsToUpdate = [
				"dynamic",
				"globals",
				"settings"
			];
			elementor.getPreviewContainer().forEachChildrenRecursive((container) => {
				if (targetContainer !== container && parseInt(container.model.get("templateID")) === parseInt(targetContainer.model.get("templateID"))) {
					modelsToUpdate.forEach((modelName) => {
						const model = targetContainer[modelName];
						if (model instanceof Backbone.Model) {
							const accordingTo = "settings" === modelName ? targetContainer.settings.attributes : model.changed;
							Object.entries(accordingTo).forEach(([key, setting]) => {
								container[modelName].set(key, setting);
							});
						}
					});
					container.render();
				}
			});
		}
	};
	//#endregion
	//#region modules/global-widget/assets/js/editor/widget/view.js
	var view_exports = /* @__PURE__ */ __exportAll({ default: () => View$1 });
	var WidgetView, View$1;
	var init_view$1 = __esmMin((() => {
		WidgetView = elementor.modules.elements.views.Widget;
		View$1 = class extends WidgetView {
			static {
				__name(this, "View");
			}
			className() {
				return super.className() + " elementor-global-widget elementor-global-" + this.model.get("templateID");
			}
			addInlineEditingAttributes() {}
			unlink() {
				$e.run("document/global/unlink", { container: this.getContainer() });
			}
			onEditRequest() {
				$e.route("panel/editor/global", { view: this });
			}
			getContextMenuGroups() {
				return super.getContextMenuGroups().filter((group) => "save" !== group.name);
			}
			getContainer() {
				if (this.container) return this.container;
				const container = super.getContainer();
				container.label = container.label + " (" + (0, _wordpress_i18n.__)("global", "elementor-pro") + ")";
				return container;
			}
			render() {
				super.render();
				setTimeout(this.removeInlineAddingAttributes.bind(this));
			}
			/**
			* The issue is complex:
			* 1. There is a mechanism in the editor which responsible for adding inline the method below: `addInlineEditingAttributes`.
			* 2. There is a mechanism in the backend that adds inline attributes for each widget most of the time.
			*      its effect also the Global-Widget itself, in two ways:
			*      1. global-widget instance is calling to `$this->get_original_element_instance()->render_content();`.
			*          It means that the mechanism in the backend with adds the inline attributes will be triggered.
			*      2. each time you 'leave the editing mode' for most of the widgets it triggers `renderRemoteServer()`,
			*          which sends a request for `remoteRendering` for 'non-global widget' (the server doesn't know that it
			*          was linked to a template), that will trigger the original widget without knowing it's a part of the
			*          global mechanism.
			*          eventually it will trigger the logic of the backend for adding the inline attributes.
			*/
			removeInlineAddingAttributes() {
				const globalWidgetElementDom = this.el.querySelector(".elementor-inline-editing");
				if (globalWidgetElementDom) globalWidgetElementDom.classList.remove("elementor-inline-editing");
			}
		};
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/widget/model.js
	var model_exports = /* @__PURE__ */ __exportAll({ default: () => Model });
	var ElementModel, Model;
	var init_model = __esmMin((() => {
		ElementModel = elementor.modules.elements.models.Element;
		Model = class extends ElementModel {
			initSettings() {
				if ($e.commands.is("document/elements/create")) return this.initSettingsFromTemplate();
				super.initSettings();
			}
			initEditSettings() {
				super.initEditSettings();
				this.get("editSettings").set("editTab", "global");
			}
			initSettingsFromTemplate() {
				const id = this.get("templateID");
				const component = $e.components.get("document/global");
				const data = $e.data.getCache(component, `document/global/global-widget/templates/${id}`) || this.attributes;
				const elementModel = elementorPro.modules.globalWidget.createGlobalModel(id, data);
				this.set("settings", elementModel.get("settings"));
				elementorFrontend.config.elements.data[this.cid] = this.get("settings");
			}
		};
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/views/panel-page.js
	var require_panel_page = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = Marionette.ItemView.extend({
			id: "elementor-panel-global-widget",
			template: "#tmpl-elementor-panel-global-widget",
			ui: {
				editButton: "#elementor-global-widget-locked-edit .elementor-button",
				unlinkButton: "#elementor-global-widget-locked-unlink .elementor-button",
				loading: "#elementor-global-widget-loading"
			},
			events: {
				"click @ui.editButton": "onEditButtonClick",
				"click @ui.unlinkButton": "onUnlinkButtonClick"
			},
			initialize() {
				this.initUnlinkDialog();
			},
			buildUnlinkDialog() {
				var self = this;
				return elementorCommon.dialogsManager.createWidget("confirm", {
					id: "elementor-global-widget-unlink-dialog",
					headerMessage: (0, _wordpress_i18n.__)("Unlink Widget", "elementor-pro"),
					message: (0, _wordpress_i18n.__)("This will make the widget stop being global. It'll be reverted into being just a regular widget.", "elementor-pro"),
					position: {
						my: "center center",
						at: "center center"
					},
					strings: {
						confirm: (0, _wordpress_i18n.__)("Unlink", "elementor-pro"),
						cancel: (0, _wordpress_i18n.__)("Cancel", "elementor-pro")
					},
					onConfirm() {
						self.getOption("editedView").unlink();
					}
				});
			},
			initUnlinkDialog() {
				var dialog;
				this.getUnlinkDialog = function() {
					if (!dialog) dialog = this.buildUnlinkDialog();
					return dialog;
				};
			},
			editGlobalModel() {
				var editedView = this.getOption("editedView");
				$e.run("document/elements/select", { container: editedView.getContainer() });
			},
			onEditButtonClick() {
				this.editGlobalModel();
			},
			onUnlinkButtonClick() {
				this.getUnlinkDialog().show();
			}
		});
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/views/promotion.js
	var require_promotion = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementor.modules.layouts.panel.pages.elements.views.Global.extend({
			template: "#tmpl-elementor-promotion",
			id: "tmpl-elementor-promotion",
			className: "elementor-nerd-box elementor-panel-nerd-box e-responsive-panel-stretch"
		});
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/views/no-templates.js
	var require_no_templates = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementor.modules.layouts.panel.pages.elements.views.Global.extend({
			template: "#tmpl-elementor-panel-global-widget-no-templates",
			id: "elementor-panel-global-widget-no-templates",
			className: "elementor-nerd-box elementor-panel-nerd-box e-responsive-panel-stretch"
		});
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/views/global-templates-view.js
	var require_global_templates_view = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementor.modules.layouts.panel.pages.elements.views.Elements.extend({
			id: "elementor-global-templates",
			getEmptyView() {
				if (this.collection.length) return null;
				return require_no_templates();
			},
			onFilterEmpty() {}
		});
	}));
	//#endregion
	//#region modules/global-widget/assets/js/editor/module.js
	var __defProp$1 = Object.defineProperty;
	var __defNormalProp$1 = /* @__PURE__ */ __name((obj, key, value) => key in obj ? __defProp$1(obj, key, {
		enumerable: true,
		configurable: true,
		writable: true,
		value
	}) : obj[key] = value, "__defNormalProp");
	var __publicField = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
	var Module$7 = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "Module");
		}
		constructor() {
			super(...arguments);
			__publicField(this, "panelWidgets", new Backbone.Collection());
		}
		addGlobalWidget(templateId, templateData) {
			return this.panelWidgets.add(this.createGlobalModel(templateId, templateData));
		}
		createGlobalModel(templateId, templateData) {
			templateData = Object.assign({}, templateData, {
				id: templateId,
				categories: [],
				icon: elementor.widgetsCache[templateData.widgetType].icon,
				widgetType: templateData.widgetType,
				custom: { templateID: templateId }
			});
			const elementModel = new elementor.modules.elements.models.Element(templateData);
			elementModel.set("id", templateId);
			return elementModel;
		}
		setWidgetType() {
			elementor.hooks.addFilter("element/view", function(DefaultView, model) {
				if (model.get("templateID")) return (init_view$1(), __toCommonJS(view_exports)).default;
				return DefaultView;
			});
			elementor.hooks.addFilter("element/model", function(DefaultModel, attrs) {
				if (attrs.templateID) return (init_model(), __toCommonJS(model_exports)).default;
				return DefaultModel;
			});
		}
		registerTemplateType() {
			elementor.templates.registerTemplateType("widget", {
				showInLibrary: false,
				saveDialog: {
					title: (0, _wordpress_i18n.__)("Save your widget as a global widget", "elementor-pro"),
					description: (0, _wordpress_i18n.__)("You'll be able to add this global widget to multiple areas on your site, and edit it from one single place.", "elementor-pro")
				},
				prepareSavedData(data) {
					data.widgetType = data.content[0].widgetType;
					return data;
				},
				ajaxParams: { success: this.onWidgetTemplateSaved.bind(this) }
			});
		}
		addPanelPage() {
			elementor.getPanelView().addPage("globalWidget", { view: require_panel_page() });
		}
		/**
		* @param {string} id - The ID.
		* @deprecated since 3.5.0, use `$e.data.getCache( `document/global/global-widget/templates/${ id }` )` instead.
		*/
		getGlobalModels(id) {
			elementorDevTools.deprecation.deprecated("elementorPro.modules.globalWidget.getGlobalModels( id )", "3.5.0", "$e.data.getCache( `document/global/global-widget/templates/${ id }` )");
			return $e.data.getCache(this.component, `document/global/global-widget/templates/${id}`);
		}
		/**
		* @deprecated since 3.5.0, use `$e.internal( 'document/global/save-templates' )` instead.
		*/
		saveTemplates() {
			elementorDevTools.deprecation.deprecated("elementorPro.modules.globalWidget.saveTemplates()", "3.5.0", "$e.internal( 'document/global/save-templates' )");
			$e.internal("document/global/save-templates");
		}
		/**
		* @param {*}        globalModel - global model.
		* @param {Function} callback    - A callback function.
		* @deprecated since 3.5.0, use `$e.data.get( 'document/global/templates' )` instead.
		*/
		requestGlobalModelSettings(globalModel, callback) {
			elementorDevTools.deprecation.deprecated("elementorPro.modules.globalWidget.requestGlobalModelSettings()", "3.5.0", "$e.data.get( 'document/global/templates' )");
			$e.data.get("document/global/templates", { ids: globalModel.id }).then((data) => {
				callback(data);
			});
		}
		setWidgetContextMenuSaveAction() {
			elementor.hooks.addFilter("elements/widget/contextMenuGroups", (groups, widget) => {
				const saveGroup = _.findWhere(groups, { name: "save" });
				if (!saveGroup) return groups;
				const saveAction = _.findWhere(saveGroup.actions, { name: "save" });
				if (elementorPro.config.should_show_promotion) {
					saveAction.shortcut = jQuery("<i class=\"eicon-advanced\"></i><a class=\"elementor-context-menu-list__item__shortcut--link-fullwidth\" href=\"https://go.elementor.com/go-pro-advanced-global-widget-context-menu/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>");
					saveAction.isEnabled = () => false;
					delete saveAction.callback;
					return groups;
				}
				saveAction.callback = widget.save.bind(widget);
				delete saveAction.shortcut;
				return groups;
			});
		}
		filterRegionViews(regionViews) {
			if (elementorPro.config.should_show_promotion) {
				_.extend(regionViews.global, {
					view: require_promotion(),
					options: {}
				});
				return regionViews;
			}
			_.extend(regionViews.global, {
				view: require_global_templates_view(),
				options: { collection: this.panelWidgets }
			});
			return regionViews;
		}
		onElementorInit() {
			elementor.on("panel:init", () => {
				elementor.hooks.addFilter("panel/elements/regionViews", this.filterRegionViews.bind(this));
			});
			this.registerTemplateType();
			this.setWidgetContextMenuSaveAction();
			this.setWidgetType();
		}
		onElementorInitComponents() {
			$e.components.register(new Component$5());
			$e.data.get("document/global/templates", {}, { refresh: true });
		}
		onElementorPreviewLoaded(isFirst) {
			if (!isFirst) return;
			this.addPanelPage();
			$e.routes.register("panel/editor", "global", (args) => {
				elementor.getPanelView().setPage("globalWidget", "Global Editing", { editedView: args.view });
			});
		}
		onWidgetTemplateSaved(data) {
			elementor.templates.layout.hideModal();
			const container = elementor.getContainer(elementor.templates.layout.modalContent.currentView.model.id);
			$e.run("document/global/link", {
				container,
				data
			});
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/publish/content.js
	var content_default = class extends Marionette.LayoutView {
		static {
			__name(this, "default");
		}
		id() {
			return "elementor-publish";
		}
		getTemplate() {
			return Marionette.TemplateCache.get("#tmpl-elementor-component-publish");
		}
		regions() {
			return { screen: "#elementor-publish__screen" };
		}
		templateHelpers() {
			return { tabs: this.getOption("component").getTabs() };
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/publish/layout.js
	var layout_default = class extends elementorModules.common.views.modal.Layout {
		static {
			__name(this, "default");
		}
		getModalOptions() {
			return {
				id: "elementor-publish__modal",
				hide: { onButtonClick: false }
			};
		}
		getLogoOptions() {
			return { title: (0, _wordpress_i18n.__)("Publish Settings", "elementor-pro") };
		}
		initModal() {
			super.initModal();
			this.modal.addButton({
				name: "publish",
				text: (0, _wordpress_i18n.__)("Save & Close", "elementor-pro"),
				callback: () => $e.run("theme-builder-publish/save")
			});
			this.modal.getElements("publish").addClass("e-btn-txt");
			this.modal.addButton({
				name: "next",
				text: (0, _wordpress_i18n.__)("Next", "elementor-pro"),
				callback: () => $e.run("theme-builder-publish/next")
			});
			const $publishButton = this.modal.getElements("publish");
			this.modal.getElements("next").addClass("e-primary").add($publishButton).addClass("elementor-button").removeClass("dialog-button");
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/save-and-reload.js
	/**
	* Hook fired when template: 'single' page layout changed.
	*/
	var ThemeBuilderSaveAndReload = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "elementor-pro-theme-builder-save-and-reload";
		}
		getContainerType() {
			return "document";
		}
		getConditions(args) {
			return args.settings && args.settings.page_template;
		}
		apply() {
			$e.run("document/save/auto", {
				force: true,
				onSuccess: () => {
					elementor.reloadPreview();
					elementor.once("preview:loaded", () => {
						$e.route("panel/page-settings/settings");
					});
				}
			});
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/data/document/elements/settings/update-preview-options.js
	var ThemeBuilderUpdatePreviewOptions = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "elementor-pro-theme-builder-update-preview-options";
		}
		getContainerType() {
			return "document";
		}
		getConditions(args) {
			return args.settings && args.settings.preview_type;
		}
		apply(args) {
			const { containers = [args.container] } = args, { themeBuilder } = elementorPro.modules;
			$e.run("document/elements/settings", {
				containers,
				settings: {
					preview_id: "",
					preview_search_term: ""
				}
			});
			if ($e.routes.is("panel/page-settings/settings")) themeBuilder.updatePreviewIdOptions(true);
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/data/document/save/save-conditions.js
	var ThemeBuilderSaveConditions = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/save/save";
		}
		getId() {
			return "elementor-pro-theme-builder-save-conditions";
		}
		getConditions() {
			return !!elementor.config.document.theme_builder;
		}
		apply() {
			const { conditionsModel } = elementorPro.modules.themeBuilder;
			elementorPro.ajax.addRequest("theme_builder_save_conditions", {
				data: conditionsModel.toJSON({ remove: ["default"] }),
				success: () => {
					elementor.config.document.theme_builder.settings.conditions = conditionsModel.get("conditions");
				}
			});
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/data/document/save/show-conditions.js
	var ThemeBuilderShowConditions = class extends $e.modules.hookData.Dependency {
		getCommand() {
			return "document/save/default";
		}
		getId() {
			return "elementor-pro-theme-builder-show-conditions";
		}
		getConditions(args) {
			const { force = false } = args;
			if (force) return false;
			let showConditions = false;
			const themeBuilder = elementor.config.document.theme_builder;
			if (themeBuilder) {
				const hasConditions = themeBuilder.settings.conditions.length;
				const hasLocation = themeBuilder.settings.location;
				const isDraft = "draft" === elementor.settings.page.model.get("post_status");
				if (hasLocation && (!hasConditions || isDraft)) showConditions = true;
			}
			return showConditions;
		}
		apply() {
			$e.route("theme-builder-publish/conditions");
			return false;
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/data/editor/documents/preview/preview-break.js
	var ThemeBuilderPreviewBreak = class extends $e.modules.hookData.Dependency {
		getCommand() {
			return "editor/documents/preview";
		}
		getId() {
			return "elementor-pro-theme-builder-preview-break";
		}
		getConditions(args) {
			if (args.force) return false;
			return !!elementor.documents.get(args.id).config.theme_builder;
		}
		apply() {
			return false;
		}
	};
	//#endregion
	//#region assets/dev/js/editor/inline-controls-stack.js
	var require_inline_controls_stack = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.views.ControlsStack.extend({
			activeTab: "content",
			activeSection: "settings",
			initialize() {
				this.collection = new Backbone.Collection(_.values(this.options.controls));
			},
			filter(model) {
				if ("section" === model.get("type")) return true;
				var section = model.get("section");
				return !section || section === this.activeSection;
			},
			childViewOptions() {
				return { elementSettingsModel: this.model };
			}
		});
	}));
	//#endregion
	//#region modules/theme-builder/assets/js/editor/conditions/view.js
	var require_view = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = require_inline_controls_stack().extend({
			id: "elementor-theme-builder-conditions-view",
			template: "#tmpl-elementor-theme-builder-conditions-view",
			childViewContainer: "#elementor-theme-builder-conditions-controls",
			childViewOptions() {
				return { elementSettingsModel: this.model };
			}
		});
	}));
	//#endregion
	//#region modules/theme-builder/assets/js/editor/conditions/repeater-row.js
	var require_repeater_row = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementor.modules.controls.RepeaterRow.extend({
			template: "#tmpl-elementor-theme-builder-conditions-repeater-row",
			childViewContainer: ".elementor-theme-builder-conditions-repeater-row-controls",
			conflictCheckedOnFirstRender: false,
			id() {
				return "elementor-condition-id-" + this.model.get("_id");
			},
			onBeforeRender() {
				var subNameModel = this.collection.findWhere({ name: "sub_name" });
				var subIdModel = this.collection.findWhere({ name: "sub_id" });
				var subConditionConfig = this.config.conditions[this.model.attributes.sub_name];
				subNameModel.attributes.groups = this.getOptions();
				if (subConditionConfig && subConditionConfig.controls) _(subConditionConfig.controls).each(function(control) {
					subIdModel.set(control);
					subIdModel.set("name", "sub_id");
				});
			},
			initialize() {
				elementor.modules.controls.RepeaterRow.prototype.initialize.apply(this, arguments);
				this.config = elementor.config.document.theme_builder;
			},
			updateOptions() {
				if (this.model.changed.name) this.model.set({
					sub_name: "",
					sub_id: ""
				});
				if (this.model.changed.name || this.model.changed.sub_name) {
					this.model.set("sub_id", "", { silent: true });
					this.collection.findWhere({ name: "sub_id" }).set({
						type: "select",
						options: { "": "All" }
					});
					this.render();
				}
				if (this.model.changed.type) this.setTypeAttribute();
			},
			getOptions() {
				var self = this;
				var conditionConfig = self.config.conditions[this.model.get("name")];
				if (!conditionConfig) return;
				var options = { "": conditionConfig.all_label };
				_(conditionConfig.sub_conditions).each(function(conditionId, conditionIndex) {
					var subConditionConfig = self.config.conditions[conditionId];
					var group;
					if (!subConditionConfig) return;
					if (subConditionConfig.sub_conditions.length) {
						group = {
							label: subConditionConfig.label,
							options: {}
						};
						group.options[conditionId] = subConditionConfig.all_label;
						_(subConditionConfig.sub_conditions).each(function(subConditionId) {
							group.options[subConditionId] = self.config.conditions[subConditionId].label;
						});
						options["key" + conditionIndex] = group;
					} else options[conditionId] = subConditionConfig.label;
				});
				return options;
			},
			setTypeAttribute() {
				var typeView = this.children.findByModel(this.collection.findWhere({ name: "type" }));
				typeView.$el.attr("data-elementor-condition-type", typeView.getControlValue());
			},
			checkConflicts() {
				var modelId = this.model.get("_id");
				var rowId = "elementor-condition-id-" + modelId;
				var errorMessageId = "elementor-conditions-conflict-message-" + modelId;
				var $error = jQuery("#" + errorMessageId);
				jQuery("#" + rowId).removeClass("elementor-error");
				$error.remove();
				elementorPro.ajax.addRequest("theme_builder_conditions_check_conflicts", {
					unique_id: rowId,
					data: { condition: this.model.toJSON() },
					success(data) {
						if (!_.isEmpty(data)) jQuery("#" + rowId).addClass("elementor-error").after("<div id=\"" + errorMessageId + "\" class=\"elementor-conditions-conflict-message\">" + data + "</div>");
					}
				});
			},
			onRender() {
				var nameModel = this.collection.findWhere({ name: "name" });
				var subNameModel = this.collection.findWhere({ name: "sub_name" });
				var subIdModel = this.collection.findWhere({ name: "sub_id" });
				var nameView = this.children.findByModel(nameModel);
				var subNameView = this.children.findByModel(subNameModel);
				var subIdView = this.children.findByModel(subIdModel);
				var conditionConfig = this.config.conditions[this.model.attributes.name];
				var subConditionConfig = this.config.conditions[this.model.attributes.sub_name];
				var typeConfig = this.config.types[this.config.settings.template_type];
				if (typeConfig.condition_type === nameView.getControlValue() && "general" !== nameView.getControlValue() && !_.isEmpty(conditionConfig.sub_conditions)) nameView.$el.hide();
				if (!conditionConfig || _.isEmpty(conditionConfig.sub_conditions) && _.isEmpty(conditionConfig.controls) || !nameView.getControlValue() || "general" === nameView.getControlValue()) subNameView.$el.hide();
				if (!subConditionConfig || _.isEmpty(subConditionConfig.controls) || !subNameView.getControlValue()) subIdView.$el.hide();
				if ("singular" === typeConfig.condition_type) {
					if ("" === subNameView.getControlValue()) subNameView.setValue("post");
				}
				this.setTypeAttribute();
				if (!this.conflictCheckedOnFirstRender) {
					this.checkConflicts();
					this.conflictCheckedOnFirstRender = true;
				}
			},
			onModelChange() {
				this.updateOptions();
				this.checkConflicts();
			}
		});
	}));
	//#endregion
	//#region modules/theme-builder/assets/js/editor/conditions/repeater.js
	var require_repeater = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var import_repeater_row = /* @__PURE__ */ __toESM(require_repeater_row());
		module.exports = elementor.modules.controls.Repeater.extend({
			childView: import_repeater_row.default,
			updateActiveRow() {},
			initialize() {
				elementor.modules.controls.Repeater.prototype.initialize.apply(this, arguments);
				this.config = elementor.config.document.theme_builder;
				this.updateConditionsOptions(this.config.settings.template_type);
			},
			updateConditionsOptions(templateType) {
				var self = this;
				var conditionType = self.config.types[templateType].condition_type;
				var options = {};
				_([conditionType]).each(function(conditionId, conditionIndex) {
					var conditionConfig = self.config.conditions[conditionId];
					var group = {
						label: conditionConfig.label,
						options: {}
					};
					group.options[conditionId] = conditionConfig.all_label;
					_(conditionConfig.sub_conditions).each(function(subConditionId) {
						group.options[subConditionId] = self.config.conditions[subConditionId].label;
					});
					options[conditionIndex] = group;
				});
				var fields = this.model.get("fields");
				fields[1].default = conditionType;
				if ("general" === conditionType) fields[1].groups = options;
				else fields[2].groups = options;
			},
			onRender() {
				this.ui.btnAddRow.text((0, _wordpress_i18n.__)("Add condition", "elementor-pro"));
			}
		});
	}));
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/open/add-editor-ui.js
	var import_view = /* @__PURE__ */ __toESM(require_view());
	var ThemeBuilderAddEditorUI = class extends $e.modules.hookUI.After {
		getCommand() {
			return "editor/documents/open";
		}
		getId() {
			return "elementor-pro-theme-builder-add-editor-ui";
		}
		getConditions(args) {
			return elementor.documents.get(args.id).config.theme_builder;
		}
		apply() {
			if (elementor.panel) this.addUI();
			else elementor.once("preview:loaded", this.addUI.bind(this));
		}
		addUI() {
			this.addRepeaterControlView();
			this.addPublishTabs();
		}
		addRepeaterControlView() {
			elementor.addControlView("Conditions_repeater", require_repeater());
		}
		addPublishTabs() {
			const component = $e.components.get("theme-builder-publish");
			const themeBuilderModuleConfig = elementor.config.document.theme_builder;
			const settings = themeBuilderModuleConfig.settings;
			component.manager.conditionsModel = new elementorModules.editor.elements.models.BaseSettings(settings, { controls: themeBuilderModuleConfig.template_conditions.controls });
			component.addTab("conditions", {
				title: (0, _wordpress_i18n.__)("Conditions", "elementor-pro"),
				View: import_view.default,
				viewOptions: {
					model: component.manager.conditionsModel,
					controls: component.manager.conditionsModel.controls
				},
				name: "conditions",
				description: (0, _wordpress_i18n.__)("Apply current template to these pages.", "elementor-pro"),
				image: elementorPro.config.urls.modules + "theme-builder/assets/images/conditions-tab.svg"
			});
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-editor-ui.js
	var ThemeBuilderRemoveEditorUI = class extends $e.modules.hookUI.After {
		getCommand() {
			return "editor/documents/unload";
		}
		getId() {
			return "elementor-pro-theme-builder-remove-editor-ui";
		}
		getConditions(args) {
			const { document } = args;
			return document.config.theme_builder;
		}
		apply() {
			this.removePublishTabs();
		}
		removePublishTabs() {
			$e.components.get("theme-builder-publish").removeTab("conditions");
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/ui/save/after.js
	var ThemeBuilderFooterSaverAfterSave = class extends $e.modules.hookUI.After {
		getCommand() {
			return "document/save/save";
		}
		getId() {
			return "theme-builder-footer-saver-after-save";
		}
		getConditions() {
			return elementor.config.document.support_site_editor;
		}
		apply(args, result) {
			const { status } = args;
			if (result.statusChanged) this.onPageStatusChange(status);
		}
		onPageStatusChange(newStatus) {
			if ("publish" !== newStatus) return;
			const options = {
				classes: "e-theme-builder-save-toaster",
				message: elementor.config.document.panel.messages.publish_notification,
				buttons: [{
					name: "open_site_editor",
					text: "<i class=\"eicon-external-link-square\"></i><span class=\"e-theme-builder-toaster-button-text\">" + (0, _wordpress_i18n.__)("Open Site Editor", "elementor-pro") + "</span>",
					callback() {
						$e.run("app/open");
					}
				}, {
					name: "view_live_site",
					text: "<i class=\"eicon-preview-medium\"></i><span class=\"e-theme-builder-toaster-button-text\">" + (0, _wordpress_i18n.__)("View Live Site", "elementor-pro") + "</span>",
					callback() {
						open(elementor.config.document.urls.permalink);
					}
				}]
			};
			elementor.notifications.showToast(options);
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/hooks/index.js
	var hooks_exports$4 = /* @__PURE__ */ __exportAll({
		ThemeBuilderAddEditorUI: () => ThemeBuilderAddEditorUI,
		ThemeBuilderFooterSaverAfterSave: () => ThemeBuilderFooterSaverAfterSave,
		ThemeBuilderPreviewBreak: () => ThemeBuilderPreviewBreak,
		ThemeBuilderRemoveEditorUI: () => ThemeBuilderRemoveEditorUI,
		ThemeBuilderSaveAndReload: () => ThemeBuilderSaveAndReload,
		ThemeBuilderSaveConditions: () => ThemeBuilderSaveConditions,
		ThemeBuilderShowConditions: () => ThemeBuilderShowConditions,
		ThemeBuilderUpdatePreviewOptions: () => ThemeBuilderUpdatePreviewOptions
	});
	//#endregion
	//#region modules/theme-builder/assets/js/editor/publish/component.js
	var Component$4 = class extends $e.modules.ComponentModalBase {
		static {
			__name(this, "Component");
		}
		getNamespace() {
			return "theme-builder-publish";
		}
		getModalLayout() {
			return layout_default;
		}
		defaultCommands() {
			return {
				next: () => {
					const next = Object.keys(this.tabs)[this.currentTabIndex + 1];
					if (next) $e.route(this.getTabRoute(next));
				},
				save: () => {
					$e.run("document/save/default", { force: true });
					this.layout.hideModal();
				},
				"preview-settings": () => {
					const panel = elementor.getPanelView();
					$e.route("panel/page-settings/settings");
					panel.getCurrentPageView().activateSection("preview_settings")._renderChildren();
				}
			};
		}
		defaultHooks() {
			return this.importHooks(hooks_exports$4);
		}
		getTabsWrapperSelector() {
			return "#elementor-publish__tabs";
		}
		renderTab(tab) {
			const tabs = this.getTabs();
			const keys = Object.keys(tabs);
			const tabArgs = tabs[tab];
			this.currentTabIndex = keys.indexOf(tab);
			const isLastTab = !keys[this.currentTabIndex + 1];
			this.layout.modalContent.currentView.screen.show(new tabArgs.View(tabArgs.viewOptions));
			this.layout.modal.getElements("next").toggle(!isLastTab);
			this.layout.modal.getElements("publish").toggleClass("e-primary", isLastTab);
		}
		activateTab(tab) {
			$e.routes.saveState(this.getNamespace());
			super.activateTab(tab);
		}
		open() {
			super.open();
			if (!this.layoutContent) {
				this.layout.showLogo();
				this.layout.modalContent.show(new content_default({ component: this }));
				this.layoutContent = true;
			}
			return true;
		}
	};
	//#endregion
	//#region modules/theme-builder/assets/js/editor/module.js
	init_defineProperty();
	init_asyncToGenerator();
	var ThemeBuilderModule = class extends elementorModules.editor.utils.Module {
		constructor(..._args) {
			super(..._args);
			_defineProperty(this, "updatePreviewIdOptions", (render) => {
				let previewType = elementor.settings.page.model.get("preview_type");
				if (!previewType) return;
				previewType = previewType.split("/");
				const currentView = elementor.getPanelView().getCurrentPageView();
				const controlModel = currentView.collection.findWhere({ name: "preview_id" });
				const templateType = previewType[0];
				const sourceType = previewType[1];
				if ("author" === previewType[1]) controlModel.set({ autocomplete: { object: "author" } });
				else if (this.isTemplateTypeTaxonomyLoop(templateType)) controlModel.set({ autocomplete: {
					object: "tax",
					query: { taxonomy: sourceType }
				} });
				else if ("single" === templateType) controlModel.set({ autocomplete: {
					object: "post",
					query: { post_type: sourceType }
				} });
				else controlModel.set({ autocomplete: { object: "" } });
				if (true === render) {
					const controlView = currentView.children.findByModel(controlModel);
					controlView.render();
					controlView.$el.toggle(!!controlModel.get("autocomplete").object);
				}
			});
		}
		__construct(...args) {
			super.__construct(...args);
			Object.defineProperty(elementorPro.config, "theme_builder", { get() {
				elementorDevTools.deprecation.deprecated("theme_builder", "2.9.0", "elementor.config.document.theme_builder");
				return elementor.config.document.theme_builder;
			} });
		}
		onElementorLoaded() {
			this.component = $e.components.register(new Component$4({ manager: this }));
			elementor.on("document:loaded", this.onDocumentLoaded.bind(this));
			elementor.on("document:unload", this.onDocumentUnloaded.bind(this));
			this.onApplyPreview = this.onApplyPreview.bind(this);
			this.onSectionPreviewSettingsActive = this.onSectionPreviewSettingsActive.bind(this);
			elementor.channels.editor.on("elementorProSiteLogo:change", this.openSiteIdentity);
		}
		onDocumentLoaded(document) {
			if (!document.config.theme_builder) return;
			elementor.getPanelView().on("set:page:page_settings", this.updatePreviewIdOptions);
			elementor.channels.editor.on("elementorThemeBuilder:ApplyPreview", this.onApplyPreview);
			elementor.channels.editor.on("page_settings:preview_settings:activated", this.onSectionPreviewSettingsActive);
		}
		onDocumentUnloaded(document) {
			if (!document.config.theme_builder) return;
			elementor.getPanelView().off("set:page:page_settings", this.updatePreviewIdOptions);
			elementor.channels.editor.off("elementorThemeBuilder:ApplyPreview", this.onApplyPreview);
			elementor.channels.editor.off("page_settings:preview_settings:activated", this.onSectionPreviewSettingsActive);
		}
		saveAndReload() {
			$e.run("document/save/auto", {
				force: true,
				onSuccess: () => {
					elementor.dynamicTags.cleanCache();
					if (elementor.config.initial_document.id === elementor.documents.getCurrentId()) elementor.reloadPreview();
					else $e.internal("editor/documents/attach-preview");
				}
			});
		}
		onApplyPreview() {
			this.saveAndReload();
		}
		onSectionPreviewSettingsActive() {
			this.updatePreviewIdOptions(true);
		}
		isTemplateTypeTaxonomyLoop(templateType) {
			return ["post_taxonomy", "product_taxonomy"].includes(templateType);
		}
		openSiteIdentity() {
			return _asyncToGenerator(function* () {
				yield $e.run("panel/global/open");
				$e.route("panel/global/settings-site-identity");
			})();
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/hooks/data/form-fields-sanitize-custom-id.js
	init_defineProperty();
	var FormFieldsSanitizeCustomId = class extends $e.modules.hookData.Dependency {
		constructor(..._args) {
			super(..._args);
			_defineProperty(this, "ID_SANITIZE_FILTER", /[^\w]/g);
		}
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "elementor-pro-forms-fields-sanitize-custom-id";
		}
		getContainerType() {
			return "repeater";
		}
		getConditions(args) {
			return void 0 !== args.settings.custom_id;
		}
		apply(args) {
			const { containers = [args.container], settings } = args, { custom_id: customId } = settings;
			if (customId.match(this.ID_SANITIZE_FILTER)) {
				containers.forEach((container) => {
					const idView = container.panel.getControlView("form_fields").children.findByModel(container.settings).children.find((view) => "custom_id" === view.model.get("name"));
					idView.render();
					idView.$el.find("input").trigger("focus");
				});
				return false;
			}
			return true;
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/hooks/data/form-fields-set-custom-id.js
	var FormFieldsSetCustomId = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/repeater/insert";
		}
		getId() {
			return "elementor-pro-forms-fields-set-custom-id";
		}
		getContainerType() {
			return "widget";
		}
		getConditions(args) {
			return "form_fields" === args.name;
		}
		apply(args, model) {
			const { containers = [args.container] } = args, isDuplicate = $e.commands.isCurrentFirstTrace("document/repeater/duplicate");
			containers.forEach((container) => {
				const itemContainer = container.repeaters.form_fields.children.find((childrenContainer) => {
					if (childrenContainer) return model.get("_id") === childrenContainer.id;
					return false;
				});
				if (!isDuplicate && itemContainer.settings.get("custom_id")) return;
				$e.run("document/elements/settings", {
					container: itemContainer,
					settings: { custom_id: "field_" + itemContainer.id },
					options: { external: true }
				});
			});
			return true;
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/hooks/data/form-fields-step.js
	var FormFieldsAddFirstStep = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "elementor-pro-forms-fields-first-step";
		}
		getContainerType() {
			return "repeater";
		}
		getConditions(args) {
			const { containers = [args.container] } = args;
			return "form" === containers[0].parent.parent.model.get("widgetType") && "step" === args.settings.field_type;
		}
		apply(args) {
			const { containers = [args.container] } = args;
			containers.forEach((container) => {
				if ("step" === container.parent.children[0].settings.get("field_type")) return;
				$e.run("document/repeater/insert", {
					container: container.parent.parent,
					name: "form_fields",
					model: { field_type: "step" },
					options: {
						at: 0,
						external: true
					}
				});
			});
			return true;
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/hooks/data/form-sanitize-id.js
	init_defineProperty();
	var FormSanitizeId = class extends $e.modules.hookData.Dependency {
		constructor(..._args) {
			super(..._args);
			_defineProperty(this, "ID_SANITIZE_FILTER", /[^\w]/g);
		}
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "elementor-pro-forms-sanitize-id";
		}
		getContainerType() {
			return "widget";
		}
		getConditions(args) {
			return void 0 !== args.settings.form_id;
		}
		apply(args) {
			const { container, settings } = args;
			const { form_id: formId } = settings;
			if (formId.match(this.ID_SANITIZE_FILTER)) {
				const formIdView = container.panel.getControlView("form_id");
				formIdView.render();
				formIdView.$el.find("input").trigger("focus");
				return false;
			}
			return true;
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/hooks/ui/form-fields-update-shortcode.js
	var FormFieldsUpdateShortCode = class extends $e.modules.hookUI.After {
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "elementor-pro-forms-fields-update-shortcode";
		}
		getContainerType() {
			return "repeater";
		}
		getConditions(args) {
			if (!$e.routes.isPartOf("panel/editor") || void 0 === args.settings.custom_id) return false;
			return true;
		}
		apply(args) {
			const { containers = [args.container] } = args;
			containers.forEach((container) => {
				container.panel.getControlView("form_fields").children.find((view) => container.id === view.model.get("_id")).children.find((view) => "shortcode" === view.model.get("name")).render();
			});
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/hooks/index.js
	var hooks_exports$3 = /* @__PURE__ */ __exportAll({
		FormFieldsAddFirstStep: () => FormFieldsAddFirstStep,
		FormFieldsSanitizeCustomId: () => FormFieldsSanitizeCustomId,
		FormFieldsSetCustomId: () => FormFieldsSetCustomId,
		FormFieldsUpdateShortCode: () => FormFieldsUpdateShortCode,
		FormSanitizeId: () => FormSanitizeId
	});
	//#endregion
	//#region modules/forms/assets/js/editor/component.js
	var Component$3 = class extends $e.modules.ComponentBase {
		static {
			__name(this, "Component");
		}
		getNamespace() {
			return "forms";
		}
		defaultHooks() {
			return this.importHooks(hooks_exports$3);
		}
	};
	//#endregion
	//#region modules/forms/assets/js/editor/reply-to-field.js
	var require_reply_to_field = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = function() {
			var editor;
			var editedModel;
			var replyToControl;
			var setReplyToControl = function() {
				replyToControl = editor.collection.findWhere({ name: "email_reply_to" });
			};
			var getReplyToView = function() {
				return editor.children.findByModelCid(replyToControl.cid);
			};
			var refreshReplyToElement = function() {
				var replyToView = getReplyToView();
				if (replyToView) replyToView.render();
			};
			var updateReplyToOptions = function() {
				var emailModels = editedModel.get("settings").get("form_fields").where({ field_type: "email" });
				var emailFields;
				emailModels = _.reject(emailModels, { field_label: "" });
				emailFields = _.map(emailModels, function(model) {
					return {
						id: model.get("custom_id"),
						label: (0, _wordpress_i18n.sprintf)((0, _wordpress_i18n.__)("%s Field", "elementor-pro"), model.get("field_label"))
					};
				});
				replyToControl.set("options", { "": replyToControl.get("options")[""] });
				_.each(emailFields, function(emailField) {
					replyToControl.get("options")[emailField.id] = emailField.label;
				});
				refreshReplyToElement();
			};
			var updateDefaultReplyTo = function(settingsModel) {
				replyToControl.get("options")[""] = settingsModel.get("email_from");
				refreshReplyToElement();
			};
			var onFormFieldsChange = function(changedModel) {
				if (changedModel.get("custom_id")) {
					if ("email" === changedModel.get("field_type")) updateReplyToOptions();
				}
				if (changedModel.changed.email_from) updateDefaultReplyTo(changedModel);
			};
			var onPanelShow = function(panel, model) {
				editor = panel.getCurrentPageView();
				editedModel = model;
				setReplyToControl();
				var settingsModel = editedModel.get("settings");
				settingsModel.on("change", onFormFieldsChange);
				updateDefaultReplyTo(settingsModel);
				updateReplyToOptions();
			};
			var init = function() {
				elementor.hooks.addAction("panel/open_editor/widget/form", onPanelShow);
			};
			init();
		};
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/recaptcha.js
	var require_recaptcha = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			enqueueRecaptchaJs(url, type) {
				if (!elementorFrontend.elements.$body.find("[src=\"" + url + "\"]").length) elementorFrontend.elements.$body.append("<script src=\"" + url + "\" id=\"recaptcha-" + type + "\"<\/script>");
			},
			renderField(inputField, item) {
				inputField += "<div class=\"elementor-field " + item.field_type + " \">";
				inputField += this.getDataSettings(item);
				inputField += "</div>";
				return inputField;
			},
			getDataSettings(item) {
				const config = elementorPro.config.forms[item.field_type];
				const srcURL = "https://www.google.com/recaptcha/api.js?render=explicit";
				if (!config.enabled) return "<div class=\"elementor-alert elementor-alert-info\">" + config.setup_message + "</div>";
				let recaptchaData = "data-sitekey=\"" + config.site_key + "\" data-type=\"" + config.type + "\"";
				switch (config.type) {
					case "v3":
						recaptchaData += " data-action=\"form\" data-size=\"invisible\" data-badge=\"" + item.recaptcha_badge + "\"";
						break;
					case "v2_checkbox":
						recaptchaData += " data-theme=\"" + item.recaptcha_style + "\"";
						recaptchaData += " data-size=\"" + item.recaptcha_size + "\"";
						break;
				}
				this.enqueueRecaptchaJs(srcURL, config.type);
				return "<div class=\"elementor-g-recaptcha" + _.escape(item.css_classes) + "\" " + recaptchaData + "></div>";
			},
			filterItem(item) {
				if ("recaptcha" === item.field_type) item.field_label = false;
				return item;
			},
			onInit() {
				elementor.hooks.addFilter("elementor_pro/forms/content_template/item", this.filterItem);
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/recaptcha", this.renderField, 10, 2);
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/recaptcha_v3", this.renderField, 10, 2);
			}
		});
	}));
	//#endregion
	//#region assets/dev/js/editor/element-editor-module.js
	var require_element_editor_module = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			elementType: null,
			__construct(elementType) {
				this.elementType = elementType;
				this.addEditorListener();
			},
			updateOptions(name, options) {
				const controlView = this.getEditorControlView(name);
				if (controlView) {
					this.getEditorControlModel(name).set("options", options);
					controlView.render();
				}
			},
			addEditorListener() {
				var self = this;
				if (self.onElementChange) {
					var eventName = "change";
					if ("global" !== self.elementType) eventName += ":" + self.elementType;
					elementor.channels.editor.on(eventName, function(controlView, elementView) {
						self.onElementChange(controlView.model.get("name"), controlView, elementView);
					});
				}
			},
			/**
			* Add a spinner to a control inside its control title.
			*
			* @param {string} controlName - The control name to add the spinner to.
			*
			* @return {void}
			*/
			addControlSpinner(controlName) {
				const $el = this.getEditorControlView(controlName).$el;
				if ($el.find(".elementor-control-spinner").length) return;
				$el.find(":input").attr("disabled", true);
				$el.find(".elementor-control-title").after("<span class=\"elementor-control-spinner\"><i class=\"eicon-spinner eicon-animation-spin\"></i>&nbsp;</span>");
			},
			/**
			* Remove a spinner from a control.
			*
			* @param {string} controlName - The control name to remove the spinner from.
			*
			* @return {void}
			*/
			removeControlSpinner(controlName) {
				const $controlEl = this.getEditorControlView(controlName).$el;
				$controlEl.find(":input").attr("disabled", false);
				$controlEl.find(".elementor-control-spinner").remove();
			},
			/**
			* Add an error message under the control.
			*
			* @param {string} controlName - The control name to add the error to.
			* @param {string} error       - Set an error message.
			* @param {string} location    - A CSS selector to the element which the error will be appended to.
			*
			* @return {void}
			*/
			addControlError(controlName, error, location = ".elementor-control-content") {
				const $el = this.getEditorControlView(controlName).$el;
				if ($el.find(".e-control-error").length) $el.find(".e-control-error").remove();
				$el.find(location).first().after(`<span class="elementor-control-field-description e-control-error">${error}</span>`);
			},
			/**
			* Remove the control error message.
			*
			* @param {string} controlName - The control name to add the error to.
			*
			* @return {void}
			*/
			removeControlError(controlName) {
				this.getEditorControlView(controlName).$el.find(".e-control-error").remove();
			},
			/**
			* Remove any indicators that are related to the control. (e.g. spinner, error, etc.)
			*
			* @param {string} controlName - The control name to reset.
			*
			* @return {void}
			*/
			resetControlIndicators(controlName) {
				this.removeControlSpinner(controlName);
				this.removeControlError(controlName);
			},
			addSectionListener(section, callback) {
				const self = this;
				elementor.channels.editor.on("section:activated", function(sectionName, editor) {
					var model = editor.getOption("editedElementView").getEditModel();
					var currentElementType = model.get("elType");
					var _arguments = arguments;
					if ("widget" === currentElementType) currentElementType = model.get("widgetType");
					if (self.elementType === currentElementType && section === sectionName) setTimeout(function() {
						callback.apply(self, _arguments);
					}, 10);
				});
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/base.js
	var require_base = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var ElementEditorModule = require_element_editor_module();
		module.exports = ElementEditorModule.extend({
			__construct() {
				this.cache = {};
				ElementEditorModule.prototype.__construct.apply(this, arguments);
			},
			getName() {
				return "";
			},
			getCacheKey(args) {
				return JSON.stringify({
					service: this.getName(),
					data: args
				});
			},
			fetchCache(type, cacheKey, requestArgs, immediately = false) {
				return elementorPro.ajax.addRequest("forms_panel_action_data", {
					unique_id: "integrations_" + this.getName(),
					data: requestArgs,
					success: (data) => {
						this.cache[type] = _.extend({}, this.cache[type]);
						this.cache[type][cacheKey] = data[type];
					}
				}, immediately);
			},
			onInit() {
				this.addSectionListener("section_" + this.getName(), this.onSectionActive);
			},
			onSectionActive() {
				this.onApiUpdate();
			},
			onApiUpdate() {}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/mailerlite.js
	var require_mailerlite = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var BaseIntegrationModule = require_base();
		module.exports = BaseIntegrationModule.extend({
			fields: {},
			getName() {
				return "mailerlite";
			},
			onElementChange(setting) {
				switch (setting) {
					case "mailerlite_api_key_source":
					case "mailerlite_custom_api_key":
						this.onMailerliteApiKeyUpdate();
						break;
					case "mailerlite_group":
						this.updateFieldsMapping();
						break;
				}
			},
			onMailerliteApiKeyUpdate() {
				var self = this;
				var controlView = self.getEditorControlView("mailerlite_custom_api_key");
				var GlobalApiKeycontrolView = self.getEditorControlView("mailerlite_api_key_source");
				if ("default" !== GlobalApiKeycontrolView.getControlValue() && "" === controlView.getControlValue()) {
					self.updateOptions("mailerlite_group", []);
					self.getEditorControlView("mailerlite_group").setValue("");
					return;
				}
				self.addControlSpinner("mailerlite_group");
				const cacheKey = this.getCacheKey({
					type: "groups",
					controls: [controlView.getControlValue(), GlobalApiKeycontrolView.getControlValue()]
				});
				self.getMailerliteCache("groups", "groups", cacheKey).done(function(data) {
					self.updateOptions("mailerlite_group", data.groups);
					self.fields = data.fields;
				});
			},
			updateFieldsMapping() {
				if (!this.getEditorControlView("mailerlite_group").getControlValue()) return;
				const remoteFields = [
					{
						remote_label: (0, _wordpress_i18n.__)("Email", "elementor-pro"),
						remote_type: "email",
						remote_id: "email",
						remote_required: true
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Name", "elementor-pro"),
						remote_type: "text",
						remote_id: "name",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Last Name", "elementor-pro"),
						remote_type: "text",
						remote_id: "last_name",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Company", "elementor-pro"),
						remote_type: "text",
						remote_id: "company",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Phone", "elementor-pro"),
						remote_type: "text",
						remote_id: "phone",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Country", "elementor-pro"),
						remote_type: "text",
						remote_id: "country",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("State", "elementor-pro"),
						remote_type: "text",
						remote_id: "state",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("City", "elementor-pro"),
						remote_type: "text",
						remote_id: "city",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Zip", "elementor-pro"),
						remote_type: "text",
						remote_id: "zip",
						remote_required: false
					}
				];
				for (const field in this.fields) if (Object.prototype.hasOwnProperty.call(this.fields, field)) remoteFields.push(this.fields[field]);
				this.getEditorControlView("mailerlite_fields_map").updateMap(remoteFields);
			},
			getMailerliteCache(type, action, cacheKey, requestArgs) {
				if (_.has(this.cache[type], cacheKey)) {
					const data = {};
					data[type] = this.cache[type][cacheKey];
					return jQuery.Deferred().resolve(data);
				}
				requestArgs = _.extend({}, requestArgs, {
					service: "mailerlite",
					mailerlite_action: action,
					custom_api_key: this.getEditorControlView("mailerlite_custom_api_key").getControlValue(),
					api_key: this.getEditorControlView("mailerlite_api_key_source").getControlValue()
				});
				return this.fetchCache(type, cacheKey, requestArgs);
			},
			onSectionActive() {
				BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments);
				this.onMailerliteApiKeyUpdate();
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/mailchimp.js
	var require_mailchimp = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var BaseIntegrationModule = require_base();
		module.exports = BaseIntegrationModule.extend({
			getName() {
				return "mailchimp";
			},
			onElementChange(setting) {
				switch (setting) {
					case "mailchimp_api_key_source":
					case "mailchimp_api_key":
						this.onApiUpdate();
						break;
					case "mailchimp_list":
						this.onMailchimpListUpdate();
						break;
				}
			},
			onApiUpdate() {
				var self = this;
				var controlView = self.getEditorControlView("mailchimp_api_key");
				var GlobalApiKeycontrolView = self.getEditorControlView("mailchimp_api_key_source");
				if ("default" !== GlobalApiKeycontrolView.getControlValue() && "" === controlView.getControlValue()) {
					self.updateOptions("mailchimp_list", []);
					self.getEditorControlView("mailchimp_list").setValue("");
					return;
				}
				self.resetControlIndicators("mailchimp_list");
				self.addControlSpinner("mailchimp_list");
				const cacheKey = this.getCacheKey({
					type: "lists",
					controls: [controlView.getControlValue(), GlobalApiKeycontrolView.getControlValue()]
				});
				self.getMailchimpCache("lists", "lists", cacheKey).done(function(data) {
					self.updateOptions("mailchimp_list", data.lists);
					self.updatMailchimpList();
				}).fail(function(error) {
					self.addControlError("mailchimp_list", error);
				}).always(function() {
					self.removeControlSpinner("mailchimp_list");
				});
			},
			onMailchimpListUpdate() {
				this.updateOptions("mailchimp_groups", []);
				this.getEditorControlView("mailchimp_groups").setValue("");
				this.updatMailchimpList();
			},
			updatMailchimpList() {
				var self = this;
				var controlView = self.getEditorControlView("mailchimp_list");
				if (!controlView.getControlValue()) return;
				self.resetControlIndicators("mailchimp_groups");
				self.addControlSpinner("mailchimp_groups");
				this.getCacheKey({
					type: "list_details",
					controls: [controlView.getControlValue()]
				});
				self.getMailchimpCache("list_details", "list_details", controlView.getControlValue(), { mailchimp_list: controlView.getControlValue() }).done(function(data) {
					self.updateOptions("mailchimp_groups", data.list_details.groups);
					self.getEditorControlView("mailchimp_fields_map").updateMap(data.list_details.fields);
				}).fail(function(error) {
					self.addControlError("mailchimp_groups", error);
				}).always(function() {
					self.removeControlSpinner("mailchimp_groups");
				});
				const args = {
					type: "fields",
					action: "fields",
					cacheKey: controlView.getControlValue(),
					args: { mailchimp_list: controlView.getControlValue() },
					immediately: true
				};
				self.getMailchimpCache(...Object.values(args)).done(function(data) {
					self.getEditorControlView("mailchimp_fields_map").updateMap(data.fields);
				});
			},
			getMailchimpCache(type, action, cacheKey, requestArgs, immediately = false) {
				if (_.has(this.cache[type], cacheKey)) {
					var data = {};
					data[type] = this.cache[type][cacheKey];
					return jQuery.Deferred().resolve(data);
				}
				requestArgs = _.extend({}, requestArgs, {
					service: "mailchimp",
					mailchimp_action: action,
					api_key: this.getEditorControlView("mailchimp_api_key").getControlValue(),
					use_global_api_key: this.getEditorControlView("mailchimp_api_key_source").getControlValue()
				});
				return this.fetchCache(type, cacheKey, requestArgs, immediately);
			},
			onSectionActive() {
				BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments);
				this.onApiUpdate();
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/drip.js
	var require_drip = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = require_base().extend({
			getName() {
				return "drip";
			},
			onElementChange(setting) {
				switch (setting) {
					case "drip_api_token_source":
					case "drip_custom_api_token":
						this.onApiUpdate();
						break;
					case "drip_account":
						this.onDripAccountsUpdate();
						break;
				}
			},
			onApiUpdate() {
				var self = this;
				var controlView = self.getEditorControlView("drip_api_token_source");
				var customControlView = self.getEditorControlView("drip_custom_api_token");
				if ("default" !== controlView.getControlValue() && "" === customControlView.getControlValue()) {
					self.updateOptions("drip_account", []);
					self.getEditorControlView("drip_account").setValue("");
					return;
				}
				self.addControlSpinner("drip_account");
				this.getCacheKey({
					type: "accounts",
					controls: [controlView.getControlValue(), customControlView.getControlValue()]
				});
				self.getDripCache("accounts", "accounts", controlView.getControlValue()).done(function(data) {
					self.updateOptions("drip_account", data.accounts);
				});
			},
			onDripAccountsUpdate() {
				this.updateFieldsMapping();
			},
			updateFieldsMapping() {
				if (!this.getEditorControlView("drip_account").getControlValue()) return;
				var remoteFields = {
					remote_label: (0, _wordpress_i18n.__)("Email", "elementor-pro"),
					remote_type: "email",
					remote_id: "email",
					remote_required: true
				};
				this.getEditorControlView("drip_fields_map").updateMap([remoteFields]);
			},
			getDripCache(type, action, cacheKey, requestArgs) {
				if (_.has(this.cache[type], cacheKey)) {
					var data = {};
					data[type] = this.cache[type][cacheKey];
					return jQuery.Deferred().resolve(data);
				}
				requestArgs = _.extend({}, requestArgs, {
					service: "drip",
					drip_action: action,
					api_token: this.getEditorControlView("drip_api_token_source").getControlValue(),
					custom_api_token: this.getEditorControlView("drip_custom_api_token").getControlValue()
				});
				return this.fetchCache(type, cacheKey, requestArgs);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/activecampaign.js
	var require_activecampaign = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = require_base().extend({
			fields: {},
			getName() {
				return "activecampaign";
			},
			onElementChange(setting) {
				switch (setting) {
					case "activecampaign_api_credentials_source":
					case "activecampaign_api_key":
					case "activecampaign_api_url":
						this.onApiUpdate();
						break;
					case "activecampaign_list":
						this.onListUpdate();
						break;
				}
			},
			onApiUpdate() {
				const self = this;
				const apikeyControlView = self.getEditorControlView("activecampaign_api_key");
				const apiUrlControlView = self.getEditorControlView("activecampaign_api_url");
				const apiCredControlView = self.getEditorControlView("activecampaign_api_credentials_source");
				if ("default" !== apiCredControlView.getControlValue() && ("" === apikeyControlView.getControlValue() || "" === apiUrlControlView.getControlValue())) {
					self.updateOptions("activecampaign_list", []);
					self.getEditorControlView("activecampaign_list").setValue("");
					return;
				}
				self.addControlSpinner("activecampaign_list");
				const cacheKey = this.getCacheKey({ controls: [
					apiCredControlView.getControlValue(),
					apiUrlControlView.getControlValue(),
					apikeyControlView.getControlValue()
				] });
				self.getActiveCampaignCache("lists", "activecampaign_list", cacheKey).done(function(data) {
					self.updateOptions("activecampaign_list", data.lists);
					self.fields = data.fields;
				});
			},
			onListUpdate() {
				this.updateFieldsMapping();
			},
			updateFieldsMapping() {
				if (!this.getEditorControlView("activecampaign_list").getControlValue()) return;
				var remoteFields = [
					{
						remote_label: (0, _wordpress_i18n.__)("Email", "elementor-pro"),
						remote_type: "email",
						remote_id: "email",
						remote_required: true
					},
					{
						remote_label: (0, _wordpress_i18n.__)("First Name", "elementor-pro"),
						remote_type: "text",
						remote_id: "first_name",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Last Name", "elementor-pro"),
						remote_type: "text",
						remote_id: "last_name",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Phone", "elementor-pro"),
						remote_type: "text",
						remote_id: "phone",
						remote_required: false
					},
					{
						remote_label: (0, _wordpress_i18n.__)("Organization name", "elementor-pro"),
						remote_type: "text",
						remote_id: "orgname",
						remote_required: false
					}
				];
				for (var field in this.fields) if (Object.prototype.hasOwnProperty.call(this.fields, field)) remoteFields.push(this.fields[field]);
				this.getEditorControlView("activecampaign_fields_map").updateMap(remoteFields);
			},
			getActiveCampaignCache(type, action, cacheKey, requestArgs) {
				if (_.has(this.cache[type], cacheKey)) {
					var data = {};
					data[type] = this.cache[type][cacheKey];
					return jQuery.Deferred().resolve(data);
				}
				requestArgs = _.extend({}, requestArgs, {
					service: "activecampaign",
					activecampaign_action: action,
					api_key: this.getEditorControlView("activecampaign_api_key").getControlValue(),
					api_url: this.getEditorControlView("activecampaign_api_url").getControlValue(),
					api_cred: this.getEditorControlView("activecampaign_api_credentials_source").getControlValue()
				});
				return this.fetchCache(type, cacheKey, requestArgs);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/getresponse.js
	var require_getresponse = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var BaseIntegrationModule = require_base();
		module.exports = BaseIntegrationModule.extend({
			getName() {
				return "getresponse";
			},
			onElementChange(setting) {
				switch (setting) {
					case "getresponse_custom_api_key":
					case "getresponse_api_key_source":
						this.onApiUpdate();
						break;
					case "getresponse_list":
						this.onGetResonseListUpdate();
						break;
				}
			},
			onApiUpdate() {
				var self = this;
				var controlView = self.getEditorControlView("getresponse_api_key_source");
				var customControlView = self.getEditorControlView("getresponse_custom_api_key");
				if ("default" !== controlView.getControlValue() && "" === customControlView.getControlValue()) {
					self.updateOptions("getresponse_list", []);
					self.getEditorControlView("getresponse_list").setValue("");
					return;
				}
				self.addControlSpinner("getresponse_list");
				const cacheKey = this.getCacheKey({
					type: "lists",
					controls: [controlView.getControlValue(), customControlView.getControlValue()]
				});
				self.getCache("lists", "lists", cacheKey).done(function(data) {
					self.updateOptions("getresponse_list", data.lists);
				});
			},
			onGetResonseListUpdate() {
				this.updatGetResonseList();
			},
			updatGetResonseList() {
				var self = this;
				var controlView = self.getEditorControlView("getresponse_list");
				if (!controlView.getControlValue()) return;
				self.addControlSpinner("getresponse_fields_map");
				const cacheKey = this.getCacheKey({
					type: "fields",
					controls: [controlView.getControlValue()]
				});
				self.getCache("fields", "get_fields", cacheKey, { getresponse_list: controlView.getControlValue() }).done(function(data) {
					self.getEditorControlView("getresponse_fields_map").updateMap(data.fields);
				});
			},
			getCache(type, action, cacheKey, requestArgs) {
				if (_.has(this.cache[type], cacheKey)) {
					var data = {};
					data[type] = this.cache[type][cacheKey];
					return jQuery.Deferred().resolve(data);
				}
				requestArgs = _.extend({}, requestArgs, {
					service: "getresponse",
					getresponse_action: action,
					api_key: this.getEditorControlView("getresponse_api_key_source").getControlValue(),
					custom_api_key: this.getEditorControlView("getresponse_custom_api_key").getControlValue()
				});
				return this.fetchCache(type, cacheKey, requestArgs);
			},
			onSectionActive() {
				BaseIntegrationModule.prototype.onSectionActive.apply(this, arguments);
				this.updatGetResonseList();
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/integrations/convertkit.js
	var require_convertkit = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = require_base().extend({
			getName() {
				return "convertkit";
			},
			onElementChange(setting) {
				switch (setting) {
					case "convertkit_api_key_source":
					case "convertkit_custom_api_key":
						this.onApiUpdate();
						break;
					case "convertkit_form":
						this.onListUpdate();
						break;
				}
			},
			onApiUpdate() {
				var self = this;
				var apiKeyControlView = self.getEditorControlView("convertkit_api_key_source");
				var customApikeyControlView = self.getEditorControlView("convertkit_custom_api_key");
				if ("default" !== apiKeyControlView.getControlValue() && "" === customApikeyControlView.getControlValue()) {
					self.updateOptions("convertkit_form", []);
					self.getEditorControlView("convertkit_form").setValue("");
					return;
				}
				self.addControlSpinner("convertkit_form");
				const cacheKey = this.getCacheKey({
					type: "data",
					controls: [apiKeyControlView.getControlValue(), customApikeyControlView.getControlValue()]
				});
				self.getConvertKitCache("data", "convertkit_get_forms", cacheKey).done(function(data) {
					self.updateOptions("convertkit_form", data.data.forms);
					self.updateOptions("convertkit_tags", data.data.tags);
				});
			},
			onListUpdate() {
				this.updateFieldsMapping();
			},
			updateFieldsMapping() {
				if (!this.getEditorControlView("convertkit_form").getControlValue()) return;
				var remoteFields = [{
					remote_label: (0, _wordpress_i18n.__)("Email", "elementor-pro"),
					remote_type: "email",
					remote_id: "email",
					remote_required: true
				}, {
					remote_label: (0, _wordpress_i18n.__)("First Name", "elementor-pro"),
					remote_type: "text",
					remote_id: "first_name",
					remote_required: false
				}];
				this.getEditorControlView("convertkit_fields_map").updateMap(remoteFields);
			},
			getConvertKitCache(type, action, cacheKey, requestArgs) {
				if (_.has(this.cache[type], cacheKey)) {
					var data = {};
					data[type] = this.cache[type][cacheKey];
					return jQuery.Deferred().resolve(data);
				}
				requestArgs = _.extend({}, requestArgs, {
					service: "convertkit",
					convertkit_action: action,
					api_key: this.getEditorControlView("convertkit_api_key_source").getControlValue(),
					custom_api_key: this.getEditorControlView("convertkit_custom_api_key").getControlValue()
				});
				return this.fetchCache(type, cacheKey, requestArgs);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/hints/email-deliverability.js
	var require_email_deliverability = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			eventName: "site_mailer_forms_email_notice",
			suffix: "",
			control: null,
			onSectionActive(sectionName) {
				if (!["section_email", "section_email_2"].includes(sectionName)) return;
				this.suffix = "section_email_2" === sectionName ? "_2" : "";
				this.control = null;
				if (!this.hasPromoControl()) return;
				if (elementor.config.user.dismissed_editor_notices.includes("site_mailer_forms_email_notice")) {
					this.getPromoControl().remove();
					return;
				}
				this.registerEvents();
			},
			registerEvents() {
				const dismissBtn = this.getPromoControl().$el.find(".elementor-control-notice-dismiss");
				const onDismissBtnClick = (event) => {
					dismissBtn.off("click", onDismissBtnClick);
					event.preventDefault();
					this.dismiss();
					this.getPromoControl().remove();
				};
				dismissBtn.on("click", onDismissBtnClick);
				const actionBtn = this.getPromoControl().$el.find(".e-btn-1");
				const onActionBtn = (event) => {
					actionBtn.off("click", onActionBtn);
					event.preventDefault();
					this.onAction(event);
					this.getPromoControl().remove();
				};
				actionBtn.on("click", onActionBtn);
			},
			getPromoControl() {
				if (!this.control) this.control = this.getEditorControlView("site_mailer_promo" + this.suffix);
				return this.control;
			},
			hasPromoControl() {
				return !!this.getPromoControl();
			},
			ajaxRequest(name, data) {
				elementorCommon.ajax.addRequest(name, { data });
			},
			dismiss() {
				this.ajaxRequest("dismissed_editor_notices", { dismissId: this.eventName });
				this.ensureNoPromoControlInSession();
			},
			ensureNoPromoControlInSession() {
				elementor.config.user.dismissed_editor_notices.push(this.eventName);
			},
			onAction(event) {
				let actionURL = null;
				let source = "sm-form-install";
				try {
					const settings = JSON.parse(event.target.closest("button").dataset.settings);
					actionURL = settings.action_url || null;
					source = settings.source || "sm-form-install";
				} catch (error) {}
				if (actionURL) window.open(actionURL, "_blank");
				this.ajaxRequest("elementor_site_mailer_campaign", { source });
				this.ensureNoPromoControlInSession();
			},
			onInit() {
				elementor.channels.editor.on("section:activated", (sectionName) => this.onSectionActive(sectionName));
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields/time.js
	var require_time = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			renderField(inputField, item, i, settings) {
				var itemClasses = _.escape(item.css_classes);
				var required = "";
				var placeholder = "";
				if (item.required) required = "required";
				if (item.placeholder) placeholder = " placeholder=\"" + item.placeholder + "\"";
				if ("yes" === item.use_native_time) itemClasses += " elementor-use-native";
				return "<input size=\"1\" type=\"time\"" + placeholder + " class=\"elementor-field-textual elementor-time-field elementor-field elementor-size-" + settings.input_size + " " + itemClasses + "\" name=\"form_field_" + i + "\" id=\"form_field_" + i + "\" " + required + " >";
			},
			onInit() {
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/time", this.renderField, 10, 4);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields/date.js
	var require_date = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			renderField(inputField, item, i, settings) {
				var itemClasses = _.escape(item.css_classes);
				var required = "";
				var min = "";
				var max = "";
				var placeholder = "";
				if (item.required) required = "required";
				if (item.min_date) min = " min=\"" + item.min_date + "\"";
				if (item.max_date) max = " max=\"" + item.max_date + "\"";
				if (item.placeholder) placeholder = " placeholder=\"" + item.placeholder + "\"";
				if ("yes" === item.use_native_date) itemClasses += " elementor-use-native";
				return "<input size=\"1\"" + min + max + placeholder + " pattern=\"[0-9]{4}-[0-9]{2}-[0-9]{2}\" type=\"date\" class=\"elementor-field-textual elementor-date-field elementor-field elementor-size-" + settings.input_size + " " + itemClasses + "\" name=\"form_field_" + i + "\" id=\"form_field_" + i + "\" " + required + " >";
			},
			onInit() {
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/date", this.renderField, 10, 4);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields/acceptance.js
	var require_acceptance = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			renderField(inputField, item, i, settings) {
				var itemClasses = _.escape(item.css_classes);
				var required = "";
				var label = "";
				var checked = "";
				if (item.required) required = "required";
				if (item.acceptance_text) label = "<label for=\"form_field_" + i + "\">" + item.acceptance_text + "</label>";
				if (item.checked_by_default) checked = " checked=\"checked\"";
				return "<div class=\"elementor-field-subgroup\"><span class=\"elementor-field-option\"><input size=\"1\" type=\"checkbox\"" + checked + " class=\"elementor-acceptance-field elementor-field elementor-size-" + settings.input_size + " " + itemClasses + "\" name=\"form_field_" + i + "\" id=\"form_field_" + i + "\" " + required + " > " + label + "</span></div>";
			},
			onInit() {
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/acceptance", this.renderField, 10, 4);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields/upload.js
	var require_upload = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			renderField(inputField, item, i, settings) {
				var itemClasses = _.escape(item.css_classes);
				var required = "";
				var multiple = "";
				var fieldName = "form_field_";
				if (item.required) required = "required";
				if (item.allow_multiple_upload) {
					multiple = " multiple=\"multiple\"";
					fieldName += "[]";
				}
				return "<input size=\"1\"  type=\"file\" class=\"elementor-file-field elementor-field elementor-size-" + settings.input_size + " " + itemClasses + "\" name=\"" + fieldName + "\" id=\"form_field_" + i + "\" " + required + multiple + " >";
			},
			onInit() {
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/upload", this.renderField, 10, 4);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields/tel.js
	var require_tel = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			renderField(inputField, item, i, settings) {
				var itemClasses = _.escape(item.css_classes);
				var required = "";
				var placeholder = "";
				if (item.required) required = "required";
				if (item.placeholder) placeholder = " placeholder=\"" + item.placeholder + "\"";
				itemClasses = "elementor-field-textual " + itemClasses;
				return "<input size=\"1\" type=\"" + item.field_type + "\" class=\"elementor-field-textual elementor-field elementor-size-" + settings.input_size + " " + itemClasses + "\" name=\"form_field_" + i + "\" id=\"form_field_" + i + "\" " + required + " " + placeholder + " pattern=\"[0-9()-]\" >";
			},
			onInit() {
				elementor.hooks.addFilter("elementor_pro/forms/content_template/field/tel", this.renderField, 10, 4);
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields-map-control.js
	var require_fields_map_control = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementor.modules.controls.Repeater.extend({
			onBeforeRender() {
				this.$el.hide();
			},
			updateMap(fields) {
				var self = this;
				var savedMapObject = {};
				self.collection.each(function(model) {
					savedMapObject[model.get("remote_id")] = model.get("local_id");
				});
				self.collection.reset();
				_.each(fields, function(field) {
					var model = {
						remote_id: field.remote_id,
						remote_label: field.remote_label,
						remote_type: field.remote_type ? field.remote_type : "",
						remote_required: field.remote_required ? field.remote_required : false,
						local_id: savedMapObject[field.remote_id] ? savedMapObject[field.remote_id] : ""
					};
					self.collection.add(model);
				});
				self.render();
			},
			onRender() {
				elementor.modules.controls.Base.prototype.onRender.apply(this, arguments);
				var self = this;
				self.children.each(function(view) {
					var localFieldsControl = view.children.last();
					var options = { "": "- " + (0, _wordpress_i18n.__)("None", "elementor-pro") + " -" };
					var label = view.model.get("remote_label");
					if (view.model.get("remote_required")) label += "<span class=\"elementor-required\">*</span>";
					_.each(self.elementSettingsModel.get("form_fields").models, function(model, index) {
						var remoteType = view.model.get("remote_type");
						if ("text" !== remoteType && remoteType !== model.get("field_type")) return;
						options[model.get("custom_id")] = model.get("field_label") || "Field #" + (index + 1);
					});
					localFieldsControl.model.set("label", label);
					localFieldsControl.model.set("options", options);
					localFieldsControl.render();
					view.$el.find(".elementor-repeater-row-tools").hide();
					view.$el.find(".elementor-repeater-row-controls").removeClass("elementor-repeater-row-controls").find(".elementor-control").css({ paddingBottom: 0 });
				});
				self.$el.find(".elementor-button-wrapper").remove();
				if (self.children.length) self.$el.show();
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields-repeater-row.js
	var fields_repeater_row_default;
	var init_fields_repeater_row = __esmMin((() => {
		fields_repeater_row_default = class extends elementor.modules.controls.RepeaterRow {
			static {
				__name(this, "default");
			}
			toggleFieldTypeControl(show) {
				const fieldTypeModel = this.collection.findWhere({ name: "field_type" });
				this.children.findByModel(fieldTypeModel).$el.toggle(show);
			}
			toggleStepField(isStep) {
				this.$el.toggleClass("elementor-repeater-row--form-step", isStep);
			}
			toggleTools(show) {
				this.ui.removeButton.add(this.ui.duplicateButton).toggle(show);
			}
		};
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/fields-repeater-control.js
	var require_fields_repeater_control = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		init_fields_repeater_row();
		module.exports = class extends elementor.modules.controls.Repeater {
			className() {
				let classes = super.className();
				classes += " elementor-control-type-repeater";
				return classes;
			}
			getChildView() {
				return fields_repeater_row_default;
			}
			initialize(...args) {
				super.initialize(...args);
				const formFields = this.container.settings.get("form_fields");
				this.listenTo(formFields, "change", (model) => this.onFormFieldChange(model)).listenTo(formFields, "remove", (model) => this.onFormFieldRemove(model));
			}
			getFirstChild() {
				return this.children.findByModel(this.collection.models[0]);
			}
			lockFirstStep() {
				const firstChild = this.getFirstChild();
				if ("step" !== firstChild.model.get("field_type")) return;
				if (1 < this.collection.where({ field_type: "step" }).length) {
					firstChild.toggleFieldTypeControl(false);
					firstChild.toggleTools(false);
				}
				firstChild.toggleSort(false);
			}
			onFormFieldChange(model) {
				const fieldType = model.changed.field_type;
				if (!fieldType || "step" !== fieldType && "step" !== model._previousAttributes.field_type) return;
				const isStep = "step" === fieldType;
				this.children.findByModel(model).toggleStepField(isStep);
				this.onStepFieldChanged(isStep);
			}
			onFormFieldRemove(model) {
				if ("step" === model.get("field_type")) this.onStepFieldChanged(false);
			}
			onStepFieldChanged(isStep) {
				if (isStep) {
					this.lockFirstStep();
					return;
				}
				const stepFields = this.collection.where({ field_type: "step" });
				if (stepFields.length > 1) return;
				const firstChild = this.getFirstChild();
				if (1 === stepFields.length) {
					firstChild.toggleTools(true);
					firstChild.toggleFieldTypeControl(true);
					return;
				}
				firstChild.toggleSort(true);
			}
			onAddChild(childView) {
				super.onAddChild(childView);
				if ("step" === childView.model.get("field_type")) {
					this.lockFirstStep();
					childView.toggleStepField(true);
				}
			}
		};
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/hints/atomic-form-promotion.js
	var require_atomic_form_promotion = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			eventName: "atomic_form_v3_promotion",
			control: null,
			onSectionActive(sectionName) {
				if ("section_form_fields" !== sectionName) return;
				this.control = null;
				if (!this.hasPromoControl()) return;
				this.registerEvents();
			},
			registerEvents() {
				const dismissBtn = this.getPromoControl().$el.find(".e-btn-1");
				const onDismissBtnClick = (event) => {
					dismissBtn.off("click", onDismissBtnClick);
					event.preventDefault();
					this.dismiss();
				};
				dismissBtn.on("click", onDismissBtnClick);
				const actionBtn = this.getPromoControl().$el.find(".e-btn-2");
				const onActionBtn = (event) => {
					actionBtn.off("click", onActionBtn);
					event.preventDefault();
					this.onUseAtomicForm();
					this.dismiss();
				};
				actionBtn.on("click", onActionBtn);
			},
			getPromoControl() {
				if (!this.control) this.control = this.getEditorControlView(this.eventName);
				return this.control;
			},
			hasPromoControl() {
				return !!this.getPromoControl();
			},
			getDismissId() {
				return `form-${this.eventName}`;
			},
			dismiss() {
				const dismissId = this.getDismissId();
				elementorCommon.ajax.addRequest("dismissed_editor_notices", { data: { dismissId } });
				elementor.config.user.dismissed_editor_notices.push(dismissId);
				this.getPromoControl().$el.remove();
			},
			onUseAtomicForm() {
				$e.route("panel/elements/categories");
				setTimeout(() => {
					const $category = jQuery("#elementor-panel-category-atomic-form");
					if (!$category.length) return;
					if (!$category.hasClass("elementor-active")) $category.find(".elementor-panel-category-title").trigger("click");
					setTimeout(() => {
						const $scrollContainer = jQuery("#elementor-panel-content-wrapper");
						if ($scrollContainer.length) $scrollContainer.animate({ scrollTop: $category[0].offsetTop }, 300);
						const $widget = $category.find(".elementor-element").first();
						if ($widget.length) {
							$widget.css({
								transition: "background-color 0.3s",
								"background-color": "#F1F2F3"
							});
							setTimeout(() => {
								$widget.css("background-color", "");
							}, 3e3);
						}
					}, 350);
				}, 200);
			},
			onInit() {
				elementor.channels.editor.on("section:activated", (sectionName) => this.onSectionActive(sectionName));
			}
		});
	}));
	//#endregion
	//#region modules/forms/assets/js/editor/module.js
	var FormsModule = class extends elementorModules.editor.utils.Module {
		onElementorInit() {
			const ReplyToField = require_reply_to_field();
			const Recaptcha = require_recaptcha();
			const MailerLite = require_mailerlite();
			const Mailchimp = require_mailchimp();
			const Drip = require_drip();
			const ActiveCampaign = require_activecampaign();
			const GetResponse = require_getresponse();
			const ConvertKit = require_convertkit();
			const EmailDeliverability = require_email_deliverability();
			this.replyToField = new ReplyToField();
			this.mailchimp = new Mailchimp("form");
			this.recaptcha = new Recaptcha("form");
			this.drip = new Drip("form");
			this.activecampaign = new ActiveCampaign("form");
			this.getresponse = new GetResponse("form");
			this.convertkit = new ConvertKit("form");
			this.mailerlite = new MailerLite("form");
			const TimeField = require_time();
			const DateField = require_date();
			const AcceptanceField = require_acceptance();
			const UploadField = require_upload();
			const TelField = require_tel();
			this.Fields = {
				time: new TimeField("form"),
				date: new DateField("form"),
				tel: new TelField("form"),
				acceptance: new AcceptanceField("form"),
				upload: new UploadField("form")
			};
			elementor.addControlView("Fields_map", require_fields_map_control());
			elementor.addControlView("form-fields-repeater", require_fields_repeater_control());
			const AtomicFormPromotion = require_atomic_form_promotion();
			this.hints = {
				emailDeliverability: new EmailDeliverability(),
				atomicFormPromotion: new AtomicFormPromotion()
			};
		}
		onElementorInitComponents() {
			$e.components.register(new Component$3({ manager: this }));
		}
	};
	//#endregion
	//#region modules/screenshots/assets/js/editor/hooks/data/document/save/save/delete-screenshot.js
	var DeleteScreenshot = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/save/save";
		}
		getConditions(args) {
			const { status } = args, config = elementor.documents.getCurrent().config;
			return "publish" === status && config.support_site_editor;
		}
		getId() {
			return "document/save/save::delete-screenshot";
		}
		apply() {
			const postId = elementor.documents.getCurrent().id;
			return elementorCommon.ajax.addRequest("screenshot_delete", {
				unique_id: `delete_screenshot_${postId}`,
				data: { post_id: postId }
			});
		}
	};
	//#endregion
	//#region modules/screenshots/assets/js/editor/hooks/data/index.js
	var data_exports = /* @__PURE__ */ __exportAll({ DeleteScreenshot: () => DeleteScreenshot });
	//#endregion
	//#region modules/screenshots/assets/js/editor/component.js
	var component_default = class extends $e.modules.ComponentBase {
		static {
			__name(this, "default");
		}
		getNamespace() {
			return "screenshots";
		}
		defaultHooks() {
			return this.importHooks(data_exports);
		}
	};
	//#endregion
	//#region modules/screenshots/assets/js/editor/module.js
	var Module$6 = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "Module");
		}
		onElementorInit() {
			$e.components.register(new component_default());
		}
	};
	//#endregion
	//#region core/app/modules/site-editor/assets/js/data/commands/templates.js
	init_defineProperty();
	var Templates = class extends $e.modules.CommandData {
		static getEndpointFormat() {
			return "site-editor/templates/{id}";
		}
	};
	_defineProperty(Templates, "signature", "site-editor/templates");
	//#endregion
	//#region core/app/modules/site-editor/assets/js/data/commands/conditions-config.js
	init_defineProperty();
	var ConditionsConfig = class extends $e.modules.CommandData {
		static getEndpointFormat() {
			return "site-editor/conditions-config/{id}";
		}
	};
	_defineProperty(ConditionsConfig, "signature", "site-editor/conditions-config");
	//#endregion
	//#region core/app/modules/site-editor/assets/js/data/commands/templates-conditions.js
	init_defineProperty();
	var TemplatesConditions = class extends $e.modules.CommandData {
		static getEndpointFormat() {
			return "site-editor/templates-conditions/{id}";
		}
	};
	_defineProperty(TemplatesConditions, "signature", "site-editor/templates-conditions");
	//#endregion
	//#region core/app/modules/site-editor/assets/js/data/commands/templates-conditions-conflicts.js
	init_defineProperty();
	var TemplatesConditionsConflicts = class TemplatesConditionsConflicts extends $e.modules.CommandData {
		static getEndpointFormat() {
			return `${TemplatesConditionsConflicts.signature}/{id}`;
		}
	};
	_defineProperty(TemplatesConditionsConflicts, "signature", "site-editor/templates-conditions-conflicts");
	//#endregion
	//#region core/app/modules/site-editor/assets/js/data/commands/index.js
	var commands_exports$1 = /* @__PURE__ */ __exportAll({
		ConditionsConfig: () => ConditionsConfig,
		Templates: () => Templates,
		TemplatesConditions: () => TemplatesConditions,
		TemplatesConditionsConflicts: () => TemplatesConditionsConflicts
	});
	//#endregion
	//#region core/app/modules/site-editor/assets/js/data/component.js
	init_defineProperty();
	var Component$2 = class extends $e.modules.ComponentBase {
		static {
			__name(this, "Component");
		}
		getNamespace() {
			return this.constructor.namespace;
		}
		defaultData() {
			return this.importCommands(commands_exports$1);
		}
	};
	_defineProperty(Component$2, "namespace", "site-editor");
	//#endregion
	//#region core/app/modules/site-editor/assets/js/editor.js
	var Module$5 = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "Module");
		}
		onElementorInit() {
			if (elementor.documents.getCurrent().config.support_site_editor) {
				$e.components.register(new Component$2());
				$e.data.deleteCache($e.components.get(Component$2.namespace), Templates.signature);
			}
		}
	};
	//#endregion
	//#region modules/video-playlist/assets/js/editor/hooks/ui/document/elements/settings/active-tab.js
	/**
	* Hook fired when template: 'single' page layout changed.
	*/
	var ActiveTab = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "active-tab--document/elements/settings";
		}
		getContainerType() {
			return "repeater";
		}
		getConditions(args) {
			return args.settings.inner_tab_content_1 || args.settings.inner_tab_content_2;
		}
		apply(args) {
			if (args.settings.inner_tab_content_1) args.container.view.model.get("editSettings").set("innerActiveIndex", 0);
			else if (args.settings.inner_tab_content_2) args.container.view.model.get("editSettings").set("innerActiveIndex", 1);
		}
	};
	//#endregion
	//#region modules/video-playlist/assets/js/editor/hooks/ui/index.js
	var ui_exports$1 = /* @__PURE__ */ __exportAll({ ActiveTab: () => ActiveTab });
	//#endregion
	//#region modules/video-playlist/assets/js/editor/component.js
	var VideoPlaylistComponent = class extends $e.modules.ComponentBase {
		getNamespace() {
			return "video-playlist";
		}
		defaultHooks() {
			return this.importHooks(ui_exports$1);
		}
	};
	//#endregion
	//#region modules/video-playlist/assets/js/editor/module.js
	var Module$4 = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "Module");
		}
		/**
		* Init
		*/
		onInit() {
			super.onInit();
			$e.components.register(new VideoPlaylistComponent());
		}
		onElementorLoaded() {
			elementor.channels.editor.on("elementorPlaylistWidget:setVideoData", (e) => {
				$e.run("document/elements/settings", {
					container: e.container,
					settings: {
						thumbnail: { url: e.currentItem.thumbnail ? e.currentItem.thumbnail.url : "" },
						title: e.currentItem.video_title ? e.currentItem.video_title : "",
						duration: e.currentItem.duration ? e.currentItem.duration : ""
					},
					options: { external: true }
				});
			});
		}
	};
	//#endregion
	//#region modules/woocommerce/assets/js/editor/hooks/data/save-show-modal.js
	var WoocommerceSaveShowModal;
	var init_save_show_modal = __esmMin((() => {
		WoocommerceSaveShowModal = class extends $e.modules.hookData.After {
			getCommand() {
				return "document/save/save";
			}
			getId() {
				return "elementor-pro-woocommerce-save-show-modal";
			}
			getConditions(args) {
				return args.status && -1 !== ["private", "publish"].indexOf(args.status);
			}
			apply() {
				elementorPro.modules.woocommerce.onUpdateDocument();
			}
		};
	}));
	//#endregion
	//#region modules/woocommerce/assets/js/editor/hooks/data/create-widget-activate-settings-modal.js
	var WoocommerceCreateWidgetActivateSettingsModal;
	var init_create_widget_activate_settings_modal = __esmMin((() => {
		WoocommerceCreateWidgetActivateSettingsModal = class extends $e.modules.hookData.After {
			getCommand() {
				return "document/elements/create";
			}
			getId() {
				return "elementor-pro-woocommerce-create-widget-activate-settings-modal";
			}
			getContainerType() {
				return "column";
			}
			getConditions(args, container) {
				return Object.prototype.hasOwnProperty.call(elementorPro.modules.woocommerce.pageSettingsWidgets, container.model.get("widgetType"));
			}
			apply(args, container) {
				elementorPro.modules.woocommerce.onCreateWidget(container);
			}
		};
	}));
	//#endregion
	//#region modules/woocommerce/assets/js/editor/hooks/data/delete-widget-deactivate-settings-modal.js
	var WoocommerceDeleteWidgetDeactivateSettingsModal;
	var init_delete_widget_deactivate_settings_modal = __esmMin((() => {
		WoocommerceDeleteWidgetDeactivateSettingsModal = class extends $e.modules.hookData.After {
			getCommand() {
				return "document/elements/delete";
			}
			getId() {
				return "elementor-pro-woocommerce-delete-widget-deactivate-settings-modal";
			}
			getContainerType() {
				return "widget";
			}
			getConditions(args, container) {
				return Object.prototype.hasOwnProperty.call(elementorPro.modules.woocommerce.pageSettingsWidgets, container.model.get("widgetType"));
			}
			apply(args, container) {
				elementorPro.modules.woocommerce.onDeleteWidget(container);
			}
		};
	}));
	//#endregion
	//#region modules/woocommerce/assets/js/editor/hooks/data/notices.js
	var WoocommerceNotices;
	var init_notices = __esmMin((() => {
		WoocommerceNotices = class extends $e.modules.hookData.After {
			getCommand() {
				return "document/elements/settings";
			}
			getId() {
				return "woocommerce-notices";
			}
			getConditions(args) {
				return "kit" === elementor.documents.getCurrent().config.type && Array.isArray(args.settings.woocommerce_notices_elements);
			}
			apply(args) {
				const { woocommerce } = elementorPro.modules;
				woocommerce.renderMockNotices(args.settings.woocommerce_notices_elements);
			}
		};
	}));
	//#endregion
	//#region modules/woocommerce/assets/js/editor/hooks/data/index.js
	var init_data = __esmMin((() => {
		init_save_show_modal();
		init_create_widget_activate_settings_modal();
		init_delete_widget_deactivate_settings_modal();
		init_notices();
	}));
	//#endregion
	//#region modules/woocommerce/assets/js/editor/hooks/index.js
	var hooks_exports$2 = /* @__PURE__ */ __exportAll({
		WoocommerceCreateWidgetActivateSettingsModal: () => WoocommerceCreateWidgetActivateSettingsModal,
		WoocommerceDeleteWidgetDeactivateSettingsModal: () => WoocommerceDeleteWidgetDeactivateSettingsModal,
		WoocommerceNotices: () => WoocommerceNotices,
		WoocommerceSaveShowModal: () => WoocommerceSaveShowModal
	});
	var init_hooks$1 = __esmMin((() => {
		init_data();
	}));
	//#endregion
	//#region modules/woocommerce/assets/js/editor/component.js
	var Component$1;
	var init_component$1 = __esmMin((() => {
		init_hooks$1();
		Component$1 = class extends $e.modules.ComponentBase {
			static {
				__name(this, "Component");
			}
			getNamespace() {
				return "woocommerce";
			}
			defaultHooks() {
				return this.importHooks(hooks_exports$2);
			}
		};
	}));
	//#endregion
	//#region modules/scroll-snap/assets/js/editor/hooks/ui/document/elements/settings/focus-preview.js
	var import_module$1 = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
		init_component$1();
		var WoocommerceModule = class extends elementorModules.editor.utils.Module {
			constructor(...args) {
				super(...args);
				this.pageSettingsWidgets = {
					"woocommerce-checkout-page": {
						headerMessage: (0, _wordpress_i18n.__)("Want to save this as your checkout page?", "elementor-pro"),
						message: (0, _wordpress_i18n.__)("Changes you make here will override your existing WooCommerce settings.", "elementor-pro"),
						confirmMessage: (0, _wordpress_i18n.__)("You've updated your checkout page.", "elementor-pro"),
						cancelMessage: (0, _wordpress_i18n.__)("<h3>Set up a checkout page</h3><br>Without a checkout page, visitors can't complete transactions on your site. To set one up, go to Site Settings.", "elementor-pro"),
						failedMessage: (0, _wordpress_i18n.__)("<h3>Sorry, something went wrong.</h3><br>To define a checkout page for your site, head over to Site Settings.", "elementor-pro"),
						optionName: "woocommerce_checkout_page_id",
						woocommercePageName: "checkout"
					},
					"woocommerce-cart": {
						headerMessage: (0, _wordpress_i18n.__)("Want to save this as your cart page?", "elementor-pro"),
						message: (0, _wordpress_i18n.__)("Changes you make here will override your existing WooCommerce settings.", "elementor-pro"),
						confirmMessage: (0, _wordpress_i18n.__)("You've updated your cart page.", "elementor-pro"),
						cancelMessage: (0, _wordpress_i18n.__)("<h3>Set up a cart page</h3><br>The cart page shows an order summary. To set one up, go to Site Settings.", "elementor-pro"),
						failedMessage: (0, _wordpress_i18n.__)("<h3>Sorry, something went wrong.</h3><br>To define a cart page for your site, head over to Site Settings.", "elementor-pro"),
						optionName: "woocommerce_cart_page_id",
						woocommercePageName: "cart"
					},
					"woocommerce-my-account": {
						headerMessage: (0, _wordpress_i18n.__)("Want to save this as your my account page?", "elementor-pro"),
						message: (0, _wordpress_i18n.__)("Changes you make here will override your existing WooCommerce settings.", "elementor-pro"),
						confirmMessage: (0, _wordpress_i18n.__)("You've updated your my account page.", "elementor-pro"),
						cancelMessage: (0, _wordpress_i18n.__)("<h3>Set up a My Account page</h3><br>Without it, customers can't update their billing details, review past orders, etc. To set up My Account, go to Site Settings.", "elementor-pro"),
						failedMessage: (0, _wordpress_i18n.__)("<h3>Sorry, something went wrong.</h3><br>To define a my account page for your site, head over to Site Settings.", "elementor-pro"),
						optionName: "woocommerce_myaccount_page_id",
						woocommercePageName: "myaccount"
					},
					"woocommerce-purchase-summary": {
						headerMessage: (0, _wordpress_i18n.__)("Want to save this as your purchase summary page?", "elementor-pro"),
						message: (0, _wordpress_i18n.__)("Changes you make here will override your WooCommerce default purchase summary page.", "elementor-pro"),
						confirmMessage: (0, _wordpress_i18n.__)("You've updated your summary page.", "elementor-pro"),
						cancelMessage: (0, _wordpress_i18n.__)("<h3>Set up a purchase summary page</h3><br>This page shows payment and order details. To set one up, go to Site Settings.", "elementor-pro"),
						failedMessage: (0, _wordpress_i18n.__)("<h3>Sorry, something went wrong.</h3><br>To define a purchase summary page for your site, head over to Site Settings.", "elementor-pro"),
						optionName: "elementor_woocommerce_purchase_summary_page_id",
						woocommercePageName: "summary"
					}
				};
				this.createdPageSettingsWidgets = [];
			}
			addWooCommerceClassToLoopWrapper(LoopGridHandler) {
				LoopGridHandler.$element.addClass("woocommerce");
			}
			onElementorInit() {
				elementor.hooks.addAction("editor/widgets/loop-grid/on-init", this.addWooCommerceClassToLoopWrapper);
			}
			onElementorFrontendInit() {
				elementorFrontend.elements.$body.on("added_to_cart", (e, data) => {
					if (this.didManuallyTriggerAddToCartEvent(data)) return false;
				});
				if ("loop-item" === elementor.documents.currentDocument.config.type && "product" === elementor.documents.currentDocument.config.settings.settings.source) elementor.on("document:loaded", () => {
					elementor.$previewContents[0].querySelector(".e-loop-item").classList.add("woocommerce");
				});
			}
			didManuallyTriggerAddToCartEvent(data = null) {
				return data == null ? void 0 : data.e_manually_triggered;
			}
			onElementorLoaded() {
				this.component = $e.components.register(new Component$1({ manager: this }));
				for (const section of [
					"section_woocommerce_notices",
					"woocommerce_message_notices",
					"woocommerce_info_notices",
					"woocommerce_error_notices"
				]) elementor.channels.editor.on("kit_settings:" + section + ":activated", () => {
					this.renderMockNotices(elementor.documents.getCurrent().container.settings.get("woocommerce_notices_elements"));
				});
				elementor.channels.editor.on("editor:widget:woocommerce-cart:section_additional_options:activated", () => {
					this.onTemplateIdChange("additional_template_select");
				});
				elementor.channels.editor.on("editor:widget:woocommerce-my-account:section_additional_options:activated", () => {
					this.onTemplateIdChange("customize_dashboard_select");
				});
			}
			renderMockNotices(noticeElements) {
				const noticesWrapper = elementor.$previewContents.find(".woocommerce-notices-wrapper");
				if (noticeElements.length <= 0) {
					noticesWrapper.remove();
					return;
				}
				let noticesClass = "";
				for (const notice of noticeElements) {
					const className = notice.replace("_", "-");
					noticesClass += "e-" + className + "-notice ";
				}
				elementorFrontend.elements.$body.addClass(noticesClass.trim());
				noticesWrapper.addClass("elementor-loading");
				jQuery(".elementor-select2").attr("disabled", "disabled");
				elementorPro.ajax.addRequest("woocommerce_mock_notices", {
					data: { notice_elements: noticeElements },
					success(data) {
						noticesWrapper.remove();
						elementor.$previewContents.find(".elementor-editor-preview").prepend(data);
						noticesWrapper.removeClass("elementor-loading");
						jQuery(".elementor-select2").removeAttr("disabled");
					}
				});
			}
			onTemplateIdChange(sectionActive) {
				const editor = elementor.getPanelView().getCurrentPageView();
				const templateID = editor.getOption("editedElementView").getEditModel().get("settings").get(sectionActive);
				const $editButton = editor.$el.find(".elementor-edit-template");
				if (!templateID) $editButton.addClass("e-control-tool-disabled").hide();
				else {
					const editUrl = ElementorConfig.home_url + "?p=" + templateID + "&elementor";
					$editButton.prop("href", editUrl).removeClass("e-control-tool-disabled").show();
				}
			}
			onCreateWidget(container) {
				const widgetType = container.model.get("widgetType");
				if (void 0 === this.createdPageSettingsWidgets[widgetType]) this.createdPageSettingsWidgets[widgetType] = 0;
				this.createdPageSettingsWidgets[widgetType]++;
			}
			onDeleteWidget(container) {
				const widgetType = container.model.get("widgetType");
				this.createdPageSettingsWidgets[widgetType]--;
				if (!this.createdPageSettingsWidgets[widgetType]) delete this.createdPageSettingsWidgets[widgetType];
			}
			onUpdateDocument() {
				elementorFrontend.elements.$body.trigger("added_to_cart", [{ e_manually_triggered: true }]);
				const saveWoocommercePageSettingKeys = Object.keys(this.createdPageSettingsWidgets);
				const lastWidgetCreated = saveWoocommercePageSettingKeys[saveWoocommercePageSettingKeys.length - 1];
				const postId = elementor.documents.getCurrent().id;
				if (1 !== saveWoocommercePageSettingKeys.length) return;
				const lastWidgetCreatedOptions = this.pageSettingsWidgets[lastWidgetCreated];
				if (postId === elementorPro.config.woocommerce.woocommercePages[lastWidgetCreatedOptions.woocommercePageName]) return;
				elementorCommon.dialogsManager.createWidget("confirm", {
					id: "elementor-woocommerce-save-pages",
					className: "e-global__confirm-add",
					headerMessage: lastWidgetCreatedOptions.headerMessage,
					message: lastWidgetCreatedOptions.message,
					position: {
						my: "center center",
						at: "center center"
					},
					strings: {
						confirm: (0, _wordpress_i18n.__)("Save", "elementor-pro"),
						cancel: (0, _wordpress_i18n.__)("No thanks", "elementor-pro")
					},
					onConfirm: () => this.onConfirmModal(lastWidgetCreatedOptions),
					onCancel: () => this.onCancelModal(lastWidgetCreatedOptions)
				}).show();
				this.createdPageSettingsWidgets = [];
			}
			onConfirmModal(lastWidgetCreatedOptions) {
				elementorPro.ajax.addRequest("woocommerce_update_page_option", {
					data: { option_name: lastWidgetCreatedOptions.optionName },
					success: () => {
						elementor.notifications.showToast({ message: lastWidgetCreatedOptions.confirmMessage });
					},
					error: () => this.showPagesSettingsToast(lastWidgetCreatedOptions.failedMessage)
				});
			}
			onCancelModal(lastWidgetCreatedOptions) {
				this.showPagesSettingsToast(lastWidgetCreatedOptions.cancelMessage);
			}
			showPagesSettingsToast(message) {
				const buttons = [];
				elementor.notifications.initToast();
				buttons.push({
					name: "take_me_there",
					text: (0, _wordpress_i18n.__)("Take me there", "elementor-pro"),
					callback: () => this.openSiteSettingsTab("settings-woocommerce")
				});
				elementor.notifications.showToast({
					message,
					buttons
				});
			}
			openSiteSettingsTab(tabId = "", sectionId = "") {
				if (elementorCommon.elements.$body.hasClass("elementor-editor-preview")) elementor.exitPreviewMode();
				if ("panel/global/menu" === elementor.documents.currentDocument.config.panel.default_route) {
					$e.run("panel/global/close");
					return;
				}
				$e.run("editor/documents/switch", {
					id: elementor.config.kit_id,
					mode: "autosave"
				}).then(() => {
					if (tabId) $e.route("panel/global/" + tabId);
				}).then(() => {
					if (sectionId) {
						const sectionElement = jQuery(".elementor-control-" + sectionId);
						if (sectionElement.length) sectionElement.trigger("click");
					}
				});
			}
		};
		module.exports = WoocommerceModule;
	})))());
	var FocusPreview = class extends $e.modules.hookData.After {
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "focus-preview--document/elements/settings";
		}
		getConditions(args) {
			var _args$settings$scroll;
			return ((_args$settings$scroll = args.settings.scroll_snap_padding) === null || _args$settings$scroll === void 0 ? void 0 : _args$settings$scroll.size) !== "";
		}
		apply() {
			setTimeout(() => {
				elementor.$preview[0].contentWindow.scrollBy(0, 0);
			}, 100);
		}
	};
	//#endregion
	//#region modules/scroll-snap/assets/js/editor/hooks/ui/index.js
	var ui_exports = /* @__PURE__ */ __exportAll({ FocusPreview: () => FocusPreview });
	//#endregion
	//#region modules/scroll-snap/assets/js/editor/component.js
	var ScrollSnapComponent = class extends $e.modules.ComponentBase {
		getNamespace() {
			return "scroll-snap";
		}
		defaultHooks() {
			return this.importHooks(ui_exports);
		}
	};
	//#endregion
	//#region modules/scroll-snap/assets/js/editor/module.js
	var Module$3 = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "Module");
		}
		/**
		* Init
		*/
		onInit() {
			super.onInit();
			$e.components.register(new ScrollSnapComponent());
		}
	};
	//#endregion
	//#region modules/payments/assets/js/editor/module.js
	var import_stripe = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
		var ElementEditorModule = require_element_editor_module();
		module.exports = ElementEditorModule.extend({
			__construct() {
				ElementEditorModule.prototype.__construct.apply(this, arguments);
			},
			getName() {
				return "stripe-button";
			},
			onInit() {
				elementor.channels.editor.on("editor:widget:stripe-button:section_stripe_account:activated", this.onSectionActive);
			},
			onSectionActive() {
				return elementorPro.ajax.addRequest("get_stripe_tax_rates", { success: (data) => {
					this.updateOptions("stripe_test_env_tax_rates_list", data.test_api_key);
					this.updateOptions("stripe_live_env_tax_rates_list", data.live_api_key);
				} }, true);
			}
		});
	})))());
	var StripeModule = class extends elementorModules.editor.utils.Module {
		onElementorInit() {
			this.stripeButton = new import_stripe.default("stripe-button");
		}
	};
	//#endregion
	//#region assets/dev/js/preview/utils/document-handle.js
	function addDocumentHandle({ element, id, title = (0, _wordpress_i18n.__)("Template", "elementor-pro") }, context = EDIT_CONTEXT, onCloseDocument = null, selector = null) {
		if ("edit" === context) {
			if (!id || !element) throw Error("`id` and `element` are required.");
			if (isCurrentlyEditing(element) || hasHandle(element)) return;
		}
		const handleElement = createHandleElement({
			title,
			onClick: () => onDocumentClick(id, context, onCloseDocument, selector)
		}, context, element);
		element.prepend(handleElement);
		if ("edit" === context) element.dataset.editableElementorDocument = id;
	}
	function isCurrentlyEditing(element) {
		return element.classList.contains(EDIT_MODE_CLASS_NAME);
	}
	function hasHandle(element) {
		return !!element.querySelector(`:scope > .${EDIT_HANDLE_CLASS_NAME}`);
	}
	function createHandleElement({ title, onClick }, context, element = null) {
		const handleTitle = ["header", "footer"].includes(element == null ? void 0 : element.dataset.elementorType) ? "%s" : (0, _wordpress_i18n.__)("Edit %s", "elementor-pro");
		const innerElement = createElement({
			tag: "div",
			classNames: [`${EDIT_HANDLE_CLASS_NAME}__inner`],
			children: [createElement({
				tag: "i",
				classNames: [getHandleIcon(context)]
			}), createElement({
				tag: "div",
				classNames: [`${"edit" === context ? EDIT_HANDLE_CLASS_NAME : SAVE_HANDLE_CLASS_NAME}__title`],
				children: [document.createTextNode("edit" === context ? handleTitle.replace("%s", title) : (0, _wordpress_i18n.__)("Save %s", "elementor-pro").replace("%s", title))]
			})]
		});
		const classNames = [EDIT_HANDLE_CLASS_NAME];
		if ("edit" !== context) classNames.push(SAVE_HANDLE_CLASS_NAME);
		const containerElement = createElement({
			tag: "div",
			classNames,
			children: [innerElement]
		});
		containerElement.addEventListener("click", onClick);
		return containerElement;
	}
	function getHandleIcon(context) {
		let icon = "eicon-edit";
		if ("save" === context) icon = elementorFrontend.config.is_rtl ? "eicon-arrow-right" : "eicon-arrow-left";
		return icon;
	}
	function createElement({ tag, classNames = [], children = [] }) {
		const element = document.createElement(tag);
		element.classList.add(...classNames);
		children.forEach((child) => element.appendChild(child));
		return element;
	}
	function onDocumentClick(id, context, onCloseDocument = null, selector = null) {
		return __async$1(this, null, function* () {
			if ("edit" === context) {
				window.top.$e.internal("panel/state-loading");
				yield window.top.$e.run("editor/documents/switch", {
					id: parseInt(id),
					onClose: onCloseDocument,
					selector
				});
				window.top.$e.internal("panel/state-ready");
			} else {
				elementorCommon.api.internal("panel/state-loading");
				elementorCommon.api.run("editor/documents/switch", {
					id: elementor.config.initial_document.id,
					mode: "save",
					shouldScroll: false,
					selector
				}).finally(() => elementorCommon.api.internal("panel/state-ready"));
			}
		});
	}
	var __async$1, EDIT_HANDLE_CLASS_NAME, EDIT_MODE_CLASS_NAME, EDIT_CONTEXT, SAVE_HANDLE_CLASS_NAME, SAVE_CONTEXT;
	var init_document_handle = __esmMin((() => {
		__async$1 = /* @__PURE__ */ __name((__this, __arguments, generator) => {
			return new Promise((resolve, reject) => {
				var fulfilled = (value) => {
					try {
						step(generator.next(value));
					} catch (e) {
						reject(e);
					}
				};
				var rejected = (value) => {
					try {
						step(generator.throw(value));
					} catch (e) {
						reject(e);
					}
				};
				var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
				step((generator = generator.apply(__this, __arguments)).next());
			});
		}, "__async");
		EDIT_HANDLE_CLASS_NAME = "elementor-document-handle";
		EDIT_MODE_CLASS_NAME = "elementor-edit-mode";
		EDIT_CONTEXT = "edit";
		SAVE_HANDLE_CLASS_NAME = "elementor-document-save-back-handle";
		SAVE_CONTEXT = "save";
	}));
	//#endregion
	//#region modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/open/add-loop-builders-tab.js
	var LoopBuilderAddLibraryTab;
	var init_add_loop_builders_tab = __esmMin((() => {
		LoopBuilderAddLibraryTab = class extends $e.modules.hookUI.After {
			getCommand() {
				return "editor/documents/open";
			}
			getId() {
				return "elementor-loop-items-add-library-tab";
			}
			getConditions(args) {
				var _elementor$documents;
				var _document$config;
				const document = (_elementor$documents = elementor.documents) === null || _elementor$documents === void 0 ? void 0 : _elementor$documents.get(args.id);
				return "loop-item" === (document === null || document === void 0 || (_document$config = document.config) === null || _document$config === void 0 ? void 0 : _document$config.type);
			}
			apply() {
				$e.components.get("library").addTab("templates/loop-items", {
					title: (0, _wordpress_i18n.__)("Loop", "elementor-pro"),
					filter: {
						source: "remote",
						type: "lb",
						subtype: elementor.config.document.settings.settings.source
					}
				}, 0);
				$e.components.get("library").removeTab("templates/blocks");
				$e.components.get("library").removeTab("templates/pages");
			}
		};
	}));
	//#endregion
	//#region modules/loop-builder/assets/js/editor/hooks/ui/editor/documents/close/remove-loop-builders-tab.js
	var LoopBuilderRemoveLibraryTab;
	var init_remove_loop_builders_tab = __esmMin((() => {
		LoopBuilderRemoveLibraryTab = class extends $e.modules.hookUI.After {
			getCommand() {
				return "editor/documents/unload";
			}
			getId() {
				return "elementor-loop-items-remove-library-tab";
			}
			getConditions(args) {
				var _document$config;
				const { document } = args;
				return "loop-item" === (document === null || document === void 0 || (_document$config = document.config) === null || _document$config === void 0 ? void 0 : _document$config.type);
			}
			apply() {
				$e.components.get("library").removeTab("templates/loop-items");
				$e.components.get("library").addTab("templates/blocks");
				$e.components.get("library").addTab("templates/pages");
			}
		};
	}));
	//#endregion
	//#region modules/loop-builder/assets/js/editor/hooks/index.js
	var hooks_exports$1 = /* @__PURE__ */ __exportAll({
		LoopBuilderAddLibraryTab: () => LoopBuilderAddLibraryTab,
		LoopBuilderRemoveLibraryTab: () => LoopBuilderRemoveLibraryTab
	});
	var init_hooks = __esmMin((() => {
		init_add_loop_builders_tab();
		init_remove_loop_builders_tab();
	}));
	//#endregion
	//#region modules/loop-builder/assets/js/editor/component.js
	var LoopBuilderComponent;
	var init_component = __esmMin((() => {
		init_hooks();
		LoopBuilderComponent = class extends $e.modules.ComponentBase {
			getNamespace() {
				return "document/loop";
			}
			defaultHooks() {
				return this.importHooks(hooks_exports$1);
			}
		};
	}));
	//#endregion
	//#region modules/loop-builder/assets/js/editor/behavior.js
	var LoopBuilderBehavior;
	var init_behavior = __esmMin((() => {
		LoopBuilderBehavior = class extends Marionette.Behavior {
			ui() {
				return {
					postSourceControlSelector: "[data-setting=\"post_taxonomy_query_post_type\"]",
					productSourceControlSelector: "[data-setting=\"product_taxonomy_query_post_type\"]"
				};
			}
			events() {
				return {
					"change @ui.postSourceControlSelector": "onApplySourceChange",
					"change @ui.productSourceControlSelector": "onApplySourceChange"
				};
			}
			onApplySourceChange(event) {
				var _event$target;
				const sourceType = ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value) || this.getDefaultSourceType();
				this.getOption("updateTaxonomyTabsIdControls")(sourceType, true);
			}
			onRender() {
				const postType = this.getOption("getSourceControlValue")();
				this.getOption("updateTaxonomyTabsIdControls")(postType);
			}
			getDefaultSourceType() {
				const skinType = this.getOption("getSkinType")();
				return this.getOption("getDefaultSourceType")(skinType);
			}
		};
	}));
	//#endregion
	//#region assets/dev/js/editor/tiers.js
	var import_module$2 = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
		init_document_handle();
		init_component();
		init_behavior();
		init_defineProperty();
		init_asyncToGenerator();
		var loopBuilderModule = class extends elementorModules.editor.utils.Module {
			constructor(..._args) {
				super(..._args);
				_defineProperty(this, "taxonomyQueryOptions", ["post_taxonomy", "product_taxonomy"]);
				_defineProperty(this, "registerControlBehavior", (behaviors = {}, view) => {
					if (!["post_taxonomy_query_post_type", "product_taxonomy_query_post_type"].includes(view.options.model.get("name"))) return behaviors;
					behaviors.loopBuilder = {
						behaviorClass: LoopBuilderBehavior,
						getSourceControlValue: this.getSourceControlValue,
						updateTaxonomyTabsIdControls: this.updateTaxonomyTabsIdControls
					};
					return behaviors;
				});
				_defineProperty(this, "onDocumentLoaded", (document) => {
					if (!document.config.theme_builder) return;
					elementor.channels.editor.on("elementorLoopBuilder:ApplySourceChange", this.onApplySourceChange);
				});
				_defineProperty(this, "onDocumentUnloaded", (document) => {
					if (!document.config.theme_builder) return;
					elementor.channels.editor.off("elementorLoopBuilder:ApplySourceChange", this.onApplySourceChange);
				});
				_defineProperty(this, "onApplySourceChange", () => {
					this.saveAndRefresh().then(() => {
						location.reload();
					});
				});
				_defineProperty(this, "getCtaStyles", () => {
					const ctaStyle = document.createElement("link");
					ctaStyle.setAttribute("rel", "stylesheet");
					ctaStyle.setAttribute("href", `${elementorAppProConfig.baseUrl}/assets/css/modules/loop-grid-cta.min.css`);
					return ctaStyle;
				});
				_defineProperty(this, "getCtaContent", (widgetName) => {
					const ctaContent = document.createElement("div");
					ctaContent.classList.add("e-loop-empty-view__container", "elementor-grid", widgetName);
					ctaContent.innerHTML = Marionette.Renderer.render("#tmpl-" + widgetName + "-cta");
					return ctaContent;
				});
				_defineProperty(this, "getSourceControlValue", () => {
					const skinType = this.getSkinType();
					const controlView = this.getEditorControlView(`${skinType}_query_post_type`);
					if (!controlView) return skinType.includes("product") ? "product_cat" : "category";
					return controlView.getControlValue();
				});
				_defineProperty(this, "getSkinType", () => {
					return this.getEditorControlView("section_layout").options.container.settings.get("_skin");
				});
				_defineProperty(this, "getTemplateType", (templateKey) => {
					return templateKey.split("_")[0];
				});
				_defineProperty(this, "onApplySkinChange", () => {
					const skinType = this.getSkinType();
					if (!this.taxonomyQueryOptions.includes(skinType)) return;
					const postType = this.getDefaultSourceType(skinType);
					this.updateTaxonomyTabsIdControls(postType, true);
				});
				_defineProperty(this, "getDefaultSourceType", (skinType) => {
					return {
						post: "post",
						product: "product",
						post_taxonomy: "category",
						product_taxonomy: "product_cat"
					}[skinType];
				});
				_defineProperty(this, "updateTaxonomyTabsIdControls", (postType, shouldResetControlValues = false) => {
					const skinType = this.getSkinType();
					if (!this.taxonomyQueryOptions.includes(skinType)) return;
					const querySectionView = elementorPro.modules.loopBuilder.getEditorControlView("section_query");
					[querySectionView.model.collection.findWhere({ name: `${skinType}_posts_ids` }), querySectionView.model.collection.findWhere({ name: `${skinType}_exclude_ids` })].forEach((control) => {
						var _elementor$getPanelVi;
						const controlView = (_elementor$getPanelVi = elementor.getPanelView()) === null || _elementor$getPanelVi === void 0 || (_elementor$getPanelVi = _elementor$getPanelVi.getCurrentPageView()) === null || _elementor$getPanelVi === void 0 || (_elementor$getPanelVi = _elementor$getPanelVi.children) === null || _elementor$getPanelVi === void 0 ? void 0 : _elementor$getPanelVi.findByModel(control);
						this.updateControlQuery({
							control,
							controlView,
							postType,
							shouldResetControlValues
						});
					});
				});
				_defineProperty(this, "updateControlQuery", ({ control, controlView, postType, shouldResetControlValues }) => {
					control.set({ autocomplete: {
						object: "tax",
						query: { taxonomy: postType }
					} });
					if (controlView && shouldResetControlValues) {
						controlView.setValue([]);
						controlView.applySavedValue();
					}
				});
			}
			onElementorFrontendInit() {
				elementor.hooks.addFilter("controls/base/behaviors", this.registerControlBehavior);
				elementorFrontend.elements.$body.on("click", ".e-loop-empty-view__box-cta", () => {
					this.createTemplate();
				});
				this.createDocumentSaveHandles();
				elementor.on("document:loaded", this.createDocumentSaveHandles.bind(this));
			}
			createTemplate() {
				setTimeout(() => {
					elementor.getPanelView().getCurrentPageView().activateSection("section_layout")._renderChildren();
					this.getEditorControlView("template_id").createTemplate();
				});
			}
			createDocumentSaveHandles() {
				var _elementorFrontend$co;
				Object.entries((_elementorFrontend$co = elementorFrontend.config) === null || _elementorFrontend$co === void 0 || (_elementorFrontend$co = _elementorFrontend$co.elements) === null || _elementorFrontend$co === void 0 ? void 0 : _elementorFrontend$co.data).forEach(([cid, element]) => {
					const elementData = elementor.getElementData(element);
					if (!(elementData === null || elementData === void 0 ? void 0 : elementData.is_loop)) return;
					const templateId = element.attributes.template_id;
					if (!templateId) return;
					const widgetSelector = `.elementor-element[data-model-cid="${cid}"]`;
					const editHandleSelector = `[data-elementor-type="loop-item"].elementor-${templateId}`;
					const editHandleElement = elementorFrontend.elements.$body.find(`${widgetSelector} ${editHandleSelector}`).first()[0];
					if (editHandleElement) addDocumentHandle({
						element: editHandleElement,
						id: 0,
						title: "& Back"
					}, SAVE_CONTEXT, null, ".elementor-" + elementor.config.initial_document.id);
				});
			}
			onElementorLoaded() {
				elementor.on("document:loaded", this.onDocumentLoaded.bind(this));
				elementor.on("document:unload", this.onDocumentUnloaded.bind(this));
				this.component = $e.components.register(new LoopBuilderComponent({ manager: this }));
			}
			saveAndRefresh() {
				return _asyncToGenerator(function* () {
					yield $e.run("document/save/update", { force: true });
				})();
			}
		};
		module.exports = loopBuilderModule;
	})))());
	var TIERS_PRIORITY = Object.freeze([
		"free",
		"essential",
		"essential-oct2023",
		"advanced",
		"expert",
		"agency"
	]);
	var isTierAtLeast = (currentTier, expectedTier) => {
		const currentTierIndex = TIERS_PRIORITY.indexOf(currentTier);
		const expectedTierIndex = TIERS_PRIORITY.indexOf(expectedTier);
		if (-1 === currentTierIndex || -1 === expectedTierIndex) return false;
		return currentTierIndex >= expectedTierIndex;
	};
	//#endregion
	//#region modules/notes/assets/js/notes-context-menu.js
	var notesContextMenu = class {
		constructor() {
			[
				"widget",
				"section",
				"column",
				"container"
			].forEach((type) => {
				elementor.hooks.addFilter(`elements/${type}/contextMenuGroups`, this.notesContextMenuAddGroup);
			});
		}
		/**
		* Enable the 'Notes' context menu item
		*
		* @since 3.8.0
		*
		* @param {Array} groups
		* @return {Array} The updated groups.
		*/
		notesContextMenuAddGroup(groups) {
			const notesGroup = _.findWhere(groups, { name: "notes" });
			const notesGroupIndex = groups.indexOf(notesGroup);
			const notesActionItem = {
				name: "open_notes",
				title: (0, _wordpress_i18n.__)("Notes", "elementor-pro"),
				shortcut: "⇧+C",
				isEnabled: () => true,
				callback: () => $e.route("notes")
			};
			if (elementorPro.config.should_show_promotion) {
				notesActionItem.shortcut = jQuery("<i class=\"eicon-advanced\"></i><a class=\"elementor-context-menu-list__item__shortcut--link-fullwidth\" href=\"https://go.elementor.com/go-pro-advanced-notes-context-menu/\" target=\"_blank\" rel=\"noopener noreferrer\"></a>");
				notesActionItem.isEnabled = () => false;
				delete notesActionItem.callback;
			}
			if (-1 === notesGroupIndex) {
				const deleteGroup = _.findWhere(groups, { name: "delete" });
				const deleteGroupIndex = groups.indexOf(deleteGroup);
				const newGroupPosition = -1 !== deleteGroupIndex ? deleteGroupIndex : groups.length;
				groups.splice(newGroupPosition, 0, {
					name: "notes",
					actions: [notesActionItem]
				});
				return groups;
			}
			const openNotesAction = _.findWhere(notesGroup.actions, { name: "open_notes" });
			const openNotesActionIndex = notesGroup.actions.indexOf(openNotesAction);
			groups[notesGroupIndex].actions[openNotesActionIndex] = notesActionItem;
			return groups;
		}
	};
	//#endregion
	//#region modules/page-transitions/assets/js/editor/commands/animate.js
	var Animate = class extends $e.modules.CommandBase {
		/**
		* Animate the Page Transition element.
		*
		* @return {void}
		*/
		apply() {
			const pageTransition = elementor.$previewContents[0].querySelector("e-page-transition");
			if (!pageTransition) return;
			pageTransition.animate();
		}
	};
	//#endregion
	//#region modules/page-transitions/assets/js/editor/commands/index.js
	var commands_exports = /* @__PURE__ */ __exportAll({ Animate: () => Animate });
	//#endregion
	//#region modules/page-transitions/assets/js/editor/hooks/data/animate-page-transition.js
	init_defineProperty();
	/**
	* Data hook that animates the Page Transition component when entrance / exit animations are changed.
	*/
	var AnimatePageTransition = class extends $e.modules.hookData.After {
		constructor(..._args) {
			super(..._args);
			_defineProperty(this, "prefix", "settings_page_transitions_");
			_defineProperty(this, "settings", ["entrance_animation", "exit_animation"]);
		}
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "animate-page-transitions--document/elements/settings";
		}
		getContainerType() {
			return "document";
		}
		getConditions(args) {
			return Object.keys(args.settings).some((key) => {
				key = key.replace(this.prefix, "");
				return this.settings.includes(key);
			});
		}
		apply() {
			$e.run("page-transitions/animate");
		}
	};
	//#endregion
	//#region modules/page-transitions/assets/js/editor/hooks/utils.js
	var prefix = "settings_page_transitions_";
	/**
	* Get only the Page Transitions controls' values from a Container.
	*
	* @param {Object} container
	*
	* @return {Object} - Controls' values.
	*/
	function getPageTransitionSettings(container) {
		const controls = Object.entries(container.settings.getActiveControls()).filter(([key, control]) => {
			return key.startsWith(prefix) && !control.selectors;
		});
		const settings = {};
		controls.forEach(([control]) => {
			settings[control] = container.settings.get(control);
		});
		return settings;
	}
	/**
	* Live render the Page Transition element, based on settings from the user.
	*
	* @param {Object} container - The container to get the settings from.
	*
	* @return {void}
	*/
	function renderPageTransition(container) {
		let pageTransition = elementor.$previewContents[0].querySelector("e-page-transition");
		const hasEntranceAnimation = !!container.settings.get(`${prefix}entrance_animation`);
		const hasPreloader = !!container.settings.get(`${prefix}preloader_type`);
		const shouldRender = hasEntranceAnimation || hasPreloader;
		if (!pageTransition) {
			pageTransition = document.createElement("e-page-transition");
			pageTransition.classList.add("e-page-transition--preview");
			elementor.$previewContents[0].body.append(pageTransition);
		}
		pageTransition.toggleAttribute("disabled", !shouldRender);
		const settings = getPageTransitionSettings(container);
		Object.entries(settings).forEach(([key, value]) => {
			key = key.replace(prefix, "");
			key = key.replaceAll("_", "-");
			if (!value) {
				pageTransition.removeAttribute(key);
				return;
			}
			if ("string" === typeof value) {
				pageTransition.setAttribute(key, value);
				return;
			}
			Object.entries(value).forEach(([subKey, subValue]) => {
				let newKey = key;
				if (subKey !== "value") newKey = `${key}-${subKey}`;
				pageTransition.setAttribute(newKey, subValue);
			});
		});
	}
	//#endregion
	//#region modules/page-transitions/assets/js/editor/hooks/data/re-render-page-transition.js
	init_defineProperty();
	/**
	* Data hook that passes the new settings from the panel as attributes to the Page Transition component, in order to re-render it.
	*/
	var ReRenderPageTransition = class extends $e.modules.hookData.After {
		constructor(..._args) {
			super(..._args);
			_defineProperty(this, "prefix", "settings_page_transitions_");
			_defineProperty(this, "settings", [
				"entrance_animation",
				"preloader_type",
				"preloader_icon",
				"preloader_image",
				"preloader_animation_type"
			]);
		}
		getCommand() {
			return "document/elements/settings";
		}
		getId() {
			return "re-render-page-transitions--document/elements/settings";
		}
		getContainerType() {
			return "document";
		}
		getConditions(args) {
			return Object.keys(args.settings).some((key) => {
				key = key.replace(this.prefix, "");
				return this.settings.includes(key);
			});
		}
		apply(args) {
			renderPageTransition(args.container);
		}
	};
	//#endregion
	//#region modules/page-transitions/assets/js/editor/hooks/index.js
	var hooks_exports = /* @__PURE__ */ __exportAll({
		AnimatePageTransition: () => AnimatePageTransition,
		ReRenderPageTransition: () => ReRenderPageTransition
	});
	//#endregion
	//#region modules/page-transitions/assets/js/editor/hooks/routes/page-transition-preview.js
	/**
	* A route hook that listens to route changes in the panel and change the preview mode for
	* the Page Transitions feature when navigating to the `Site Settings -> Page Transitions` tab.
	*
	* TODO: Convert to `$e.modules.hookRoute.After` when available.
	*/
	var PageTransitionPreview = class {
		/**
		* Run the hook.
		*
		* @param {Object} component
		* @param {string} route
		*
		* @return {void}
		*/
		run(component, route) {
			if ("panel/global/settings-page-transitions" === route) {
				renderPageTransition(elementor.documents.getCurrent().container);
				this.togglePageTransitionPreview(true);
			} else this.togglePageTransitionPreview(false);
		}
		/**
		* Toggle the Page Transition state to show or hide preview.
		*
		* @param {boolean} on
		*
		* @return {void}
		*/
		togglePageTransitionPreview(on = true) {
			const className = "e-page-transition--preview";
			const pageTransition = elementor.$previewContents[0].body.querySelector("e-page-transition");
			if (!pageTransition) return;
			pageTransition.classList.toggle(className, on);
		}
	};
	//#endregion
	//#region modules/page-transitions/assets/js/editor/component.js
	var Component = class extends $e.modules.ComponentBase {
		/**
		* Initialize the component.
		*
		* @return {void}
		*/
		constructor() {
			super();
			this.routesHooks = {};
			this.initRouteHooks();
		}
		/**
		* Add route hooks & listen to route changes.
		*
		* @return {void}
		*/
		initRouteHooks() {
			this.routesHooks.pageTransitionPreview = new PageTransitionPreview();
			$e.routes.on("run:after", (component, route) => {
				this.routesHooks.pageTransitionPreview.run(component, route);
			});
		}
		/**
		* Get the component namespace.
		*
		* @return {string} - Component namespace.
		*/
		getNamespace() {
			return "page-transitions";
		}
		/**
		* Get the component hooks.
		*
		* @return {Object} - Component hooks.
		*/
		defaultHooks() {
			return this.importHooks(hooks_exports);
		}
		/**
		* Get the component commands.
		*
		* @return {Object} - Component commands.
		*/
		defaultCommands() {
			return this.importCommands(commands_exports);
		}
	};
	//#endregion
	//#region modules/page-transitions/assets/js/editor/module.js
	var module_default = class extends elementorModules.editor.utils.Module {
		static {
			__name(this, "default");
		}
		/**
		* Register the component & bind events on init.
		*
		* @return {void}
		*/
		onInit() {
			$e.components.register(new Component());
			this.bindEvents();
		}
		/**
		* Listen to Page Transition event.
		*
		* @return {void}
		*/
		bindEvents() {
			if (window.elementor) {
				this.onAnimateButtonClick();
				return;
			}
			jQuery(window).on("elementor:init", () => this.onAnimateButtonClick());
		}
		/**
		* Listen to `animate` button click event and animate the Page Transition.
		*
		* @return {void}
		*/
		onAnimateButtonClick() {
			elementor.channels.editor.on("elementorPageTransitions:animate", () => {
				$e.run("page-transitions/animate");
			});
		}
	}, __vitePreload;
	var init_preload_helper = __esmMin((() => {
		__vitePreload = function preload(baseModule, deps, importerUrl) {
			let promise = Promise.resolve();
			function handlePreloadError(err) {
				const e = new Event("vite:preloadError", { cancelable: true });
				e.payload = err;
				window.dispatchEvent(e);
				if (!e.defaultPrevented) throw err;
			}
			return promise.then((res) => {
				for (const item of res || []) {
					if (item.status !== "rejected") continue;
					handlePreloadError(item.reason);
				}
				return baseModule().catch(handlePreloadError);
			});
		};
	}));
	//#endregion
	//#region modules/query-control/assets/js/editor/query-control.js
	var require_query_control = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementor.modules.controls.Select2.extend({
			cache: null,
			isTitlesReceived: false,
			getSelect2Placeholder() {
				return {
					id: "",
					text: (0, _wordpress_i18n.__)("All", "elementor-pro")
				};
			},
			getControlValueByName(controlName) {
				const name = this.model.get("group_prefix") + controlName;
				return this.elementSettingsModel.attributes[name];
			},
			getQueryDataDeprecated() {
				return {
					filter_type: this.model.get("filter_type"),
					object_type: this.model.get("object_type"),
					include_type: this.model.get("include_type"),
					query: this.model.get("query")
				};
			},
			getQueryData() {
				const autocomplete = elementorCommon.helpers.cloneObject(this.model.get("autocomplete"));
				if (_.isEmpty(autocomplete.query)) autocomplete.query = {};
				if ("cpt_tax" === autocomplete.object) {
					autocomplete.object = "tax";
					if (_.isEmpty(autocomplete.query) || _.isEmpty(autocomplete.query.post_type)) autocomplete.query.post_type = this.getControlValueByName("post_type");
				}
				return { autocomplete };
			},
			getSelect2DefaultOptions() {
				const self = this;
				return jQuery.extend(elementor.modules.controls.Select2.prototype.getSelect2DefaultOptions.apply(this, arguments), {
					ajax: {
						transport(params, success, failure) {
							const bcFormat = !_.isEmpty(self.model.get("filter_type"));
							let data = {};
							let action = "panel_posts_control_filter_autocomplete";
							if (bcFormat) {
								data = self.getQueryDataDeprecated();
								action = "panel_posts_control_filter_autocomplete_deprecated";
							} else data = self.getQueryData();
							data.q = params.data.q;
							return elementorPro.ajax.addRequest(action, {
								data,
								success,
								error: failure
							});
						},
						data(params) {
							return {
								q: params.term,
								page: params.page
							};
						},
						cache: true
					},
					escapeMarkup(markup) {
						return markup;
					},
					minimumInputLength: 1
				});
			},
			getValueTitles() {
				const self = this;
				const data = {};
				const bcFormat = !_.isEmpty(this.model.get("filter_type"));
				let ids = this.getControlValue();
				let action = "query_control_value_titles";
				let filterTypeName = "autocomplete";
				let filterType = {};
				if (bcFormat) {
					filterTypeName = "filter_type";
					filterType = this.model.get(filterTypeName).object;
					data.filter_type = filterType;
					data.object_type = self.model.get("object_type");
					data.include_type = self.model.get("include_type");
					data.unique_id = "" + self.cid + filterType;
					action = "query_control_value_titles_deprecated";
				} else {
					filterType = this.model.get(filterTypeName).object;
					data.get_titles = self.getQueryData().autocomplete;
					data.unique_id = "" + self.cid + filterType;
				}
				if (!ids || !filterType) return;
				if (!_.isArray(ids)) ids = [ids];
				elementorCommon.ajax.loadObjects({
					action,
					ids,
					data,
					before() {
						self.addControlSpinner();
					},
					success(ajaxData) {
						self.isTitlesReceived = true;
						self.model.set("options", ajaxData);
						self.render();
					}
				});
			},
			addControlSpinner() {
				this.ui.select.prop("disabled", true);
				this.$el.find(".elementor-control-title").after("<span class=\"elementor-control-spinner\">&nbsp;<i class=\"eicon-spinner eicon-animation-spin\"></i>&nbsp;</span>");
			},
			onReady() {
				if (!this.isTitlesReceived) this.getValueTitles();
			}
		});
	}));
	//#endregion
	//#region modules/query-control/assets/js/editor/template-query-control.js
	var template_query_control_exports = /* @__PURE__ */ __exportAll({ default: () => TemplateQueryControl });
	var import_query_control, __defProp, __defProps, __getOwnPropDescs, __getOwnPropSymbols, __hasOwnProp, __propIsEnum, __defNormalProp, __spreadValues, __spreadProps, __async, TemplateQueryControl;
	var init_template_query_control = __esmMin((() => {
		import_query_control = /* @__PURE__ */ __toESM(require_query_control());
		__defProp = Object.defineProperty;
		__defProps = Object.defineProperties;
		__getOwnPropDescs = Object.getOwnPropertyDescriptors;
		__getOwnPropSymbols = Object.getOwnPropertySymbols;
		__hasOwnProp = Object.prototype.hasOwnProperty;
		__propIsEnum = Object.prototype.propertyIsEnumerable;
		__defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
			enumerable: true,
			configurable: true,
			writable: true,
			value
		}) : obj[key] = value;
		__spreadValues = (a, b) => {
			for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
			if (__getOwnPropSymbols) {
				for (var prop of __getOwnPropSymbols(b)) if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
			}
			return a;
		};
		__spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
		__async = (__this, __arguments, generator) => {
			return new Promise((resolve, reject) => {
				var fulfilled = (value) => {
					try {
						step(generator.next(value));
					} catch (e) {
						reject(e);
					}
				};
				var rejected = (value) => {
					try {
						step(generator.throw(value));
					} catch (e) {
						reject(e);
					}
				};
				var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
				step((generator = generator.apply(__this, __arguments)).next());
			});
		};
		TemplateQueryControl = class extends import_query_control.default {
			ui() {
				return __spreadProps(__spreadValues({}, super.ui()), {
					newButton: "button[data-action=\"new\"]",
					editButton: "button[data-action=\"edit\"]"
				});
			}
			events() {
				return __spreadProps(__spreadValues({}, super.events()), {
					"click @ui.newButton": "onNewButtonClicked",
					"click @ui.editButton": "onEditButtonClicked"
				});
			}
			onRender(...args) {
				super.onRender(...args);
				this.toggleButtons(this.getControlValue());
			}
			onBaseInputChange(...args) {
				super.onBaseInputChange(...args);
				this.toggleButtons(this.getInputValue(args[0].currentTarget));
			}
			toggleButtons(templateID) {
				if (!templateID) this.showNewTemplateButton();
				else this.showEditTemplateButton();
			}
			showNewTemplateButton() {
				var _a;
				var _b;
				var _c;
				var _d;
				const newButton = (_b = (_a = this.ui) == null ? void 0 : _a.newButton) == null ? void 0 : _b.get(0);
				const editButton = (_d = (_c = this.ui) == null ? void 0 : _c.editButton) == null ? void 0 : _d.get(0);
				if (newButton) newButton.style.display = "block";
				if (editButton) editButton.style.display = "none";
			}
			showEditTemplateButton() {
				const newButton = this.ui.newButton.get(0);
				const editButton = this.ui.editButton.get(0);
				if (newButton) newButton.style.display = "none";
				if (editButton) editButton.style.display = "block";
			}
			onNewButtonClicked() {
				return __async(this, null, function* () {
					this.createTemplate();
				});
			}
			/**
			* This function is used to create a new template via the REST API.
			* We first show a confirm dialog so the user knows that the current document will be saved while creating
			* and editing a new template. If the user chooses to cancel the process will not continue,
			* and if confirmed the new template is created and the Editor switched to this newly created template.
			*
			* @since 3.8.0
			*
			* @return {void}
			*/
			createTemplate() {
				if (!this.confirmSaveBeforeTemplateCreateDialog) this.confirmSaveBeforeTemplateCreateDialog = elementorCommon.dialogsManager.createWidget("confirm", {
					id: "e-confirm-save-before-template-create",
					headerMessage: (0, _wordpress_i18n.__)("Save Changes", "elementor-pro"),
					message: (0, _wordpress_i18n.__)("Would you like to save the changes you've made?", "elementor-pro"),
					position: {
						my: "center center",
						at: "center center"
					},
					strings: {
						confirm: (0, _wordpress_i18n.__)("Save", "elementor-pro"),
						cancel: (0, _wordpress_i18n.__)("Discard", "elementor-pro")
					},
					onConfirm: () => __async(this, null, function* () {
						yield this.onConfirmCreateTemplate();
					})
				});
				this.confirmSaveBeforeTemplateCreateDialog.show();
			}
			onConfirmCreateTemplate() {
				return __async(this, null, function* () {
					$e.internal("panel/state-loading");
					const templateID = yield this.createAndSetTemplate();
					this.afterAction("new", templateID);
					$e.internal("panel/state-ready");
				});
			}
			createAndSetTemplate() {
				return __async(this, null, function* () {
					const controlId = this.model.get("name");
					const newTemplateType = this.options.container.controls[controlId].actions.new.document_config.type;
					const newTemplateSource = this.getTemplateSourceTypeValue();
					const newTemplate = yield $e.data.create("library/templates", {
						type: newTemplateType,
						page_settings: { source: newTemplateSource }
					});
					const templateID = parseInt(newTemplate.data.template_id);
					this.setValue(templateID);
					return templateID;
				});
			}
			getTemplateSourceTypeValue() {
				var _a;
				var _b;
				var _c;
				if ("repeater" === ((_c = (_b = (_a = this.options) == null ? void 0 : _a.container) == null ? void 0 : _b.args) == null ? void 0 : _c.type)) return this.options.container.renderer.args.settings.attributes._skin || void 0;
				return this.options.container.controls._skin ? this.options.container.panel.getControlView("_skin").getControlValue() : void 0;
			}
			/**
			* Function to switch the Editor when a user clicks to create a new template or edit the chosen template.
			*
			* @since 3.8.0
			*
			* @param {string|number} id
			*
			* @return {Promise<void>}
			*/
			switchDocument(id) {
				return __async(this, null, function* () {
					yield $e.run("editor/documents/switch", {
						id: parseInt(id),
						mode: "save"
					});
					const document = elementor.documents.getCurrent();
					if (document.config.container_attributes && document.config.container_attributes.class) document.$element.addClass(document.config.container_attributes.class);
				});
			}
			onEditButtonClicked() {
				return __async(this, null, function* () {
					this.afterAction("edit", this.getControlValue());
				});
			}
			getSelect2Placeholder() {
				return {
					id: "",
					text: (0, _wordpress_i18n.__)("Start typing its name", "elementor-pro")
				};
			}
			afterAction(context, templateID) {
				return __async(this, null, function* () {
					if ("switch_document" === ("new" === context ? this.ui.newButton[0].getAttribute("data-after-action") : this.ui.editButton[0].getAttribute("data-after-action"))) yield this.switchDocument(templateID);
					else window.open(this.getThemeBuilderURL(templateID), "_blank");
				});
			}
			getThemeBuilderURL(templateID) {
				return `${elementor.config.admin_url}post.php?post=${templateID}&action=elementor`;
			}
		};
	}));
	//#endregion
	//#region modules/query-control/assets/js/editor.js
	var require_editor$5 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		init_asyncToGenerator();
		init_preload_helper();
		module.exports = elementorModules.editor.utils.Module.extend({ onElementorPreviewLoaded() {
			elementor.addControlView("Query", require_query_control());
			__vitePreload(_asyncToGenerator(function* () {
				const { default: TemplateQueryControl } = yield Promise.resolve().then(() => (init_template_query_control(), template_query_control_exports));
				return { default: TemplateQueryControl };
			}), void 0).then(({ default: TemplateQueryControl }) => elementor.addControlView("template_query", TemplateQueryControl));
		} });
	}));
	//#endregion
	//#region modules/library/assets/js/editor/edit-button.js
	var require_edit_button = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = function() {
			var self = this;
			self.onPanelShow = function(panel) {
				var model = panel.content.currentView.collection.findWhere({ name: "template_id" });
				self.templateIdView = panel.content.currentView.children.findByModelCid(model.cid);
				self.templateIdView.elementSettingsModel.on("change", self.onTemplateIdChange);
				self.templateIdView.on("render", self.onTemplateIdChange);
			};
			self.onTemplateIdChange = function() {
				var templateID = self.templateIdView.elementSettingsModel.get("template_id");
				var $editButton = self.templateIdView.$el.find(".elementor-edit-template");
				if (!templateID) {
					$editButton.remove();
					return;
				}
				var editUrl = ElementorConfig.home_url + "?p=" + templateID + "&elementor";
				if ($editButton.length) $editButton.prop("href", editUrl);
				else {
					$editButton = jQuery("<a />", {
						target: "_blank",
						class: "elementor-button elementor-edit-template",
						href: editUrl,
						html: "<i class=\"eicon-pencil\" aria-hidden=\"true\"></i>" + (0, _wordpress_i18n.__)("Edit Template", "elementor-pro")
					});
					self.templateIdView.$el.find(".elementor-control-input-wrapper").after($editButton);
				}
			};
			self.init = function() {
				elementor.hooks.addAction("panel/open_editor/widget/template", self.onPanelShow);
			};
			self.init();
		};
	}));
	//#endregion
	//#region modules/library/assets/js/editor.js
	var require_editor$4 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({ onElementorPreviewLoaded() {
			var EditButton = require_edit_button();
			this.editButton = new EditButton();
		} });
	}));
	//#endregion
	//#region modules/flip-box/assets/js/editor/editor.js
	var require_editor$3 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			onElementorInit() {
				elementor.channels.editor.on("section:activated", this.onSectionActivated);
			},
			onSectionActivated(sectionName, editor) {
				var editedElement = editor.getOption("editedElementView");
				if ("flip-box" !== editedElement.model.get("widgetType")) return;
				var isSideBSection = -1 !== ["section_side_b_content", "section_style_b"].indexOf(sectionName);
				editedElement.$el.toggleClass("elementor-flip-box--flipped", isSideBSection);
				var $backLayer = editedElement.$el.find(".elementor-flip-box__back");
				if (isSideBSection) $backLayer.css("transition", "none");
				if (!isSideBSection) setTimeout(function() {
					$backLayer.css("transition", "");
				}, 10);
			}
		});
	}));
	//#endregion
	//#region modules/share-buttons/assets/js/editor/editor.js
	var require_editor$2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({
			config: elementorPro.config.shareButtonsNetworks,
			networksClassDictionary: {
				google: "fab fa-google-plus",
				pocket: "fab fa-get-pocket",
				email: "fas fa-envelope",
				print: "fas fa-print"
			},
			getNetworkClass(networkName) {
				let networkClass = this.networksClassDictionary[networkName] || "fab fa-" + networkName;
				if (elementor.config.icons_update_needed) networkClass = "fa " + networkClass;
				return networkClass;
			},
			getNetworkTitle(buttonSettings) {
				var _this$getNetworkData;
				return buttonSettings.text || ((_this$getNetworkData = this.getNetworkData(buttonSettings)) === null || _this$getNetworkData === void 0 ? void 0 : _this$getNetworkData.title);
			},
			getNetworkData(buttonSettings) {
				return this.config[buttonSettings.button];
			},
			hasCounter(networkName, settings) {
				return "icon" !== settings.view && "yes" === settings.show_counter && this.config[networkName].has_counter;
			}
		});
	}));
	//#endregion
	//#region modules/assets-manager/assets/js/editor/font-manager.js
	var require_font_manager = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.Module.extend({
			_enqueuedFonts: [],
			_enqueuedTypekit: false,
			onFontChange(fontType, font) {
				if ("custom" !== fontType && "typekit" !== fontType && "variable" !== fontType) return;
				if (-1 !== this._enqueuedFonts.indexOf(font)) return;
				if ("typekit" === fontType && this._enqueuedTypekit) return;
				this.getCustomFont(fontType, font);
			},
			getCustomFont(fontType, font) {
				elementorPro.ajax.addRequest("assets_manager_panel_action_data", {
					unique_id: "font_" + fontType + font,
					data: {
						service: "font",
						type: fontType,
						font
					},
					success(data) {
						if (data.font_face) elementor.$previewContents.find("style").last().after("<style type=\"text/css\">" + data.font_face + "</style>");
						if (data.font_url) elementor.$previewContents.find("link").last().after("<link href=\"" + data.font_url + "\" rel=\"stylesheet\" type=\"text/css\">");
					}
				});
				this._enqueuedFonts.push(font);
				if ("typekit" === fontType) this._enqueuedTypekit = true;
			},
			onInit() {
				elementor.channels.editor.on("font:insertion", this.onFontChange.bind(this));
			}
		});
	}));
	//#endregion
	//#region modules/assets-manager/assets/js/editor/editor.js
	var require_editor$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({ onElementorInit() {
			var FontsManager = require_font_manager();
			this.assets = { font: new FontsManager() };
		} });
	}));
	//#endregion
	//#region modules/theme-elements/assets/js/editor/comments-skin.js
	var require_comments_skin = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = function() {
			var self = this;
			self.onPanelShow = function(panel, model) {
				var settingsModel = model.get("settings");
				if (!settingsModel.controls._skin.default) settingsModel.set("_skin", "theme_comments");
			};
			self.init = function() {
				elementor.hooks.addAction("panel/open_editor/widget/post-comments", self.onPanelShow);
			};
			self.init();
		};
	}));
	//#endregion
	//#region modules/theme-elements/assets/js/editor/editor.js
	var require_editor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		module.exports = elementorModules.editor.utils.Module.extend({ onElementorPreviewLoaded() {
			var CommentsSkin = require_comments_skin();
			this.commentsSkin = new CommentsSkin();
		} });
	}));
	//#endregion
	//#region modules/mega-menu/assets/js/editor/views/view.js
	var View;
	var init_view = __esmMin((() => {
		init_asyncToGenerator();
		View = class extends $e.components.get("nested-elements").exports.NestedView {
			constructor(...args) {
				super(...args);
				this.isRendering = false;
				this.itemTitle = "item_title";
				this.itemLink = "item_link";
				this.internalUrl = "internal-url";
				this.itemLinkSelector = ".elementor-control-item_link";
			}
			filter(child, index) {
				child.attributes.dataIndex = index + 1;
				child.attributes.widgetId = child.id;
				return true;
			}
			onAddChild(childView) {
				var _childView$_parent$$e;
				var _childView$_parent$$e2;
				const widgetNumber = ((_childView$_parent$$e = childView._parent.$el.find(".e-n-menu")[0]) === null || _childView$_parent$$e === void 0 ? void 0 : _childView$_parent$$e.dataset.widgetNumber) || childView.model.attributes.widgetId;
				const index = childView.model.attributes.dataIndex;
				const tabId = ((_childView$_parent$$e2 = childView._parent.$el.find(`.e-n-menu-item-title[data-tab-index="${index}"]`)) === null || _childView$_parent$$e2 === void 0 ? void 0 : _childView$_parent$$e2.attr("id")) || childView.model.attributes.widgetId + " " + index;
				childView.$el.attr({
					id: "e-n-menu-content-" + widgetNumber + index,
					role: "menu",
					"aria-labelledby": tabId,
					"data-tab-index": index
				});
			}
			getChildViewContainer(containerView, childView) {
				const { elements_placeholder_selector: customSelector, child_container_placeholder_selector: childContainerSelector } = this.model.config.defaults;
				if (childView !== void 0 && childView._index !== void 0 && childContainerSelector) return containerView.$el.find(`${childContainerSelector}`)[childView._index];
				if (customSelector) return containerView.$el.find(this.model.config.defaults.elements_placeholder_selector);
				return super.getChildViewContainer(containerView, childView);
			}
			attachBuffer(compositeView, buffer) {
				var _this$model;
				var _this$model2;
				const $container = this.getChildViewContainer(compositeView);
				if (((_this$model = this.model) === null || _this$model === void 0 || (_this$model = _this$model.config) === null || _this$model === void 0 ? void 0 : _this$model.support_improved_repeaters) && ((_this$model2 = this.model) === null || _this$model2 === void 0 || (_this$model2 = _this$model2.config) === null || _this$model2 === void 0 ? void 0 : _this$model2.is_interlaced)) {
					var _this$model3;
					const childContainerClass = (((_this$model3 = this.model) === null || _this$model3 === void 0 || (_this$model3 = _this$model3.config) === null || _this$model3 === void 0 || (_this$model3 = _this$model3.defaults) === null || _this$model3 === void 0 ? void 0 : _this$model3.child_container_placeholder_selector) || "").replace(".", "");
					this._updateChildContainers($container[0], childContainerClass, buffer);
				} else $container.append(buffer);
			}
			_updateChildContainers(wrapper, childContainerClass, buffer) {
				_.each(wrapper.children, (childContainer) => {
					var _childContainer$class;
					if (!((_childContainer$class = childContainer.classList) === null || _childContainer$class === void 0 ? void 0 : _childContainer$class.contains(childContainerClass))) {
						this._updateChildContainers(childContainer, childContainerClass, buffer);
						return;
					}
					const numberOfItems = buffer.childNodes.length;
					if (0 === numberOfItems) return;
					childContainer.appendChild(buffer.childNodes[0]);
					buffer.appendChild(childContainer);
					wrapper.append(buffer.childNodes[numberOfItems - 1]);
				});
			}
			/**
			* Function renderOnChange().
			*
			* Render the changes in the settings according to the current situation.
			*
			* @param {Object} settings
			* @param {Array}  widget
			*/
			renderOnChange(settings, widget = []) {
				if (!this.allowRender) return;
				if (this.isRendering) {
					this.isRendering = false;
					return;
				}
				const renderResult = this.renderDataBindings(settings, this.dataBindings, widget);
				if (renderResult instanceof Promise) renderResult.then((result) => {
					if (!result) this.renderChanges(settings);
				});
				if (!renderResult) this.renderChanges(settings);
			}
			/**
			* Function renderDataBindings().
			*
			* Render linked data.
			*
			* @param {Object} settings
			* @param {Array}  dataBindings
			* @param {Array}  widget
			*
			* @return {boolean} - false on fail.
			*/
			renderDataBindings(settings, dataBindings, widget = []) {
				var _this = this;
				var _this$dataBindings;
				if (!((_this$dataBindings = this.dataBindings) === null || _this$dataBindings === void 0 ? void 0 : _this$dataBindings.length)) return false;
				let changed = false;
				const renderDataBinding = function() {
					var _ref = _asyncToGenerator(function* (dataBinding) {
						var _settings$changed;
						if (void 0 !== settings.changed[dataBinding.dataset.bindingSetting]) {
							dataBinding.el.innerHTML = settings.changed[dataBinding.dataset.bindingSetting];
							return true;
						}
						if (!(settings === null || settings === void 0 ? void 0 : settings.changed.__dynamic__) || !widget.length) return false;
						if (!_this.isTitleOrLinkChanged(settings)) return true;
						const { bindingSetting } = dataBinding.dataset, changedControl = _this.getChangedDynamicControlKey(settings);
						let change = settings.changed[bindingSetting];
						if (_this.isInternalUrl(settings === null || settings === void 0 || (_settings$changed = settings.changed) === null || _settings$changed === void 0 || (_settings$changed = _settings$changed.__dynamic__) === null || _settings$changed === void 0 ? void 0 : _settings$changed.item_link) && _this.isSettingChanged(settings, _this.itemLink)) return yield _this.getDynamicValue(settings, changedControl, bindingSetting, dataBinding, widget);
						if (_this.isAtomicDynamic(settings.changed, dataBinding, changedControl)) {
							const dynamicValue = yield _this.getDynamicValue(settings, changedControl, bindingSetting, dataBinding, widget);
							if (_this.itemLink === changedControl) return true;
							if (dynamicValue) change = dynamicValue;
						}
						if (change !== void 0) {
							dataBinding.el.innerHTML = change;
							return true;
						}
						return false;
					});
					return function renderDataBinding(_x) {
						return _ref.apply(this, arguments);
					};
				}();
				for (const dataBinding of dataBindings) {
					switch (dataBinding.dataset.bindingType) {
						case "repeater-item":
							{
								var _container$parent;
								const repeater = this.container.repeaters[dataBinding.dataset.bindingRepeaterName];
								if (!repeater) break;
								const container = repeater.children.find((i) => i.id === settings.attributes._id);
								if ((container === null || container === void 0 || (_container$parent = container.parent) === null || _container$parent === void 0 ? void 0 : _container$parent.children.indexOf(container)) + 1 === parseInt(dataBinding.dataset.bindingIndex)) changed = renderDataBinding(dataBinding);
								else if (dataBindings.indexOf(dataBinding) + 1 === this.getRepeaterItemActiveIndex()) {
									if (this.isItemLinkChild(widget)) return true;
									changed = this.tryHandleDynamicCoverSettings(dataBinding, settings);
								}
							}
							break;
						case "content":
							changed = renderDataBinding(dataBinding);
							break;
					}
					if (changed) break;
				}
				return changed;
			}
			isAtomicDynamic(changedSettings, dataBinding, changedControl) {
				return dataBinding.el.hasAttribute("data-binding-dynamic") && (this.itemTitle === changedControl || this.itemLink === changedControl);
			}
			getDynamicValue(settings, changedControlKey, bindingSetting, dataBinding, widget) {
				var _this2 = this;
				return _asyncToGenerator(function* () {
					const dynamicSettings = { active: true };
					const valueToParse = _this2.extractValueToParse(_this2.getChangedData(settings, changedControlKey, bindingSetting));
					if (void 0 === valueToParse) return settings.attributes[changedControlKey];
					const data = yield _this2.getDataFromCacheOrBackend(valueToParse, dynamicSettings);
					if (_this2.itemTitle === changedControlKey) return data;
					if (void 0 !== data) _this2.tryFormatDynamicMegaMenuUrl(valueToParse, dataBinding, widget, changedControlKey, dynamicSettings);
					return settings.attributes[changedControlKey];
				})();
			}
			extractValueToParse(valueToParse, keyToExtract = "url") {
				if ("object" === typeof valueToParse) return valueToParse[keyToExtract];
				return valueToParse;
			}
			getChangedDynamicControlKey(settings) {
				var _settings$changed2;
				var _settings$changed3;
				var _settings$_previousAt;
				if (!(settings === null || settings === void 0 || (_settings$changed2 = settings.changed) === null || _settings$changed2 === void 0 ? void 0 : _settings$changed2.__dynamic__)) return Object.keys(settings.changed)[0];
				const changedControlKey = this.findUniqueKey(settings === null || settings === void 0 || (_settings$changed3 = settings.changed) === null || _settings$changed3 === void 0 ? void 0 : _settings$changed3.__dynamic__, settings === null || settings === void 0 || (_settings$_previousAt = settings._previousAttributes) === null || _settings$_previousAt === void 0 ? void 0 : _settings$_previousAt.__dynamic__)[0];
				if (changedControlKey) return changedControlKey;
				return this.isSettingChanged(settings, this.itemLink) ? this.itemLink : this.itemTitle;
			}
			tryFormatDynamicMegaMenuUrl(valueToParse, dataBinding, widget, changedControl, dynamicSettings) {
				const dynamicTagName = this.getDynamicTagName(valueToParse);
				if (this.itemLink !== changedControl || "internal_link" === dynamicTagName) return false;
				const value = elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent);
				elementor.$preview[0].contentWindow.dispatchEvent(new CustomEvent("elementor/dynamic/url_change", { detail: {
					element: dataBinding.el,
					actionName: valueToParse && dynamicTagName,
					value
				} }));
				dataBinding.el = Array.from(widget)[0].querySelectorAll(".e-n-menu-title-text")[dataBinding.dataset.bindingIndex - 1];
			}
			getDynamicTagName(changedDataForAddedItem) {
				const match = changedDataForAddedItem.match(/name="([^"]*)"/);
				return match ? match[1] : null;
			}
			isInternalUrl(dynamicData) {
				if (!dynamicData) return false;
				return this.internalUrl === this.getDynamicTagName(dynamicData);
			}
			isItemLinkChild(widget) {
				return widget[0].closest(this.itemLinkSelector);
			}
			getDataFromCacheOrBackend(valueToParse, dynamicSettings) {
				return _asyncToGenerator(function* () {
					try {
						return elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent);
					} catch (_unused) {
						yield new Promise((resolve) => {
							elementor.dynamicTags.refreshCacheFromServer(() => {
								resolve();
							});
						});
						return !_.isEmpty(elementor.dynamicTags.cache) ? elementor.dynamicTags.parseTagsText(valueToParse, dynamicSettings, elementor.dynamicTags.getTagDataContent) : false;
					}
				})();
			}
			getChangedDataForRemovedItem(settings, changedControlKey, bindingSetting) {
				var _settings$attributes;
				var _settings$attributes2;
				return ((_settings$attributes = settings.attributes) === null || _settings$attributes === void 0 || (_settings$attributes = _settings$attributes[changedControlKey]) === null || _settings$attributes === void 0 ? void 0 : _settings$attributes[bindingSetting]) || ((_settings$attributes2 = settings.attributes) === null || _settings$attributes2 === void 0 ? void 0 : _settings$attributes2[changedControlKey]);
			}
			getChangedDataForAddedItem(settings, changedControlKey, bindingSetting) {
				var _settings$attributes3;
				var _settings$attributes4;
				return ((_settings$attributes3 = settings.attributes) === null || _settings$attributes3 === void 0 || (_settings$attributes3 = _settings$attributes3.__dynamic__) === null || _settings$attributes3 === void 0 || (_settings$attributes3 = _settings$attributes3[changedControlKey]) === null || _settings$attributes3 === void 0 ? void 0 : _settings$attributes3[bindingSetting]) || ((_settings$attributes4 = settings.attributes) === null || _settings$attributes4 === void 0 || (_settings$attributes4 = _settings$attributes4.__dynamic__) === null || _settings$attributes4 === void 0 ? void 0 : _settings$attributes4[changedControlKey]);
			}
			getChangedData(settings, changedControlKey, bindingSetting) {
				const changedDataForRemovedItem = this.getChangedDataForRemovedItem(settings, changedControlKey, bindingSetting);
				return this.getChangedDataForAddedItem(settings, changedControlKey, bindingSetting) || changedDataForRemovedItem;
			}
			/**
			* Function getTitleWithAdvancedValues().
			*
			* Renders before / after / fallback for dynamic item titles.
			*
			* @param {Object} settings
			* @param {string} text
			*/
			getTitleWithAdvancedValues(settings, text) {
				const { attributes, _previousAttributes: previousAttributes } = settings;
				if (this.compareSettings(attributes, previousAttributes, "fallback")) text = text.replace(new RegExp(previousAttributes.fallback), "");
				if (!text || attributes.fallback === text) return attributes.fallback || "";
				if (this.compareSettings(attributes, previousAttributes, "before")) text = text.replace(previousAttributes.before, "");
				if (this.compareSettings(attributes, previousAttributes, "after")) text = text.replace(new RegExp(previousAttributes.after + "$"), "");
				if (!text) return attributes.fallback || "";
				const newBefore = this.getNewSettingsValue(attributes, previousAttributes, "before");
				const newAfter = this.getNewSettingsValue(attributes, previousAttributes, "after");
				text = newBefore + text;
				text += newAfter;
				return text;
			}
			compareSettings(attributes, previousAttributes, key) {
				return previousAttributes[key] && previousAttributes[key] !== attributes[key];
			}
			getNewSettingsValue(attributes, previousAttributes, key) {
				return previousAttributes[key] !== attributes[key] ? attributes[key] || "" : "";
			}
			getRepeaterItemActiveIndex() {
				return this.getContainer().renderer.view.model.changed.editSettings.changed.activeItemIndex || this.getContainer().renderer.view.model.changed.editSettings.attributes.activeItemIndex;
			}
			tryHandleDynamicCoverSettings(dataBinding, settings) {
				if (!this.isAdvancedDynamicSettings(settings.attributes)) return false;
				this.isRendering = true;
				dataBinding.el.textContent = this.getTitleWithAdvancedValues(settings, dataBinding.el.textContent);
				return true;
			}
			isAdvancedDynamicSettings(attributes) {
				return "before" in attributes && "after" in attributes && "fallback" in attributes;
			}
			isSettingChanged(settings, bindingSettings) {
				var _settings$attributes$;
				var _settings$_previousAt2;
				return ((_settings$attributes$ = settings.attributes.__dynamic__) === null || _settings$attributes$ === void 0 ? void 0 : _settings$attributes$[bindingSettings]) !== ((_settings$_previousAt2 = settings._previousAttributes.__dynamic__) === null || _settings$_previousAt2 === void 0 ? void 0 : _settings$_previousAt2[bindingSettings]);
			}
			isTitleOrLinkChanged(settings) {
				return this.isSettingChanged(settings, this.itemTitle) || this.isSettingChanged(settings, this.itemLink);
			}
		};
	}));
	//#endregion
	//#region modules/mega-menu/assets/js/editor/nested-module.js
	var NestedModule;
	var init_nested_module = __esmMin((() => {
		init_view();
		NestedModule = class extends elementor.modules.elements.types.NestedElementBase {
			getType() {
				return "mega-menu";
			}
			getView() {
				return View;
			}
		};
	}));
	//#endregion
	//#region modules/mega-menu/assets/js/editor/editor-module.js
	var require_editor_module = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var ElementEditorModule = require_element_editor_module();
		module.exports = ElementEditorModule.extend({
			__construct() {
				this.cache = {};
				ElementEditorModule.prototype.__construct.apply(this, arguments);
			},
			onInit() {
				elementor.channels.editor.on("editor:widget:mega-menu:section_layout:activated", this.maybeSetContentWidthValue);
			},
			maybeSetContentWidthValue() {
				const contentWidthControlView = this.getEditorControlView("content_width");
				const contentWidthControlValue = contentWidthControlView.getControlValue();
				if ([
					"",
					"full",
					"boxed"
				].includes(contentWidthControlValue)) {
					contentWidthControlView.setValue("full_width");
					contentWidthControlView.applySavedValue();
				}
			}
		});
	}));
	//#endregion
	//#region modules/mega-menu/assets/js/editor/utils/url-helper.js
	var UrlHelper;
	var init_url_helper = __esmMin((() => {
		UrlHelper = class {
			parse_url(url) {
				try {
					const { hostname, pathname, search } = new URL(url);
					return [
						hostname.replace("www.", ""),
						pathname.replace(/^\/+|\/+$/g, ""),
						search
					];
				} catch (err) {
					return false;
				}
			}
		};
	}));
	//#endregion
	//#region modules/mega-menu/assets/js/editor/module.js
	var module_exports$3 = /* @__PURE__ */ __exportAll({ default: () => Module$2 });
	var import_editor_module, Module$2;
	var init_module$3 = __esmMin((() => {
		init_nested_module();
		import_editor_module = /* @__PURE__ */ __toESM(require_editor_module());
		init_url_helper();
		Module$2 = class extends elementorModules.editor.utils.Module {
			static {
				__name(this, "Module");
			}
			constructor() {
				super();
				elementor.elementsManager.registerElementType(new NestedModule());
				new import_editor_module.default();
				this.urlHelper = new UrlHelper();
			}
			getCurrentMenuItemClass(menuLinkUrl, permalinkUrl) {
				menuLinkUrl = menuLinkUrl === null || menuLinkUrl === void 0 ? void 0 : menuLinkUrl.trim(menuLinkUrl);
				if (!menuLinkUrl || !permalinkUrl) return "";
				const permalinkArray = this.urlHelper.parse_url(permalinkUrl);
				const menuItemUrlArray = this.urlHelper.parse_url(menuLinkUrl);
				return _.isEqual(permalinkArray, menuItemUrlArray) ? "e-current" : "";
			}
			onElementorFrontendInit() {
				elementor.on("document:loaded", this.closeAllMegaMenus.bind(this));
			}
			closeAllMegaMenus() {
				const megaMenus = elementor.$previewContents[0].querySelectorAll(".elementor-widget-n-menu");
				if (megaMenus.length) Array.from(megaMenus).forEach((node) => {
					const id = node.getAttribute("data-id");
					window.jQuery(window).trigger("elementor/mega-menu/dropdown-toggle-by-keyboard", {
						widgetId: id,
						show: false
					});
				});
			}
		};
	}));
	//#endregion
	//#region modules/nested-carousel/assets/js/editor/nested-carousel.js
	var NestedCarousel;
	var init_nested_carousel = __esmMin((() => {
		NestedCarousel = class extends elementor.modules.elements.types.NestedElementBase {
			getType() {
				return "nested-carousel";
			}
		};
	}));
	//#endregion
	//#region modules/nested-carousel/assets/js/editor/module.js
	var module_exports$2 = /* @__PURE__ */ __exportAll({ default: () => Module$1 });
	var Module$1;
	var init_module$2 = __esmMin((() => {
		init_nested_carousel();
		Module$1 = class {
			static {
				__name(this, "Module");
			}
			constructor() {
				elementor.elementsManager.registerElementType(new NestedCarousel());
			}
		};
	}));
	//#endregion
	//#region modules/loop-filter/assets/js/editor/taxonomy-filter.js
	var require_taxonomy_filter = /* @__PURE__ */ __commonJSMin(((exports, module) => {
		var __defProp = Object.defineProperty;
		var __getOwnPropSymbols = Object.getOwnPropertySymbols;
		var __hasOwnProp = Object.prototype.hasOwnProperty;
		var __propIsEnum = Object.prototype.propertyIsEnumerable;
		var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
			enumerable: true,
			configurable: true,
			writable: true,
			value
		}) : obj[key] = value;
		var __spreadValues = (a, b) => {
			for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
			if (__getOwnPropSymbols) {
				for (var prop of __getOwnPropSymbols(b)) if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
			}
			return a;
		};
		var ElementEditorModule = require_element_editor_module();
		module.exports = ElementEditorModule.extend({
			__construct() {
				this.cache = {};
				ElementEditorModule.prototype.__construct.apply(this, arguments);
			},
			onInit() {
				elementor.channels.editor.on("editor:widget:taxonomy-filter:section_taxonomy_filter:activated", this.onTaxonomyFilterSectionActive);
			},
			onTaxonomyFilterSectionActive() {
				this.updateSelectedElementOptions();
				const selectedElementControlValue = this.getEditorControlView("selected_element").getControlValue();
				if (!selectedElementControlValue) return;
				if (this.handleInvalidSetup(selectedElementControlValue)) return;
				if (selectedElementControlValue) this.updateTaxonomyOptions(selectedElementControlValue);
			},
			updateSelectedElementOptions() {
				const selectedElementControlView = this.getEditorControlView("selected_element");
				const selectedElementControlValue = selectedElementControlView.getControlValue();
				if (!(!!selectedElementControlValue ? elementor.$previewContents[0].querySelector(`[data-elementor-id="${elementor.config.document.id}"] .elementor-element-${selectedElementControlValue}`) : "")) selectedElementControlView.setValue("");
				const loopWidgets = elementor.$previewContents[0].querySelectorAll(`[data-elementor-id="${elementor.config.document.id}"] .elementor-widget-loop-grid`);
				const selectedElementControlOptions = { "": (0, _wordpress_i18n.__)("Select a widget", "elementor-pro") };
				if (!loopWidgets.length) {
					this.updateOptions("selected_element", selectedElementControlOptions);
					selectedElementControlView.setValue("");
				}
				let index = 1;
				for (const loopWidget of loopWidgets) selectedElementControlOptions[loopWidget.dataset.id] = `${(0, _wordpress_i18n.__)("Loop Grid", "elementor-pro")} ${index++}`;
				this.updateOptions("selected_element", selectedElementControlOptions);
			},
			onElementChange(setting, controlView) {
				if ("selected_element" !== setting) return;
				const controlValue = controlView.getControlValue();
				if (this.handleInvalidSetup(controlValue)) return;
				if (controlValue) this.updateTaxonomyOptions(controlValue);
				else this.updateOptions("taxonomy", { "": (0, _wordpress_i18n.__)("Select a taxonomy", "elementor-pro") });
			},
			getPostSourceQueryPostType(loopWidgetContainer) {
				const querySource = loopWidgetContainer.settings.attributes.post_query_post_type;
				let queryPostType = "";
				switch (querySource) {
					case "current_query":
						queryPostType = elementorPro.config.loopFilter.mainQueryPostType;
						break;
					case "by_id":
						queryPostType = "post";
						break;
					case "related":
						queryPostType = "post";
						break;
					default: queryPostType = querySource;
				}
				return queryPostType;
			},
			getLoopQueryPostType(loopWidgetId) {
				const loopWidgetContainer = elementor.getContainer(loopWidgetId);
				if ("post" === loopWidgetContainer.settings.attributes._skin) return this.getPostSourceQueryPostType(loopWidgetContainer);
				return "product";
			},
			updateTaxonomyOptions(loopWidgetId) {
				const postType = this.getLoopQueryPostType(loopWidgetId);
				return this.getPostTypeTaxonomies(postType).then((response) => {
					if (!(response instanceof Response)) return response;
					else if (!response.ok || 400 <= response.status) {
						this.displayErrorDialog();
						return {};
					}
					return response.json();
				}).catch(() => {
					this.displayErrorDialog();
					return {};
				}).then((response) => {
					let data = (response == null ? void 0 : response.data) || response;
					if (!Object.keys(data).length) {
						this.updateOptions("taxonomy", { "": (0, _wordpress_i18n.__)("No taxonomies found", "elementor-pro") });
						return;
					}
					data = __spreadValues(__spreadValues({}, { "": (0, _wordpress_i18n.__)("Select a taxonomy", "elementor-pro") }), data);
					this.cache[postType] = data;
					this.updateOptions("taxonomy", data);
				});
			},
			/**
			*
			* @param {string} postType
			* @return {Promise} Promise that should resolve with taxonomies data.
			*/
			getPostTypeTaxonomies(postType) {
				if (this.cache[postType] && Object.keys(this.cache[postType]).length) return Promise.resolve(this.cache[postType]);
				return this.fetchPostTypeTaxonomies(postType);
			},
			fetchPostTypeTaxonomies(postType) {
				return fetch(`${elementorCommon.config.urls.rest}elementor-pro/v1/get-post-type-taxonomies`, {
					method: "POST",
					headers: {
						"Content-Type": "application/json",
						"X-WP-Nonce": elementorWebCliConfig.nonce
					},
					body: JSON.stringify({ post_type: postType })
				});
			},
			displayErrorDialog(options = {}) {
				const id = (options == null ? void 0 : options.id) || "e-filter-error-message";
				const showDialog = () => {
					elementorCommon.dialogsManager.createWidget("alert", {
						id,
						className: "e-filter__error-message",
						headerMessage: (options == null ? void 0 : options.headerMessage) || (0, _wordpress_i18n.__)("Something went wrong", "elementor-pro"),
						message: (options == null ? void 0 : options.message) || (0, _wordpress_i18n.__)("We are experiencing technical difficulties on our end. Please try again to reconnect.", "elementor-pro"),
						position: {
							my: "center center",
							at: "center center"
						},
						strings: { confirm: (0, _wordpress_i18n.__)("OK", "elementor-pro") }
					}).show();
				};
				setTimeout(showDialog, 0);
			},
			handleInvalidSetup(loopWidgetId) {
				const loopWidgetContainer = elementor.getContainer(loopWidgetId);
				if (!loopWidgetContainer) return false;
				if (!("current_query" === loopWidgetContainer.settings.attributes.post_query_post_type && "single-post" === elementor.config.document.type)) return false;
				this.displayErrorDialog({
					id: "e-filter-invalid-setup-error",
					headerMessage: (0, _wordpress_i18n.__)("Invalid Setup", "elementor-pro"),
					message: (0, _wordpress_i18n.__)("Cannot filter a single-item list, please change from \"Current Query\" to a different query setting.", "elementor-pro")
				});
				return true;
			}
		});
	}));
	//#endregion
	//#region modules/loop-filter/assets/js/editor/module.js
	var module_exports$1 = /* @__PURE__ */ __exportAll({ default: () => LoopFilter });
	var import_taxonomy_filter, LoopFilter;
	var init_module$1 = __esmMin((() => {
		import_taxonomy_filter = /* @__PURE__ */ __toESM(require_taxonomy_filter());
		LoopFilter = class extends elementorModules.editor.utils.Module {
			onElementorInit() {
				this.taxonomyFilter = new import_taxonomy_filter.default("taxonomy-filter");
			}
		};
	}));
	//#endregion
	//#region modules/off-canvas/assets/js/editor/components/empty-component.js
	function empty_component_default() {
		return /* @__PURE__ */ react.default.createElement("div", { className: "elementor-first-add" }, /* @__PURE__ */ react.default.createElement("div", {
			className: "elementor-icon eicon-plus",
			onClick: () => $e.route("panel/elements/categories")
		}));
	}
	var init_empty_component = __esmMin((() => {
		__name(empty_component_default, "default");
	}));
	//#endregion
	//#region modules/off-canvas/assets/js/editor/off-canvas.js
	var OffCanvas;
	var init_off_canvas = __esmMin((() => {
		init_empty_component();
		OffCanvas = class extends elementor.modules.elements.types.NestedElementBase {
			getType() {
				return "off-canvas";
			}
			getEmptyView() {
				return empty_component_default;
			}
		};
	}));
	//#endregion
	//#region modules/off-canvas/assets/js/editor/module.js
	var module_exports = /* @__PURE__ */ __exportAll({ default: () => Module });
	var Module;
	var init_module = __esmMin((() => {
		init_off_canvas();
		init_defineProperty();
		Module = class extends elementorModules.editor.utils.Module {
			constructor(...args) {
				super(args);
				_defineProperty(this, "populateOffCanvasDropdownOptions", (eventName, ...args) => {
					if (!this.isOffCanvasTagPopover(eventName)) return;
					const currentView = args[0];
					const controlModel = currentView.collection.findWhere({ name: "off_canvas" });
					if (!controlModel) return;
					const offCanvasWidgets = this.getOffCanvasWidgetsForCurrentDocument();
					const selectedElementControlOptions = { "": (0, _wordpress_i18n.__)("Select a widget", "elementor-pro") };
					if (!offCanvasWidgets.length) this.updateControl(controlModel, selectedElementControlOptions);
					for (const offCanvasWidget of offCanvasWidgets) {
						const offCanvasId = offCanvasWidget.dataset.id;
						selectedElementControlOptions[offCanvasId] = offCanvasWidget.querySelector(".e-off-canvas").getAttribute("aria-label");
					}
					this.updateControl(controlModel, selectedElementControlOptions);
					currentView.children.findByModel(controlModel).render();
				});
				elementor.elementsManager.registerElementType(new OffCanvas());
				elementor.listenTo(elementor.channels.editor, "all", this.populateOffCanvasDropdownOptions);
			}
			showOffCanvas() {
				const settings = {
					id: elementor.getPanelView().getCurrentPageView().getOption("editedElementView").getEditModel().get("id"),
					displayMode: "open"
				};
				elementor.$preview[0].contentWindow.dispatchEvent(new CustomEvent("elementor-pro/off-canvas/toggle-display-mode", { detail: settings }));
			}
			updateControl(controlModel, values) {
				controlModel.set({ options: values });
			}
			getOffCanvasWidgetsForCurrentDocument() {
				return elementor.$previewContents[0].querySelectorAll(`[data-elementor-id="${elementor.config.document.id}"] .elementor-widget-off-canvas.elementor-element-edit-mode`);
			}
			isOffCanvasTagPopover(eventName) {
				return eventName.endsWith(":off-canvas:settings:activated");
			}
			hideAdvancedTab(sectionName, editor) {
				var _editor$model;
				if ("off-canvas" !== ((editor === null || editor === void 0 || (_editor$model = editor.model) === null || _editor$model === void 0 ? void 0 : _editor$model.get("widgetType")) || "")) return;
				const advancedTab = (editor === null || editor === void 0 ? void 0 : editor.el.querySelector(".elementor-tab-control-advanced")) || false;
				if (advancedTab) advancedTab.style.display = "none";
			}
			onInit() {
				elementor.channels.editor.on("editor:widget:off-canvas:section_layout:activated", this.showOffCanvas.bind(this));
				elementor.channels.editor.on("section:activated", this.hideAdvancedTab.bind(this));
			}
		};
	}));
	//#endregion
	//#region assets/dev/js/editor/editor.js
	init_asyncToGenerator();
	init_preload_helper();
	var ElementorPro = Marionette.Application.extend({
		config: {},
		modules: {},
		initModules() {
			var _this = this;
			var QueryControl = require_editor$5();
			var Library = require_editor$4();
			var FlipBox = require_editor$3();
			var ShareButtons = require_editor$2();
			var AssetsManager = require_editor$1();
			var ThemeElements = require_editor();
			this.modules = {
				queryControl: new QueryControl(),
				forms: new FormsModule(),
				library: new Library(),
				customCSS: new editor_default$1(),
				globalWidget: new Module$7(),
				flipBox: new FlipBox(),
				motionFX: new editor_default(),
				shareButtons: new ShareButtons(),
				assetsManager: new AssetsManager(),
				themeElements: new ThemeElements(),
				themeBuilder: new ThemeBuilderModule(),
				siteEditor: new Module$5(),
				screenshots: new Module$6(),
				woocommerce: new import_module$1.default(),
				stripe: new StripeModule(),
				loopBuilder: new import_module$2.default(),
				pageTransitions: new module_default(),
				popup: new import_module.default(),
				videoPlaylistModule: new Module$4(),
				ScrollSnapModule: new Module$3()
			};
			if (elementorCommon.config.experimentalFeatures["mega-menu"]) elementorCommon.elements.$window.on("elementor/nested-element-type-loaded", _asyncToGenerator(function* () {
				_this.modules.megaMenu = new (yield __vitePreload(_asyncToGenerator(function* () {
					const { default: __vite_default__ } = yield Promise.resolve().then(() => (init_module$3(), module_exports$3));
					return { default: __vite_default__ };
				}), void 0)).default();
			}));
			if (elementorCommon.config.experimentalFeatures.container) elementorCommon.elements.$window.on("elementor/nested-element-type-loaded", _asyncToGenerator(function* () {
				_this.modules.nestedCarousel = new (yield __vitePreload(_asyncToGenerator(function* () {
					const { default: __vite_default__ } = yield Promise.resolve().then(() => (init_module$2(), module_exports$2));
					return { default: __vite_default__ };
				}), void 0)).default();
			}));
			__vitePreload(_asyncToGenerator(function* () {
				const { default: LoopFilter } = yield Promise.resolve().then(() => (init_module$1(), module_exports$1));
				return { default: LoopFilter };
			}), void 0).then(({ default: LoopFilter }) => {
				this.modules.loopFilter = new LoopFilter();
			});
			if (elementorCommon.config.experimentalFeatures.container) elementorCommon.elements.$window.on("elementor/nested-element-type-loaded", _asyncToGenerator(function* () {
				_this.modules.offCanvas = new (yield __vitePreload(_asyncToGenerator(function* () {
					const { default: __vite_default__ } = yield Promise.resolve().then(() => (init_module(), module_exports));
					return { default: __vite_default__ };
				}), void 0)).default();
			}));
		},
		ajax: {
			prepareArgs(args) {
				args[0] = "pro_" + args[0];
				return args;
			},
			send() {
				return elementorCommon.ajax.send.apply(elementorCommon.ajax, this.prepareArgs(arguments));
			},
			addRequest() {
				return elementorCommon.ajax.addRequest.apply(elementorCommon.ajax, this.prepareArgs(arguments));
			}
		},
		translate(stringKey, templateArgs) {
			return elementorCommon.translate(stringKey, null, templateArgs, this.config.i18n);
		},
		onStart() {
			this.config = elementorProEditorConfig;
			this.initModules();
			jQuery(window).on("elementor:init", () => this.onElementorInit()).on("elementor/connect/success/editor-pro-activate", this.onActivateSuccess);
		},
		onElementorInit() {
			elementor.on("preview:loaded", () => this.onElementorPreviewLoaded());
			elementorPro.libraryRemoveGetProButtons();
			elementorCommon.debug.addURLToWatch("elementor-pro/assets");
			if (elementorPro.config.should_show_promotion) new notesContextMenu();
		},
		onElementorPreviewLoaded() {
			elementor.$preview[0].contentWindow.elementorPro = this;
		},
		libraryRemoveGetProButtons() {
			elementor.hooks.addFilter("elementor/editor/template-library/template/action-button", (viewID, templateData) => {
				var _elementor$config;
				if (!templateData.accessTier || !((_elementor$config = elementor.config) === null || _elementor$config === void 0 || (_elementor$config = _elementor$config.library_connect) === null || _elementor$config === void 0 ? void 0 : _elementor$config.current_access_tier)) return this.getProButtonViewIdBC(viewID, templateData);
				if (templateData.accessTier !== elementor.config.library_connect.base_access_tier && !elementorPro.config.isActive) return "#tmpl-elementor-pro-template-library-activate-license-button";
				return isTierAtLeast(elementor.config.library_connect.current_access_tier, templateData.accessTier) ? "#tmpl-elementor-template-library-insert-button" : viewID;
			});
		},
		getProButtonViewIdBC(viewID, templateData) {
			if (templateData.accessLevel > 0 && !elementorPro.config.isActive) return "#tmpl-elementor-pro-template-library-activate-license-button";
			if (templateData.accessLevel > elementor.config.library_connect.current_access_level) return viewID;
			return "#tmpl-elementor-template-library-insert-button";
		},
		onActivateSuccess() {
			elementor.noticeBar.onCloseClick();
			elementor.config.library_connect.is_connected = true;
			elementorPro.config.isActive = true;
			elementor.notifications.showToast({ message: (0, _wordpress_i18n.__)("Connected Successfully", "elementor-pro") });
		}
	});
	window.elementorPro = new ElementorPro();
	elementorPro.start();
	//#endregion
})(wp.i18n, React);

//# sourceMappingURL=editor.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit