@elementor/editor-components 3.35.0-341 → 3.35.0-342
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 +282 -145
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +232 -94
- package/dist/index.mjs.map +1 -1
- package/package.json +21 -20
- package/src/components/instance-editing-panel/empty-state.tsx +35 -0
- package/src/components/instance-editing-panel/instance-editing-panel.tsx +73 -0
- package/src/components/instance-editing-panel/override-props-group.tsx +56 -0
- package/src/create-component-type.ts +2 -7
- package/src/hooks/use-component-instance-settings.ts +15 -0
- package/src/hooks/use-navigate-back.ts +3 -13
- package/src/init.ts +8 -0
- package/src/prop-types/component-instance-override-prop-type.ts +18 -0
- package/src/prop-types/component-instance-overrides-prop-type.ts +13 -0
- package/src/prop-types/component-instance-prop-type.ts +14 -0
- package/src/store/store.ts +1 -1
- package/src/utils/switch-to-component.ts +11 -0
package/dist/index.js
CHANGED
|
@@ -38,12 +38,12 @@ module.exports = __toCommonJS(index_exports);
|
|
|
38
38
|
var import_editor = require("@elementor/editor");
|
|
39
39
|
var import_editor_canvas6 = require("@elementor/editor-canvas");
|
|
40
40
|
var import_editor_documents10 = require("@elementor/editor-documents");
|
|
41
|
-
var
|
|
41
|
+
var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
|
|
42
42
|
var import_editor_elements_panel = require("@elementor/editor-elements-panel");
|
|
43
43
|
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
-
var
|
|
44
|
+
var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
|
|
45
|
+
var import_store50 = require("@elementor/store");
|
|
46
|
+
var import_i18n17 = require("@wordpress/i18n");
|
|
47
47
|
|
|
48
48
|
// src/component-instance-transformer.ts
|
|
49
49
|
var import_editor_canvas = require("@elementor/editor-canvas");
|
|
@@ -309,27 +309,31 @@ var import_i18n2 = require("@wordpress/i18n");
|
|
|
309
309
|
// src/hooks/use-navigate-back.ts
|
|
310
310
|
var import_react = require("react");
|
|
311
311
|
var import_editor_documents2 = require("@elementor/editor-documents");
|
|
312
|
-
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
313
312
|
var import_store5 = require("@elementor/store");
|
|
313
|
+
|
|
314
|
+
// src/utils/switch-to-component.ts
|
|
315
|
+
var import_editor_v1_adapters2 = require("@elementor/editor-v1-adapters");
|
|
316
|
+
function switchToComponent(componentId, componentInstanceId) {
|
|
317
|
+
(0, import_editor_v1_adapters2.__privateRunCommand)("editor/documents/switch", {
|
|
318
|
+
id: componentId,
|
|
319
|
+
selector: componentInstanceId ? `[data-id="${componentInstanceId}"]` : void 0,
|
|
320
|
+
mode: "autosave",
|
|
321
|
+
setAsInitial: false,
|
|
322
|
+
shouldScroll: false
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// src/hooks/use-navigate-back.ts
|
|
314
327
|
function useNavigateBack() {
|
|
315
328
|
const path = (0, import_store5.__useSelector)(selectPath);
|
|
316
329
|
const documentsManager = (0, import_editor_documents2.getV1DocumentsManager)();
|
|
317
330
|
return (0, import_react.useCallback)(() => {
|
|
318
331
|
const { componentId: prevComponentId, instanceId: prevComponentInstanceId } = path.at(-2) ?? {};
|
|
319
|
-
const switchToDocument = (id, selector) => {
|
|
320
|
-
(0, import_editor_v1_adapters2.__privateRunCommand)("editor/documents/switch", {
|
|
321
|
-
id,
|
|
322
|
-
selector,
|
|
323
|
-
mode: "autosave",
|
|
324
|
-
setAsInitial: false,
|
|
325
|
-
shouldScroll: false
|
|
326
|
-
});
|
|
327
|
-
};
|
|
328
332
|
if (prevComponentId && prevComponentInstanceId) {
|
|
329
|
-
|
|
333
|
+
switchToComponent(prevComponentId, prevComponentInstanceId);
|
|
330
334
|
return;
|
|
331
335
|
}
|
|
332
|
-
|
|
336
|
+
switchToComponent(documentsManager.getInitialId());
|
|
333
337
|
}, [path, documentsManager]);
|
|
334
338
|
}
|
|
335
339
|
|
|
@@ -517,7 +521,6 @@ var import_editor_documents6 = require("@elementor/editor-documents");
|
|
|
517
521
|
// src/create-component-type.ts
|
|
518
522
|
var import_editor_canvas3 = require("@elementor/editor-canvas");
|
|
519
523
|
var import_editor_documents5 = require("@elementor/editor-documents");
|
|
520
|
-
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
521
524
|
var import_i18n4 = require("@wordpress/i18n");
|
|
522
525
|
|
|
523
526
|
// src/utils/tracking.ts
|
|
@@ -655,12 +658,7 @@ function createComponentView(options) {
|
|
|
655
658
|
if (!isAllowedToSwitchDocument) {
|
|
656
659
|
options.showLockedByModal?.(lockedBy || "");
|
|
657
660
|
} else {
|
|
658
|
-
(
|
|
659
|
-
id: this.getComponentId(),
|
|
660
|
-
mode: "autosave",
|
|
661
|
-
selector: `[data-id="${this.model.get("id")}"]`,
|
|
662
|
-
shouldScroll: false
|
|
663
|
-
});
|
|
661
|
+
switchToComponent(this.getComponentId(), this.model.get("id"));
|
|
664
662
|
}
|
|
665
663
|
}
|
|
666
664
|
editComponent({ trigger, location, secondaryLocation }) {
|
|
@@ -1112,7 +1110,7 @@ var import_ui7 = require("@elementor/ui");
|
|
|
1112
1110
|
var import_i18n8 = require("@wordpress/i18n");
|
|
1113
1111
|
|
|
1114
1112
|
// src/store/actions/create-unpublished-component.ts
|
|
1115
|
-
var
|
|
1113
|
+
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
1116
1114
|
var import_store21 = require("@elementor/store");
|
|
1117
1115
|
var import_utils2 = require("@elementor/utils");
|
|
1118
1116
|
function createUnpublishedComponent(name, element, eventData) {
|
|
@@ -1132,7 +1130,7 @@ function createUnpublishedComponent(name, element, eventData) {
|
|
|
1132
1130
|
component_name: name,
|
|
1133
1131
|
...eventData
|
|
1134
1132
|
});
|
|
1135
|
-
(0,
|
|
1133
|
+
(0, import_editor_v1_adapters3.__privateRunCommand)("document/save/auto");
|
|
1136
1134
|
return uid;
|
|
1137
1135
|
}
|
|
1138
1136
|
|
|
@@ -1383,7 +1381,7 @@ var Form = ({
|
|
|
1383
1381
|
var React11 = __toESM(require("react"));
|
|
1384
1382
|
var import_react8 = require("react");
|
|
1385
1383
|
var import_editor_documents8 = require("@elementor/editor-documents");
|
|
1386
|
-
var
|
|
1384
|
+
var import_editor_v1_adapters5 = require("@elementor/editor-v1-adapters");
|
|
1387
1385
|
var import_store25 = require("@elementor/store");
|
|
1388
1386
|
|
|
1389
1387
|
// src/store/actions/update-current-component.ts
|
|
@@ -1409,9 +1407,9 @@ var import_i18n9 = require("@wordpress/i18n");
|
|
|
1409
1407
|
|
|
1410
1408
|
// src/hooks/use-canvas-document.ts
|
|
1411
1409
|
var import_editor_canvas5 = require("@elementor/editor-canvas");
|
|
1412
|
-
var
|
|
1410
|
+
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
1413
1411
|
function useCanvasDocument() {
|
|
1414
|
-
return (0,
|
|
1412
|
+
return (0, import_editor_v1_adapters4.__privateUseListenTo)((0, import_editor_v1_adapters4.commandEndEvent)("editor/documents/attach-preview"), () => (0, import_editor_canvas5.getCanvasIframeDocument)());
|
|
1415
1413
|
}
|
|
1416
1414
|
|
|
1417
1415
|
// src/hooks/use-element-rect.ts
|
|
@@ -1596,7 +1594,7 @@ function useHandleDocumentSwitches() {
|
|
|
1596
1594
|
const currentComponentId = (0, import_store25.__useSelector)(selectCurrentComponentId);
|
|
1597
1595
|
const path = (0, import_store25.__useSelector)(selectPath);
|
|
1598
1596
|
(0, import_react8.useEffect)(() => {
|
|
1599
|
-
return (0,
|
|
1597
|
+
return (0, import_editor_v1_adapters5.__privateListenTo)((0, import_editor_v1_adapters5.commandEndEvent)("editor/documents/attach-preview"), () => {
|
|
1600
1598
|
const nextDocument = documentsManager.getCurrent();
|
|
1601
1599
|
if (nextDocument.id === currentComponentId) {
|
|
1602
1600
|
return;
|
|
@@ -1660,39 +1658,173 @@ var EditModeDialog = ({ lockedBy }) => {
|
|
|
1660
1658
|
)), /* @__PURE__ */ React12.createElement(import_ui8.DialogActions, null, /* @__PURE__ */ React12.createElement(import_ui8.Button, { color: "secondary", variant: "contained", onClick: import_editor_ui4.closeDialog }, (0, import_i18n10.__)("Close", "elementor"))))));
|
|
1661
1659
|
};
|
|
1662
1660
|
|
|
1663
|
-
// src/components/
|
|
1664
|
-
var
|
|
1665
|
-
var
|
|
1666
|
-
var
|
|
1667
|
-
var
|
|
1661
|
+
// src/components/instance-editing-panel/instance-editing-panel.tsx
|
|
1662
|
+
var React15 = __toESM(require("react"));
|
|
1663
|
+
var import_editor_editing_panel2 = require("@elementor/editor-editing-panel");
|
|
1664
|
+
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1665
|
+
var import_editor_panels = require("@elementor/editor-panels");
|
|
1666
|
+
var import_icons9 = require("@elementor/icons");
|
|
1667
|
+
var import_store27 = require("@elementor/store");
|
|
1668
|
+
var import_ui11 = require("@elementor/ui");
|
|
1669
|
+
var import_i18n12 = require("@wordpress/i18n");
|
|
1668
1670
|
|
|
1669
|
-
// src/prop-types/component-
|
|
1671
|
+
// src/prop-types/component-instance-prop-type.ts
|
|
1672
|
+
var import_editor_props3 = require("@elementor/editor-props");
|
|
1673
|
+
var import_schema4 = require("@elementor/schema");
|
|
1674
|
+
|
|
1675
|
+
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
1676
|
+
var import_editor_props2 = require("@elementor/editor-props");
|
|
1677
|
+
var import_schema3 = require("@elementor/schema");
|
|
1678
|
+
|
|
1679
|
+
// src/prop-types/component-instance-override-prop-type.ts
|
|
1670
1680
|
var import_editor_props = require("@elementor/editor-props");
|
|
1671
1681
|
var import_schema2 = require("@elementor/schema");
|
|
1672
|
-
var
|
|
1673
|
-
"
|
|
1682
|
+
var componentInstanceOverridePropTypeUtil = (0, import_editor_props.createPropUtils)(
|
|
1683
|
+
"override",
|
|
1674
1684
|
import_schema2.z.object({
|
|
1675
1685
|
override_key: import_schema2.z.string(),
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1686
|
+
override_value: import_schema2.z.unknown(),
|
|
1687
|
+
schema_source: import_schema2.z.object({
|
|
1688
|
+
type: import_schema2.z.literal("component"),
|
|
1689
|
+
id: import_schema2.z.number()
|
|
1690
|
+
})
|
|
1680
1691
|
})
|
|
1681
1692
|
);
|
|
1682
1693
|
|
|
1683
|
-
// src/
|
|
1694
|
+
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
1695
|
+
var componentInstanceOverridesPropTypeUtil = (0, import_editor_props2.createPropUtils)(
|
|
1696
|
+
"overrides",
|
|
1697
|
+
import_schema3.z.array(componentInstanceOverridePropTypeUtil.schema)
|
|
1698
|
+
);
|
|
1699
|
+
|
|
1700
|
+
// src/prop-types/component-instance-prop-type.ts
|
|
1701
|
+
var componentInstancePropTypeUtil = (0, import_editor_props3.createPropUtils)(
|
|
1702
|
+
"component-instance",
|
|
1703
|
+
import_schema4.z.object({
|
|
1704
|
+
component_id: import_editor_props3.numberPropTypeUtil.schema,
|
|
1705
|
+
overrides: componentInstanceOverridesPropTypeUtil.schema
|
|
1706
|
+
})
|
|
1707
|
+
);
|
|
1708
|
+
|
|
1709
|
+
// src/components/instance-editing-panel/empty-state.tsx
|
|
1684
1710
|
var React13 = __toESM(require("react"));
|
|
1711
|
+
var import_icons8 = require("@elementor/icons");
|
|
1712
|
+
var import_ui9 = require("@elementor/ui");
|
|
1713
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
1714
|
+
var EmptyState2 = ({ onEditComponent }) => {
|
|
1715
|
+
return /* @__PURE__ */ React13.createElement(
|
|
1716
|
+
import_ui9.Stack,
|
|
1717
|
+
{
|
|
1718
|
+
alignItems: "center",
|
|
1719
|
+
justifyContent: "start",
|
|
1720
|
+
height: "100%",
|
|
1721
|
+
color: "text.secondary",
|
|
1722
|
+
sx: { p: 2.5, pt: 8, pb: 5.5, mt: 1 },
|
|
1723
|
+
gap: 1.5
|
|
1724
|
+
},
|
|
1725
|
+
/* @__PURE__ */ React13.createElement(import_icons8.ComponentPropListIcon, { fontSize: "large" }),
|
|
1726
|
+
/* @__PURE__ */ React13.createElement(import_ui9.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n11.__)("No properties yet", "elementor")),
|
|
1727
|
+
/* @__PURE__ */ React13.createElement(import_ui9.Typography, { align: "center", variant: "caption", maxWidth: "170px" }, (0, import_i18n11.__)(
|
|
1728
|
+
"Edit the component to add properties, manage them or update the design across all instances.",
|
|
1729
|
+
"elementor"
|
|
1730
|
+
)),
|
|
1731
|
+
/* @__PURE__ */ React13.createElement(import_ui9.Button, { variant: "outlined", color: "secondary", size: "small", sx: { mt: 1 }, onClick: onEditComponent }, /* @__PURE__ */ React13.createElement(import_icons8.PencilIcon, { fontSize: "small" }), (0, import_i18n11.__)("Edit component", "elementor"))
|
|
1732
|
+
);
|
|
1733
|
+
};
|
|
1734
|
+
|
|
1735
|
+
// src/components/instance-editing-panel/override-props-group.tsx
|
|
1736
|
+
var React14 = __toESM(require("react"));
|
|
1685
1737
|
var import_react9 = require("react");
|
|
1686
|
-
var
|
|
1738
|
+
var import_editor_editing_panel = require("@elementor/editor-editing-panel");
|
|
1739
|
+
var import_editor_ui5 = require("@elementor/editor-ui");
|
|
1740
|
+
var import_ui10 = require("@elementor/ui");
|
|
1741
|
+
function OverridePropsGroup({ group, props }) {
|
|
1742
|
+
const [isOpen, setIsOpen] = (0, import_editor_editing_panel.useStateByElement)(group.id, true);
|
|
1743
|
+
const handleClick = () => {
|
|
1744
|
+
setIsOpen(!isOpen);
|
|
1745
|
+
};
|
|
1746
|
+
const id = (0, import_react9.useId)();
|
|
1747
|
+
const labelId = `label-${id}`;
|
|
1748
|
+
const contentId = `content-${id}`;
|
|
1749
|
+
const title = group.label;
|
|
1750
|
+
return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
|
|
1751
|
+
import_ui10.ListItemButton,
|
|
1752
|
+
{
|
|
1753
|
+
id: labelId,
|
|
1754
|
+
"aria-controls": contentId,
|
|
1755
|
+
"aria-label": `${title} section`,
|
|
1756
|
+
onClick: handleClick,
|
|
1757
|
+
p: 0,
|
|
1758
|
+
sx: { "&:hover": { backgroundColor: "transparent" } }
|
|
1759
|
+
},
|
|
1760
|
+
/* @__PURE__ */ React14.createElement(import_ui10.Stack, { direction: "row", alignItems: "center", justifyItems: "start", flexGrow: 1, gap: 0.5 }, /* @__PURE__ */ React14.createElement(
|
|
1761
|
+
import_ui10.ListItemText,
|
|
1762
|
+
{
|
|
1763
|
+
secondary: title,
|
|
1764
|
+
secondaryTypographyProps: { color: "text.primary", variant: "caption", fontWeight: "bold" },
|
|
1765
|
+
sx: { flexGrow: 0, flexShrink: 1, marginInlineEnd: 1 }
|
|
1766
|
+
}
|
|
1767
|
+
)),
|
|
1768
|
+
/* @__PURE__ */ React14.createElement(import_editor_ui5.CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
|
|
1769
|
+
), /* @__PURE__ */ React14.createElement(import_ui10.Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto" }, /* @__PURE__ */ React14.createElement(import_ui10.Stack, { direction: "column", gap: 1, p: 2 }, group.props.map((propId) => (
|
|
1770
|
+
// TODO: Render actual controls
|
|
1771
|
+
/* @__PURE__ */ React14.createElement("pre", { key: propId }, JSON.stringify(props[propId], null, 2))
|
|
1772
|
+
)))));
|
|
1773
|
+
}
|
|
1774
|
+
|
|
1775
|
+
// src/components/instance-editing-panel/instance-editing-panel.tsx
|
|
1776
|
+
function InstanceEditingPanel() {
|
|
1777
|
+
const { element } = (0, import_editor_editing_panel2.useElement)();
|
|
1778
|
+
const settings = (0, import_editor_elements5.useElementSetting)(element.id, "component_instance");
|
|
1779
|
+
const componentId = (componentInstancePropTypeUtil.extract(settings)?.component_id).value;
|
|
1780
|
+
const component = componentId ? selectComponent((0, import_store27.__getState)(), componentId) : null;
|
|
1781
|
+
const overridableProps = componentId ? selectOverridableProps((0, import_store27.__getState)(), componentId) : null;
|
|
1782
|
+
const componentInstanceId = (0, import_editor_elements5.useSelectedElement)()?.element?.id ?? null;
|
|
1783
|
+
if (!componentId || !overridableProps || !component) {
|
|
1784
|
+
return null;
|
|
1785
|
+
}
|
|
1786
|
+
const panelTitle = (0, import_i18n12.__)("Edit %s", "elementor").replace("%s", component.name);
|
|
1787
|
+
const handleEditComponent = () => switchToComponent(componentId, componentInstanceId);
|
|
1788
|
+
const groups = overridableProps.groups.order.map(
|
|
1789
|
+
(groupId) => overridableProps.groups.items[groupId] ? overridableProps.groups.items[groupId] : null
|
|
1790
|
+
).filter(Boolean);
|
|
1791
|
+
const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
|
|
1792
|
+
return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(import_editor_panels.PanelHeader, { sx: { justifyContent: "start" } }, /* @__PURE__ */ React15.createElement(import_ui11.Stack, { direction: "row", alignContent: "space-between", flexGrow: 1 }, /* @__PURE__ */ React15.createElement(import_ui11.Stack, { direction: "row", alignItems: "center", justifyContent: "start", gap: 1, flexGrow: 1 }, /* @__PURE__ */ React15.createElement(import_icons9.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React15.createElement(import_editor_panels.PanelHeaderTitle, null, component.name)), /* @__PURE__ */ React15.createElement(import_ui11.Tooltip, { title: panelTitle }, /* @__PURE__ */ React15.createElement(import_ui11.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React15.createElement(import_icons9.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React15.createElement(import_editor_panels.PanelBody, null, isEmpty ? /* @__PURE__ */ React15.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React15.createElement(import_ui11.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React15.createElement(OverridePropsGroup, { key: group.id, group, props: overridableProps.props })))));
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1795
|
+
// src/components/overridable-props/overridable-prop-control.tsx
|
|
1796
|
+
var React17 = __toESM(require("react"));
|
|
1797
|
+
var import_editor_controls = require("@elementor/editor-controls");
|
|
1798
|
+
var import_editor_editing_panel3 = require("@elementor/editor-editing-panel");
|
|
1799
|
+
var import_store31 = require("@elementor/store");
|
|
1800
|
+
|
|
1801
|
+
// src/prop-types/component-overridable-prop-type.ts
|
|
1802
|
+
var import_editor_props4 = require("@elementor/editor-props");
|
|
1803
|
+
var import_schema5 = require("@elementor/schema");
|
|
1804
|
+
var componentOverridablePropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
1805
|
+
"overridable",
|
|
1806
|
+
import_schema5.z.object({
|
|
1807
|
+
override_key: import_schema5.z.string(),
|
|
1808
|
+
origin_value: import_schema5.z.object({
|
|
1809
|
+
$$type: import_schema5.z.string(),
|
|
1810
|
+
value: import_schema5.z.unknown()
|
|
1811
|
+
}).nullable()
|
|
1812
|
+
})
|
|
1813
|
+
);
|
|
1814
|
+
|
|
1815
|
+
// src/provider/overridable-prop-context.tsx
|
|
1816
|
+
var React16 = __toESM(require("react"));
|
|
1817
|
+
var import_react10 = require("react");
|
|
1818
|
+
var OverridablePropContext = (0, import_react10.createContext)(null);
|
|
1687
1819
|
function OverridablePropProvider({ children, ...props }) {
|
|
1688
|
-
return /* @__PURE__ */
|
|
1820
|
+
return /* @__PURE__ */ React16.createElement(OverridablePropContext.Provider, { value: props }, children);
|
|
1689
1821
|
}
|
|
1690
|
-
var useOverridablePropValue = () => (0,
|
|
1822
|
+
var useOverridablePropValue = () => (0, import_react10.useContext)(OverridablePropContext)?.value;
|
|
1691
1823
|
|
|
1692
1824
|
// src/store/actions/update-overridable-prop-origin-value.ts
|
|
1693
|
-
var
|
|
1825
|
+
var import_store29 = require("@elementor/store");
|
|
1694
1826
|
function updateOverridablePropOriginValue(componentId, propValue) {
|
|
1695
|
-
const overridableProps = selectOverridableProps((0,
|
|
1827
|
+
const overridableProps = selectOverridableProps((0, import_store29.__getState)(), componentId);
|
|
1696
1828
|
if (!overridableProps) {
|
|
1697
1829
|
return;
|
|
1698
1830
|
}
|
|
@@ -1710,7 +1842,7 @@ function updateOverridablePropOriginValue(componentId, propValue) {
|
|
|
1710
1842
|
}
|
|
1711
1843
|
}
|
|
1712
1844
|
};
|
|
1713
|
-
(0,
|
|
1845
|
+
(0, import_store29.__dispatch)(
|
|
1714
1846
|
slice.actions.setOverridableProps({
|
|
1715
1847
|
componentId,
|
|
1716
1848
|
overridableProps: newOverridableProps
|
|
@@ -1723,9 +1855,9 @@ function OverridablePropControl({
|
|
|
1723
1855
|
OriginalControl,
|
|
1724
1856
|
...props
|
|
1725
1857
|
}) {
|
|
1726
|
-
const { elementType } = (0,
|
|
1858
|
+
const { elementType } = (0, import_editor_editing_panel3.useElement)();
|
|
1727
1859
|
const { value, bind, setValue, placeholder, ...propContext } = (0, import_editor_controls.useBoundProp)(componentOverridablePropTypeUtil);
|
|
1728
|
-
const componentId = selectCurrentComponentId((0,
|
|
1860
|
+
const componentId = selectCurrentComponentId((0, import_store31.__getState)());
|
|
1729
1861
|
if (!componentId) {
|
|
1730
1862
|
throw new Error("Component ID is required");
|
|
1731
1863
|
}
|
|
@@ -1740,13 +1872,13 @@ function OverridablePropControl({
|
|
|
1740
1872
|
setValue(propValue);
|
|
1741
1873
|
updateOverridablePropOriginValue(componentId, propValue);
|
|
1742
1874
|
};
|
|
1743
|
-
const propType = (0,
|
|
1875
|
+
const propType = (0, import_editor_editing_panel3.createTopLevelObjectType)({
|
|
1744
1876
|
schema: {
|
|
1745
1877
|
[bind]: elementType.propsSchema[bind]
|
|
1746
1878
|
}
|
|
1747
1879
|
});
|
|
1748
1880
|
const objectPlaceholder = placeholder ? { [bind]: placeholder } : void 0;
|
|
1749
|
-
return /* @__PURE__ */
|
|
1881
|
+
return /* @__PURE__ */ React17.createElement(OverridablePropProvider, { value }, /* @__PURE__ */ React17.createElement(
|
|
1750
1882
|
import_editor_controls.PropProvider,
|
|
1751
1883
|
{
|
|
1752
1884
|
...propContext,
|
|
@@ -1755,23 +1887,23 @@ function OverridablePropControl({
|
|
|
1755
1887
|
value: { [bind]: value.origin_value },
|
|
1756
1888
|
placeholder: objectPlaceholder
|
|
1757
1889
|
},
|
|
1758
|
-
/* @__PURE__ */
|
|
1890
|
+
/* @__PURE__ */ React17.createElement(import_editor_controls.PropKeyProvider, { bind }, /* @__PURE__ */ React17.createElement(import_editor_controls.ControlReplacementsProvider, { replacements: [] }, /* @__PURE__ */ React17.createElement(OriginalControl, { ...props })))
|
|
1759
1891
|
));
|
|
1760
1892
|
}
|
|
1761
1893
|
|
|
1762
1894
|
// src/components/overridable-props/overridable-prop-indicator.tsx
|
|
1763
|
-
var
|
|
1895
|
+
var React20 = __toESM(require("react"));
|
|
1764
1896
|
var import_editor_controls2 = require("@elementor/editor-controls");
|
|
1765
|
-
var
|
|
1766
|
-
var
|
|
1767
|
-
var
|
|
1768
|
-
var
|
|
1769
|
-
var
|
|
1897
|
+
var import_editor_editing_panel4 = require("@elementor/editor-editing-panel");
|
|
1898
|
+
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
1899
|
+
var import_store37 = require("@elementor/store");
|
|
1900
|
+
var import_ui14 = require("@elementor/ui");
|
|
1901
|
+
var import_i18n16 = require("@wordpress/i18n");
|
|
1770
1902
|
|
|
1771
1903
|
// src/store/actions/set-overridable-prop.ts
|
|
1772
|
-
var
|
|
1904
|
+
var import_store33 = require("@elementor/store");
|
|
1773
1905
|
var import_utils4 = require("@elementor/utils");
|
|
1774
|
-
var
|
|
1906
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
1775
1907
|
function setOverridableProp({
|
|
1776
1908
|
componentId,
|
|
1777
1909
|
overrideKey,
|
|
@@ -1783,7 +1915,7 @@ function setOverridableProp({
|
|
|
1783
1915
|
widgetType,
|
|
1784
1916
|
originValue
|
|
1785
1917
|
}) {
|
|
1786
|
-
const overridableProps = selectOverridableProps((0,
|
|
1918
|
+
const overridableProps = selectOverridableProps((0, import_store33.__getState)(), componentId);
|
|
1787
1919
|
if (!overridableProps) {
|
|
1788
1920
|
return;
|
|
1789
1921
|
}
|
|
@@ -1830,7 +1962,7 @@ function setOverridableProp({
|
|
|
1830
1962
|
overridableProp
|
|
1831
1963
|
);
|
|
1832
1964
|
}
|
|
1833
|
-
(0,
|
|
1965
|
+
(0, import_store33.__dispatch)(
|
|
1834
1966
|
slice.actions.setOverridableProps({
|
|
1835
1967
|
componentId,
|
|
1836
1968
|
overridableProps: {
|
|
@@ -1861,7 +1993,7 @@ function addNewGroup(groups, groupId) {
|
|
|
1861
1993
|
...groups.items,
|
|
1862
1994
|
[currentGroupId]: {
|
|
1863
1995
|
id: currentGroupId,
|
|
1864
|
-
label: (0,
|
|
1996
|
+
label: (0, import_i18n13.__)("Default", "elementor"),
|
|
1865
1997
|
props: []
|
|
1866
1998
|
}
|
|
1867
1999
|
},
|
|
@@ -1911,13 +2043,13 @@ function removeProps({
|
|
|
1911
2043
|
}
|
|
1912
2044
|
|
|
1913
2045
|
// src/components/overridable-props/indicator.tsx
|
|
1914
|
-
var
|
|
1915
|
-
var
|
|
1916
|
-
var
|
|
1917
|
-
var
|
|
1918
|
-
var
|
|
2046
|
+
var React18 = __toESM(require("react"));
|
|
2047
|
+
var import_react11 = require("react");
|
|
2048
|
+
var import_icons10 = require("@elementor/icons");
|
|
2049
|
+
var import_ui12 = require("@elementor/ui");
|
|
2050
|
+
var import_i18n14 = require("@wordpress/i18n");
|
|
1919
2051
|
var SIZE = "tiny";
|
|
1920
|
-
var IconContainer = (0,
|
|
2052
|
+
var IconContainer = (0, import_ui12.styled)(import_ui12.Box)`
|
|
1921
2053
|
pointer-events: none;
|
|
1922
2054
|
opacity: 0;
|
|
1923
2055
|
transition: opacity 0.2s ease-in-out;
|
|
@@ -1934,7 +2066,7 @@ var IconContainer = (0, import_ui9.styled)(import_ui9.Box)`
|
|
|
1934
2066
|
stroke-width: 2px;
|
|
1935
2067
|
}
|
|
1936
2068
|
`;
|
|
1937
|
-
var Content = (0,
|
|
2069
|
+
var Content = (0, import_ui12.styled)(import_ui12.Box)`
|
|
1938
2070
|
position: relative;
|
|
1939
2071
|
display: flex;
|
|
1940
2072
|
align-items: center;
|
|
@@ -1971,33 +2103,33 @@ var Content = (0, import_ui9.styled)(import_ui9.Box)`
|
|
|
1971
2103
|
}
|
|
1972
2104
|
}
|
|
1973
2105
|
`;
|
|
1974
|
-
var Indicator = (0,
|
|
2106
|
+
var Indicator = (0, import_react11.forwardRef)(({ isOpen, isOverridable, ...props }, ref) => /* @__PURE__ */ React18.createElement(Content, { ref, ...props, className: isOpen || isOverridable ? "enlarged" : "" }, /* @__PURE__ */ React18.createElement(
|
|
1975
2107
|
IconContainer,
|
|
1976
2108
|
{
|
|
1977
2109
|
className: "icon",
|
|
1978
|
-
"aria-label": isOverridable ? (0,
|
|
2110
|
+
"aria-label": isOverridable ? (0, import_i18n14.__)("Overridable property", "elementor") : (0, import_i18n14.__)("Make prop overridable", "elementor")
|
|
1979
2111
|
},
|
|
1980
|
-
isOverridable ? /* @__PURE__ */
|
|
2112
|
+
isOverridable ? /* @__PURE__ */ React18.createElement(import_icons10.CheckIcon, { fontSize: SIZE }) : /* @__PURE__ */ React18.createElement(import_icons10.PlusIcon, { fontSize: SIZE })
|
|
1981
2113
|
)));
|
|
1982
2114
|
|
|
1983
2115
|
// src/components/overridable-props/overridable-prop-form.tsx
|
|
1984
|
-
var
|
|
1985
|
-
var
|
|
1986
|
-
var
|
|
1987
|
-
var
|
|
1988
|
-
var
|
|
2116
|
+
var React19 = __toESM(require("react"));
|
|
2117
|
+
var import_react12 = require("react");
|
|
2118
|
+
var import_editor_ui6 = require("@elementor/editor-ui");
|
|
2119
|
+
var import_ui13 = require("@elementor/ui");
|
|
2120
|
+
var import_i18n15 = require("@wordpress/i18n");
|
|
1989
2121
|
var SIZE2 = "tiny";
|
|
1990
|
-
var DEFAULT_GROUP = { value: null, label: (0,
|
|
2122
|
+
var DEFAULT_GROUP = { value: null, label: (0, import_i18n15.__)("Default", "elementor") };
|
|
1991
2123
|
function OverridablePropForm({ onSubmit, groups, currentValue }) {
|
|
1992
|
-
const [propLabel, setPropLabel] = (0,
|
|
1993
|
-
const [group, setGroup] = (0,
|
|
1994
|
-
const name = (0,
|
|
1995
|
-
const groupName = (0,
|
|
2124
|
+
const [propLabel, setPropLabel] = (0, import_react12.useState)(currentValue?.label ?? null);
|
|
2125
|
+
const [group, setGroup] = (0, import_react12.useState)(currentValue?.groupId ?? groups?.[0]?.value ?? null);
|
|
2126
|
+
const name = (0, import_i18n15.__)("Name", "elementor");
|
|
2127
|
+
const groupName = (0, import_i18n15.__)("Group Name", "elementor");
|
|
1996
2128
|
const isCreate = currentValue === void 0;
|
|
1997
|
-
const title = isCreate ? (0,
|
|
1998
|
-
const ctaLabel = isCreate ? (0,
|
|
1999
|
-
return /* @__PURE__ */
|
|
2000
|
-
|
|
2129
|
+
const title = isCreate ? (0, import_i18n15.__)("Create new property", "elementor") : (0, import_i18n15.__)("Update property", "elementor");
|
|
2130
|
+
const ctaLabel = isCreate ? (0, import_i18n15.__)("Create", "elementor") : (0, import_i18n15.__)("Update", "elementor");
|
|
2131
|
+
return /* @__PURE__ */ React19.createElement(import_editor_ui6.Form, { onSubmit: () => onSubmit({ label: propLabel ?? "", group }) }, /* @__PURE__ */ React19.createElement(import_ui13.Stack, { alignItems: "start", width: "268px" }, /* @__PURE__ */ React19.createElement(
|
|
2132
|
+
import_ui13.Stack,
|
|
2001
2133
|
{
|
|
2002
2134
|
direction: "row",
|
|
2003
2135
|
alignItems: "center",
|
|
@@ -2005,19 +2137,19 @@ function OverridablePropForm({ onSubmit, groups, currentValue }) {
|
|
|
2005
2137
|
px: 1.5,
|
|
2006
2138
|
sx: { columnGap: 0.5, borderBottom: "1px solid", borderColor: "divider", width: "100%", mb: 1.5 }
|
|
2007
2139
|
},
|
|
2008
|
-
/* @__PURE__ */
|
|
2009
|
-
), /* @__PURE__ */
|
|
2010
|
-
|
|
2140
|
+
/* @__PURE__ */ React19.createElement(import_ui13.Typography, { variant: "caption", sx: { color: "text.primary", fontWeight: "500", lineHeight: 1 } }, title)
|
|
2141
|
+
), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { container: true, gap: 0.75, alignItems: "start", px: 1.5, mb: 1.5 }, /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(import_ui13.FormLabel, { size: "tiny" }, name)), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(
|
|
2142
|
+
import_ui13.TextField,
|
|
2011
2143
|
{
|
|
2012
2144
|
name,
|
|
2013
2145
|
size: SIZE2,
|
|
2014
2146
|
fullWidth: true,
|
|
2015
|
-
placeholder: (0,
|
|
2147
|
+
placeholder: (0, import_i18n15.__)("Enter value", "elementor"),
|
|
2016
2148
|
value: propLabel ?? "",
|
|
2017
2149
|
onChange: (e) => setPropLabel(e.target.value)
|
|
2018
2150
|
}
|
|
2019
|
-
))), /* @__PURE__ */
|
|
2020
|
-
|
|
2151
|
+
))), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { container: true, gap: 0.75, alignItems: "start", px: 1.5, mb: 1.5 }, /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(import_ui13.FormLabel, { size: "tiny" }, groupName)), /* @__PURE__ */ React19.createElement(import_ui13.Grid, { item: true, xs: 12 }, /* @__PURE__ */ React19.createElement(
|
|
2152
|
+
import_ui13.Select,
|
|
2021
2153
|
{
|
|
2022
2154
|
name: groupName,
|
|
2023
2155
|
size: SIZE2,
|
|
@@ -2033,17 +2165,17 @@ function OverridablePropForm({ onSubmit, groups, currentValue }) {
|
|
|
2033
2165
|
return groups?.find(({ value }) => value === selectedValue)?.label ?? selectedValue;
|
|
2034
2166
|
}
|
|
2035
2167
|
},
|
|
2036
|
-
(groups ?? [DEFAULT_GROUP]).map(({ label: groupLabel, ...props }) => /* @__PURE__ */
|
|
2037
|
-
))), /* @__PURE__ */
|
|
2168
|
+
(groups ?? [DEFAULT_GROUP]).map(({ label: groupLabel, ...props }) => /* @__PURE__ */ React19.createElement(import_editor_ui6.MenuListItem, { key: props.value, ...props, value: props.value ?? "" }, groupLabel))
|
|
2169
|
+
))), /* @__PURE__ */ React19.createElement(import_ui13.Stack, { direction: "row", justifyContent: "flex-end", alignSelf: "end", mt: 1.5, py: 1, px: 1.5 }, /* @__PURE__ */ React19.createElement(import_ui13.Button, { type: "submit", disabled: !propLabel, variant: "contained", color: "primary", size: "small" }, ctaLabel))));
|
|
2038
2170
|
}
|
|
2039
2171
|
|
|
2040
2172
|
// src/components/overridable-props/utils/get-overridable-prop.ts
|
|
2041
|
-
var
|
|
2173
|
+
var import_store35 = require("@elementor/store");
|
|
2042
2174
|
function getOverridableProp({
|
|
2043
2175
|
componentId,
|
|
2044
2176
|
overrideKey
|
|
2045
2177
|
}) {
|
|
2046
|
-
const overridableProps = selectOverridableProps((0,
|
|
2178
|
+
const overridableProps = selectOverridableProps((0, import_store35.__getState)(), componentId);
|
|
2047
2179
|
if (!overridableProps) {
|
|
2048
2180
|
return void 0;
|
|
2049
2181
|
}
|
|
@@ -2054,30 +2186,30 @@ function getOverridableProp({
|
|
|
2054
2186
|
var FORBIDDEN_KEYS = ["_cssid", "attributes"];
|
|
2055
2187
|
function OverridablePropIndicator() {
|
|
2056
2188
|
const { bind } = (0, import_editor_controls2.useBoundProp)();
|
|
2057
|
-
const componentId = selectCurrentComponentId((0,
|
|
2189
|
+
const componentId = selectCurrentComponentId((0, import_store37.__getState)());
|
|
2058
2190
|
if (!isPropAllowed(bind) || !componentId) {
|
|
2059
2191
|
return null;
|
|
2060
2192
|
}
|
|
2061
|
-
const overridableProps = selectOverridableProps((0,
|
|
2062
|
-
return /* @__PURE__ */
|
|
2193
|
+
const overridableProps = selectOverridableProps((0, import_store37.__getState)(), componentId);
|
|
2194
|
+
return /* @__PURE__ */ React20.createElement(Content2, { componentId, overridableProps });
|
|
2063
2195
|
}
|
|
2064
2196
|
function Content2({ componentId, overridableProps }) {
|
|
2065
2197
|
const {
|
|
2066
2198
|
element: { id: elementId },
|
|
2067
2199
|
elementType
|
|
2068
|
-
} = (0,
|
|
2200
|
+
} = (0, import_editor_editing_panel4.useElement)();
|
|
2069
2201
|
const { value, bind, propType } = (0, import_editor_controls2.useBoundProp)();
|
|
2070
2202
|
const contextOverridableValue = useOverridablePropValue();
|
|
2071
2203
|
const { value: boundPropOverridableValue, setValue: setOverridableValue } = (0, import_editor_controls2.useBoundProp)(
|
|
2072
2204
|
componentOverridablePropTypeUtil
|
|
2073
2205
|
);
|
|
2074
2206
|
const overridableValue = boundPropOverridableValue ?? contextOverridableValue;
|
|
2075
|
-
const popupState = (0,
|
|
2207
|
+
const popupState = (0, import_ui14.usePopupState)({
|
|
2076
2208
|
variant: "popover"
|
|
2077
2209
|
});
|
|
2078
|
-
const triggerProps = (0,
|
|
2079
|
-
const popoverProps = (0,
|
|
2080
|
-
const { elType } = (0,
|
|
2210
|
+
const triggerProps = (0, import_ui14.bindTrigger)(popupState);
|
|
2211
|
+
const popoverProps = (0, import_ui14.bindPopover)(popupState);
|
|
2212
|
+
const { elType } = (0, import_editor_elements6.getWidgetsCache)()?.[elementType.key] ?? { elType: "widget" };
|
|
2081
2213
|
const handleSubmit = ({ label, group }) => {
|
|
2082
2214
|
const originValue = !overridableValue ? value ?? propType.default : overridableValue?.origin_value ?? {};
|
|
2083
2215
|
const overridablePropConfig = setOverridableProp({
|
|
@@ -2100,8 +2232,8 @@ function Content2({ componentId, overridableProps }) {
|
|
|
2100
2232
|
popupState.close();
|
|
2101
2233
|
};
|
|
2102
2234
|
const overridableConfig = overridableValue ? getOverridableProp({ componentId, overrideKey: overridableValue.override_key }) : void 0;
|
|
2103
|
-
return /* @__PURE__ */
|
|
2104
|
-
|
|
2235
|
+
return /* @__PURE__ */ React20.createElement(React20.Fragment, null, /* @__PURE__ */ React20.createElement(import_ui14.Tooltip, { placement: "top", title: (0, import_i18n16.__)("Override Property", "elementor") }, /* @__PURE__ */ React20.createElement(Indicator, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React20.createElement(
|
|
2236
|
+
import_ui14.Popover,
|
|
2105
2237
|
{
|
|
2106
2238
|
disableScrollLock: true,
|
|
2107
2239
|
anchorOrigin: {
|
|
@@ -2117,7 +2249,7 @@ function Content2({ componentId, overridableProps }) {
|
|
|
2117
2249
|
},
|
|
2118
2250
|
...popoverProps
|
|
2119
2251
|
},
|
|
2120
|
-
/* @__PURE__ */
|
|
2252
|
+
/* @__PURE__ */ React20.createElement(
|
|
2121
2253
|
OverridablePropForm,
|
|
2122
2254
|
{
|
|
2123
2255
|
onSubmit: handleSubmit,
|
|
@@ -2138,18 +2270,18 @@ function isPropAllowed(bind) {
|
|
|
2138
2270
|
var import_editor_mcp2 = require("@elementor/editor-mcp");
|
|
2139
2271
|
|
|
2140
2272
|
// src/mcp/save-as-component-tool.ts
|
|
2141
|
-
var
|
|
2273
|
+
var import_editor_elements7 = require("@elementor/editor-elements");
|
|
2142
2274
|
var import_editor_mcp = require("@elementor/editor-mcp");
|
|
2143
|
-
var
|
|
2275
|
+
var import_schema6 = require("@elementor/schema");
|
|
2144
2276
|
var InputSchema = {
|
|
2145
|
-
element_id:
|
|
2277
|
+
element_id: import_schema6.z.string().describe(
|
|
2146
2278
|
'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.'
|
|
2147
2279
|
),
|
|
2148
|
-
component_name:
|
|
2280
|
+
component_name: import_schema6.z.string().describe("The name for the new component. Should be descriptive and unique among existing components.")
|
|
2149
2281
|
};
|
|
2150
2282
|
var OutputSchema = {
|
|
2151
|
-
message:
|
|
2152
|
-
component_uid:
|
|
2283
|
+
message: import_schema6.z.string().optional().describe("Additional information about the operation result"),
|
|
2284
|
+
component_uid: import_schema6.z.string().optional().describe("The unique identifier of the newly created component (only present on success)")
|
|
2153
2285
|
};
|
|
2154
2286
|
var VALID_ELEMENT_TYPES = ["e-div-block", "e-flexbox", "e-tabs"];
|
|
2155
2287
|
var ERROR_MESSAGES = {
|
|
@@ -2159,7 +2291,7 @@ var ERROR_MESSAGES = {
|
|
|
2159
2291
|
};
|
|
2160
2292
|
var handleSaveAsComponent = async (params) => {
|
|
2161
2293
|
const { element_id: elementId, component_name: componentName } = params;
|
|
2162
|
-
const container = (0,
|
|
2294
|
+
const container = (0, import_editor_elements7.getContainer)(elementId);
|
|
2163
2295
|
if (!container) {
|
|
2164
2296
|
throw new Error(ERROR_MESSAGES.ELEMENT_NOT_FOUND);
|
|
2165
2297
|
}
|
|
@@ -2219,29 +2351,29 @@ function initMcp() {
|
|
|
2219
2351
|
}
|
|
2220
2352
|
|
|
2221
2353
|
// src/populate-store.ts
|
|
2222
|
-
var
|
|
2223
|
-
var
|
|
2354
|
+
var import_react13 = require("react");
|
|
2355
|
+
var import_store39 = require("@elementor/store");
|
|
2224
2356
|
function PopulateStore() {
|
|
2225
|
-
(0,
|
|
2226
|
-
(0,
|
|
2357
|
+
(0, import_react13.useEffect)(() => {
|
|
2358
|
+
(0, import_store39.__dispatch)(loadComponents());
|
|
2227
2359
|
}, []);
|
|
2228
2360
|
return null;
|
|
2229
2361
|
}
|
|
2230
2362
|
|
|
2231
2363
|
// src/store/actions/remove-component-styles.ts
|
|
2232
|
-
var
|
|
2364
|
+
var import_store40 = require("@elementor/store");
|
|
2233
2365
|
function removeComponentStyles(id) {
|
|
2234
2366
|
apiClient.invalidateComponentConfigCache(id);
|
|
2235
|
-
(0,
|
|
2367
|
+
(0, import_store40.__dispatch)(slice.actions.removeStyles({ id }));
|
|
2236
2368
|
}
|
|
2237
2369
|
|
|
2238
2370
|
// src/store/components-styles-provider.ts
|
|
2239
2371
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
2240
|
-
var
|
|
2372
|
+
var import_store42 = require("@elementor/store");
|
|
2241
2373
|
var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
|
|
2242
2374
|
key: "components-styles",
|
|
2243
2375
|
priority: 100,
|
|
2244
|
-
subscribe: (cb) => (0,
|
|
2376
|
+
subscribe: (cb) => (0, import_store42.__subscribeWithSelector)(
|
|
2245
2377
|
(state) => state[SLICE_NAME],
|
|
2246
2378
|
() => {
|
|
2247
2379
|
cb();
|
|
@@ -2249,29 +2381,29 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
|
|
|
2249
2381
|
),
|
|
2250
2382
|
actions: {
|
|
2251
2383
|
all: () => {
|
|
2252
|
-
return selectFlatStyles((0,
|
|
2384
|
+
return selectFlatStyles((0, import_store42.__getState)());
|
|
2253
2385
|
},
|
|
2254
2386
|
get: (id) => {
|
|
2255
|
-
return selectFlatStyles((0,
|
|
2387
|
+
return selectFlatStyles((0, import_store42.__getState)()).find((style) => style.id === id) ?? null;
|
|
2256
2388
|
}
|
|
2257
2389
|
}
|
|
2258
2390
|
});
|
|
2259
2391
|
|
|
2260
2392
|
// src/sync/create-components-before-save.ts
|
|
2261
|
-
var
|
|
2262
|
-
var
|
|
2393
|
+
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
2394
|
+
var import_store44 = require("@elementor/store");
|
|
2263
2395
|
async function createComponentsBeforeSave({
|
|
2264
2396
|
elements,
|
|
2265
2397
|
status
|
|
2266
2398
|
}) {
|
|
2267
|
-
const unpublishedComponents = selectUnpublishedComponents((0,
|
|
2399
|
+
const unpublishedComponents = selectUnpublishedComponents((0, import_store44.__getState)());
|
|
2268
2400
|
if (!unpublishedComponents.length) {
|
|
2269
2401
|
return;
|
|
2270
2402
|
}
|
|
2271
2403
|
try {
|
|
2272
2404
|
const uidToComponentId = await createComponents(unpublishedComponents, status);
|
|
2273
2405
|
updateComponentInstances(elements, uidToComponentId);
|
|
2274
|
-
(0,
|
|
2406
|
+
(0, import_store44.__dispatch)(
|
|
2275
2407
|
slice.actions.add(
|
|
2276
2408
|
unpublishedComponents.map((component) => ({
|
|
2277
2409
|
id: uidToComponentId.get(component.uid),
|
|
@@ -2280,7 +2412,7 @@ async function createComponentsBeforeSave({
|
|
|
2280
2412
|
}))
|
|
2281
2413
|
)
|
|
2282
2414
|
);
|
|
2283
|
-
(0,
|
|
2415
|
+
(0, import_store44.__dispatch)(slice.actions.resetUnpublished());
|
|
2284
2416
|
} catch (error) {
|
|
2285
2417
|
throw new Error(`Failed to publish components and update component instances: ${error}`);
|
|
2286
2418
|
}
|
|
@@ -2321,7 +2453,7 @@ function shouldUpdateElement(element, uidToComponentId) {
|
|
|
2321
2453
|
return { shouldUpdate: false, newComponentId: null };
|
|
2322
2454
|
}
|
|
2323
2455
|
function updateElementComponentId(elementId, componentId) {
|
|
2324
|
-
(0,
|
|
2456
|
+
(0, import_editor_elements8.updateElementSettings)({
|
|
2325
2457
|
id: elementId,
|
|
2326
2458
|
props: {
|
|
2327
2459
|
component_instance: {
|
|
@@ -2336,7 +2468,7 @@ function updateElementComponentId(elementId, componentId) {
|
|
|
2336
2468
|
}
|
|
2337
2469
|
|
|
2338
2470
|
// src/sync/set-component-overridable-props-settings-before-save.ts
|
|
2339
|
-
var
|
|
2471
|
+
var import_store46 = require("@elementor/store");
|
|
2340
2472
|
var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
2341
2473
|
container
|
|
2342
2474
|
}) => {
|
|
@@ -2344,7 +2476,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
2344
2476
|
if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
|
|
2345
2477
|
return;
|
|
2346
2478
|
}
|
|
2347
|
-
const overridableProps = selectOverridableProps((0,
|
|
2479
|
+
const overridableProps = selectOverridableProps((0, import_store46.__getState)(), currentDocument.id);
|
|
2348
2480
|
if (overridableProps) {
|
|
2349
2481
|
container.settings.set("overridable_props", overridableProps);
|
|
2350
2482
|
}
|
|
@@ -2352,7 +2484,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
2352
2484
|
|
|
2353
2485
|
// src/sync/update-archived-component-before-save.ts
|
|
2354
2486
|
var import_editor_notifications = require("@elementor/editor-notifications");
|
|
2355
|
-
var
|
|
2487
|
+
var import_store48 = require("@elementor/store");
|
|
2356
2488
|
var failedNotification = (message) => ({
|
|
2357
2489
|
type: "error",
|
|
2358
2490
|
message: `Failed to archive components: ${message}`,
|
|
@@ -2365,7 +2497,7 @@ var successNotification = (message) => ({
|
|
|
2365
2497
|
});
|
|
2366
2498
|
var updateArchivedComponentBeforeSave = async () => {
|
|
2367
2499
|
try {
|
|
2368
|
-
const archivedComponents = selectArchivedComponents((0,
|
|
2500
|
+
const archivedComponents = selectArchivedComponents((0, import_store48.__getState)());
|
|
2369
2501
|
if (!archivedComponents.length) {
|
|
2370
2502
|
return;
|
|
2371
2503
|
}
|
|
@@ -2415,23 +2547,23 @@ var beforeSave = ({ container, status }) => {
|
|
|
2415
2547
|
// src/init.ts
|
|
2416
2548
|
function init() {
|
|
2417
2549
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
2418
|
-
(0,
|
|
2550
|
+
(0, import_store50.__registerSlice)(slice);
|
|
2419
2551
|
(0, import_editor_canvas6.registerElementType)(
|
|
2420
2552
|
TYPE,
|
|
2421
2553
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|
|
2422
2554
|
);
|
|
2423
|
-
(0,
|
|
2555
|
+
(0, import_editor_v1_adapters6.registerDataHook)("dependency", "editor/documents/close", (args) => {
|
|
2424
2556
|
const document = (0, import_editor_documents10.getV1CurrentDocument)();
|
|
2425
2557
|
if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
|
|
2426
2558
|
args.mode = "autosave";
|
|
2427
2559
|
}
|
|
2428
2560
|
return true;
|
|
2429
2561
|
});
|
|
2430
|
-
(0,
|
|
2562
|
+
(0, import_editor_v1_adapters6.registerDataHook)("after", "preview/drop", onElementDrop);
|
|
2431
2563
|
window.elementorCommon.__beforeSave = beforeSave;
|
|
2432
2564
|
(0, import_editor_elements_panel.injectTab)({
|
|
2433
2565
|
id: "components",
|
|
2434
|
-
label: (0,
|
|
2566
|
+
label: (0, import_i18n17.__)("Components", "elementor"),
|
|
2435
2567
|
component: Components
|
|
2436
2568
|
});
|
|
2437
2569
|
(0, import_editor.injectIntoTop)({
|
|
@@ -2446,27 +2578,32 @@ function init() {
|
|
|
2446
2578
|
id: "edit-component",
|
|
2447
2579
|
component: EditComponent
|
|
2448
2580
|
});
|
|
2449
|
-
(0,
|
|
2581
|
+
(0, import_editor_editing_panel5.injectIntoPanelHeaderTop)({
|
|
2450
2582
|
id: "component-panel-header",
|
|
2451
2583
|
component: ComponentPanelHeader
|
|
2452
2584
|
});
|
|
2453
|
-
(0,
|
|
2585
|
+
(0, import_editor_v1_adapters6.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
2454
2586
|
const { id, config } = (0, import_editor_documents10.getV1CurrentDocument)();
|
|
2455
2587
|
if (id) {
|
|
2456
2588
|
removeComponentStyles(id);
|
|
2457
2589
|
}
|
|
2458
2590
|
await loadComponentsAssets(config?.elements ?? []);
|
|
2459
2591
|
});
|
|
2460
|
-
(0,
|
|
2461
|
-
fieldType:
|
|
2592
|
+
(0, import_editor_editing_panel5.registerFieldIndicator)({
|
|
2593
|
+
fieldType: import_editor_editing_panel5.FIELD_TYPE.SETTINGS,
|
|
2462
2594
|
id: "component-overridable-prop",
|
|
2463
2595
|
priority: 1,
|
|
2464
2596
|
indicator: OverridablePropIndicator
|
|
2465
2597
|
});
|
|
2466
|
-
(0,
|
|
2598
|
+
(0, import_editor_editing_panel5.registerControlReplacement)({
|
|
2467
2599
|
component: OverridablePropControl,
|
|
2468
2600
|
condition: ({ value }) => componentOverridablePropTypeUtil.isValid(value)
|
|
2469
2601
|
});
|
|
2602
|
+
(0, import_editor_editing_panel5.registerEditingPanelReplacement)({
|
|
2603
|
+
id: "component-instance-edit-panel",
|
|
2604
|
+
condition: (_, elementType) => elementType.key === "e-component",
|
|
2605
|
+
component: InstanceEditingPanel
|
|
2606
|
+
});
|
|
2470
2607
|
import_editor_canvas6.settingsTransformersRegistry.register("component-instance", componentInstanceTransformer);
|
|
2471
2608
|
import_editor_canvas6.settingsTransformersRegistry.register("overridable", componentOverridableTransformer);
|
|
2472
2609
|
initMcp();
|