PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.1
Elementor Website Builder – more than just a page builder v4.3.1
4.3.2 4.3.1 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 All 455 releases
← All changes | assets/js/packages/editor-elements-panel/editor-elements-panel.js +207 -2 4.1.1 → 4.3.1 View file →
@@ -1,3 +1,208 @@
1 -/*! For license information please see editor-elements-panel.js.LICENSE.txt */
2 -!function(){"use strict";var e={"./packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx":function(e,t,n){n.r(t),n.d(t,{ElementsPanelTab:function(){return ElementsPanelTab}});var r=n("react"),a=n("@elementor/ui"),o=n("./packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts");const i="elementor-panel-elements-wrapper";function ElementsPanelTab(){const e=(0,o.useActiveTab)(),t=e?.component,n=document.getElementById(i);return t&&n?r.createElement(a.Portal,{container:n},r.createElement(t,null)):null}},"./packages/packages/core/editor-elements-panel/src/consts.ts":function(e,t,n){n.r(t),n.d(t,{LEGACY_ELEMENTS_PANEL_COMPONENT_NAME:function(){return r},LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX:function(){return a}});const r="panel/elements",a=`${r}/`},"./packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts":function(e,t,n){n.r(t),n.d(t,{useActiveTab:function(){return useActiveTab}});var r=n("@elementor/editor-v1-adapters"),a=n("./packages/packages/core/editor-elements-panel/src/consts.ts"),o=n("./packages/packages/core/editor-elements-panel/src/tabs.ts"),i=n("./packages/packages/core/editor-elements-panel/src/utils/get-window.ts");function useActiveTab(){return(0,r.__privateUseListenTo)([(0,r.v1ReadyEvent)(),(0,r.routeOpenEvent)(a.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX),(0,r.routeCloseEvent)(a.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)],()=>{const e=(0,i.getWindow)().$e.routes.getCurrent()?.panel;if(!e||!e.startsWith(a.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX))return null;const t=e.replace(a.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX,"");return(0,o.getTab)(t)??null})}},"./packages/packages/core/editor-elements-panel/src/init.ts":function(e,t,n){n.r(t),n.d(t,{init:function(){return init}});var r=n("@elementor/editor"),a=n("./packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx");function init(){(0,r.injectIntoTop)({id:"editor-elements-panel-tab",component:a.ElementsPanelTab})}},"./packages/packages/core/editor-elements-panel/src/inject-tab.ts":function(e,t,n){n.r(t),n.d(t,{injectTab:function(){return injectTab}});var r=n("@elementor/editor-v1-adapters"),a=n("./packages/packages/core/editor-elements-panel/src/consts.ts"),o=n("./packages/packages/core/editor-elements-panel/src/tabs.ts"),i=n("./packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts"),c=n("./packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts"),s=n("./packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts");function injectTab({id:e,label:t,component:n,position:l}){(0,o.registerTab)({id:e,label:t,component:n}),(0,r.__privateListenTo)((0,r.v1ReadyEvent)(),()=>{window.elementor?.hooks?.addFilter("panel/elements/regionViews",(t,{elements:n})=>(t[e]={region:n,view:(0,i.createLegacyView)()},t))}),(0,r.__privateListenTo)((0,r.windowEvent)("elementor/panel/init"),()=>{(0,s.getLegacyElementsPanelComponent)().addTab(e,{title:t})}),(0,r.__privateListenTo)((0,r.routeOpenEvent)(a.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX),n=>{const r=`${a.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX}${e}`;(0,c.createTabNavItem)({id:e,label:t,route:r,isActive:"route"in n&&n.route===r,position:l})})}},"./packages/packages/core/editor-elements-panel/src/tabs.ts":function(e,t,n){n.r(t),n.d(t,{getTab:function(){return getTab},registerTab:function(){return registerTab}});const r=new Map,a=10;function registerTab({id:e,priority:t=a,...n}){const o=r.get(e);(!o||t<=o.priority)&&r.set(e,{...n,priority:t})}function getTab(e){return r.get(e)??null}},"./packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts":function(e,t,n){n.r(t),n.d(t,{createLegacyView:function(){return createLegacyView}});var r=n("./packages/packages/core/editor-elements-panel/src/utils/get-window.ts");function createLegacyView(){return(0,r.getWindow)().Marionette.CompositeView.extend({template:"<div></div>",initialize(){(0,r.getWindow)().elementor.getPanelView().getCurrentPageView().search.reset()}})}},"./packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts":function(e,t,n){n.r(t),n.d(t,{createTabNavItem:function(){return createTabNavItem}});var r=n("./packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts"),a=n("./packages/packages/core/editor-elements-panel/src/utils/get-window.ts");function createTabNavItem({id:e,label:t,route:n,isActive:o,position:i}){const c=(0,r.getNavigationWrapperElement)(),s=document.createElement("button");s.className=["elementor-component-tab","elementor-panel-navigation-tab",o?"elementor-active":""].filter(Boolean).join(" "),s.setAttribute("data-tab",e),s.textContent=t,s.addEventListener("click",()=>{(0,a.getWindow)().$e.route(n)}),void 0!==i&&c.children[i]?c.insertBefore(s,c.children[i]):c.appendChild(s)}},"./packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts":function(e,t,n){n.r(t),n.d(t,{getLegacyElementsPanelComponent:function(){return getLegacyElementsPanelComponent}});var r=n("@elementor/utils"),a=n("./packages/packages/core/editor-elements-panel/src/consts.ts"),o=n("./packages/packages/core/editor-elements-panel/src/utils/get-window.ts");const i=(0,r.createError)({code:"e_component_not_found",message:"Elementor component not found"});function getLegacyElementsPanelComponent(){const e=(0,o.getWindow)().$e.components.get(a.LEGACY_ELEMENTS_PANEL_COMPONENT_NAME);if(!e)throw new i({context:{componentId:a.LEGACY_ELEMENTS_PANEL_COMPONENT_NAME}});return e}},"./packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts":function(e,t,n){n.r(t),n.d(t,{getNavigationWrapperElement:function(){return getNavigationWrapperElement}});var r=n("@elementor/utils");const a="elementor-panel-elements-navigation",o=(0,r.createError)({code:"elements_panel_wrapper_element_not_found",message:"Elementor Elements Panel wrapper element not found"});function getNavigationWrapperElement(){const e=document.getElementById(a);if(!e)throw new o;return e}},"./packages/packages/core/editor-elements-panel/src/utils/get-window.ts":function(e,t,n){function getWindow(){return window}n.r(t),n.d(t,{getWindow:function(){return getWindow}})},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/ui":function(e){e.exports=window.elementorV2.ui},"@elementor/utils":function(e){e.exports=window.elementorV2.utils},react:function(e){e.exports=window.React}},t={};function __webpack_require__(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,__webpack_require__),a.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};!function(){__webpack_require__.r(n),__webpack_require__.d(n,{init:function(){return e.init},injectTab:function(){return t.injectTab},registerTab:function(){return r.registerTab}});var e=__webpack_require__("./packages/packages/core/editor-elements-panel/src/init.ts"),t=__webpack_require__("./packages/packages/core/editor-elements-panel/src/inject-tab.ts"),r=__webpack_require__("./packages/packages/core/editor-elements-panel/src/tabs.ts")}(),(window.elementorV2=window.elementorV2||{}).editorElementsPanel=n}(),window.elementorV2.editorElementsPanel?.init?.();
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?.();
3 208 //# sourceMappingURL=editor-elements-panel.js.map