PluginProbe
Elementor Website Builder – more than just a page builder / trunk
Elementor Website Builder – more than just a page builder vtrunk
4.3.3 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 All 456 releases
← All changes | assets/js/packages/editor-panels/editor-panels.js +366 -2 4.1.3 → trunk View file →
@@ -1,3 +1,367 @@
1 -/*! For license information please see editor-panels.js.LICENSE.txt */
2 -!function(){"use strict";var e={"./packages/packages/core/editor-panels/src/api.ts":function(e,n,t){t.r(n),t.d(n,{createPanel:function(){return createPanel},registerPanel:function(){return registerPanel}});var r=t("@elementor/editor-v1-adapters"),a=t("@elementor/store"),o=t("./packages/packages/core/editor-panels/src/location.ts"),c=t("./packages/packages/core/editor-panels/src/store/index.ts"),s=t("./packages/packages/core/editor-panels/src/sync.ts");function createPanel({id:e,component:n,onOpen:t,onClose:o,allowedEditModes:i,blockOnKitRoutes:l,isOpenPreviousElement:p=!1}){const u=function createUseStatus(e,n={}){return()=>{const t=(0,a.__useSelector)(c.selectOpenId),o=(0,r.__privateUseRouteStatus)(s.V2_PANEL,n);return{isOpen:t===e&&o.isActive,isBlocked:o.isBlocked}}}(e,{allowedEditModes:i,blockOnKitRoutes:l}),d=function createUseActions(e,n,t={},o){let s=null,i=null;return()=>{const l=(0,a.__useDispatch)(),{isBlocked:p}=n();return{open:async()=>{p||(o&&(i=window.elementor?.selection?.getElements?.()[0]?.model.get("id")??null),l(c.slice.actions.open(e)),s=t.onOpen?.()??null)},close:async()=>{if(!p&&(l(c.slice.actions.close(e)),await(t.onClose?.(s)),i)){try{const e=window.elementor?.getContainer?.(i);(0,r.__privateRunCommand)("document/elements/select",{container:e})}catch{}i=null}}}}}(e,u,{onOpen:t,onClose:o},p);return{panel:{id:e,component:n},usePanelStatus:u,usePanelActions:d}}function registerPanel({id:e,component:n}){(0,o.injectIntoPanels)({id:e,component:n})}},"./packages/packages/core/editor-panels/src/components/external/index.ts":function(e,n,t){t.r(n),t.d(n,{Panel:function(){return r.default},PanelBody:function(){return c.default},PanelFooter:function(){return s.default},PanelHeader:function(){return a.default},PanelHeaderTitle:function(){return o.default}});var r=t("./packages/packages/core/editor-panels/src/components/external/panel.tsx"),a=t("./packages/packages/core/editor-panels/src/components/external/panel-header.tsx"),o=t("./packages/packages/core/editor-panels/src/components/external/panel-header-title.tsx"),c=t("./packages/packages/core/editor-panels/src/components/external/panel-body.tsx"),s=t("./packages/packages/core/editor-panels/src/components/external/panel-footer.tsx")},"./packages/packages/core/editor-panels/src/components/external/panel-body.tsx":function(e,n,t){t.r(n),t.d(n,{default:function(){return PanelBody}});var r=t("react"),a=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}function PanelBody({children:e,sx:n,...t}){return r.createElement(a.Box,_extends({component:"main",sx:{overflowY:"auto",height:"100%",...n}},t),e)}},"./packages/packages/core/editor-panels/src/components/external/panel-footer.tsx":function(e,n,t){t.r(n),t.d(n,{default:function(){return PanelFooter}});var r=t("react"),a=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}function PanelFooter({children:e,sx:n,...t}){return r.createElement(r.Fragment,null,r.createElement(a.Divider,null),r.createElement(a.Box,_extends({component:"footer",sx:{display:"flex",position:"sticky",bottom:0,px:2,py:1.5}},t),e))}},"./packages/packages/core/editor-panels/src/components/external/panel-header-title.tsx":function(e,n,t){t.r(n);var r=t("react"),a=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const o=(0,a.styled)(a.Typography)(({theme:e,variant:n="body1"})=>"inherit"===n?{}:{"&.MuiTypography-root":{...e.typography[n]}}),c=(0,r.forwardRef)(({children:e,...n},t)=>r.createElement(o,_extends({ref:t,component:"h2",variant:"subtitle1"},n),e));n.default=c},"./packages/packages/core/editor-panels/src/components/external/panel-header.tsx":function(e,n,t){t.r(n),t.d(n,{default:function(){return PanelHeader}});var r=t("react"),a=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}const o=(0,a.styled)(a.Box)(({theme:e})=>({height:e?.spacing(6)||"48px",display:"flex",alignItems:"center",justifyContent:"center",gap:e?.spacing(.5)||"4px"}));function PanelHeader({children:e,...n}){return r.createElement(r.Fragment,null,r.createElement(o,_extends({component:"header"},n),e))}},"./packages/packages/core/editor-panels/src/components/external/panel.tsx":function(e,n,t){t.r(n),t.d(n,{default:function(){return Panel}});var r=t("react"),a=t("@elementor/ui");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}function Panel({children:e,sx:n,...t}){return r.createElement(a.Drawer,_extends({open:!0,variant:"persistent",anchor:"left",PaperProps:{sx:{position:"relative",width:"100%",bgcolor:"background.default",border:"none"}},sx:{height:"100%",...n}},t),e)}},"./packages/packages/core/editor-panels/src/components/internal/panels.tsx":function(e,n,t){t.r(n),t.d(n,{default:function(){return Panels}});var r=t("react"),a=t("./packages/packages/core/editor-panels/src/hooks/use-open-panel-injection.ts"),o=t("./packages/packages/core/editor-panels/src/components/internal/portal.tsx");function Panels(){const e=(0,a.default)(),n=e?.component??null;return n?r.createElement(o.default,null,r.createElement(n,null)):null}},"./packages/packages/core/editor-panels/src/components/internal/portal.tsx":function(e,n,t){t.r(n),t.d(n,{default:function(){return Portal}});var r=t("react"),a=t("@elementor/ui"),o=t("./packages/packages/core/editor-panels/src/sync.ts");function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}function Portal(e){const n=(0,r.useRef)(o.getPortalContainer);return n.current?r.createElement(a.Portal,_extends({container:n.current},e)):null}},"./packages/packages/core/editor-panels/src/hooks/use-open-panel-injection.ts":function(e,n,t){t.r(n),t.d(n,{default:function(){return useOpenPanelInjection}});var r=t("react"),a=t("@elementor/store"),o=t("./packages/packages/core/editor-panels/src/location.ts"),c=t("./packages/packages/core/editor-panels/src/store/index.ts");function useOpenPanelInjection(){const e=(0,o.usePanelsInjections)(),n=(0,a.__useSelector)(c.selectOpenId);return(0,r.useMemo)(()=>e.find(e=>n===e.id),[e,n])}},"./packages/packages/core/editor-panels/src/init.ts":function(e,n,t){t.r(n),t.d(n,{init:function(){return init}});var r=t("@elementor/editor"),a=t("@elementor/store"),o=t("./packages/packages/core/editor-panels/src/components/internal/panels.tsx"),c=t("./packages/packages/core/editor-panels/src/store/index.ts"),s=t("./packages/packages/core/editor-panels/src/sync.ts");function init(){(0,s.sync)(),(0,a.__registerSlice)(c.slice),(0,r.injectIntoTop)({id:"panels",component:o.default})}},"./packages/packages/core/editor-panels/src/location.ts":function(e,n,t){t.r(n),t.d(n,{injectIntoPanels:function(){return a},usePanelsInjections:function(){return o}});var r=t("@elementor/locations");const{inject:a,useInjections:o}=(0,r.createLocation)()},"./packages/packages/core/editor-panels/src/store/index.ts":function(e,n,t){t.r(n),t.d(n,{selectOpenId:function(){return r.selectOpenId},slice:function(){return a.default}});var r=t("./packages/packages/core/editor-panels/src/store/selectors.ts"),a=t("./packages/packages/core/editor-panels/src/store/slice.ts")},"./packages/packages/core/editor-panels/src/store/selectors.ts":function(e,n,t){t.r(n),t.d(n,{selectOpenId:function(){return selectOpenId}});const selectOpenId=e=>e.panels.openId},"./packages/packages/core/editor-panels/src/store/slice.ts":function(e,n,t){t.r(n);var r=t("@elementor/store");n.default=(0,r.__createSlice)({name:"panels",initialState:{openId:null},reducers:{open(e,n){e.openId=n.payload},close(e,n){n.payload&&e.openId!==n.payload||(e.openId=null)}}})},"./packages/packages/core/editor-panels/src/sync.ts":function(e,n,t){t.r(n),t.d(n,{V2_PANEL:function(){return c},getPortalContainer:function(){return getPortalContainer},sync:function(){return sync}});var r=t("@elementor/editor-v1-adapters"),a=t("@elementor/store"),o=t("./packages/packages/core/editor-panels/src/store/index.ts");const c="panel/v2";function getPortalContainer(){return document.querySelector("#elementor-panel-inner")}function sync(){(0,r.__privateListenTo)((0,r.windowEvent)("elementor/panel/init"),()=>(0,r.__privateRegisterRoute)(c)),(0,r.__privateListenTo)((0,r.routeOpenEvent)(c),()=>{getV1PanelElements().forEach(e=>{e.setAttribute("hidden","hidden"),e.setAttribute("inert","true")})}),(0,r.__privateListenTo)((0,r.routeCloseEvent)(c),()=>(0,o.selectOpenId)((0,a.__getState)())&&(0,a.__dispatch)(o.slice.actions.close())),(0,r.__privateListenTo)((0,r.routeCloseEvent)(c),()=>{getV1PanelElements().forEach(e=>{e.removeAttribute("hidden"),e.removeAttribute("inert")})}),(0,r.__privateListenTo)((0,r.windowEvent)("elementor/panel/init"),()=>subscribe({on:e=>(0,o.selectOpenId)(e),when:({prev:e,current:n})=>!(e||!n),callback:()=>(0,r.__privateOpenRoute)(c)})),(0,r.__privateListenTo)((0,r.windowEvent)("elementor/panel/init"),()=>subscribe({on:e=>(0,o.selectOpenId)(e),when:({prev:e,current:n})=>!(n||!e),callback:()=>(0,r.__privateIsRouteActive)(c)&&(0,r.__privateOpenRoute)(function getDefaultRoute(){const e=window?.elementor?.documents?.getCurrent?.()?.config?.panel?.default_route;return e||"panel/elements/categories"}())}))}function getV1PanelElements(){const e=["#elementor-panel-header-wrapper","#elementor-panel-content-wrapper","#elementor-panel-state-loading","#elementor-panel-footer"].join(", ");return document.querySelectorAll(e)}function subscribe({on:e,when:n,callback:t}){let r;(0,a.__subscribe)(()=>{const o=e((0,a.__getState)());n({prev:r,current:o})&&t({prev:r,current:o}),r=o})}},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/locations":function(e){e.exports=window.elementorV2.locations},"@elementor/store":function(e){e.exports=window.elementorV2.store},"@elementor/ui":function(e){e.exports=window.elementorV2.ui},react:function(e){e.exports=window.React}},n={};function __webpack_require__(t){var r=n[t];if(void 0!==r)return r.exports;var a=n[t]={exports:{}};return e[t](a,a.exports,__webpack_require__),a.exports}__webpack_require__.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(n,{a:n}),n},__webpack_require__.d=function(e,n){for(var t in n)__webpack_require__.o(n,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__webpack_require__.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var t={};!function(){__webpack_require__.r(t),__webpack_require__.d(t,{Panel:function(){return r.Panel},PanelBody:function(){return r.PanelBody},PanelFooter:function(){return r.PanelFooter},PanelHeader:function(){return r.PanelHeader},PanelHeaderTitle:function(){return r.PanelHeaderTitle},__createPanel:function(){return n.createPanel},__registerPanel:function(){return n.registerPanel},init:function(){return e.init}});var e=__webpack_require__("./packages/packages/core/editor-panels/src/init.ts"),n=__webpack_require__("./packages/packages/core/editor-panels/src/api.ts"),r=__webpack_require__("./packages/packages/core/editor-panels/src/components/external/index.ts")}(),(window.elementorV2=window.elementorV2||{}).editorPanels=t}(),window.elementorV2.editorPanels?.init?.();
1 +(function(_elementor_editor, _elementor_store, react, _elementor_locations, _elementor_ui, _elementor_editor_v1_adapters) {
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-panels/src/location.ts
50 + var panelsMeta = /* @__PURE__ */ new Map();
51 + var { inject: baseInject, useInjections: baseUseInjections, getInjections } = (0, _elementor_locations.createLocation)();
52 + (0, _elementor_locations.__registerFlushInjections)(() => {
53 + panelsMeta.clear();
54 + });
55 + function injectIntoPanels({ id, component, keepMounted }) {
56 + const existedBefore = getInjections().some((injection) => injection.id === id);
57 + baseInject({
58 + id,
59 + component
60 + });
61 + if (!existedBefore) panelsMeta.set(id, { keepMounted });
62 + }
63 + function usePanelsInjections() {
64 + return baseUseInjections().map((injection) => ({
65 + ...injection,
66 + keepMounted: panelsMeta.get(injection.id)?.keepMounted ?? false
67 + }));
68 + }
69 +
70 +//#endregion
71 +//#region packages/packages/core/editor-panels/src/store/selectors.ts
72 + var selectOpenId = (state) => state.panels.openId;
73 +
74 +//#endregion
75 +//#region packages/packages/core/editor-panels/src/store/slice.ts
76 + var initialState = { openId: null };
77 + var slice_default = (0, _elementor_store.__createSlice)({
78 + name: "panels",
79 + initialState,
80 + reducers: {
81 + open(state, action) {
82 + state.openId = action.payload;
83 + },
84 + close(state, action) {
85 + if (!action.payload || state.openId === action.payload) state.openId = null;
86 + }
87 + }
88 + });
89 +
90 +//#endregion
91 +//#region packages/packages/core/editor-panels/src/sync.ts
92 + var V2_PANEL = "panel/v2";
93 + function getPortalContainer() {
94 + return document.querySelector("#elementor-panel-inner");
95 + }
96 + function sync() {
97 + (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.windowEvent)("elementor/panel/init"), () => (0, _elementor_editor_v1_adapters.__privateRegisterRoute)(V2_PANEL));
98 + (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.routeOpenEvent)(V2_PANEL), () => {
99 + getV1PanelElements().forEach((el) => {
100 + el.setAttribute("hidden", "hidden");
101 + el.setAttribute("inert", "true");
102 + });
103 + });
104 + (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.routeCloseEvent)(V2_PANEL), () => selectOpenId((0, _elementor_store.__getState)()) && (0, _elementor_store.__dispatch)(slice_default.actions.close()));
105 + (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.routeCloseEvent)(V2_PANEL), () => {
106 + getV1PanelElements().forEach((el) => {
107 + el.removeAttribute("hidden");
108 + el.removeAttribute("inert");
109 + });
110 + });
111 + (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.windowEvent)("elementor/panel/init"), () => subscribe({
112 + on: (state) => selectOpenId(state),
113 + when: ({ prev, current }) => !!(!prev && current),
114 + callback: () => (0, _elementor_editor_v1_adapters.__privateOpenRoute)(V2_PANEL)
115 + }));
116 + (0, _elementor_editor_v1_adapters.__privateListenTo)((0, _elementor_editor_v1_adapters.windowEvent)("elementor/panel/init"), () => subscribe({
117 + on: (state) => selectOpenId(state),
118 + when: ({ prev, current }) => !!(!current && prev),
119 + callback: () => (0, _elementor_editor_v1_adapters.__privateIsRouteActive)("panel/v2") && (0, _elementor_editor_v1_adapters.__privateOpenRoute)(getDefaultRoute())
120 + }));
121 + }
122 + function getV1PanelElements() {
123 + const v1ElementsSelector = [
124 + "#elementor-panel-header-wrapper",
125 + "#elementor-panel-content-wrapper",
126 + "#elementor-panel-state-loading"
127 + ].join(", ");
128 + return document.querySelectorAll(v1ElementsSelector);
129 + }
130 + function getDefaultRoute() {
131 + return window?.elementor?.documents?.getCurrent?.()?.config?.panel?.default_route || "panel/elements/categories";
132 + }
133 + function subscribe({ on, when, callback }) {
134 + let prev;
135 + (0, _elementor_store.__subscribe)(() => {
136 + const current = on((0, _elementor_store.__getState)());
137 + if (when({
138 + prev,
139 + current
140 + })) callback({
141 + prev,
142 + current
143 + });
144 + prev = current;
145 + });
146 + }
147 +
148 +//#endregion
149 +//#region packages/packages/core/editor-panels/src/components/internal/portal.tsx
150 + function Portal(props) {
151 + const [container, setContainer] = (0, react.useState)(() => getPortalContainer());
152 + (0, react.useEffect)(() => {
153 + if (container) return;
154 + const resolveContainer = () => {
155 + const portalContainer = getPortalContainer();
156 + if (portalContainer) setContainer(portalContainer);
157 + };
158 + window.addEventListener("elementor/panel/init", resolveContainer);
159 + resolveContainer();
160 + return () => {
161 + window.removeEventListener("elementor/panel/init", resolveContainer);
162 + };
163 + }, [container]);
164 + if (!container) return null;
165 + return /* @__PURE__ */ react.createElement(_elementor_ui.Portal, {
166 + container,
167 + ...props
168 + });
169 + }
170 +
171 +//#endregion
172 +//#region packages/packages/core/editor-panels/src/components/internal/panels.tsx
173 + function Panels() {
174 + const injections = usePanelsInjections();
175 + const openId = (0, _elementor_store.__useSelector)(selectOpenId);
176 + const persistentInjections = injections.filter((injection) => injection.keepMounted);
177 + const openInjection = injections.find((injection) => openId === injection.id);
178 + if (!persistentInjections.length && !openInjection) return null;
179 + return /* @__PURE__ */ react.createElement(Portal, null, persistentInjections.map(({ id, component: Component }) => /* @__PURE__ */ react.createElement("div", {
180 + key: id,
181 + style: { display: openId === id ? "contents" : "none" }
182 + }, /* @__PURE__ */ react.createElement(Component, null))), openInjection && !openInjection.keepMounted && /* @__PURE__ */ react.createElement(openInjection.component, null));
183 + }
184 +
185 +//#endregion
186 +//#region packages/packages/core/editor-panels/src/init.ts
187 + function init() {
188 + sync();
189 + (0, _elementor_store.__registerSlice)(slice_default);
190 + (0, _elementor_editor.injectIntoTop)({
191 + id: "panels",
192 + component: Panels
193 + });
194 + }
195 +
196 +//#endregion
197 +//#region packages/packages/core/editor-panels/src/api.ts
198 + function createPanel({ id, component, onOpen, onClose, allowedEditModes, blockOnKitRoutes, isOpenPreviousElement = false, keepMounted = false }) {
199 + const usePanelStatus = createUseStatus(id, {
200 + allowedEditModes,
201 + blockOnKitRoutes
202 + });
203 + const usePanelActions = createUseActions(id, usePanelStatus, {
204 + onOpen,
205 + onClose
206 + }, isOpenPreviousElement);
207 + return {
208 + panel: {
209 + id,
210 + component,
211 + keepMounted
212 + },
213 + usePanelStatus,
214 + usePanelActions
215 + };
216 + }
217 + function registerPanel({ id, component, keepMounted }) {
218 + injectIntoPanels({
219 + id,
220 + component,
221 + keepMounted
222 + });
223 + }
224 + function createUseStatus(id, options = {}) {
225 + return () => {
226 + const openPanelId = (0, _elementor_store.__useSelector)(selectOpenId);
227 + const v1PanelStatus = (0, _elementor_editor_v1_adapters.__privateUseRouteStatus)(V2_PANEL, options);
228 + return {
229 + isOpen: openPanelId === id && v1PanelStatus.isActive,
230 + isBlocked: v1PanelStatus.isBlocked
231 + };
232 + };
233 + }
234 + function createUseActions(id, useStatus, options = {}, isOpenPreviousElement) {
235 + let stateSnapshot = null;
236 + let previousSelectedElement = null;
237 + return () => {
238 + const dispatch = (0, _elementor_store.__useDispatch)();
239 + const { isBlocked } = useStatus();
240 + return {
241 + open: async () => {
242 + if (isBlocked) return;
243 + if (isOpenPreviousElement) previousSelectedElement = window.elementor?.selection?.getElements?.()[0]?.model.get("id") ?? null;
244 + dispatch(slice_default.actions.open(id));
245 + stateSnapshot = options.onOpen?.() ?? null;
246 + },
247 + close: async () => {
248 + if (isBlocked) return;
249 + dispatch(slice_default.actions.close(id));
250 + await options.onClose?.(stateSnapshot);
251 + if (previousSelectedElement) {
252 + try {
253 + const container = window.elementor?.getContainer?.(previousSelectedElement);
254 + (0, _elementor_editor_v1_adapters.__privateRunCommand)("document/elements/select", { container });
255 + } catch {}
256 + previousSelectedElement = null;
257 + }
258 + }
259 + };
260 + };
261 + }
262 +
263 +//#endregion
264 +//#region packages/packages/core/editor-panels/src/components/external/panel.tsx
265 + function Panel({ children, sx, ...props }) {
266 + return /* @__PURE__ */ react.createElement(_elementor_ui.Drawer, {
267 + open: true,
268 + variant: "persistent",
269 + anchor: "left",
270 + PaperProps: { sx: {
271 + position: "relative",
272 + width: "100%",
273 + bgcolor: "background.default",
274 + border: "none"
275 + } },
276 + sx: {
277 + height: "100%",
278 + ...sx
279 + },
280 + ...props
281 + }, children);
282 + }
283 +
284 +//#endregion
285 +//#region packages/packages/core/editor-panels/src/components/external/panel-header.tsx
286 + var Header = (0, _elementor_ui.styled)(_elementor_ui.Box)(({ theme }) => ({
287 + height: theme?.spacing(6) || "48px",
288 + display: "flex",
289 + alignItems: "center",
290 + justifyContent: "center",
291 + gap: theme?.spacing(.5) || "4px"
292 + }));
293 + function PanelHeader({ children, ...props }) {
294 + return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(Header, {
295 + component: "header",
296 + ...props
297 + }, children));
298 + }
299 +
300 +//#endregion
301 +//#region packages/packages/core/editor-panels/src/components/external/panel-header-title.tsx
302 + var Typography = (0, _elementor_ui.styled)(_elementor_ui.Typography)(({ theme, variant = "body1" }) => {
303 + if (variant === "inherit") return {};
304 + return { "&.MuiTypography-root": { ...theme.typography[variant] } };
305 + });
306 + var PanelHeaderTitle = (0, react.forwardRef)(({ children, ...props }, ref) => {
307 + return /* @__PURE__ */ react.createElement(Typography, {
308 + ref,
309 + component: "h2",
310 + variant: "subtitle1",
311 + ...props
312 + }, children);
313 + });
314 +
315 +//#endregion
316 +//#region packages/packages/core/editor-panels/src/components/external/panel-body.tsx
317 + function PanelBody({ children, sx, ...props }) {
318 + return /* @__PURE__ */ react.createElement(_elementor_ui.Box, {
319 + component: "main",
320 + sx: {
321 + overflowY: "auto",
322 + height: "100%",
323 + ...sx
324 + },
325 + ...props
326 + }, children);
327 + }
328 +
329 +//#endregion
330 +//#region packages/packages/core/editor-panels/src/components/external/panel-footer.tsx
331 + function PanelFooter({ children, sx, ...props }) {
332 + return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(_elementor_ui.Divider, null), /* @__PURE__ */ react.createElement(_elementor_ui.Box, {
333 + component: "footer",
334 + sx: {
335 + display: "flex",
336 + position: "sticky",
337 + bottom: 0,
338 + px: 2,
339 + py: 1.5
340 + },
341 + ...props
342 + }, children));
343 + }
344 +
345 +//#endregion
346 +//#region packages/packages/core/editor-panels/src/index.ts
347 + var src_exports = /* @__PURE__ */ __exportAll({
348 + Panel: () => Panel,
349 + PanelBody: () => PanelBody,
350 + PanelFooter: () => PanelFooter,
351 + PanelHeader: () => PanelHeader,
352 + PanelHeaderTitle: () => PanelHeaderTitle,
353 + __createPanel: () => createPanel,
354 + __registerPanel: () => registerPanel,
355 + createPanel: () => createPanel,
356 + init: () => init,
357 + registerPanel: () => registerPanel
358 + });
359 +
360 +//#endregion
361 +//#region \0elementor-package-library-entry
362 + (window.elementorV2 = window.elementorV2 || {}).editorPanels = src_exports;
363 +
364 +//#endregion
365 +})(elementorV2.editor, elementorV2.store, React, elementorV2.locations, elementorV2.ui, elementorV2.editorV1Adapters);
366 +window.elementorV2.editorPanels?.init?.();
3 367 //# sourceMappingURL=editor-panels.js.map