PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0
Elementor Website Builder – more than just a page builder v4.3.0
4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 All 453 releases
elementor / assets / js / packages / editor-elements-panel / editor-elements-panel.js

editor-elements-panel.js in Elementor Website Builder – more than just a page builder 4.3.0, at assets/js/packages/editor-elements-panel/editor-elements-panel.js

208 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function(_elementor_editor, react, _elementor_ui, _elementor_editor_v1_adapters, _elementor_utils) {
2
3 //#region \0rolldown/runtime.js
4 var __create = Object.create;
5 var __defProp = Object.defineProperty;
6 var __name = (target, value) => __defProp(target, "name", {
7 value,
8 configurable: true
9 });
10 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11 var __getOwnPropNames = Object.getOwnPropertyNames;
12 var __getProtoOf = Object.getPrototypeOf;
13 var __hasOwnProp = Object.prototype.hasOwnProperty;
14 var __exportAll = (all, no_symbols) => {
15 let target = {};
16 for (var name in all) {
17 __defProp(target, name, {
18 get: all[name],
19 enumerable: true
20 });
21 }
22 if (!no_symbols) {
23 __defProp(target, Symbol.toStringTag, { value: "Module" });
24 }
25 return target;
26 };
27 var __copyProps = (to, from, except, desc) => {
28 if (from && typeof from === "object" || typeof from === "function") {
29 for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
30 key = keys[i];
31 if (!__hasOwnProp.call(to, key) && key !== except) {
32 __defProp(to, key, {
33 get: ((k) => from[k]).bind(null, key),
34 enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
35 });
36 }
37 }
38 }
39 return to;
40 };
41 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
42 value: mod,
43 enumerable: true
44 }) : target, mod));
45
46 //#endregion
47 react = __toESM(react);
48
49 //#region packages/packages/core/editor-elements-panel/src/consts.ts
50 var LEGACY_ELEMENTS_PANEL_COMPONENT_NAME = "panel/elements";
51 var LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX = `${LEGACY_ELEMENTS_PANEL_COMPONENT_NAME}/`;
52
53 //#endregion
54 //#region packages/packages/core/editor-elements-panel/src/tabs.ts
55 var registry = /* @__PURE__ */ new Map();
56 var DEFAULT_PRIORITY = 10;
57 function registerTab({ id, priority = DEFAULT_PRIORITY, ...props }) {
58 const existing = registry.get(id);
59 if (!existing || priority <= existing.priority) registry.set(id, {
60 ...props,
61 priority
62 });
63 }
64 function getTab(id) {
65 return registry.get(id) ?? null;
66 }
67
68 //#endregion
69 //#region packages/packages/core/editor-elements-panel/src/utils/get-window.ts
70 function getWindow() {
71 return window;
72 }
73
74 //#endregion
75 //#region packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts
76 function useActiveTab() {
77 return (0, _elementor_editor_v1_adapters.__privateUseListenTo)([
78 (0, _elementor_editor_v1_adapters.v1ReadyEvent)(),
79 (0, _elementor_editor_v1_adapters.routeOpenEvent)(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX),
80 (0, _elementor_editor_v1_adapters.routeCloseEvent)(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)
81 ], () => {
82 const panelRoute = getWindow().$e.routes.getCurrent()?.panel;
83 if (!panelRoute || !panelRoute.startsWith(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)) return null;
84 return getTab(panelRoute.replace(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX, "")) ?? null;
85 });
86 }
87
88 //#endregion
89 //#region packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx
90 var PANEL_WRAPPER_ID = "elementor-panel-elements-wrapper";
91 function ElementsPanelTab() {
92 const TabComponent = useActiveTab()?.component;
93 const container = document.getElementById(PANEL_WRAPPER_ID);
94 return TabComponent && container ? /* @__PURE__ */ react.createElement(_elementor_ui.Portal, { container }, /* @__PURE__ */ react.createElement(TabComponent, null)) : null;
95 }
96
97 //#endregion
98 //#region packages/packages/core/editor-elements-panel/src/init.ts
99 function init() {
100 (0, _elementor_editor.injectIntoTop)({
101 id: "editor-elements-panel-tab",
102 component: ElementsPanelTab
103 });
104 }
105
106 //#endregion
107 //#region packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts
108 function createLegacyView() {
109 return getWindow().Marionette.CompositeView.extend({
110 template: `<div></div>`,
111 initialize() {
112 getWindow().elementor.getPanelView().getCurrentPageView().search.reset();
113 }
114 });
115 }
116
117 //#endregion
118 //#region packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts
119 var NAVIGATION_WRAPPER_ID = "elementor-panel-elements-navigation";
120 var ElementsPanelWrapperElementNotFoundError = (0, _elementor_utils.createError)({
121 code: "elements_panel_wrapper_element_not_found",
122 message: "Elementor Elements Panel wrapper element not found"
123 });
124 function getNavigationWrapperElement() {
125 const wrapper = document.getElementById(NAVIGATION_WRAPPER_ID);
126 if (!wrapper) throw new ElementsPanelWrapperElementNotFoundError();
127 return wrapper;
128 }
129
130 //#endregion
131 //#region packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts
132 function createTabNavItem({ id, label, route, isActive, position }) {
133 const wrapper = getNavigationWrapperElement();
134 const btn = document.createElement("button");
135 btn.className = [
136 "elementor-component-tab",
137 "elementor-panel-navigation-tab",
138 isActive ? "elementor-active" : ""
139 ].filter(Boolean).join(" ");
140 btn.setAttribute("data-tab", id);
141 btn.textContent = label;
142 btn.addEventListener("click", () => {
143 getWindow().$e.route(route);
144 });
145 if (position !== void 0 && wrapper.children[position]) wrapper.insertBefore(btn, wrapper.children[position]);
146 else wrapper.appendChild(btn);
147 }
148
149 //#endregion
150 //#region packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts
151 var ComponentNotFoundError = (0, _elementor_utils.createError)({
152 code: "e_component_not_found",
153 message: "Elementor component not found"
154 });
155 function getLegacyElementsPanelComponent() {
156 const eComponent = getWindow().$e.components.get(LEGACY_ELEMENTS_PANEL_COMPONENT_NAME);
157 if (!eComponent) throw new ComponentNotFoundError({ context: { componentId: LEGACY_ELEMENTS_PANEL_COMPONENT_NAME } });
158 return eComponent;
159 }
160
161 //#endregion
162 //#region packages/packages/core/editor-elements-panel/src/inject-tab.ts
163 function injectTab({ id, label, component, position }) {
164 registerTab({
165 id,
166 label,
167 component
168 });
169 (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.v1ReadyEvent)(), () => {
170 window.elementor?.hooks?.addFilter("panel/elements/regionViews", (regions, { elements }) => {
171 regions[id] = {
172 region: elements,
173 view: createLegacyView()
174 };
175 return regions;
176 });
177 });
178 (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.windowEvent)("elementor/panel/init"), () => {
179 getLegacyElementsPanelComponent().addTab(id, { title: label });
180 });
181 (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.routeOpenEvent)(LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX), (e) => {
182 const route = `${LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX}${id}`;
183 createTabNavItem({
184 id,
185 label,
186 route,
187 isActive: "route" in e && e.route === route,
188 position
189 });
190 });
191 }
192
193 //#endregion
194 //#region packages/packages/core/editor-elements-panel/src/index.ts
195 var src_exports = /* @__PURE__ */ __exportAll({
196 init: () => init,
197 injectTab: () => injectTab,
198 registerTab: () => registerTab
199 });
200
201 //#endregion
202 //#region \0elementor-package-library-entry
203 (window.elementorV2 = window.elementorV2 || {}).editorElementsPanel = src_exports;
204
205 //#endregion
206 })(elementorV2.editor, React, elementorV2.ui, elementorV2.editorV1Adapters, elementorV2.utils);
207 window.elementorV2.editorElementsPanel?.init?.();
208 //# sourceMappingURL=editor-elements-panel.js.map