# elementor/4.3.2/assets/js/packages/editor-elements-panel/editor-elements-panel.js

Elementor Website Builder – more than just a page builder, version 4.3.2. 208 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.3.2/code/assets/js/packages/editor-elements-panel/editor-elements-panel.js
- Raw: https://pluginprobe.com/plugins/elementor/4.3.2/raw/assets/js/packages/editor-elements-panel/editor-elements-panel.js
- Modified: 2026-09-01T11:47:36+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/4.3.2/code/assets/js/packages/editor-elements-panel/editor-elements-panel.js#L10-L20`.

```javascript
(function(_elementor_editor, react, _elementor_ui, _elementor_editor_v1_adapters, _elementor_utils) {

//#region \0rolldown/runtime.js
	var __create = Object.create;
	var __defProp = Object.defineProperty;
	var __name = (target, value) => __defProp(target, "name", {
		value,
		configurable: true
	});
	var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
	var __getOwnPropNames = Object.getOwnPropertyNames;
	var __getProtoOf = Object.getPrototypeOf;
	var __hasOwnProp = Object.prototype.hasOwnProperty;
	var __exportAll = (all, no_symbols) => {
		let target = {};
		for (var name in all) {
			__defProp(target, name, {
				get: all[name],
				enumerable: true
			});
		}
		if (!no_symbols) {
			__defProp(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.call(to, key) && key !== except) {
					__defProp(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(target, "default", {
		value: mod,
		enumerable: true
	}) : target, mod));

//#endregion
react = __toESM(react);

//#region packages/packages/core/editor-elements-panel/src/consts.ts
	var LEGACY_ELEMENTS_PANEL_COMPONENT_NAME = "panel/elements";
	var LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX = `${LEGACY_ELEMENTS_PANEL_COMPONENT_NAME}/`;

//#endregion
//#region packages/packages/core/editor-elements-panel/src/tabs.ts
	var registry = /* @__PURE__ */ new Map();
	var DEFAULT_PRIORITY = 10;
	function registerTab({ id, priority = DEFAULT_PRIORITY, ...props }) {
		const existing = registry.get(id);
		if (!existing || priority <= existing.priority) registry.set(id, {
			...props,
			priority
		});
	}
	function getTab(id) {
		return registry.get(id) ?? null;
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/utils/get-window.ts
	function getWindow() {
		return window;
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts
	function useActiveTab() {
		return (0, _elementor_editor_v1_adapters.__privateUseListenTo)([
			(0, _elementor_editor_v1_adapters.v1ReadyEvent)(),
			(0, _elementor_editor_v1_adapters.routeOpenEvent)(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX),
			(0, _elementor_editor_v1_adapters.routeCloseEvent)(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)
		], () => {
			const panelRoute = getWindow().$e.routes.getCurrent()?.panel;
			if (!panelRoute || !panelRoute.startsWith(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)) return null;
			return getTab(panelRoute.replace(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX, "")) ?? null;
		});
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx
	var PANEL_WRAPPER_ID = "elementor-panel-elements-wrapper";
	function ElementsPanelTab() {
		const TabComponent = useActiveTab()?.component;
		const container = document.getElementById(PANEL_WRAPPER_ID);
		return TabComponent && container ? /* @__PURE__ */ react.createElement(_elementor_ui.Portal, { container }, /* @__PURE__ */ react.createElement(TabComponent, null)) : null;
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/init.ts
	function init() {
		(0, _elementor_editor.injectIntoTop)({
			id: "editor-elements-panel-tab",
			component: ElementsPanelTab
		});
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts
	function createLegacyView() {
		return getWindow().Marionette.CompositeView.extend({
			template: `<div></div>`,
			initialize() {
				getWindow().elementor.getPanelView().getCurrentPageView().search.reset();
			}
		});
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts
	var NAVIGATION_WRAPPER_ID = "elementor-panel-elements-navigation";
	var ElementsPanelWrapperElementNotFoundError = (0, _elementor_utils.createError)({
		code: "elements_panel_wrapper_element_not_found",
		message: "Elementor Elements Panel wrapper element not found"
	});
	function getNavigationWrapperElement() {
		const wrapper = document.getElementById(NAVIGATION_WRAPPER_ID);
		if (!wrapper) throw new ElementsPanelWrapperElementNotFoundError();
		return wrapper;
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts
	function createTabNavItem({ id, label, route, isActive, position }) {
		const wrapper = getNavigationWrapperElement();
		const btn = document.createElement("button");
		btn.className = [
			"elementor-component-tab",
			"elementor-panel-navigation-tab",
			isActive ? "elementor-active" : ""
		].filter(Boolean).join(" ");
		btn.setAttribute("data-tab", id);
		btn.textContent = label;
		btn.addEventListener("click", () => {
			getWindow().$e.route(route);
		});
		if (position !== void 0 && wrapper.children[position]) wrapper.insertBefore(btn, wrapper.children[position]);
		else wrapper.appendChild(btn);
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts
	var ComponentNotFoundError = (0, _elementor_utils.createError)({
		code: "e_component_not_found",
		message: "Elementor component not found"
	});
	function getLegacyElementsPanelComponent() {
		const eComponent = getWindow().$e.components.get(LEGACY_ELEMENTS_PANEL_COMPONENT_NAME);
		if (!eComponent) throw new ComponentNotFoundError({ context: { componentId: LEGACY_ELEMENTS_PANEL_COMPONENT_NAME } });
		return eComponent;
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/inject-tab.ts
	function injectTab({ id, label, component, position }) {
		registerTab({
			id,
			label,
			component
		});
		(0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.v1ReadyEvent)(), () => {
			window.elementor?.hooks?.addFilter("panel/elements/regionViews", (regions, { elements }) => {
				regions[id] = {
					region: elements,
					view: createLegacyView()
				};
				return regions;
			});
		});
		(0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.windowEvent)("elementor/panel/init"), () => {
			getLegacyElementsPanelComponent().addTab(id, { title: label });
		});
		(0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.routeOpenEvent)(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX), (e) => {
			const route = `${LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX}${id}`;
			createTabNavItem({
				id,
				label,
				route,
				isActive: "route" in e && e.route === route,
				position
			});
		});
	}

//#endregion
//#region packages/packages/core/editor-elements-panel/src/index.ts
	var src_exports = /* @__PURE__ */ __exportAll({
		init: () => init,
		injectTab: () => injectTab,
		registerTab: () => registerTab
	});

//#endregion
//#region \0elementor-package-library-entry
	(window.elementorV2 = window.elementorV2 || {}).editorElementsPanel = src_exports;

//#endregion
})(elementorV2.editor, React, elementorV2.ui, elementorV2.editorV1Adapters, elementorV2.utils);
window.elementorV2.editorElementsPanel?.init?.();
//# sourceMappingURL=editor-elements-panel.js.map
```
