@elementor/editor-components 4.0.0-609 → 4.0.0-621
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +84 -83
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +23 -23
- package/src/components/instance-editing-panel/override-prop-control.tsx +5 -3
- package/src/components/instance-editing-panel/use-instance-panel-data.ts +5 -11
- package/src/create-component-type.ts +15 -13
- package/src/extended/components/component-properties-panel/component-properties-panel.tsx +9 -17
- package/src/utils/is-pro-user.ts +0 -26
package/dist/index.js
CHANGED
|
@@ -1254,6 +1254,7 @@ function OverrideControl({ overridableProp }) {
|
|
|
1254
1254
|
if (!elementType) {
|
|
1255
1255
|
return null;
|
|
1256
1256
|
}
|
|
1257
|
+
const settings = (0, import_editor_elements4.getElementSettings)(elementId, Object.keys(elementType.propsSchema));
|
|
1257
1258
|
const propTypeSchema = (0, import_editor_editing_panel.createTopLevelObjectType)({
|
|
1258
1259
|
schema: {
|
|
1259
1260
|
[overridableProp.overrideKey]: propType
|
|
@@ -1265,7 +1266,7 @@ function OverrideControl({ overridableProp }) {
|
|
|
1265
1266
|
value: componentOverridablePropTypeUtil.extract(matchingOverride) ?? void 0,
|
|
1266
1267
|
componentInstanceElement
|
|
1267
1268
|
},
|
|
1268
|
-
/* @__PURE__ */ React13.createElement(import_editor_editing_panel.ElementProvider, { element: { id: elementId, type }, elementType }, /* @__PURE__ */ React13.createElement(import_editor_editing_panel.SettingsField, { bind: propKey, propDisplayName: overridableProp.label }, /* @__PURE__ */ React13.createElement(
|
|
1269
|
+
/* @__PURE__ */ React13.createElement(import_editor_editing_panel.ElementProvider, { element: { id: elementId, type }, elementType, settings }, /* @__PURE__ */ React13.createElement(import_editor_editing_panel.SettingsField, { bind: propKey, propDisplayName: overridableProp.label }, /* @__PURE__ */ React13.createElement(
|
|
1269
1270
|
import_editor_controls2.PropProvider,
|
|
1270
1271
|
{
|
|
1271
1272
|
propType: propTypeSchema,
|
|
@@ -1411,7 +1412,6 @@ function EditComponentAction({ label, onClick, disabled = false, icon: Icon2 })
|
|
|
1411
1412
|
|
|
1412
1413
|
// src/components/instance-editing-panel/use-instance-panel-data.ts
|
|
1413
1414
|
var import_editor_editing_panel4 = require("@elementor/editor-editing-panel");
|
|
1414
|
-
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1415
1415
|
|
|
1416
1416
|
// src/utils/filter-valid-overridable-props.ts
|
|
1417
1417
|
function filterValidOverridableProps(overridableProps, instanceElementId) {
|
|
@@ -1487,11 +1487,11 @@ function useSanitizeOverridableProps(componentId, instanceElementId) {
|
|
|
1487
1487
|
|
|
1488
1488
|
// src/components/instance-editing-panel/use-instance-panel-data.ts
|
|
1489
1489
|
function useInstancePanelData() {
|
|
1490
|
-
const settings = useComponentInstanceSettings();
|
|
1490
|
+
const { element, settings } = useComponentInstanceSettings();
|
|
1491
1491
|
const componentId = settings?.component_id?.value;
|
|
1492
1492
|
const overrides = settings?.overrides?.value;
|
|
1493
1493
|
const component = useComponent(componentId ?? null);
|
|
1494
|
-
const componentInstanceId =
|
|
1494
|
+
const componentInstanceId = element?.id;
|
|
1495
1495
|
const overridableProps = useSanitizeOverridableProps(componentId ?? null, componentInstanceId);
|
|
1496
1496
|
if (!componentId || !overridableProps || !component) {
|
|
1497
1497
|
return null;
|
|
@@ -1502,9 +1502,8 @@ function useInstancePanelData() {
|
|
|
1502
1502
|
return { componentId, component, overrides, overridableProps, groups, isEmpty, componentInstanceId };
|
|
1503
1503
|
}
|
|
1504
1504
|
function useComponentInstanceSettings() {
|
|
1505
|
-
const { element } = (0, import_editor_editing_panel4.useElement)();
|
|
1506
|
-
|
|
1507
|
-
return componentInstancePropTypeUtil.extract(settings);
|
|
1505
|
+
const { element, settings } = (0, import_editor_editing_panel4.useElement)();
|
|
1506
|
+
return { element, settings: componentInstancePropTypeUtil.extract(settings.component_instance) };
|
|
1508
1507
|
}
|
|
1509
1508
|
|
|
1510
1509
|
// src/components/instance-editing-panel/instance-editing-panel.tsx
|
|
@@ -1552,6 +1551,7 @@ var import_editor_documents4 = require("@elementor/editor-documents");
|
|
|
1552
1551
|
var import_editor_canvas4 = require("@elementor/editor-canvas");
|
|
1553
1552
|
var import_editor_documents3 = require("@elementor/editor-documents");
|
|
1554
1553
|
var import_store18 = require("@elementor/store");
|
|
1554
|
+
var import_utils4 = require("@elementor/utils");
|
|
1555
1555
|
var import_i18n7 = require("@wordpress/i18n");
|
|
1556
1556
|
|
|
1557
1557
|
// src/utils/format-component-elements-id.ts
|
|
@@ -1572,7 +1572,7 @@ function formatComponentElementsId(elements, path) {
|
|
|
1572
1572
|
|
|
1573
1573
|
// src/utils/switch-to-component.ts
|
|
1574
1574
|
var import_editor_documents2 = require("@elementor/editor-documents");
|
|
1575
|
-
var
|
|
1575
|
+
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1576
1576
|
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
1577
1577
|
async function switchToComponent(componentId, componentInstanceId, element) {
|
|
1578
1578
|
const selector = getSelector(element, componentInstanceId);
|
|
@@ -1583,10 +1583,10 @@ async function switchToComponent(componentId, componentInstanceId, element) {
|
|
|
1583
1583
|
setAsInitial: false,
|
|
1584
1584
|
shouldScroll: false
|
|
1585
1585
|
});
|
|
1586
|
-
const currentDocumentContainer = (0,
|
|
1586
|
+
const currentDocumentContainer = (0, import_editor_elements5.getCurrentDocumentContainer)();
|
|
1587
1587
|
const topLevelElement = currentDocumentContainer?.children?.[0];
|
|
1588
1588
|
if (topLevelElement) {
|
|
1589
|
-
(0,
|
|
1589
|
+
(0, import_editor_elements5.selectElement)(topLevelElement.id);
|
|
1590
1590
|
expandNavigator();
|
|
1591
1591
|
}
|
|
1592
1592
|
}
|
|
@@ -1663,6 +1663,7 @@ var onElementDrop = (_args, element) => {
|
|
|
1663
1663
|
|
|
1664
1664
|
// src/create-component-type.ts
|
|
1665
1665
|
var COMPONENT_WIDGET_TYPE = "e-component";
|
|
1666
|
+
var EDIT_COMPONENT_UPGRADE_URL = "https://go.elementor.com/go-pro-components-edit/";
|
|
1666
1667
|
var updateGroups = (groups, config) => {
|
|
1667
1668
|
const disableMap = new Map(Object.entries(config.disable ?? {}));
|
|
1668
1669
|
const addMap = new Map(Object.entries(config.add ?? {}));
|
|
@@ -1771,6 +1772,10 @@ function createComponentView(options) {
|
|
|
1771
1772
|
}
|
|
1772
1773
|
_getContextMenuConfig() {
|
|
1773
1774
|
const isAdministrator = isUserAdministrator();
|
|
1775
|
+
const hasPro = (0, import_utils4.hasProInstalled)();
|
|
1776
|
+
const proLabel = (0, import_i18n7.__)("PRO", "elementor");
|
|
1777
|
+
const badgeClass = "elementor-context-menu-list__item__shortcut__new-badge";
|
|
1778
|
+
const proBadge = `<a href="${EDIT_COMPONENT_UPGRADE_URL}" target="_blank" onclick="event.stopPropagation()" class="${badgeClass}">${proLabel}</a>`;
|
|
1774
1779
|
const addedGroup = {
|
|
1775
1780
|
general: {
|
|
1776
1781
|
index: 1,
|
|
@@ -1778,7 +1783,8 @@ function createComponentView(options) {
|
|
|
1778
1783
|
name: "edit component",
|
|
1779
1784
|
icon: "eicon-edit",
|
|
1780
1785
|
title: () => (0, import_i18n7.__)("Edit Component", "elementor"),
|
|
1781
|
-
|
|
1786
|
+
...!hasPro && { shortcut: proBadge, hasShortcutAction: true },
|
|
1787
|
+
isEnabled: () => hasPro,
|
|
1782
1788
|
callback: (_, eventData) => this.editComponent(eventData)
|
|
1783
1789
|
}
|
|
1784
1790
|
}
|
|
@@ -1799,7 +1805,8 @@ function createComponentView(options) {
|
|
|
1799
1805
|
}
|
|
1800
1806
|
}
|
|
1801
1807
|
editComponent({ trigger, location, secondaryLocation }) {
|
|
1802
|
-
|
|
1808
|
+
const hasPro = (0, import_utils4.hasProInstalled)();
|
|
1809
|
+
if (!hasPro || this.isComponentCurrentlyEdited()) {
|
|
1803
1810
|
return;
|
|
1804
1811
|
}
|
|
1805
1812
|
this.switchDocument();
|
|
@@ -1816,8 +1823,7 @@ function createComponentView(options) {
|
|
|
1816
1823
|
}
|
|
1817
1824
|
handleDblClick(e) {
|
|
1818
1825
|
e.stopPropagation();
|
|
1819
|
-
|
|
1820
|
-
if (!isAdministrator) {
|
|
1826
|
+
if (!isUserAdministrator() || !(0, import_utils4.hasProInstalled)()) {
|
|
1821
1827
|
return;
|
|
1822
1828
|
}
|
|
1823
1829
|
const { triggers, locations, secondaryLocations } = this.eventsManagerConfig;
|
|
@@ -2127,7 +2133,6 @@ var ComponentIntroduction = ({
|
|
|
2127
2133
|
// src/extended/components/component-properties-panel/component-properties-panel.tsx
|
|
2128
2134
|
var React25 = __toESM(require("react"));
|
|
2129
2135
|
var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
|
|
2130
|
-
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
2131
2136
|
var import_editor_panels4 = require("@elementor/editor-panels");
|
|
2132
2137
|
var import_editor_ui11 = require("@elementor/editor-ui");
|
|
2133
2138
|
var import_ui21 = require("@elementor/ui");
|
|
@@ -2140,7 +2145,7 @@ var import_editor_documents7 = require("@elementor/editor-documents");
|
|
|
2140
2145
|
var import_editor_panels3 = require("@elementor/editor-panels");
|
|
2141
2146
|
var import_icons12 = require("@elementor/icons");
|
|
2142
2147
|
var import_ui20 = require("@elementor/ui");
|
|
2143
|
-
var
|
|
2148
|
+
var import_utils6 = require("@elementor/utils");
|
|
2144
2149
|
var import_i18n16 = require("@wordpress/i18n");
|
|
2145
2150
|
|
|
2146
2151
|
// src/extended/store/actions/add-overridable-group.ts
|
|
@@ -2190,7 +2195,7 @@ function addOverridableGroup({
|
|
|
2190
2195
|
var import_store28 = require("@elementor/store");
|
|
2191
2196
|
|
|
2192
2197
|
// src/extended/store/utils/groups-transformers.ts
|
|
2193
|
-
var
|
|
2198
|
+
var import_utils5 = require("@elementor/utils");
|
|
2194
2199
|
var import_i18n9 = require("@wordpress/i18n");
|
|
2195
2200
|
function removePropFromAllGroups(groups, propKey) {
|
|
2196
2201
|
const propKeys = Array.isArray(propKey) ? propKey : [propKey];
|
|
@@ -2259,7 +2264,7 @@ function resolveOrCreateGroup(groups, requestedGroupId) {
|
|
|
2259
2264
|
return createGroup(groups, requestedGroupId);
|
|
2260
2265
|
}
|
|
2261
2266
|
function createGroup(groups, groupId, label) {
|
|
2262
|
-
const newGroupId = groupId || (0,
|
|
2267
|
+
const newGroupId = groupId || (0, import_utils5.generateUniqueId)("group");
|
|
2263
2268
|
const newLabel = label || (0, import_i18n9.__)("Default", "elementor");
|
|
2264
2269
|
return {
|
|
2265
2270
|
groups: {
|
|
@@ -2361,9 +2366,9 @@ function deleteOverridableGroup({ componentId, groupId }) {
|
|
|
2361
2366
|
var import_store30 = require("@elementor/store");
|
|
2362
2367
|
|
|
2363
2368
|
// src/extended/utils/revert-overridable-settings.ts
|
|
2364
|
-
var
|
|
2369
|
+
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
2365
2370
|
function revertElementOverridableSetting(elementId, settingKey, originValue, overrideKey) {
|
|
2366
|
-
const container = (0,
|
|
2371
|
+
const container = (0, import_editor_elements6.getContainer)(elementId);
|
|
2367
2372
|
if (!container) {
|
|
2368
2373
|
return;
|
|
2369
2374
|
}
|
|
@@ -2371,14 +2376,14 @@ function revertElementOverridableSetting(elementId, settingKey, originValue, ove
|
|
|
2371
2376
|
revertComponentInstanceOverridableSetting(elementId, overrideKey);
|
|
2372
2377
|
return;
|
|
2373
2378
|
}
|
|
2374
|
-
(0,
|
|
2379
|
+
(0, import_editor_elements6.updateElementSettings)({
|
|
2375
2380
|
id: elementId,
|
|
2376
2381
|
props: { [settingKey]: originValue ?? null },
|
|
2377
2382
|
withHistory: false
|
|
2378
2383
|
});
|
|
2379
2384
|
}
|
|
2380
2385
|
function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
|
|
2381
|
-
const setting = (0,
|
|
2386
|
+
const setting = (0, import_editor_elements6.getElementSetting)(elementId, "component_instance");
|
|
2382
2387
|
const componentInstance = componentInstancePropTypeUtil.extract(setting);
|
|
2383
2388
|
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
2384
2389
|
if (!overrides?.length) {
|
|
@@ -2389,7 +2394,7 @@ function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
|
|
|
2389
2394
|
...componentInstance,
|
|
2390
2395
|
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
2391
2396
|
});
|
|
2392
|
-
(0,
|
|
2397
|
+
(0, import_editor_elements6.updateElementSettings)({
|
|
2393
2398
|
id: elementId,
|
|
2394
2399
|
props: { component_instance: updatedSetting },
|
|
2395
2400
|
withHistory: false
|
|
@@ -2454,7 +2459,7 @@ function revertComponentInstanceSettings(settings) {
|
|
|
2454
2459
|
};
|
|
2455
2460
|
}
|
|
2456
2461
|
function revertAllOverridablesInContainer(container) {
|
|
2457
|
-
(0,
|
|
2462
|
+
(0, import_editor_elements6.getAllDescendants)(container).forEach((element) => {
|
|
2458
2463
|
if (element.model.get("widgetType") === COMPONENT_WIDGET_TYPE) {
|
|
2459
2464
|
revertComponentInstanceOverridesInElement(element);
|
|
2460
2465
|
} else {
|
|
@@ -2474,7 +2479,7 @@ function revertComponentInstanceOverridesInElement(element) {
|
|
|
2474
2479
|
...componentInstance,
|
|
2475
2480
|
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
2476
2481
|
});
|
|
2477
|
-
(0,
|
|
2482
|
+
(0, import_editor_elements6.updateElementSettings)({
|
|
2478
2483
|
id: element.id,
|
|
2479
2484
|
props: { component_instance: updatedSetting },
|
|
2480
2485
|
withHistory: false
|
|
@@ -2486,7 +2491,7 @@ function revertElementSettings(element) {
|
|
|
2486
2491
|
if (!hasChanges) {
|
|
2487
2492
|
return;
|
|
2488
2493
|
}
|
|
2489
|
-
(0,
|
|
2494
|
+
(0, import_editor_elements6.updateElementSettings)({
|
|
2490
2495
|
id: element.id,
|
|
2491
2496
|
props: revertedSettings,
|
|
2492
2497
|
withHistory: false
|
|
@@ -2683,7 +2688,7 @@ var import_i18n13 = require("@wordpress/i18n");
|
|
|
2683
2688
|
|
|
2684
2689
|
// src/extended/components/component-properties-panel/property-item.tsx
|
|
2685
2690
|
var React22 = __toESM(require("react"));
|
|
2686
|
-
var
|
|
2691
|
+
var import_editor_elements7 = require("@elementor/editor-elements");
|
|
2687
2692
|
var import_icons10 = require("@elementor/icons");
|
|
2688
2693
|
var import_ui18 = require("@elementor/ui");
|
|
2689
2694
|
|
|
@@ -2956,7 +2961,7 @@ function PropertyItem({
|
|
|
2956
2961
|
}
|
|
2957
2962
|
function getElementIcon(prop) {
|
|
2958
2963
|
const elType = prop.elType === "widget" ? prop.widgetType : prop.elType;
|
|
2959
|
-
const widgetsCache = (0,
|
|
2964
|
+
const widgetsCache = (0, import_editor_elements7.getWidgetsCache)();
|
|
2960
2965
|
if (!widgetsCache) {
|
|
2961
2966
|
return "eicon-apps";
|
|
2962
2967
|
}
|
|
@@ -3247,7 +3252,7 @@ function ComponentPropertiesPanelContent({ onClose }) {
|
|
|
3247
3252
|
if (isAddingGroup) {
|
|
3248
3253
|
return;
|
|
3249
3254
|
}
|
|
3250
|
-
const newGroupId = (0,
|
|
3255
|
+
const newGroupId = (0, import_utils6.generateUniqueId)("group");
|
|
3251
3256
|
const newLabel = generateUniqueLabel(groups);
|
|
3252
3257
|
addOverridableGroup({
|
|
3253
3258
|
componentId: currentComponentId,
|
|
@@ -3327,13 +3332,9 @@ var { panel, usePanelActions } = (0, import_editor_panels4.__createPanel)({
|
|
|
3327
3332
|
component: ComponentPropertiesPanel
|
|
3328
3333
|
});
|
|
3329
3334
|
function ComponentPropertiesPanel() {
|
|
3330
|
-
const { element, elementType } = (0, import_editor_elements9.useSelectedElement)();
|
|
3331
3335
|
const { close: closePanel } = usePanelActions();
|
|
3332
3336
|
const { open: openEditingPanel } = (0, import_editor_editing_panel5.usePanelActions)();
|
|
3333
|
-
|
|
3334
|
-
return null;
|
|
3335
|
-
}
|
|
3336
|
-
return /* @__PURE__ */ React25.createElement(import_editor_ui11.ThemeProvider, null, /* @__PURE__ */ React25.createElement(import_ui21.ErrorBoundary, { fallback: /* @__PURE__ */ React25.createElement(ErrorBoundaryFallback, null) }, /* @__PURE__ */ React25.createElement(import_editor_editing_panel5.ElementProvider, { element, elementType }, /* @__PURE__ */ React25.createElement(import_editor_panels4.Panel, null, /* @__PURE__ */ React25.createElement(
|
|
3337
|
+
return /* @__PURE__ */ React25.createElement(import_editor_ui11.ThemeProvider, null, /* @__PURE__ */ React25.createElement(import_ui21.ErrorBoundary, { fallback: /* @__PURE__ */ React25.createElement(ErrorBoundaryFallback, null) }, /* @__PURE__ */ React25.createElement(import_editor_panels4.Panel, null, /* @__PURE__ */ React25.createElement(
|
|
3337
3338
|
ComponentPropertiesPanelContent,
|
|
3338
3339
|
{
|
|
3339
3340
|
onClose: () => {
|
|
@@ -3341,7 +3342,7 @@ function ComponentPropertiesPanel() {
|
|
|
3341
3342
|
openEditingPanel();
|
|
3342
3343
|
}
|
|
3343
3344
|
}
|
|
3344
|
-
))))
|
|
3345
|
+
))));
|
|
3345
3346
|
}
|
|
3346
3347
|
var ErrorBoundaryFallback = () => /* @__PURE__ */ React25.createElement(import_ui21.Box, { role: "alert", sx: { minHeight: "100%", p: 2 } }, /* @__PURE__ */ React25.createElement(import_ui21.Alert, { severity: "error", sx: { mb: 2, maxWidth: 400, textAlign: "center" } }, /* @__PURE__ */ React25.createElement("strong", null, (0, import_i18n17.__)("Something went wrong", "elementor"))));
|
|
3347
3348
|
|
|
@@ -3479,7 +3480,7 @@ var import_ui25 = require("@elementor/ui");
|
|
|
3479
3480
|
var React29 = __toESM(require("react"));
|
|
3480
3481
|
var import_react13 = require("react");
|
|
3481
3482
|
var import_editor_canvas5 = require("@elementor/editor-canvas");
|
|
3482
|
-
var
|
|
3483
|
+
var import_editor_elements10 = require("@elementor/editor-elements");
|
|
3483
3484
|
var import_editor_ui14 = require("@elementor/editor-ui");
|
|
3484
3485
|
var import_icons15 = require("@elementor/icons");
|
|
3485
3486
|
var import_ui24 = require("@elementor/ui");
|
|
@@ -3504,7 +3505,7 @@ var archiveComponent = (componentId, componentName) => {
|
|
|
3504
3505
|
|
|
3505
3506
|
// src/extended/store/actions/rename-component.ts
|
|
3506
3507
|
var import_editor_documents10 = require("@elementor/editor-documents");
|
|
3507
|
-
var
|
|
3508
|
+
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
3508
3509
|
var import_store46 = require("@elementor/store");
|
|
3509
3510
|
var TITLE_EXTERNAL_CHANGE_COMMAND = "title_external_change";
|
|
3510
3511
|
var renameComponent = (componentUid, newName) => {
|
|
@@ -3527,7 +3528,7 @@ function getDocumentContainer() {
|
|
|
3527
3528
|
return documentsManager?.getCurrent()?.container;
|
|
3528
3529
|
}
|
|
3529
3530
|
function findComponentInstancesByUid(documentContainer, componentUid) {
|
|
3530
|
-
const allDescendants = (0,
|
|
3531
|
+
const allDescendants = (0, import_editor_elements8.getAllDescendants)(documentContainer);
|
|
3531
3532
|
return allDescendants.filter((element) => {
|
|
3532
3533
|
const widgetType = element.model.get("widgetType");
|
|
3533
3534
|
const editorSettings = element.model.get("editor_settings");
|
|
@@ -3605,9 +3606,9 @@ var createComponentModel2 = (component) => {
|
|
|
3605
3606
|
};
|
|
3606
3607
|
|
|
3607
3608
|
// src/extended/utils/get-container-for-new-element.ts
|
|
3608
|
-
var
|
|
3609
|
+
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
3609
3610
|
var getContainerForNewElement = () => {
|
|
3610
|
-
const currentDocumentContainer = (0,
|
|
3611
|
+
const currentDocumentContainer = (0, import_editor_elements9.getCurrentDocumentContainer)();
|
|
3611
3612
|
const selectedElement = getSelectedElementContainer();
|
|
3612
3613
|
let container, options;
|
|
3613
3614
|
if (selectedElement) {
|
|
@@ -3633,11 +3634,11 @@ var getContainerForNewElement = () => {
|
|
|
3633
3634
|
return { container: container ?? currentDocumentContainer, options };
|
|
3634
3635
|
};
|
|
3635
3636
|
function getSelectedElementContainer() {
|
|
3636
|
-
const selectedElements = (0,
|
|
3637
|
+
const selectedElements = (0, import_editor_elements9.getSelectedElements)();
|
|
3637
3638
|
if (selectedElements.length !== 1) {
|
|
3638
3639
|
return void 0;
|
|
3639
3640
|
}
|
|
3640
|
-
return (0,
|
|
3641
|
+
return (0, import_editor_elements9.getContainer)(selectedElements[0].id);
|
|
3641
3642
|
}
|
|
3642
3643
|
|
|
3643
3644
|
// src/extended/components/components-tab/delete-confirmation-dialog.tsx
|
|
@@ -3774,7 +3775,7 @@ var addComponentToPage = (model) => {
|
|
|
3774
3775
|
throw new Error(`Can't find container to drop new component instance at`);
|
|
3775
3776
|
}
|
|
3776
3777
|
loadComponentsAssets([model]);
|
|
3777
|
-
(0,
|
|
3778
|
+
(0, import_editor_elements10.dropElement)({
|
|
3778
3779
|
containerId: container.id,
|
|
3779
3780
|
model,
|
|
3780
3781
|
options: { ...options, useHistory: false, scrollIntoView: true }
|
|
@@ -3812,7 +3813,7 @@ var ExtendedComponents = () => {
|
|
|
3812
3813
|
// src/extended/components/create-component-form/create-component-form.tsx
|
|
3813
3814
|
var React31 = __toESM(require("react"));
|
|
3814
3815
|
var import_react15 = require("react");
|
|
3815
|
-
var
|
|
3816
|
+
var import_editor_elements14 = require("@elementor/editor-elements");
|
|
3816
3817
|
var import_editor_notifications3 = require("@elementor/editor-notifications");
|
|
3817
3818
|
var import_editor_ui16 = require("@elementor/editor-ui");
|
|
3818
3819
|
var import_icons16 = require("@elementor/icons");
|
|
@@ -3821,16 +3822,16 @@ var import_ui26 = require("@elementor/ui");
|
|
|
3821
3822
|
var import_i18n26 = require("@wordpress/i18n");
|
|
3822
3823
|
|
|
3823
3824
|
// src/extended/store/actions/create-unpublished-component.ts
|
|
3824
|
-
var
|
|
3825
|
+
var import_editor_elements12 = require("@elementor/editor-elements");
|
|
3825
3826
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
3826
3827
|
var import_store50 = require("@elementor/store");
|
|
3827
|
-
var
|
|
3828
|
+
var import_utils7 = require("@elementor/utils");
|
|
3828
3829
|
var import_i18n24 = require("@wordpress/i18n");
|
|
3829
3830
|
|
|
3830
3831
|
// src/extended/utils/replace-element-with-component.ts
|
|
3831
|
-
var
|
|
3832
|
+
var import_editor_elements11 = require("@elementor/editor-elements");
|
|
3832
3833
|
var replaceElementWithComponent = async (element, component) => {
|
|
3833
|
-
return await (0,
|
|
3834
|
+
return await (0, import_editor_elements11.replaceElement)({
|
|
3834
3835
|
currentElement: element,
|
|
3835
3836
|
newElement: createComponentModel2(component),
|
|
3836
3837
|
withHistory: false
|
|
@@ -3846,10 +3847,10 @@ async function createUnpublishedComponent({
|
|
|
3846
3847
|
overridableProps,
|
|
3847
3848
|
source
|
|
3848
3849
|
}) {
|
|
3849
|
-
const generatedUid = uid ?? (0,
|
|
3850
|
+
const generatedUid = uid ?? (0, import_utils7.generateUniqueId)("component");
|
|
3850
3851
|
const componentBase = { uid: generatedUid, name };
|
|
3851
3852
|
const elementDataWithOverridablesReverted = revertAllOverridablesInElementData(element);
|
|
3852
|
-
const container = (0,
|
|
3853
|
+
const container = (0, import_editor_elements12.getContainer)(element.id);
|
|
3853
3854
|
const modelFromContainer = container?.model?.toJSON?.();
|
|
3854
3855
|
const originalElement = {
|
|
3855
3856
|
model: modelFromContainer ?? element,
|
|
@@ -3883,16 +3884,16 @@ async function createUnpublishedComponent({
|
|
|
3883
3884
|
return { uid: generatedUid, instanceId: componentInstance.id };
|
|
3884
3885
|
}
|
|
3885
3886
|
function restoreOriginalElement(originalElement, componentInstanceId) {
|
|
3886
|
-
const componentContainer = (0,
|
|
3887
|
+
const componentContainer = (0, import_editor_elements12.getContainer)(componentInstanceId);
|
|
3887
3888
|
if (componentContainer) {
|
|
3888
|
-
(0,
|
|
3889
|
+
(0, import_editor_elements12.deleteElement)({ container: componentContainer, options: { useHistory: false } });
|
|
3889
3890
|
}
|
|
3890
|
-
const parentContainer = (0,
|
|
3891
|
+
const parentContainer = (0, import_editor_elements12.getContainer)(originalElement.parentId);
|
|
3891
3892
|
if (!parentContainer) {
|
|
3892
3893
|
return;
|
|
3893
3894
|
}
|
|
3894
3895
|
const clonedModel = structuredClone(originalElement.model);
|
|
3895
|
-
(0,
|
|
3896
|
+
(0, import_editor_elements12.createElements)({
|
|
3896
3897
|
title: (0, import_i18n24.__)("Restore Element", "elementor"),
|
|
3897
3898
|
elements: [
|
|
3898
3899
|
{
|
|
@@ -3906,7 +3907,7 @@ function restoreOriginalElement(originalElement, componentInstanceId) {
|
|
|
3906
3907
|
|
|
3907
3908
|
// src/extended/sync/prevent-non-atomic-nesting.ts
|
|
3908
3909
|
var import_editor_canvas6 = require("@elementor/editor-canvas");
|
|
3909
|
-
var
|
|
3910
|
+
var import_editor_elements13 = require("@elementor/editor-elements");
|
|
3910
3911
|
var import_editor_notifications2 = require("@elementor/editor-notifications");
|
|
3911
3912
|
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
3912
3913
|
var import_i18n25 = require("@wordpress/i18n");
|
|
@@ -3942,7 +3943,7 @@ function initNonAtomicNestingPrevention() {
|
|
|
3942
3943
|
});
|
|
3943
3944
|
}
|
|
3944
3945
|
function isElementAtomic(elementType) {
|
|
3945
|
-
return (0,
|
|
3946
|
+
return (0, import_editor_elements13.getElementType)(elementType) !== null;
|
|
3946
3947
|
}
|
|
3947
3948
|
function blockNonAtomicCreate(args) {
|
|
3948
3949
|
if (!isEditingComponent()) {
|
|
@@ -3968,7 +3969,7 @@ function blockNonAtomicMove(args) {
|
|
|
3968
3969
|
if (!container) {
|
|
3969
3970
|
return false;
|
|
3970
3971
|
}
|
|
3971
|
-
const allElements = (0,
|
|
3972
|
+
const allElements = (0, import_editor_elements13.getAllDescendants)(container);
|
|
3972
3973
|
return allElements.some((element) => !(0, import_editor_canvas6.isAtomicWidget)(element));
|
|
3973
3974
|
});
|
|
3974
3975
|
if (hasNonAtomicElement) {
|
|
@@ -4115,7 +4116,7 @@ function CreateComponentForm() {
|
|
|
4115
4116
|
(0, import_editor_notifications3.notify)(notification);
|
|
4116
4117
|
return;
|
|
4117
4118
|
}
|
|
4118
|
-
setElement({ element: event.detail.element, elementLabel: (0,
|
|
4119
|
+
setElement({ element: event.detail.element, elementLabel: (0, import_editor_elements14.getElementLabel)(event.detail.element.id) });
|
|
4119
4120
|
setAnchorPosition(event.detail.anchorPosition);
|
|
4120
4121
|
eventData.current = getComponentEventData(event.detail.element, event.detail.options);
|
|
4121
4122
|
trackComponentEvent({
|
|
@@ -4290,7 +4291,7 @@ var import_react18 = require("react");
|
|
|
4290
4291
|
var import_editor_documents11 = require("@elementor/editor-documents");
|
|
4291
4292
|
var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
|
|
4292
4293
|
var import_store60 = require("@elementor/store");
|
|
4293
|
-
var
|
|
4294
|
+
var import_utils9 = require("@elementor/utils");
|
|
4294
4295
|
|
|
4295
4296
|
// src/extended/consts.ts
|
|
4296
4297
|
var OVERRIDABLE_PROP_REPLACEMENT_ID = "overridable-prop";
|
|
@@ -4330,10 +4331,10 @@ function useCanvasDocument() {
|
|
|
4330
4331
|
|
|
4331
4332
|
// src/extended/components/edit-component/use-element-rect.ts
|
|
4332
4333
|
var import_react16 = require("react");
|
|
4333
|
-
var
|
|
4334
|
+
var import_utils8 = require("@elementor/utils");
|
|
4334
4335
|
function useElementRect(element) {
|
|
4335
4336
|
const [rect, setRect] = (0, import_react16.useState)(new DOMRect(0, 0, 0, 0));
|
|
4336
|
-
const onChange = (0,
|
|
4337
|
+
const onChange = (0, import_utils8.throttle)(
|
|
4337
4338
|
() => {
|
|
4338
4339
|
setRect(element?.getBoundingClientRect() ?? new DOMRect(0, 0, 0, 0));
|
|
4339
4340
|
},
|
|
@@ -4494,7 +4495,7 @@ function EditComponent() {
|
|
|
4494
4495
|
const currentComponentId = useCurrentComponentId();
|
|
4495
4496
|
useHandleDocumentSwitches();
|
|
4496
4497
|
const navigateBack = useNavigateBack();
|
|
4497
|
-
const onClose = (0,
|
|
4498
|
+
const onClose = (0, import_utils9.throttle)(navigateBack, 100);
|
|
4498
4499
|
const topLevelElementDom = useComponentDOMElement(currentComponentId ?? void 0);
|
|
4499
4500
|
if (!currentComponentId) {
|
|
4500
4501
|
return null;
|
|
@@ -4713,13 +4714,13 @@ function ControlWithReplacements({
|
|
|
4713
4714
|
var React37 = __toESM(require("react"));
|
|
4714
4715
|
var import_editor_controls6 = require("@elementor/editor-controls");
|
|
4715
4716
|
var import_editor_editing_panel7 = require("@elementor/editor-editing-panel");
|
|
4716
|
-
var
|
|
4717
|
+
var import_editor_elements15 = require("@elementor/editor-elements");
|
|
4717
4718
|
var import_ui29 = require("@elementor/ui");
|
|
4718
4719
|
var import_i18n30 = require("@wordpress/i18n");
|
|
4719
4720
|
|
|
4720
4721
|
// src/extended/store/actions/set-overridable-prop.ts
|
|
4721
4722
|
var import_store63 = require("@elementor/store");
|
|
4722
|
-
var
|
|
4723
|
+
var import_utils10 = require("@elementor/utils");
|
|
4723
4724
|
function setOverridableProp({
|
|
4724
4725
|
componentId,
|
|
4725
4726
|
overrideKey,
|
|
@@ -4746,7 +4747,7 @@ function setOverridableProp({
|
|
|
4746
4747
|
groupId || existingOverridableProp?.groupId || void 0
|
|
4747
4748
|
);
|
|
4748
4749
|
const overridableProp = {
|
|
4749
|
-
overrideKey: existingOverridableProp?.overrideKey || (0,
|
|
4750
|
+
overrideKey: existingOverridableProp?.overrideKey || (0, import_utils10.generateUniqueId)("prop"),
|
|
4750
4751
|
label,
|
|
4751
4752
|
elementId,
|
|
4752
4753
|
propKey,
|
|
@@ -4895,7 +4896,7 @@ function Content2({ componentId, overridableProps }) {
|
|
|
4895
4896
|
});
|
|
4896
4897
|
const triggerProps = (0, import_ui29.bindTrigger)(popupState);
|
|
4897
4898
|
const popoverProps = (0, import_ui29.bindPopover)(popupState);
|
|
4898
|
-
const { elType } = (0,
|
|
4899
|
+
const { elType } = (0, import_editor_elements15.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
|
|
4899
4900
|
const handleSubmit = ({ label, group }) => {
|
|
4900
4901
|
const propTypeDefault = propType.default ?? {};
|
|
4901
4902
|
const originValue = resolveOverridePropValue(overridableValue?.origin_value) ?? value ?? propTypeDefault;
|
|
@@ -4962,11 +4963,11 @@ var import_editor_mcp2 = require("@elementor/editor-mcp");
|
|
|
4962
4963
|
|
|
4963
4964
|
// src/extended/mcp/save-as-component-tool.ts
|
|
4964
4965
|
var import_editor_canvas7 = require("@elementor/editor-canvas");
|
|
4965
|
-
var
|
|
4966
|
+
var import_editor_elements16 = require("@elementor/editor-elements");
|
|
4966
4967
|
var import_editor_mcp = require("@elementor/editor-mcp");
|
|
4967
4968
|
var import_http_client2 = require("@elementor/http-client");
|
|
4968
4969
|
var import_schema6 = require("@elementor/schema");
|
|
4969
|
-
var
|
|
4970
|
+
var import_utils11 = require("@elementor/utils");
|
|
4970
4971
|
var InputSchema = {
|
|
4971
4972
|
element_id: import_schema6.z.string().describe(
|
|
4972
4973
|
'The unique identifier of the element to save as a component. Use the "list-elements" tool to find available element IDs in the current document.'
|
|
@@ -5007,7 +5008,7 @@ var handleSaveAsComponent = async (params) => {
|
|
|
5007
5008
|
overridable_props: overridablePropsInput
|
|
5008
5009
|
} = params;
|
|
5009
5010
|
const validElementTypes = getValidElementTypes();
|
|
5010
|
-
const container = (0,
|
|
5011
|
+
const container = (0, import_editor_elements16.getContainer)(elementId);
|
|
5011
5012
|
if (!container) {
|
|
5012
5013
|
throw new Error(ERROR_MESSAGES3.ELEMENT_NOT_FOUND);
|
|
5013
5014
|
}
|
|
@@ -5021,7 +5022,7 @@ var handleSaveAsComponent = async (params) => {
|
|
|
5021
5022
|
}
|
|
5022
5023
|
const groupsWithDefaultGroup = groups.indexOf("Default") >= 0 ? [...groups] : ["Default", ...groups];
|
|
5023
5024
|
const propertyGroups = groupsWithDefaultGroup.map((groupName) => ({
|
|
5024
|
-
id: (0,
|
|
5025
|
+
id: (0, import_utils11.generateUniqueId)("group"),
|
|
5025
5026
|
label: groupName,
|
|
5026
5027
|
props: []
|
|
5027
5028
|
}));
|
|
@@ -5029,7 +5030,7 @@ var handleSaveAsComponent = async (params) => {
|
|
|
5029
5030
|
if (overridableProps) {
|
|
5030
5031
|
updateElementDataWithOverridableProps(element, overridableProps);
|
|
5031
5032
|
}
|
|
5032
|
-
const uid = (0,
|
|
5033
|
+
const uid = (0, import_utils11.generateUniqueId)("component");
|
|
5033
5034
|
try {
|
|
5034
5035
|
await apiClient.validate({
|
|
5035
5036
|
items: [
|
|
@@ -5073,7 +5074,7 @@ function enrichOverridableProps(input, rootElement, propertGroups) {
|
|
|
5073
5074
|
}
|
|
5074
5075
|
const elType = element.elType;
|
|
5075
5076
|
const widgetType = element.widgetType || element.elType;
|
|
5076
|
-
const elementType = (0,
|
|
5077
|
+
const elementType = (0, import_editor_elements16.getElementType)(widgetType);
|
|
5077
5078
|
if (!elementType) {
|
|
5078
5079
|
throw new Error(
|
|
5079
5080
|
`Element type "${widgetType}" is not atomic or does not have a settings schema. Cannot expose property "${propKey}" for element "${elementId}".`
|
|
@@ -5085,7 +5086,7 @@ function enrichOverridableProps(input, rootElement, propertGroups) {
|
|
|
5085
5086
|
`Property "${propKey}" does not exist in element "${elementId}" (type: ${widgetType}). Available properties: ${availableProps}`
|
|
5086
5087
|
);
|
|
5087
5088
|
}
|
|
5088
|
-
const overrideKey = (0,
|
|
5089
|
+
const overrideKey = (0, import_utils11.generateUniqueId)("prop");
|
|
5089
5090
|
const originValue = element.settings?.[propKey] ? element.settings[propKey] : elementType.propsSchema[propKey].default ?? null;
|
|
5090
5091
|
if (!enrichedGroups[targetGroupId]) {
|
|
5091
5092
|
enrichedGroups[targetGroupId] = {
|
|
@@ -5144,7 +5145,7 @@ function findElementById(root, targetId) {
|
|
|
5144
5145
|
return null;
|
|
5145
5146
|
}
|
|
5146
5147
|
function getValidElementTypes() {
|
|
5147
|
-
const types = (0,
|
|
5148
|
+
const types = (0, import_editor_elements16.getWidgetsCache)();
|
|
5148
5149
|
if (!types) {
|
|
5149
5150
|
return [];
|
|
5150
5151
|
}
|
|
@@ -5391,7 +5392,7 @@ var updateComponentTitleBeforeSave = async (status) => {
|
|
|
5391
5392
|
};
|
|
5392
5393
|
|
|
5393
5394
|
// src/extended/sync/create-components-before-save.ts
|
|
5394
|
-
var
|
|
5395
|
+
var import_editor_elements17 = require("@elementor/editor-elements");
|
|
5395
5396
|
var import_store72 = require("@elementor/store");
|
|
5396
5397
|
async function createComponentsBeforeSave({
|
|
5397
5398
|
elements,
|
|
@@ -5461,7 +5462,7 @@ function shouldUpdateElement(element, uidToComponentId) {
|
|
|
5461
5462
|
return { shouldUpdate: false, newComponentId: null };
|
|
5462
5463
|
}
|
|
5463
5464
|
function updateElementComponentId(elementId, componentId) {
|
|
5464
|
-
(0,
|
|
5465
|
+
(0, import_editor_elements17.updateElementSettings)({
|
|
5465
5466
|
id: elementId,
|
|
5466
5467
|
props: {
|
|
5467
5468
|
component_instance: {
|
|
@@ -5497,7 +5498,7 @@ var updateExistingComponentsBeforeSave = async ({
|
|
|
5497
5498
|
};
|
|
5498
5499
|
|
|
5499
5500
|
// src/extended/sync/cleanup-overridable-props-on-delete.ts
|
|
5500
|
-
var
|
|
5501
|
+
var import_editor_elements18 = require("@elementor/editor-elements");
|
|
5501
5502
|
var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
|
|
5502
5503
|
var import_store74 = require("@elementor/store");
|
|
5503
5504
|
function initCleanupOverridablePropsOnDelete() {
|
|
@@ -5534,7 +5535,7 @@ function initCleanupOverridablePropsOnDelete() {
|
|
|
5534
5535
|
});
|
|
5535
5536
|
}
|
|
5536
5537
|
function collectDeletedElementIds(containers) {
|
|
5537
|
-
const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0,
|
|
5538
|
+
const elementIds = containers.filter(Boolean).flatMap((container) => [container, ...(0, import_editor_elements18.getAllDescendants)(container)]).map((element) => element.model?.get?.("id") ?? element.id).filter((id2) => Boolean(id2));
|
|
5538
5539
|
return elementIds;
|
|
5539
5540
|
}
|
|
5540
5541
|
function isPartOfMoveCommand(options) {
|
|
@@ -5543,7 +5544,7 @@ function isPartOfMoveCommand(options) {
|
|
|
5543
5544
|
}
|
|
5544
5545
|
|
|
5545
5546
|
// src/extended/sync/handle-component-edit-mode-container.ts
|
|
5546
|
-
var
|
|
5547
|
+
var import_editor_elements19 = require("@elementor/editor-elements");
|
|
5547
5548
|
var import_editor_v1_adapters8 = require("@elementor/editor-v1-adapters");
|
|
5548
5549
|
var V4_DEFAULT_CONTAINER_TYPE = "e-flexbox";
|
|
5549
5550
|
function initHandleComponentEditModeContainer() {
|
|
@@ -5593,11 +5594,11 @@ function initRedirectDropIntoComponent() {
|
|
|
5593
5594
|
});
|
|
5594
5595
|
}
|
|
5595
5596
|
function createEmptyTopLevelContainer(container) {
|
|
5596
|
-
const newContainer = (0,
|
|
5597
|
+
const newContainer = (0, import_editor_elements19.createElement)({
|
|
5597
5598
|
container,
|
|
5598
5599
|
model: { elType: V4_DEFAULT_CONTAINER_TYPE }
|
|
5599
5600
|
});
|
|
5600
|
-
(0,
|
|
5601
|
+
(0, import_editor_elements19.selectElement)(newContainer.id);
|
|
5601
5602
|
}
|
|
5602
5603
|
function getComponentContainer(container) {
|
|
5603
5604
|
const topLevelElement = container.children?.[0];
|
|
@@ -5749,7 +5750,7 @@ function PopulateStore() {
|
|
|
5749
5750
|
}
|
|
5750
5751
|
|
|
5751
5752
|
// src/prevent-circular-nesting.ts
|
|
5752
|
-
var
|
|
5753
|
+
var import_editor_elements20 = require("@elementor/editor-elements");
|
|
5753
5754
|
var import_editor_notifications5 = require("@elementor/editor-notifications");
|
|
5754
5755
|
var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
|
|
5755
5756
|
var import_store80 = require("@elementor/store");
|
|
@@ -5844,7 +5845,7 @@ function blockCircularMove(args) {
|
|
|
5844
5845
|
if (!container) {
|
|
5845
5846
|
return false;
|
|
5846
5847
|
}
|
|
5847
|
-
const allElements = (0,
|
|
5848
|
+
const allElements = (0, import_editor_elements20.getAllDescendants)(container);
|
|
5848
5849
|
return allElements.some((element) => {
|
|
5849
5850
|
const componentId = extractComponentIdFromContainer(element);
|
|
5850
5851
|
if (componentId === null) {
|