← All changes
|
assets/js/packages/editor-elements-panel/editor-elements-panel.js
+190
-468
4.2.4
→
4.3.1
View file →
| @@ -1,486 +1,208 @@ | ||
| 1 | -/******/ (function() { // webpackBootstrap | |
| 2 | -/******/ "use strict"; | |
| 3 | -/******/ var __webpack_modules__ = ({ | |
| 1 | +(function(_elementor_editor, react, _elementor_ui, _elementor_editor_v1_adapters, _elementor_utils) { | |
| 4 | 2 | |
| 5 | -/***/ "./packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx": | |
| 6 | -/*!********************************************************************************************!*\ | |
| 7 | - !*** ./packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx ***! | |
| 8 | - \********************************************************************************************/ | |
| 9 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 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)); | |
| 10 | 45 | |
| 11 | -__webpack_require__.r(__webpack_exports__); | |
| 12 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 13 | -/* harmony export */ ElementsPanelTab: function() { return /* binding */ ElementsPanelTab; } | |
| 14 | -/* harmony export */ }); | |
| 15 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); | |
| 16 | -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | |
| 17 | -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/ui */ "@elementor/ui"); | |
| 18 | -/* harmony import */ var _elementor_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__); | |
| 19 | -/* harmony import */ var _hooks_use_active_tab__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../hooks/use-active-tab */ "./packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts"); | |
| 46 | +//#endregion | |
| 47 | +react = __toESM(react); | |
| 20 | 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}/`; | |
| 21 | 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 | + } | |
| 22 | 67 | |
| 23 | -const PANEL_WRAPPER_ID = 'elementor-panel-elements-wrapper'; | |
| 24 | -function ElementsPanelTab() { | |
| 25 | - const tab = (0,_hooks_use_active_tab__WEBPACK_IMPORTED_MODULE_2__.useActiveTab)(); | |
| 26 | - const TabComponent = tab?.component; | |
| 27 | - const container = document.getElementById(PANEL_WRAPPER_ID); | |
| 28 | - return TabComponent && container ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_elementor_ui__WEBPACK_IMPORTED_MODULE_1__.Portal, { | |
| 29 | - container: container | |
| 30 | - }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TabComponent, null)) : null; | |
| 31 | -} | |
| 68 | +//#endregion | |
| 69 | +//#region packages/packages/core/editor-elements-panel/src/utils/get-window.ts | |
| 70 | + function getWindow() { | |
| 71 | + return window; | |
| 72 | + } | |
| 32 | 73 | |
| 33 | -/***/ }), | |
| 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 | + } | |
| 34 | 87 | |
| 35 | -/***/ "./packages/packages/core/editor-elements-panel/src/consts.ts": | |
| 36 | -/*!********************************************************************!*\ | |
| 37 | - !*** ./packages/packages/core/editor-elements-panel/src/consts.ts ***! | |
| 38 | - \********************************************************************/ | |
| 39 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 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 | + } | |
| 40 | 96 | |
| 41 | -__webpack_require__.r(__webpack_exports__); | |
| 42 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 43 | -/* harmony export */ LEGACY_ELEMENTS_PANEL_COMPONENT_NAME: function() { return /* binding */ LEGACY_ELEMENTS_PANEL_COMPONENT_NAME; }, | |
| 44 | -/* harmony export */ LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX: function() { return /* binding */ LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX; } | |
| 45 | -/* harmony export */ }); | |
| 46 | -const LEGACY_ELEMENTS_PANEL_COMPONENT_NAME = 'panel/elements'; | |
| 47 | -const LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX = `${LEGACY_ELEMENTS_PANEL_COMPONENT_NAME}/`; | |
| 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 | + } | |
| 48 | 105 | |
| 49 | -/***/ }), | |
| 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 | + } | |
| 50 | 116 | |
| 51 | -/***/ "./packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts": | |
| 52 | -/*!**********************************************************************************!*\ | |
| 53 | - !*** ./packages/packages/core/editor-elements-panel/src/hooks/use-active-tab.ts ***! | |
| 54 | - \**********************************************************************************/ | |
| 55 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 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 | + } | |
| 56 | 129 | |
| 57 | -__webpack_require__.r(__webpack_exports__); | |
| 58 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 59 | -/* harmony export */ useActiveTab: function() { return /* binding */ useActiveTab; } | |
| 60 | -/* harmony export */ }); | |
| 61 | -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters"); | |
| 62 | -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__); | |
| 63 | -/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../consts */ "./packages/packages/core/editor-elements-panel/src/consts.ts"); | |
| 64 | -/* harmony import */ var _tabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tabs */ "./packages/packages/core/editor-elements-panel/src/tabs.ts"); | |
| 65 | -/* harmony import */ var _utils_get_window__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/get-window */ "./packages/packages/core/editor-elements-panel/src/utils/get-window.ts"); | |
| 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 | + } | |
| 66 | 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 | + } | |
| 67 | 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 | + } | |
| 68 | 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 | + }); | |
| 69 | 200 | |
| 70 | -function useActiveTab() { | |
| 71 | - return (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateUseListenTo)([(0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.v1ReadyEvent)(), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.routeOpenEvent)(_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX), (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.routeCloseEvent)(_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)], () => { | |
| 72 | - const panelRoute = (0,_utils_get_window__WEBPACK_IMPORTED_MODULE_3__.getWindow)().$e.routes.getCurrent()?.panel; | |
| 73 | - if (!panelRoute || !panelRoute.startsWith(_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX)) { | |
| 74 | - return null; | |
| 75 | - } | |
| 76 | - const tab = panelRoute.replace(_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX, ''); | |
| 77 | - return (0,_tabs__WEBPACK_IMPORTED_MODULE_2__.getTab)(tab) ?? null; | |
| 78 | - }); | |
| 79 | -} | |
| 201 | +//#endregion | |
| 202 | +//#region \0elementor-package-library-entry | |
| 203 | + (window.elementorV2 = window.elementorV2 || {}).editorElementsPanel = src_exports; | |
| 80 | 204 | |
| 81 | -/***/ }), | |
| 82 | - | |
| 83 | -/***/ "./packages/packages/core/editor-elements-panel/src/init.ts": | |
| 84 | -/*!******************************************************************!*\ | |
| 85 | - !*** ./packages/packages/core/editor-elements-panel/src/init.ts ***! | |
| 86 | - \******************************************************************/ | |
| 87 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 88 | - | |
| 89 | -__webpack_require__.r(__webpack_exports__); | |
| 90 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 91 | -/* harmony export */ init: function() { return /* binding */ init; } | |
| 92 | -/* harmony export */ }); | |
| 93 | -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor"); | |
| 94 | -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor__WEBPACK_IMPORTED_MODULE_0__); | |
| 95 | -/* harmony import */ var _components_elements_panel_tab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/elements-panel-tab */ "./packages/packages/core/editor-elements-panel/src/components/elements-panel-tab.tsx"); | |
| 96 | - | |
| 97 | - | |
| 98 | -function init() { | |
| 99 | - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoTop)({ | |
| 100 | - id: 'editor-elements-panel-tab', | |
| 101 | - component: _components_elements_panel_tab__WEBPACK_IMPORTED_MODULE_1__.ElementsPanelTab | |
| 102 | - }); | |
| 103 | -} | |
| 104 | - | |
| 105 | -/***/ }), | |
| 106 | - | |
| 107 | -/***/ "./packages/packages/core/editor-elements-panel/src/inject-tab.ts": | |
| 108 | -/*!************************************************************************!*\ | |
| 109 | - !*** ./packages/packages/core/editor-elements-panel/src/inject-tab.ts ***! | |
| 110 | - \************************************************************************/ | |
| 111 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 112 | - | |
| 113 | -__webpack_require__.r(__webpack_exports__); | |
| 114 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 115 | -/* harmony export */ injectTab: function() { return /* binding */ injectTab; } | |
| 116 | -/* harmony export */ }); | |
| 117 | -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters"); | |
| 118 | -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__); | |
| 119 | -/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./consts */ "./packages/packages/core/editor-elements-panel/src/consts.ts"); | |
| 120 | -/* harmony import */ var _tabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabs */ "./packages/packages/core/editor-elements-panel/src/tabs.ts"); | |
| 121 | -/* harmony import */ var _utils_create_legacy_view__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/create-legacy-view */ "./packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts"); | |
| 122 | -/* harmony import */ var _utils_create_tab_nav_item__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/create-tab-nav-item */ "./packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts"); | |
| 123 | -/* harmony import */ var _utils_get_legacy_elements_panel_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/get-legacy-elements-panel-component */ "./packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts"); | |
| 124 | - | |
| 125 | - | |
| 126 | - | |
| 127 | - | |
| 128 | - | |
| 129 | - | |
| 130 | -function injectTab({ | |
| 131 | - id, | |
| 132 | - label, | |
| 133 | - component, | |
| 134 | - position | |
| 135 | -}) { | |
| 136 | - (0,_tabs__WEBPACK_IMPORTED_MODULE_2__.registerTab)({ | |
| 137 | - id, | |
| 138 | - label, | |
| 139 | - component | |
| 140 | - }); | |
| 141 | - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.v1ReadyEvent)(), () => { | |
| 142 | - window.elementor?.hooks?.addFilter('panel/elements/regionViews', (regions, { | |
| 143 | - elements | |
| 144 | - }) => { | |
| 145 | - // Creating a empty legacy view that will be replaced by react component. | |
| 146 | - regions[id] = { | |
| 147 | - region: elements, | |
| 148 | - view: (0,_utils_create_legacy_view__WEBPACK_IMPORTED_MODULE_3__.createLegacyView)() | |
| 149 | - }; | |
| 150 | - return regions; | |
| 151 | - }); | |
| 152 | - }); | |
| 153 | - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.windowEvent)('elementor/panel/init'), () => { | |
| 154 | - // when adding a tab to the legacy elements panel, it will generate new route based on the id. | |
| 155 | - (0,_utils_get_legacy_elements_panel_component__WEBPACK_IMPORTED_MODULE_5__.getLegacyElementsPanelComponent)().addTab(id, { | |
| 156 | - title: label | |
| 157 | - }); | |
| 158 | - }); | |
| 159 | - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.__privateListenTo)((0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_0__.routeOpenEvent)(_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX), e => { | |
| 160 | - const route = `${_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_ROUTE_PREFIX}${id}`; | |
| 161 | - (0,_utils_create_tab_nav_item__WEBPACK_IMPORTED_MODULE_4__.createTabNavItem)({ | |
| 162 | - id, | |
| 163 | - label, | |
| 164 | - route, | |
| 165 | - isActive: 'route' in e && e.route === route, | |
| 166 | - position | |
| 167 | - }); | |
| 168 | - }); | |
| 169 | -} | |
| 170 | - | |
| 171 | -/***/ }), | |
| 172 | - | |
| 173 | -/***/ "./packages/packages/core/editor-elements-panel/src/tabs.ts": | |
| 174 | -/*!******************************************************************!*\ | |
| 175 | - !*** ./packages/packages/core/editor-elements-panel/src/tabs.ts ***! | |
| 176 | - \******************************************************************/ | |
| 177 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 178 | - | |
| 179 | -__webpack_require__.r(__webpack_exports__); | |
| 180 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 181 | -/* harmony export */ getTab: function() { return /* binding */ getTab; }, | |
| 182 | -/* harmony export */ registerTab: function() { return /* binding */ registerTab; } | |
| 183 | -/* harmony export */ }); | |
| 184 | -const registry = new Map(); | |
| 185 | -const DEFAULT_PRIORITY = 10; | |
| 186 | -function registerTab({ | |
| 187 | - id, | |
| 188 | - priority = DEFAULT_PRIORITY, | |
| 189 | - ...props | |
| 190 | -}) { | |
| 191 | - const existing = registry.get(id); | |
| 192 | - if (!existing || priority <= existing.priority) { | |
| 193 | - registry.set(id, { | |
| 194 | - ...props, | |
| 195 | - priority | |
| 196 | - }); | |
| 197 | - } | |
| 198 | -} | |
| 199 | -function getTab(id) { | |
| 200 | - return registry.get(id) ?? null; | |
| 201 | -} | |
| 202 | - | |
| 203 | -/***/ }), | |
| 204 | - | |
| 205 | -/***/ "./packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts": | |
| 206 | -/*!**************************************************************************************!*\ | |
| 207 | - !*** ./packages/packages/core/editor-elements-panel/src/utils/create-legacy-view.ts ***! | |
| 208 | - \**************************************************************************************/ | |
| 209 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 210 | - | |
| 211 | -__webpack_require__.r(__webpack_exports__); | |
| 212 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 213 | -/* harmony export */ createLegacyView: function() { return /* binding */ createLegacyView; } | |
| 214 | -/* harmony export */ }); | |
| 215 | -/* harmony import */ var _get_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-window */ "./packages/packages/core/editor-elements-panel/src/utils/get-window.ts"); | |
| 216 | - | |
| 217 | -function createLegacyView() { | |
| 218 | - return (0,_get_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)().Marionette.CompositeView.extend({ | |
| 219 | - template: `<div></div>`, | |
| 220 | - initialize() { | |
| 221 | - (0,_get_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)().elementor.getPanelView().getCurrentPageView().search.reset(); | |
| 222 | - } | |
| 223 | - }); | |
| 224 | -} | |
| 225 | - | |
| 226 | -/***/ }), | |
| 227 | - | |
| 228 | -/***/ "./packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts": | |
| 229 | -/*!***************************************************************************************!*\ | |
| 230 | - !*** ./packages/packages/core/editor-elements-panel/src/utils/create-tab-nav-item.ts ***! | |
| 231 | - \***************************************************************************************/ | |
| 232 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 233 | - | |
| 234 | -__webpack_require__.r(__webpack_exports__); | |
| 235 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 236 | -/* harmony export */ createTabNavItem: function() { return /* binding */ createTabNavItem; } | |
| 237 | -/* harmony export */ }); | |
| 238 | -/* harmony import */ var _get_navigation_wrapper_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-navigation-wrapper-element */ "./packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts"); | |
| 239 | -/* harmony import */ var _get_window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-window */ "./packages/packages/core/editor-elements-panel/src/utils/get-window.ts"); | |
| 240 | - | |
| 241 | - | |
| 242 | -function createTabNavItem({ | |
| 243 | - id, | |
| 244 | - label, | |
| 245 | - route, | |
| 246 | - isActive, | |
| 247 | - position | |
| 248 | -}) { | |
| 249 | - const wrapper = (0,_get_navigation_wrapper_element__WEBPACK_IMPORTED_MODULE_0__.getNavigationWrapperElement)(); | |
| 250 | - const btn = document.createElement('button'); | |
| 251 | - btn.className = ['elementor-component-tab', 'elementor-panel-navigation-tab', isActive ? 'elementor-active' : ''].filter(Boolean).join(' '); | |
| 252 | - btn.setAttribute('data-tab', id); | |
| 253 | - btn.textContent = label; | |
| 254 | - btn.addEventListener('click', () => { | |
| 255 | - (0,_get_window__WEBPACK_IMPORTED_MODULE_1__.getWindow)().$e.route(route); | |
| 256 | - }); | |
| 257 | - if (position !== undefined && wrapper.children[position]) { | |
| 258 | - wrapper.insertBefore(btn, wrapper.children[position]); | |
| 259 | - } else { | |
| 260 | - wrapper.appendChild(btn); | |
| 261 | - } | |
| 262 | -} | |
| 263 | - | |
| 264 | -/***/ }), | |
| 265 | - | |
| 266 | -/***/ "./packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts": | |
| 267 | -/*!*******************************************************************************************************!*\ | |
| 268 | - !*** ./packages/packages/core/editor-elements-panel/src/utils/get-legacy-elements-panel-component.ts ***! | |
| 269 | - \*******************************************************************************************************/ | |
| 270 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 271 | - | |
| 272 | -__webpack_require__.r(__webpack_exports__); | |
| 273 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 274 | -/* harmony export */ getLegacyElementsPanelComponent: function() { return /* binding */ getLegacyElementsPanelComponent; } | |
| 275 | -/* harmony export */ }); | |
| 276 | -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils"); | |
| 277 | -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__); | |
| 278 | -/* harmony import */ var _consts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../consts */ "./packages/packages/core/editor-elements-panel/src/consts.ts"); | |
| 279 | -/* harmony import */ var _get_window__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-window */ "./packages/packages/core/editor-elements-panel/src/utils/get-window.ts"); | |
| 280 | - | |
| 281 | - | |
| 282 | - | |
| 283 | -const ComponentNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({ | |
| 284 | - code: 'e_component_not_found', | |
| 285 | - message: 'Elementor component not found' | |
| 286 | -}); | |
| 287 | -function getLegacyElementsPanelComponent() { | |
| 288 | - const eComponent = (0,_get_window__WEBPACK_IMPORTED_MODULE_2__.getWindow)().$e.components.get(_consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_COMPONENT_NAME); | |
| 289 | - if (!eComponent) { | |
| 290 | - throw new ComponentNotFoundError({ | |
| 291 | - context: { | |
| 292 | - componentId: _consts__WEBPACK_IMPORTED_MODULE_1__.LEGACY_ELEMENTS_PANEL_COMPONENT_NAME | |
| 293 | - } | |
| 294 | - }); | |
| 295 | - } | |
| 296 | - return eComponent; | |
| 297 | -} | |
| 298 | - | |
| 299 | -/***/ }), | |
| 300 | - | |
| 301 | -/***/ "./packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts": | |
| 302 | -/*!**************************************************************************************************!*\ | |
| 303 | - !*** ./packages/packages/core/editor-elements-panel/src/utils/get-navigation-wrapper-element.ts ***! | |
| 304 | - \**************************************************************************************************/ | |
| 305 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 306 | - | |
| 307 | -__webpack_require__.r(__webpack_exports__); | |
| 308 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 309 | -/* harmony export */ getNavigationWrapperElement: function() { return /* binding */ getNavigationWrapperElement; } | |
| 310 | -/* harmony export */ }); | |
| 311 | -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils"); | |
| 312 | -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__); | |
| 313 | - | |
| 314 | -const NAVIGATION_WRAPPER_ID = 'elementor-panel-elements-navigation'; | |
| 315 | -const ElementsPanelWrapperElementNotFoundError = (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.createError)({ | |
| 316 | - code: 'elements_panel_wrapper_element_not_found', | |
| 317 | - message: 'Elementor Elements Panel wrapper element not found' | |
| 318 | -}); | |
| 319 | -function getNavigationWrapperElement() { | |
| 320 | - const wrapper = document.getElementById(NAVIGATION_WRAPPER_ID); | |
| 321 | - if (!wrapper) { | |
| 322 | - throw new ElementsPanelWrapperElementNotFoundError(); | |
| 323 | - } | |
| 324 | - return wrapper; | |
| 325 | -} | |
| 326 | - | |
| 327 | -/***/ }), | |
| 328 | - | |
| 329 | -/***/ "./packages/packages/core/editor-elements-panel/src/utils/get-window.ts": | |
| 330 | -/*!******************************************************************************!*\ | |
| 331 | - !*** ./packages/packages/core/editor-elements-panel/src/utils/get-window.ts ***! | |
| 332 | - \******************************************************************************/ | |
| 333 | -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { | |
| 334 | - | |
| 335 | -__webpack_require__.r(__webpack_exports__); | |
| 336 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 337 | -/* harmony export */ getWindow: function() { return /* binding */ getWindow; } | |
| 338 | -/* harmony export */ }); | |
| 339 | -function getWindow() { | |
| 340 | - return window; | |
| 341 | -} | |
| 342 | - | |
| 343 | -/***/ }), | |
| 344 | - | |
| 345 | -/***/ "@elementor/editor": | |
| 346 | -/*!*****************************************!*\ | |
| 347 | - !*** external ["elementorV2","editor"] ***! | |
| 348 | - \*****************************************/ | |
| 349 | -/***/ (function(module) { | |
| 350 | - | |
| 351 | -module.exports = window["elementorV2"]["editor"]; | |
| 352 | - | |
| 353 | -/***/ }), | |
| 354 | - | |
| 355 | -/***/ "@elementor/editor-v1-adapters": | |
| 356 | -/*!***************************************************!*\ | |
| 357 | - !*** external ["elementorV2","editorV1Adapters"] ***! | |
| 358 | - \***************************************************/ | |
| 359 | -/***/ (function(module) { | |
| 360 | - | |
| 361 | -module.exports = window["elementorV2"]["editorV1Adapters"]; | |
| 362 | - | |
| 363 | -/***/ }), | |
| 364 | - | |
| 365 | -/***/ "@elementor/ui": | |
| 366 | -/*!*************************************!*\ | |
| 367 | - !*** external ["elementorV2","ui"] ***! | |
| 368 | - \*************************************/ | |
| 369 | -/***/ (function(module) { | |
| 370 | - | |
| 371 | -module.exports = window["elementorV2"]["ui"]; | |
| 372 | - | |
| 373 | -/***/ }), | |
| 374 | - | |
| 375 | -/***/ "@elementor/utils": | |
| 376 | -/*!****************************************!*\ | |
| 377 | - !*** external ["elementorV2","utils"] ***! | |
| 378 | - \****************************************/ | |
| 379 | -/***/ (function(module) { | |
| 380 | - | |
| 381 | -module.exports = window["elementorV2"]["utils"]; | |
| 382 | - | |
| 383 | -/***/ }), | |
| 384 | - | |
| 385 | -/***/ "react": | |
| 386 | -/*!**************************!*\ | |
| 387 | - !*** external ["React"] ***! | |
| 388 | - \**************************/ | |
| 389 | -/***/ (function(module) { | |
| 390 | - | |
| 391 | -module.exports = window["React"]; | |
| 392 | - | |
| 393 | -/***/ }) | |
| 394 | - | |
| 395 | -/******/ }); | |
| 396 | -/************************************************************************/ | |
| 397 | -/******/ // The module cache | |
| 398 | -/******/ var __webpack_module_cache__ = {}; | |
| 399 | -/******/ | |
| 400 | -/******/ // The require function | |
| 401 | -/******/ function __webpack_require__(moduleId) { | |
| 402 | -/******/ // Check if module is in cache | |
| 403 | -/******/ var cachedModule = __webpack_module_cache__[moduleId]; | |
| 404 | -/******/ if (cachedModule !== undefined) { | |
| 405 | -/******/ return cachedModule.exports; | |
| 406 | -/******/ } | |
| 407 | -/******/ // Create a new module (and put it into the cache) | |
| 408 | -/******/ var module = __webpack_module_cache__[moduleId] = { | |
| 409 | -/******/ // no module.id needed | |
| 410 | -/******/ // no module.loaded needed | |
| 411 | -/******/ exports: {} | |
| 412 | -/******/ }; | |
| 413 | -/******/ | |
| 414 | -/******/ // Execute the module function | |
| 415 | -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); | |
| 416 | -/******/ | |
| 417 | -/******/ // Return the exports of the module | |
| 418 | -/******/ return module.exports; | |
| 419 | -/******/ } | |
| 420 | -/******/ | |
| 421 | -/************************************************************************/ | |
| 422 | -/******/ /* webpack/runtime/compat get default export */ | |
| 423 | -/******/ !function() { | |
| 424 | -/******/ // getDefaultExport function for compatibility with non-harmony modules | |
| 425 | -/******/ __webpack_require__.n = function(module) { | |
| 426 | -/******/ var getter = module && module.__esModule ? | |
| 427 | -/******/ function() { return module['default']; } : | |
| 428 | -/******/ function() { return module; }; | |
| 429 | -/******/ __webpack_require__.d(getter, { a: getter }); | |
| 430 | -/******/ return getter; | |
| 431 | -/******/ }; | |
| 432 | -/******/ }(); | |
| 433 | -/******/ | |
| 434 | -/******/ /* webpack/runtime/define property getters */ | |
| 435 | -/******/ !function() { | |
| 436 | -/******/ // define getter functions for harmony exports | |
| 437 | -/******/ __webpack_require__.d = function(exports, definition) { | |
| 438 | -/******/ for(var key in definition) { | |
| 439 | -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { | |
| 440 | -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); | |
| 441 | -/******/ } | |
| 442 | -/******/ } | |
| 443 | -/******/ }; | |
| 444 | -/******/ }(); | |
| 445 | -/******/ | |
| 446 | -/******/ /* webpack/runtime/hasOwnProperty shorthand */ | |
| 447 | -/******/ !function() { | |
| 448 | -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } | |
| 449 | -/******/ }(); | |
| 450 | -/******/ | |
| 451 | -/******/ /* webpack/runtime/make namespace object */ | |
| 452 | -/******/ !function() { | |
| 453 | -/******/ // define __esModule on exports | |
| 454 | -/******/ __webpack_require__.r = function(exports) { | |
| 455 | -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | |
| 456 | -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | |
| 457 | -/******/ } | |
| 458 | -/******/ Object.defineProperty(exports, '__esModule', { value: true }); | |
| 459 | -/******/ }; | |
| 460 | -/******/ }(); | |
| 461 | -/******/ | |
| 462 | -/************************************************************************/ | |
| 463 | -var __webpack_exports__ = {}; | |
| 464 | -// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. | |
| 465 | -!function() { | |
| 466 | -/*!*******************************************************************!*\ | |
| 467 | - !*** ./packages/packages/core/editor-elements-panel/src/index.ts ***! | |
| 468 | - \*******************************************************************/ | |
| 469 | -__webpack_require__.r(__webpack_exports__); | |
| 470 | -/* harmony export */ __webpack_require__.d(__webpack_exports__, { | |
| 471 | -/* harmony export */ init: function() { return /* reexport safe */ _init__WEBPACK_IMPORTED_MODULE_0__.init; }, | |
| 472 | -/* harmony export */ injectTab: function() { return /* reexport safe */ _inject_tab__WEBPACK_IMPORTED_MODULE_1__.injectTab; }, | |
| 473 | -/* harmony export */ registerTab: function() { return /* reexport safe */ _tabs__WEBPACK_IMPORTED_MODULE_2__.registerTab; } | |
| 474 | -/* harmony export */ }); | |
| 475 | -/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init */ "./packages/packages/core/editor-elements-panel/src/init.ts"); | |
| 476 | -/* harmony import */ var _inject_tab__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./inject-tab */ "./packages/packages/core/editor-elements-panel/src/inject-tab.ts"); | |
| 477 | -/* harmony import */ var _tabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./tabs */ "./packages/packages/core/editor-elements-panel/src/tabs.ts"); | |
| 478 | - | |
| 479 | - | |
| 480 | - | |
| 481 | -}(); | |
| 482 | -(window.elementorV2 = window.elementorV2 || {}).editorElementsPanel = __webpack_exports__; | |
| 483 | -/******/ })() | |
| 484 | -; | |
| 205 | +//#endregion | |
| 206 | +})(elementorV2.editor, React, elementorV2.ui, elementorV2.editorV1Adapters, elementorV2.utils); | |
| 485 | 207 | window.elementorV2.editorElementsPanel?.init?.(); |
| 486 | 208 | //# sourceMappingURL=editor-elements-panel.js.map |