@elementor/editor-components 4.0.0-604 → 4.0.0-606
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 +481 -460
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +508 -487
- package/dist/index.mjs.map +1 -1
- package/package.json +23 -23
- package/src/extended/init.ts +7 -1
- package/src/extended/sync/sanitize-overridable-props.ts +32 -0
- package/src/hooks/use-sanitize-overridable-props.ts +2 -15
package/dist/index.js
CHANGED
|
@@ -42,7 +42,7 @@ var import_editor_editing_panel8 = 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
44
|
var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
|
|
45
|
-
var
|
|
45
|
+
var import_store86 = require("@elementor/store");
|
|
46
46
|
var import_i18n31 = require("@wordpress/i18n");
|
|
47
47
|
|
|
48
48
|
// src/component-instance-transformer.ts
|
|
@@ -1535,18 +1535,16 @@ var EditModeDialog = ({ lockedBy }) => {
|
|
|
1535
1535
|
var React16 = __toESM(require("react"));
|
|
1536
1536
|
var import_editor_controls3 = require("@elementor/editor-controls");
|
|
1537
1537
|
var import_editor_editing_panel3 = require("@elementor/editor-editing-panel");
|
|
1538
|
-
var
|
|
1538
|
+
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
1539
1539
|
var import_editor_panels = require("@elementor/editor-panels");
|
|
1540
1540
|
var import_editor_ui7 = require("@elementor/editor-ui");
|
|
1541
1541
|
var import_icons6 = require("@elementor/icons");
|
|
1542
1542
|
var import_ui11 = require("@elementor/ui");
|
|
1543
|
-
var
|
|
1544
|
-
|
|
1545
|
-
// src/extended/store/actions/delete-overridable-prop.ts
|
|
1546
|
-
var import_store21 = require("@elementor/store");
|
|
1543
|
+
var import_i18n11 = require("@wordpress/i18n");
|
|
1547
1544
|
|
|
1548
|
-
// src/
|
|
1549
|
-
var
|
|
1545
|
+
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
1546
|
+
var import_editor_props3 = require("@elementor/editor-props");
|
|
1547
|
+
var import_schema4 = require("@elementor/schema");
|
|
1550
1548
|
|
|
1551
1549
|
// src/prop-types/component-instance-override-prop-type.ts
|
|
1552
1550
|
var import_editor_props = require("@elementor/editor-props");
|
|
@@ -1563,10 +1561,6 @@ var componentInstanceOverridePropTypeUtil = (0, import_editor_props.createPropUt
|
|
|
1563
1561
|
})
|
|
1564
1562
|
);
|
|
1565
1563
|
|
|
1566
|
-
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
1567
|
-
var import_editor_props3 = require("@elementor/editor-props");
|
|
1568
|
-
var import_schema4 = require("@elementor/schema");
|
|
1569
|
-
|
|
1570
1564
|
// src/prop-types/component-overridable-prop-type.ts
|
|
1571
1565
|
var import_editor_props2 = require("@elementor/editor-props");
|
|
1572
1566
|
var import_schema3 = require("@elementor/schema");
|
|
@@ -1598,343 +1592,13 @@ var componentInstancePropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
|
1598
1592
|
})
|
|
1599
1593
|
);
|
|
1600
1594
|
|
|
1601
|
-
// src/extended/utils/revert-overridable-settings.ts
|
|
1602
|
-
function revertElementOverridableSetting(elementId, settingKey, originValue, overrideKey) {
|
|
1603
|
-
const container = (0, import_editor_elements5.getContainer)(elementId);
|
|
1604
|
-
if (!container) {
|
|
1605
|
-
return;
|
|
1606
|
-
}
|
|
1607
|
-
if (isComponentInstance(container.model.toJSON())) {
|
|
1608
|
-
revertComponentInstanceOverridableSetting(elementId, overrideKey);
|
|
1609
|
-
return;
|
|
1610
|
-
}
|
|
1611
|
-
(0, import_editor_elements5.updateElementSettings)({
|
|
1612
|
-
id: elementId,
|
|
1613
|
-
props: { [settingKey]: originValue ?? null },
|
|
1614
|
-
withHistory: false
|
|
1615
|
-
});
|
|
1616
|
-
}
|
|
1617
|
-
function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
|
|
1618
|
-
const setting = (0, import_editor_elements5.getElementSetting)(elementId, "component_instance");
|
|
1619
|
-
const componentInstance = componentInstancePropTypeUtil.extract(setting);
|
|
1620
|
-
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1621
|
-
if (!overrides?.length) {
|
|
1622
|
-
return;
|
|
1623
|
-
}
|
|
1624
|
-
const revertedOverrides = revertComponentInstanceOverrides(overrides, overrideKey);
|
|
1625
|
-
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
1626
|
-
...componentInstance,
|
|
1627
|
-
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1628
|
-
});
|
|
1629
|
-
(0, import_editor_elements5.updateElementSettings)({
|
|
1630
|
-
id: elementId,
|
|
1631
|
-
props: { component_instance: updatedSetting },
|
|
1632
|
-
withHistory: false
|
|
1633
|
-
});
|
|
1634
|
-
}
|
|
1635
|
-
function revertComponentInstanceOverrides(overrides, filterByKey) {
|
|
1636
|
-
return overrides.map((item) => {
|
|
1637
|
-
if (!componentOverridablePropTypeUtil.isValid(item)) {
|
|
1638
|
-
return item;
|
|
1639
|
-
}
|
|
1640
|
-
if (!componentInstanceOverridePropTypeUtil.isValid(item.value.origin_value)) {
|
|
1641
|
-
return null;
|
|
1642
|
-
}
|
|
1643
|
-
if (filterByKey && item.value.override_key !== filterByKey) {
|
|
1644
|
-
return item;
|
|
1645
|
-
}
|
|
1646
|
-
return item.value.origin_value;
|
|
1647
|
-
}).filter((item) => item !== null);
|
|
1648
|
-
}
|
|
1649
|
-
function revertOverridablePropsFromSettings(settings) {
|
|
1650
|
-
let hasChanges = false;
|
|
1651
|
-
const revertedSettings = {};
|
|
1652
|
-
for (const [key, value] of Object.entries(settings)) {
|
|
1653
|
-
if (componentOverridablePropTypeUtil.isValid(value)) {
|
|
1654
|
-
revertedSettings[key] = value.value.origin_value;
|
|
1655
|
-
hasChanges = true;
|
|
1656
|
-
} else {
|
|
1657
|
-
revertedSettings[key] = value;
|
|
1658
|
-
}
|
|
1659
|
-
}
|
|
1660
|
-
return { hasChanges, settings: revertedSettings };
|
|
1661
|
-
}
|
|
1662
|
-
function revertAllOverridablesInElementData(elementData) {
|
|
1663
|
-
const revertedElement = { ...elementData };
|
|
1664
|
-
if (isComponentInstance({ widgetType: elementData.widgetType, elType: elementData.elType })) {
|
|
1665
|
-
revertedElement.settings = revertComponentInstanceSettings(elementData.settings);
|
|
1666
|
-
} else if (revertedElement.settings) {
|
|
1667
|
-
const { settings } = revertOverridablePropsFromSettings(revertedElement.settings);
|
|
1668
|
-
revertedElement.settings = settings;
|
|
1669
|
-
}
|
|
1670
|
-
if (revertedElement.elements) {
|
|
1671
|
-
revertedElement.elements = revertedElement.elements.map(revertAllOverridablesInElementData);
|
|
1672
|
-
}
|
|
1673
|
-
return revertedElement;
|
|
1674
|
-
}
|
|
1675
|
-
function revertComponentInstanceSettings(settings) {
|
|
1676
|
-
if (!settings?.component_instance) {
|
|
1677
|
-
return settings;
|
|
1678
|
-
}
|
|
1679
|
-
const componentInstance = componentInstancePropTypeUtil.extract(settings.component_instance);
|
|
1680
|
-
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1681
|
-
if (!overrides?.length) {
|
|
1682
|
-
return settings;
|
|
1683
|
-
}
|
|
1684
|
-
const revertedOverrides = revertComponentInstanceOverrides(overrides);
|
|
1685
|
-
return {
|
|
1686
|
-
...settings,
|
|
1687
|
-
component_instance: componentInstancePropTypeUtil.create({
|
|
1688
|
-
...componentInstance,
|
|
1689
|
-
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1690
|
-
})
|
|
1691
|
-
};
|
|
1692
|
-
}
|
|
1693
|
-
function revertAllOverridablesInContainer(container) {
|
|
1694
|
-
(0, import_editor_elements5.getAllDescendants)(container).forEach((element) => {
|
|
1695
|
-
if (element.model.get("widgetType") === COMPONENT_WIDGET_TYPE) {
|
|
1696
|
-
revertComponentInstanceOverridesInElement(element);
|
|
1697
|
-
} else {
|
|
1698
|
-
revertElementSettings(element);
|
|
1699
|
-
}
|
|
1700
|
-
});
|
|
1701
|
-
}
|
|
1702
|
-
function revertComponentInstanceOverridesInElement(element) {
|
|
1703
|
-
const settings = element.settings?.toJSON() ?? {};
|
|
1704
|
-
const componentInstance = componentInstancePropTypeUtil.extract(settings.component_instance);
|
|
1705
|
-
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1706
|
-
if (!overrides?.length) {
|
|
1707
|
-
return;
|
|
1708
|
-
}
|
|
1709
|
-
const revertedOverrides = revertComponentInstanceOverrides(overrides);
|
|
1710
|
-
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
1711
|
-
...componentInstance,
|
|
1712
|
-
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1713
|
-
});
|
|
1714
|
-
(0, import_editor_elements5.updateElementSettings)({
|
|
1715
|
-
id: element.id,
|
|
1716
|
-
props: { component_instance: updatedSetting },
|
|
1717
|
-
withHistory: false
|
|
1718
|
-
});
|
|
1719
|
-
}
|
|
1720
|
-
function revertElementSettings(element) {
|
|
1721
|
-
const settings = element.settings?.toJSON() ?? {};
|
|
1722
|
-
const { hasChanges, settings: revertedSettings } = revertOverridablePropsFromSettings(settings);
|
|
1723
|
-
if (!hasChanges) {
|
|
1724
|
-
return;
|
|
1725
|
-
}
|
|
1726
|
-
(0, import_editor_elements5.updateElementSettings)({
|
|
1727
|
-
id: element.id,
|
|
1728
|
-
props: revertedSettings,
|
|
1729
|
-
withHistory: false
|
|
1730
|
-
});
|
|
1731
|
-
}
|
|
1732
|
-
|
|
1733
|
-
// src/extended/store/utils/groups-transformers.ts
|
|
1734
|
-
var import_utils3 = require("@elementor/utils");
|
|
1735
|
-
var import_i18n10 = require("@wordpress/i18n");
|
|
1736
|
-
function removePropFromAllGroups(groups, propKey) {
|
|
1737
|
-
const propKeys = Array.isArray(propKey) ? propKey : [propKey];
|
|
1738
|
-
return {
|
|
1739
|
-
...groups,
|
|
1740
|
-
items: Object.fromEntries(
|
|
1741
|
-
Object.entries(groups.items).map(([groupId, group]) => [
|
|
1742
|
-
groupId,
|
|
1743
|
-
{
|
|
1744
|
-
...group,
|
|
1745
|
-
props: group.props.filter((p) => !propKeys.includes(p))
|
|
1746
|
-
}
|
|
1747
|
-
])
|
|
1748
|
-
)
|
|
1749
|
-
};
|
|
1750
|
-
}
|
|
1751
|
-
function addPropToGroup(groups, groupId, propKey) {
|
|
1752
|
-
const group = groups.items[groupId];
|
|
1753
|
-
if (!group) {
|
|
1754
|
-
return groups;
|
|
1755
|
-
}
|
|
1756
|
-
if (group.props.includes(propKey)) {
|
|
1757
|
-
return groups;
|
|
1758
|
-
}
|
|
1759
|
-
return {
|
|
1760
|
-
...groups,
|
|
1761
|
-
items: {
|
|
1762
|
-
...groups.items,
|
|
1763
|
-
[groupId]: {
|
|
1764
|
-
...group,
|
|
1765
|
-
props: [...group.props, propKey]
|
|
1766
|
-
}
|
|
1767
|
-
}
|
|
1768
|
-
};
|
|
1769
|
-
}
|
|
1770
|
-
function movePropBetweenGroups(groups, propKey, fromGroupId, toGroupId) {
|
|
1771
|
-
if (fromGroupId === toGroupId) {
|
|
1772
|
-
return groups;
|
|
1773
|
-
}
|
|
1774
|
-
const withoutProp = removePropFromGroup(groups, fromGroupId, propKey);
|
|
1775
|
-
return addPropToGroup(withoutProp, toGroupId, propKey);
|
|
1776
|
-
}
|
|
1777
|
-
function removePropFromGroup(groups, groupId, propKey) {
|
|
1778
|
-
const group = groups.items[groupId];
|
|
1779
|
-
if (!group) {
|
|
1780
|
-
return groups;
|
|
1781
|
-
}
|
|
1782
|
-
return {
|
|
1783
|
-
...groups,
|
|
1784
|
-
items: {
|
|
1785
|
-
...groups.items,
|
|
1786
|
-
[groupId]: {
|
|
1787
|
-
...group,
|
|
1788
|
-
props: group.props.filter((p) => p !== propKey)
|
|
1789
|
-
}
|
|
1790
|
-
}
|
|
1791
|
-
};
|
|
1792
|
-
}
|
|
1793
|
-
function resolveOrCreateGroup(groups, requestedGroupId) {
|
|
1794
|
-
if (requestedGroupId && groups.items[requestedGroupId]) {
|
|
1795
|
-
return { groups, groupId: requestedGroupId };
|
|
1796
|
-
}
|
|
1797
|
-
if (!requestedGroupId && groups.order.length > 0) {
|
|
1798
|
-
return { groups, groupId: groups.order[0] };
|
|
1799
|
-
}
|
|
1800
|
-
return createGroup(groups, requestedGroupId);
|
|
1801
|
-
}
|
|
1802
|
-
function createGroup(groups, groupId, label) {
|
|
1803
|
-
const newGroupId = groupId || (0, import_utils3.generateUniqueId)("group");
|
|
1804
|
-
const newLabel = label || (0, import_i18n10.__)("Default", "elementor");
|
|
1805
|
-
return {
|
|
1806
|
-
groups: {
|
|
1807
|
-
...groups,
|
|
1808
|
-
items: {
|
|
1809
|
-
...groups.items,
|
|
1810
|
-
[newGroupId]: {
|
|
1811
|
-
id: newGroupId,
|
|
1812
|
-
label: newLabel,
|
|
1813
|
-
props: []
|
|
1814
|
-
}
|
|
1815
|
-
},
|
|
1816
|
-
order: [...groups.order, newGroupId]
|
|
1817
|
-
},
|
|
1818
|
-
groupId: newGroupId
|
|
1819
|
-
};
|
|
1820
|
-
}
|
|
1821
|
-
function removePropsFromState(overridableProps, propsToRemove) {
|
|
1822
|
-
const overrideKeysToRemove = propsToRemove.map((prop) => prop.overrideKey);
|
|
1823
|
-
const remainingProps = Object.fromEntries(
|
|
1824
|
-
Object.entries(overridableProps.props).filter(([, prop]) => !propsToRemove.includes(prop))
|
|
1825
|
-
);
|
|
1826
|
-
const updatedGroupItems = Object.fromEntries(
|
|
1827
|
-
Object.entries(overridableProps.groups.items).map(
|
|
1828
|
-
([groupId, group]) => [
|
|
1829
|
-
groupId,
|
|
1830
|
-
{
|
|
1831
|
-
...group,
|
|
1832
|
-
props: group.props.filter((prop) => !overrideKeysToRemove.includes(prop))
|
|
1833
|
-
}
|
|
1834
|
-
]
|
|
1835
|
-
)
|
|
1836
|
-
);
|
|
1837
|
-
return {
|
|
1838
|
-
props: remainingProps,
|
|
1839
|
-
groups: {
|
|
1840
|
-
items: updatedGroupItems,
|
|
1841
|
-
order: overridableProps.groups.order.filter((groupId) => !overrideKeysToRemove.includes(groupId))
|
|
1842
|
-
}
|
|
1843
|
-
};
|
|
1844
|
-
}
|
|
1845
|
-
function ensureGroupInOrder(groups, groupId) {
|
|
1846
|
-
if (groups.order.includes(groupId)) {
|
|
1847
|
-
return groups;
|
|
1848
|
-
}
|
|
1849
|
-
return {
|
|
1850
|
-
...groups,
|
|
1851
|
-
order: [...groups.order, groupId]
|
|
1852
|
-
};
|
|
1853
|
-
}
|
|
1854
|
-
function deleteGroup(groups, groupId) {
|
|
1855
|
-
const { [groupId]: removed, ...remainingItems } = groups.items;
|
|
1856
|
-
return {
|
|
1857
|
-
items: remainingItems,
|
|
1858
|
-
order: groups.order.filter((id2) => id2 !== groupId)
|
|
1859
|
-
};
|
|
1860
|
-
}
|
|
1861
|
-
function renameGroup(groups, groupId, newLabel) {
|
|
1862
|
-
const group = groups.items[groupId];
|
|
1863
|
-
if (!group) {
|
|
1864
|
-
return groups;
|
|
1865
|
-
}
|
|
1866
|
-
return {
|
|
1867
|
-
...groups,
|
|
1868
|
-
items: {
|
|
1869
|
-
...groups.items,
|
|
1870
|
-
[groupId]: {
|
|
1871
|
-
...group,
|
|
1872
|
-
label: newLabel
|
|
1873
|
-
}
|
|
1874
|
-
}
|
|
1875
|
-
};
|
|
1876
|
-
}
|
|
1877
|
-
|
|
1878
|
-
// src/extended/store/actions/delete-overridable-prop.ts
|
|
1879
|
-
function deleteOverridableProp({ componentId, propKey, source }) {
|
|
1880
|
-
const overridableProps = selectOverridableProps((0, import_store21.__getState)(), componentId);
|
|
1881
|
-
if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
|
|
1882
|
-
return;
|
|
1883
|
-
}
|
|
1884
|
-
const propKeysToDelete = Array.isArray(propKey) ? propKey : [propKey];
|
|
1885
|
-
const deletedProps = [];
|
|
1886
|
-
for (const key of propKeysToDelete) {
|
|
1887
|
-
const prop = overridableProps.props[key];
|
|
1888
|
-
if (!prop) {
|
|
1889
|
-
continue;
|
|
1890
|
-
}
|
|
1891
|
-
deletedProps.push(prop);
|
|
1892
|
-
revertElementOverridableSetting(prop.elementId, prop.propKey, prop.originValue, key);
|
|
1893
|
-
}
|
|
1894
|
-
if (deletedProps.length === 0) {
|
|
1895
|
-
return;
|
|
1896
|
-
}
|
|
1897
|
-
const remainingProps = Object.fromEntries(
|
|
1898
|
-
Object.entries(overridableProps.props).filter(([key]) => !propKeysToDelete.includes(key))
|
|
1899
|
-
);
|
|
1900
|
-
const updatedGroups = removePropFromAllGroups(overridableProps.groups, propKey);
|
|
1901
|
-
(0, import_store21.__dispatch)(
|
|
1902
|
-
slice.actions.setOverridableProps({
|
|
1903
|
-
componentId,
|
|
1904
|
-
overridableProps: {
|
|
1905
|
-
...overridableProps,
|
|
1906
|
-
props: remainingProps,
|
|
1907
|
-
groups: updatedGroups
|
|
1908
|
-
}
|
|
1909
|
-
})
|
|
1910
|
-
);
|
|
1911
|
-
const currentComponent = selectCurrentComponent((0, import_store21.__getState)());
|
|
1912
|
-
for (const prop of deletedProps) {
|
|
1913
|
-
trackComponentEvent({
|
|
1914
|
-
action: "propertyRemoved",
|
|
1915
|
-
source,
|
|
1916
|
-
component_uid: currentComponent?.uid,
|
|
1917
|
-
property_id: prop.overrideKey,
|
|
1918
|
-
property_path: prop.propKey,
|
|
1919
|
-
property_name: prop.label,
|
|
1920
|
-
element_type: prop.widgetType ?? prop.elType
|
|
1921
|
-
});
|
|
1922
|
-
}
|
|
1923
|
-
}
|
|
1924
|
-
|
|
1925
|
-
// src/extended/store/actions/update-component-sanitized-attribute.ts
|
|
1926
|
-
var import_store23 = require("@elementor/store");
|
|
1927
|
-
function updateComponentSanitizedAttribute(componentId, attribute) {
|
|
1928
|
-
(0, import_store23.__dispatch)(slice.actions.updateComponentSanitizedAttribute({ componentId, attribute }));
|
|
1929
|
-
}
|
|
1930
|
-
|
|
1931
1595
|
// src/utils/get-container-by-origin-id.ts
|
|
1932
|
-
var
|
|
1596
|
+
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1933
1597
|
function getContainerByOriginId(originElementId, instanceElementId) {
|
|
1934
1598
|
if (!instanceElementId) {
|
|
1935
|
-
return (0,
|
|
1599
|
+
return (0, import_editor_elements5.getContainer)(originElementId);
|
|
1936
1600
|
}
|
|
1937
|
-
const instanceContainer = (0,
|
|
1601
|
+
const instanceContainer = (0, import_editor_elements5.getContainer)(instanceElementId);
|
|
1938
1602
|
if (!instanceContainer) {
|
|
1939
1603
|
return null;
|
|
1940
1604
|
}
|
|
@@ -1947,12 +1611,12 @@ function getContainerByOriginId(originElementId, instanceElementId) {
|
|
|
1947
1611
|
}
|
|
1948
1612
|
|
|
1949
1613
|
// src/utils/get-overridable-prop.ts
|
|
1950
|
-
var
|
|
1614
|
+
var import_store21 = require("@elementor/store");
|
|
1951
1615
|
function getOverridableProp({
|
|
1952
1616
|
componentId,
|
|
1953
1617
|
overrideKey
|
|
1954
1618
|
}) {
|
|
1955
|
-
const overridableProps = selectOverridableProps((0,
|
|
1619
|
+
const overridableProps = selectOverridableProps((0, import_store21.__getState)(), componentId);
|
|
1956
1620
|
if (!overridableProps) {
|
|
1957
1621
|
return void 0;
|
|
1958
1622
|
}
|
|
@@ -2060,14 +1724,7 @@ function useSanitizeOverridableProps(componentId, instanceElementId) {
|
|
|
2060
1724
|
if (isSanitized) {
|
|
2061
1725
|
return overridableProps;
|
|
2062
1726
|
}
|
|
2063
|
-
|
|
2064
|
-
const originalPropsArray = Object.entries(overridableProps.props ?? {});
|
|
2065
|
-
const propsToDelete = originalPropsArray.filter(([key]) => !filteredOverridableProps.props[key]);
|
|
2066
|
-
propsToDelete.forEach(([key]) => {
|
|
2067
|
-
deleteOverridableProp({ componentId, propKey: key, source: "system" });
|
|
2068
|
-
});
|
|
2069
|
-
updateComponentSanitizedAttribute(componentId, "overridableProps");
|
|
2070
|
-
return filteredOverridableProps;
|
|
1727
|
+
return filterValidOverridableProps(overridableProps, instanceElementId);
|
|
2071
1728
|
}
|
|
2072
1729
|
|
|
2073
1730
|
// src/provider/component-instance-context.tsx
|
|
@@ -2085,13 +1742,13 @@ var useComponentOverridableProps = () => (0, import_react3.useContext)(Component
|
|
|
2085
1742
|
var React11 = __toESM(require("react"));
|
|
2086
1743
|
var import_icons5 = require("@elementor/icons");
|
|
2087
1744
|
var import_ui7 = require("@elementor/ui");
|
|
2088
|
-
var
|
|
1745
|
+
var import_i18n10 = require("@wordpress/i18n");
|
|
2089
1746
|
var EmptyState2 = ({ onEditComponent }) => {
|
|
2090
1747
|
const { canEdit } = useComponentsPermissions();
|
|
2091
|
-
const message = canEdit ? (0,
|
|
1748
|
+
const message = canEdit ? (0, import_i18n10.__)(
|
|
2092
1749
|
"Edit the component to add properties, manage them or update the design across all instances.",
|
|
2093
1750
|
"elementor"
|
|
2094
|
-
) : (0,
|
|
1751
|
+
) : (0, import_i18n10.__)(
|
|
2095
1752
|
"With your current role, you cannot edit this component. Contact an administrator to add properties.",
|
|
2096
1753
|
"elementor"
|
|
2097
1754
|
);
|
|
@@ -2106,9 +1763,9 @@ var EmptyState2 = ({ onEditComponent }) => {
|
|
|
2106
1763
|
gap: 1.5
|
|
2107
1764
|
},
|
|
2108
1765
|
/* @__PURE__ */ React11.createElement(import_icons5.ComponentPropListIcon, { fontSize: "large" }),
|
|
2109
|
-
/* @__PURE__ */ React11.createElement(import_ui7.Typography, { align: "center", variant: "subtitle2" }, (0,
|
|
1766
|
+
/* @__PURE__ */ React11.createElement(import_ui7.Typography, { align: "center", variant: "subtitle2" }, (0, import_i18n10.__)("No properties yet", "elementor")),
|
|
2110
1767
|
/* @__PURE__ */ React11.createElement(import_ui7.Typography, { align: "center", variant: "caption", maxWidth: "170px" }, message),
|
|
2111
|
-
canEdit && /* @__PURE__ */ React11.createElement(import_ui7.Button, { variant: "outlined", color: "secondary", size: "small", sx: { mt: 1 }, onClick: onEditComponent }, /* @__PURE__ */ React11.createElement(import_icons5.PencilIcon, { fontSize: "small" }), (0,
|
|
1768
|
+
canEdit && /* @__PURE__ */ React11.createElement(import_ui7.Button, { variant: "outlined", color: "secondary", size: "small", sx: { mt: 1 }, onClick: onEditComponent }, /* @__PURE__ */ React11.createElement(import_icons5.PencilIcon, { fontSize: "small" }), (0, import_i18n10.__)("Edit component", "elementor"))
|
|
2112
1769
|
);
|
|
2113
1770
|
};
|
|
2114
1771
|
|
|
@@ -2123,13 +1780,13 @@ var import_ui10 = require("@elementor/ui");
|
|
|
2123
1780
|
var React14 = __toESM(require("react"));
|
|
2124
1781
|
var import_editor_controls2 = require("@elementor/editor-controls");
|
|
2125
1782
|
var import_editor_editing_panel = require("@elementor/editor-editing-panel");
|
|
2126
|
-
var
|
|
1783
|
+
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
2127
1784
|
var import_ui9 = require("@elementor/ui");
|
|
2128
1785
|
|
|
2129
1786
|
// src/hooks/use-controls-by-widget-type.ts
|
|
2130
|
-
var
|
|
1787
|
+
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
2131
1788
|
function useControlsByWidgetType(type) {
|
|
2132
|
-
const elementType = (0,
|
|
1789
|
+
const elementType = (0, import_editor_elements6.getElementType)(type);
|
|
2133
1790
|
if (!elementType) {
|
|
2134
1791
|
return {};
|
|
2135
1792
|
}
|
|
@@ -2168,7 +1825,7 @@ var useOverridablePropValue = () => (0, import_react4.useContext)(OverridablePro
|
|
|
2168
1825
|
var useComponentInstanceElement = () => (0, import_react4.useContext)(OverridablePropContext)?.componentInstanceElement;
|
|
2169
1826
|
|
|
2170
1827
|
// src/store/actions/update-overridable-prop.ts
|
|
2171
|
-
var
|
|
1828
|
+
var import_store24 = require("@elementor/store");
|
|
2172
1829
|
|
|
2173
1830
|
// src/utils/resolve-override-prop-value.ts
|
|
2174
1831
|
var resolveOverridePropValue = (originalPropValue) => {
|
|
@@ -2203,7 +1860,7 @@ function getOverrideValue(overrideProp) {
|
|
|
2203
1860
|
|
|
2204
1861
|
// src/store/actions/update-overridable-prop.ts
|
|
2205
1862
|
function updateOverridableProp(componentId, propValue, originPropFields) {
|
|
2206
|
-
const overridableProps = selectOverridableProps((0,
|
|
1863
|
+
const overridableProps = selectOverridableProps((0, import_store24.__getState)(), componentId);
|
|
2207
1864
|
if (!overridableProps) {
|
|
2208
1865
|
return;
|
|
2209
1866
|
}
|
|
@@ -2228,7 +1885,7 @@ function updateOverridableProp(componentId, propValue, originPropFields) {
|
|
|
2228
1885
|
}
|
|
2229
1886
|
}
|
|
2230
1887
|
};
|
|
2231
|
-
(0,
|
|
1888
|
+
(0, import_store24.__dispatch)(
|
|
2232
1889
|
slice.actions.setOverridableProps({
|
|
2233
1890
|
componentId,
|
|
2234
1891
|
overridableProps: newOverridableProps
|
|
@@ -2237,7 +1894,7 @@ function updateOverridableProp(componentId, propValue, originPropFields) {
|
|
|
2237
1894
|
}
|
|
2238
1895
|
|
|
2239
1896
|
// src/utils/get-prop-type-for-component-override.ts
|
|
2240
|
-
var
|
|
1897
|
+
var import_editor_elements7 = require("@elementor/editor-elements");
|
|
2241
1898
|
var getPropTypeForComponentOverride = (overridableProp) => {
|
|
2242
1899
|
if (overridableProp.originPropFields) {
|
|
2243
1900
|
return getPropType(overridableProp.originPropFields);
|
|
@@ -2249,7 +1906,7 @@ var getPropTypeForComponentOverride = (overridableProp) => {
|
|
|
2249
1906
|
});
|
|
2250
1907
|
};
|
|
2251
1908
|
function getPropType({ widgetType, propKey }) {
|
|
2252
|
-
const widgetPropsSchema = (0,
|
|
1909
|
+
const widgetPropsSchema = (0, import_editor_elements7.getWidgetsCache)()?.[widgetType]?.atomic_props_schema;
|
|
2253
1910
|
return widgetPropsSchema?.[propKey];
|
|
2254
1911
|
}
|
|
2255
1912
|
|
|
@@ -2262,16 +1919,16 @@ var ControlLabel = ({ children, ...props }) => {
|
|
|
2262
1919
|
};
|
|
2263
1920
|
|
|
2264
1921
|
// src/components/errors.ts
|
|
2265
|
-
var
|
|
2266
|
-
var OverrideControlInnerElementNotFoundError = (0,
|
|
1922
|
+
var import_utils3 = require("@elementor/utils");
|
|
1923
|
+
var OverrideControlInnerElementNotFoundError = (0, import_utils3.createError)({
|
|
2267
1924
|
code: "override_control_inner_element_not_found",
|
|
2268
1925
|
message: `Component inner element not found for override control. The element may have been deleted without updating the overridable props, or the component has not finished rendering yet.`
|
|
2269
1926
|
});
|
|
2270
1927
|
|
|
2271
1928
|
// src/components/instance-editing-panel/use-resolved-origin-value.tsx
|
|
2272
|
-
var
|
|
1929
|
+
var import_store26 = require("@elementor/store");
|
|
2273
1930
|
function useResolvedOriginValue(override, overridableProp) {
|
|
2274
|
-
const components = (0,
|
|
1931
|
+
const components = (0, import_store26.__useSelector)(selectData);
|
|
2275
1932
|
return resolveOriginValue(components, override, overridableProp);
|
|
2276
1933
|
}
|
|
2277
1934
|
function resolveOriginValue(components, matchingOverride, overridableProp) {
|
|
@@ -2436,7 +2093,7 @@ function OverrideControl({ overridableProp }) {
|
|
|
2436
2093
|
}
|
|
2437
2094
|
const elementId = element.id;
|
|
2438
2095
|
const type = elType === "widget" ? widgetType : elType;
|
|
2439
|
-
const elementType = (0,
|
|
2096
|
+
const elementType = (0, import_editor_elements8.getElementType)(type);
|
|
2440
2097
|
if (!elementType) {
|
|
2441
2098
|
return null;
|
|
2442
2099
|
}
|
|
@@ -2584,12 +2241,12 @@ function InstanceEditingPanel() {
|
|
|
2584
2241
|
const componentId = settings?.component_id?.value;
|
|
2585
2242
|
const overrides = settings?.overrides?.value;
|
|
2586
2243
|
const component = useComponent(componentId ?? null);
|
|
2587
|
-
const componentInstanceId = (0,
|
|
2244
|
+
const componentInstanceId = (0, import_editor_elements9.useSelectedElement)()?.element?.id;
|
|
2588
2245
|
const overridableProps = useSanitizeOverridableProps(componentId ?? null, componentInstanceId);
|
|
2589
2246
|
if (!componentId || !overridableProps || !component) {
|
|
2590
2247
|
return null;
|
|
2591
2248
|
}
|
|
2592
|
-
const panelTitle = (0,
|
|
2249
|
+
const panelTitle = (0, import_i18n11.__)("Edit %s", "elementor").replace("%s", component.name);
|
|
2593
2250
|
const handleEditComponent = () => switchToComponent(componentId, componentInstanceId);
|
|
2594
2251
|
const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
|
|
2595
2252
|
const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
|
|
@@ -2607,7 +2264,7 @@ function InstanceEditingPanel() {
|
|
|
2607
2264
|
}
|
|
2608
2265
|
function useComponentInstanceSettings() {
|
|
2609
2266
|
const { element } = (0, import_editor_editing_panel3.useElement)();
|
|
2610
|
-
const settings = (0,
|
|
2267
|
+
const settings = (0, import_editor_elements9.useElementSetting)(element.id, "component_instance");
|
|
2611
2268
|
return componentInstancePropTypeUtil.extract(settings);
|
|
2612
2269
|
}
|
|
2613
2270
|
|
|
@@ -2637,16 +2294,16 @@ var import_editor_documents10 = require("@elementor/editor-documents");
|
|
|
2637
2294
|
var import_editor_panels4 = require("@elementor/editor-panels");
|
|
2638
2295
|
var import_editor_ui13 = require("@elementor/editor-ui");
|
|
2639
2296
|
var import_icons13 = require("@elementor/icons");
|
|
2640
|
-
var
|
|
2297
|
+
var import_store48 = require("@elementor/store");
|
|
2641
2298
|
var import_ui21 = require("@elementor/ui");
|
|
2642
2299
|
var import_i18n23 = require("@wordpress/i18n");
|
|
2643
2300
|
|
|
2644
2301
|
// src/extended/hooks/use-navigate-back.ts
|
|
2645
2302
|
var import_react7 = require("react");
|
|
2646
2303
|
var import_editor_documents7 = require("@elementor/editor-documents");
|
|
2647
|
-
var
|
|
2304
|
+
var import_store30 = require("@elementor/store");
|
|
2648
2305
|
function useNavigateBack() {
|
|
2649
|
-
const path = (0,
|
|
2306
|
+
const path = (0, import_store30.__useSelector)(selectPath);
|
|
2650
2307
|
const documentsManager = (0, import_editor_documents7.getV1DocumentsManager)();
|
|
2651
2308
|
return (0, import_react7.useCallback)(() => {
|
|
2652
2309
|
const { componentId: prevComponentId, instanceId: prevComponentInstanceId } = path.at(-2) ?? {};
|
|
@@ -2663,7 +2320,7 @@ var React17 = __toESM(require("react"));
|
|
|
2663
2320
|
var import_editor_controls4 = require("@elementor/editor-controls");
|
|
2664
2321
|
var import_editor_ui8 = require("@elementor/editor-ui");
|
|
2665
2322
|
var import_ui12 = require("@elementor/ui");
|
|
2666
|
-
var
|
|
2323
|
+
var import_i18n12 = require("@wordpress/i18n");
|
|
2667
2324
|
var ComponentIntroduction = ({
|
|
2668
2325
|
anchorRef,
|
|
2669
2326
|
shouldShowIntroduction,
|
|
@@ -2687,17 +2344,17 @@ var ComponentIntroduction = ({
|
|
|
2687
2344
|
},
|
|
2688
2345
|
onClose
|
|
2689
2346
|
},
|
|
2690
|
-
/* @__PURE__ */ React17.createElement(import_ui12.Box, { sx: { width: "296px" } }, /* @__PURE__ */ React17.createElement(import_editor_ui8.PopoverHeader, { title: (0,
|
|
2347
|
+
/* @__PURE__ */ React17.createElement(import_ui12.Box, { sx: { width: "296px" } }, /* @__PURE__ */ React17.createElement(import_editor_ui8.PopoverHeader, { title: (0, import_i18n12.__)("Add your first property", "elementor"), onClose }), /* @__PURE__ */ React17.createElement(
|
|
2691
2348
|
import_ui12.Image,
|
|
2692
2349
|
{
|
|
2693
2350
|
sx: { width: "296px", height: "160px" },
|
|
2694
2351
|
src: "https://assets.elementor.com/packages/v1/images/components-properties-intro.png",
|
|
2695
2352
|
alt: ""
|
|
2696
2353
|
}
|
|
2697
|
-
), /* @__PURE__ */ React17.createElement(import_editor_controls4.PopoverContent, null, /* @__PURE__ */ React17.createElement(import_ui12.Stack, { sx: { p: 2 } }, /* @__PURE__ */ React17.createElement(import_ui12.Typography, { variant: "body2" }, (0,
|
|
2354
|
+
), /* @__PURE__ */ React17.createElement(import_editor_controls4.PopoverContent, null, /* @__PURE__ */ React17.createElement(import_ui12.Stack, { sx: { p: 2 } }, /* @__PURE__ */ React17.createElement(import_ui12.Typography, { variant: "body2" }, (0, import_i18n12.__)("Properties make instances flexible.", "elementor")), /* @__PURE__ */ React17.createElement(import_ui12.Typography, { variant: "body2" }, (0, import_i18n12.__)(
|
|
2698
2355
|
"Select any Element, then in the General tab, click next to any setting you want users to customize - like text, images, or links.",
|
|
2699
2356
|
"elementor"
|
|
2700
|
-
)), /* @__PURE__ */ React17.createElement(import_ui12.Typography, { variant: "body2", sx: { mt: 2 } }, (0,
|
|
2357
|
+
)), /* @__PURE__ */ React17.createElement(import_ui12.Typography, { variant: "body2", sx: { mt: 2 } }, (0, import_i18n12.__)(
|
|
2701
2358
|
"Your properties will appear in the Properties panel, where you can organize and manage them anytime.",
|
|
2702
2359
|
"elementor"
|
|
2703
2360
|
)), /* @__PURE__ */ React17.createElement(
|
|
@@ -2709,8 +2366,8 @@ var ComponentIntroduction = ({
|
|
|
2709
2366
|
color: "info.main",
|
|
2710
2367
|
variant: "body2"
|
|
2711
2368
|
},
|
|
2712
|
-
(0,
|
|
2713
|
-
), /* @__PURE__ */ React17.createElement(import_ui12.Stack, { direction: "row", alignItems: "center", justifyContent: "flex-end", sx: { pt: 1 } }, /* @__PURE__ */ React17.createElement(import_ui12.Button, { size: "medium", variant: "contained", onClick: onClose }, (0,
|
|
2369
|
+
(0, import_i18n12.__)("Learn more", "elementor")
|
|
2370
|
+
), /* @__PURE__ */ React17.createElement(import_ui12.Stack, { direction: "row", alignItems: "center", justifyContent: "flex-end", sx: { pt: 1 } }, /* @__PURE__ */ React17.createElement(import_ui12.Button, { size: "medium", variant: "contained", onClick: onClose }, (0, import_i18n12.__)("Got it", "elementor"))))))
|
|
2714
2371
|
);
|
|
2715
2372
|
};
|
|
2716
2373
|
|
|
@@ -2734,15 +2391,15 @@ var import_utils5 = require("@elementor/utils");
|
|
|
2734
2391
|
var import_i18n20 = require("@wordpress/i18n");
|
|
2735
2392
|
|
|
2736
2393
|
// src/extended/store/actions/add-overridable-group.ts
|
|
2737
|
-
var
|
|
2394
|
+
var import_store32 = require("@elementor/store");
|
|
2738
2395
|
function addOverridableGroup({
|
|
2739
2396
|
componentId,
|
|
2740
2397
|
groupId,
|
|
2741
2398
|
label,
|
|
2742
2399
|
source
|
|
2743
2400
|
}) {
|
|
2744
|
-
const currentComponent = selectCurrentComponent((0,
|
|
2745
|
-
const overridableProps = selectOverridableProps((0,
|
|
2401
|
+
const currentComponent = selectCurrentComponent((0, import_store32.__getState)());
|
|
2402
|
+
const overridableProps = selectOverridableProps((0, import_store32.__getState)(), componentId);
|
|
2746
2403
|
if (!overridableProps) {
|
|
2747
2404
|
return;
|
|
2748
2405
|
}
|
|
@@ -2751,7 +2408,7 @@ function addOverridableGroup({
|
|
|
2751
2408
|
label,
|
|
2752
2409
|
props: []
|
|
2753
2410
|
};
|
|
2754
|
-
(0,
|
|
2411
|
+
(0, import_store32.__dispatch)(
|
|
2755
2412
|
slice.actions.setOverridableProps({
|
|
2756
2413
|
componentId,
|
|
2757
2414
|
overridableProps: {
|
|
@@ -2765,21 +2422,168 @@ function addOverridableGroup({
|
|
|
2765
2422
|
order: [groupId, ...overridableProps.groups.order]
|
|
2766
2423
|
}
|
|
2767
2424
|
}
|
|
2768
|
-
})
|
|
2769
|
-
);
|
|
2770
|
-
trackComponentEvent({
|
|
2771
|
-
action: "propertiesGroupCreated",
|
|
2772
|
-
source,
|
|
2773
|
-
component_uid: currentComponent?.uid,
|
|
2774
|
-
group_name: label
|
|
2775
|
-
});
|
|
2776
|
-
return newGroup;
|
|
2425
|
+
})
|
|
2426
|
+
);
|
|
2427
|
+
trackComponentEvent({
|
|
2428
|
+
action: "propertiesGroupCreated",
|
|
2429
|
+
source,
|
|
2430
|
+
component_uid: currentComponent?.uid,
|
|
2431
|
+
group_name: label
|
|
2432
|
+
});
|
|
2433
|
+
return newGroup;
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
// src/extended/store/actions/delete-overridable-group.ts
|
|
2437
|
+
var import_store34 = require("@elementor/store");
|
|
2438
|
+
|
|
2439
|
+
// src/extended/store/utils/groups-transformers.ts
|
|
2440
|
+
var import_utils4 = require("@elementor/utils");
|
|
2441
|
+
var import_i18n13 = require("@wordpress/i18n");
|
|
2442
|
+
function removePropFromAllGroups(groups, propKey) {
|
|
2443
|
+
const propKeys = Array.isArray(propKey) ? propKey : [propKey];
|
|
2444
|
+
return {
|
|
2445
|
+
...groups,
|
|
2446
|
+
items: Object.fromEntries(
|
|
2447
|
+
Object.entries(groups.items).map(([groupId, group]) => [
|
|
2448
|
+
groupId,
|
|
2449
|
+
{
|
|
2450
|
+
...group,
|
|
2451
|
+
props: group.props.filter((p) => !propKeys.includes(p))
|
|
2452
|
+
}
|
|
2453
|
+
])
|
|
2454
|
+
)
|
|
2455
|
+
};
|
|
2456
|
+
}
|
|
2457
|
+
function addPropToGroup(groups, groupId, propKey) {
|
|
2458
|
+
const group = groups.items[groupId];
|
|
2459
|
+
if (!group) {
|
|
2460
|
+
return groups;
|
|
2461
|
+
}
|
|
2462
|
+
if (group.props.includes(propKey)) {
|
|
2463
|
+
return groups;
|
|
2464
|
+
}
|
|
2465
|
+
return {
|
|
2466
|
+
...groups,
|
|
2467
|
+
items: {
|
|
2468
|
+
...groups.items,
|
|
2469
|
+
[groupId]: {
|
|
2470
|
+
...group,
|
|
2471
|
+
props: [...group.props, propKey]
|
|
2472
|
+
}
|
|
2473
|
+
}
|
|
2474
|
+
};
|
|
2475
|
+
}
|
|
2476
|
+
function movePropBetweenGroups(groups, propKey, fromGroupId, toGroupId) {
|
|
2477
|
+
if (fromGroupId === toGroupId) {
|
|
2478
|
+
return groups;
|
|
2479
|
+
}
|
|
2480
|
+
const withoutProp = removePropFromGroup(groups, fromGroupId, propKey);
|
|
2481
|
+
return addPropToGroup(withoutProp, toGroupId, propKey);
|
|
2482
|
+
}
|
|
2483
|
+
function removePropFromGroup(groups, groupId, propKey) {
|
|
2484
|
+
const group = groups.items[groupId];
|
|
2485
|
+
if (!group) {
|
|
2486
|
+
return groups;
|
|
2487
|
+
}
|
|
2488
|
+
return {
|
|
2489
|
+
...groups,
|
|
2490
|
+
items: {
|
|
2491
|
+
...groups.items,
|
|
2492
|
+
[groupId]: {
|
|
2493
|
+
...group,
|
|
2494
|
+
props: group.props.filter((p) => p !== propKey)
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
};
|
|
2498
|
+
}
|
|
2499
|
+
function resolveOrCreateGroup(groups, requestedGroupId) {
|
|
2500
|
+
if (requestedGroupId && groups.items[requestedGroupId]) {
|
|
2501
|
+
return { groups, groupId: requestedGroupId };
|
|
2502
|
+
}
|
|
2503
|
+
if (!requestedGroupId && groups.order.length > 0) {
|
|
2504
|
+
return { groups, groupId: groups.order[0] };
|
|
2505
|
+
}
|
|
2506
|
+
return createGroup(groups, requestedGroupId);
|
|
2507
|
+
}
|
|
2508
|
+
function createGroup(groups, groupId, label) {
|
|
2509
|
+
const newGroupId = groupId || (0, import_utils4.generateUniqueId)("group");
|
|
2510
|
+
const newLabel = label || (0, import_i18n13.__)("Default", "elementor");
|
|
2511
|
+
return {
|
|
2512
|
+
groups: {
|
|
2513
|
+
...groups,
|
|
2514
|
+
items: {
|
|
2515
|
+
...groups.items,
|
|
2516
|
+
[newGroupId]: {
|
|
2517
|
+
id: newGroupId,
|
|
2518
|
+
label: newLabel,
|
|
2519
|
+
props: []
|
|
2520
|
+
}
|
|
2521
|
+
},
|
|
2522
|
+
order: [...groups.order, newGroupId]
|
|
2523
|
+
},
|
|
2524
|
+
groupId: newGroupId
|
|
2525
|
+
};
|
|
2526
|
+
}
|
|
2527
|
+
function removePropsFromState(overridableProps, propsToRemove) {
|
|
2528
|
+
const overrideKeysToRemove = propsToRemove.map((prop) => prop.overrideKey);
|
|
2529
|
+
const remainingProps = Object.fromEntries(
|
|
2530
|
+
Object.entries(overridableProps.props).filter(([, prop]) => !propsToRemove.includes(prop))
|
|
2531
|
+
);
|
|
2532
|
+
const updatedGroupItems = Object.fromEntries(
|
|
2533
|
+
Object.entries(overridableProps.groups.items).map(
|
|
2534
|
+
([groupId, group]) => [
|
|
2535
|
+
groupId,
|
|
2536
|
+
{
|
|
2537
|
+
...group,
|
|
2538
|
+
props: group.props.filter((prop) => !overrideKeysToRemove.includes(prop))
|
|
2539
|
+
}
|
|
2540
|
+
]
|
|
2541
|
+
)
|
|
2542
|
+
);
|
|
2543
|
+
return {
|
|
2544
|
+
props: remainingProps,
|
|
2545
|
+
groups: {
|
|
2546
|
+
items: updatedGroupItems,
|
|
2547
|
+
order: overridableProps.groups.order.filter((groupId) => !overrideKeysToRemove.includes(groupId))
|
|
2548
|
+
}
|
|
2549
|
+
};
|
|
2550
|
+
}
|
|
2551
|
+
function ensureGroupInOrder(groups, groupId) {
|
|
2552
|
+
if (groups.order.includes(groupId)) {
|
|
2553
|
+
return groups;
|
|
2554
|
+
}
|
|
2555
|
+
return {
|
|
2556
|
+
...groups,
|
|
2557
|
+
order: [...groups.order, groupId]
|
|
2558
|
+
};
|
|
2559
|
+
}
|
|
2560
|
+
function deleteGroup(groups, groupId) {
|
|
2561
|
+
const { [groupId]: removed, ...remainingItems } = groups.items;
|
|
2562
|
+
return {
|
|
2563
|
+
items: remainingItems,
|
|
2564
|
+
order: groups.order.filter((id2) => id2 !== groupId)
|
|
2565
|
+
};
|
|
2566
|
+
}
|
|
2567
|
+
function renameGroup(groups, groupId, newLabel) {
|
|
2568
|
+
const group = groups.items[groupId];
|
|
2569
|
+
if (!group) {
|
|
2570
|
+
return groups;
|
|
2571
|
+
}
|
|
2572
|
+
return {
|
|
2573
|
+
...groups,
|
|
2574
|
+
items: {
|
|
2575
|
+
...groups.items,
|
|
2576
|
+
[groupId]: {
|
|
2577
|
+
...group,
|
|
2578
|
+
label: newLabel
|
|
2579
|
+
}
|
|
2580
|
+
}
|
|
2581
|
+
};
|
|
2777
2582
|
}
|
|
2778
2583
|
|
|
2779
2584
|
// src/extended/store/actions/delete-overridable-group.ts
|
|
2780
|
-
var import_store38 = require("@elementor/store");
|
|
2781
2585
|
function deleteOverridableGroup({ componentId, groupId }) {
|
|
2782
|
-
const overridableProps = selectOverridableProps((0,
|
|
2586
|
+
const overridableProps = selectOverridableProps((0, import_store34.__getState)(), componentId);
|
|
2783
2587
|
if (!overridableProps) {
|
|
2784
2588
|
return false;
|
|
2785
2589
|
}
|
|
@@ -2788,7 +2592,7 @@ function deleteOverridableGroup({ componentId, groupId }) {
|
|
|
2788
2592
|
return false;
|
|
2789
2593
|
}
|
|
2790
2594
|
const updatedGroups = deleteGroup(overridableProps.groups, groupId);
|
|
2791
|
-
(0,
|
|
2595
|
+
(0, import_store34.__dispatch)(
|
|
2792
2596
|
slice.actions.setOverridableProps({
|
|
2793
2597
|
componentId,
|
|
2794
2598
|
overridableProps: {
|
|
@@ -2800,10 +2604,193 @@ function deleteOverridableGroup({ componentId, groupId }) {
|
|
|
2800
2604
|
return true;
|
|
2801
2605
|
}
|
|
2802
2606
|
|
|
2607
|
+
// src/extended/store/actions/delete-overridable-prop.ts
|
|
2608
|
+
var import_store36 = require("@elementor/store");
|
|
2609
|
+
|
|
2610
|
+
// src/extended/utils/revert-overridable-settings.ts
|
|
2611
|
+
var import_editor_elements10 = require("@elementor/editor-elements");
|
|
2612
|
+
function revertElementOverridableSetting(elementId, settingKey, originValue, overrideKey) {
|
|
2613
|
+
const container = (0, import_editor_elements10.getContainer)(elementId);
|
|
2614
|
+
if (!container) {
|
|
2615
|
+
return;
|
|
2616
|
+
}
|
|
2617
|
+
if (isComponentInstance(container.model.toJSON())) {
|
|
2618
|
+
revertComponentInstanceOverridableSetting(elementId, overrideKey);
|
|
2619
|
+
return;
|
|
2620
|
+
}
|
|
2621
|
+
(0, import_editor_elements10.updateElementSettings)({
|
|
2622
|
+
id: elementId,
|
|
2623
|
+
props: { [settingKey]: originValue ?? null },
|
|
2624
|
+
withHistory: false
|
|
2625
|
+
});
|
|
2626
|
+
}
|
|
2627
|
+
function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
|
|
2628
|
+
const setting = (0, import_editor_elements10.getElementSetting)(elementId, "component_instance");
|
|
2629
|
+
const componentInstance = componentInstancePropTypeUtil.extract(setting);
|
|
2630
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
2631
|
+
if (!overrides?.length) {
|
|
2632
|
+
return;
|
|
2633
|
+
}
|
|
2634
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides, overrideKey);
|
|
2635
|
+
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
2636
|
+
...componentInstance,
|
|
2637
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
2638
|
+
});
|
|
2639
|
+
(0, import_editor_elements10.updateElementSettings)({
|
|
2640
|
+
id: elementId,
|
|
2641
|
+
props: { component_instance: updatedSetting },
|
|
2642
|
+
withHistory: false
|
|
2643
|
+
});
|
|
2644
|
+
}
|
|
2645
|
+
function revertComponentInstanceOverrides(overrides, filterByKey) {
|
|
2646
|
+
return overrides.map((item) => {
|
|
2647
|
+
if (!componentOverridablePropTypeUtil.isValid(item)) {
|
|
2648
|
+
return item;
|
|
2649
|
+
}
|
|
2650
|
+
if (!componentInstanceOverridePropTypeUtil.isValid(item.value.origin_value)) {
|
|
2651
|
+
return null;
|
|
2652
|
+
}
|
|
2653
|
+
if (filterByKey && item.value.override_key !== filterByKey) {
|
|
2654
|
+
return item;
|
|
2655
|
+
}
|
|
2656
|
+
return item.value.origin_value;
|
|
2657
|
+
}).filter((item) => item !== null);
|
|
2658
|
+
}
|
|
2659
|
+
function revertOverridablePropsFromSettings(settings) {
|
|
2660
|
+
let hasChanges = false;
|
|
2661
|
+
const revertedSettings = {};
|
|
2662
|
+
for (const [key, value] of Object.entries(settings)) {
|
|
2663
|
+
if (componentOverridablePropTypeUtil.isValid(value)) {
|
|
2664
|
+
revertedSettings[key] = value.value.origin_value;
|
|
2665
|
+
hasChanges = true;
|
|
2666
|
+
} else {
|
|
2667
|
+
revertedSettings[key] = value;
|
|
2668
|
+
}
|
|
2669
|
+
}
|
|
2670
|
+
return { hasChanges, settings: revertedSettings };
|
|
2671
|
+
}
|
|
2672
|
+
function revertAllOverridablesInElementData(elementData) {
|
|
2673
|
+
const revertedElement = { ...elementData };
|
|
2674
|
+
if (isComponentInstance({ widgetType: elementData.widgetType, elType: elementData.elType })) {
|
|
2675
|
+
revertedElement.settings = revertComponentInstanceSettings(elementData.settings);
|
|
2676
|
+
} else if (revertedElement.settings) {
|
|
2677
|
+
const { settings } = revertOverridablePropsFromSettings(revertedElement.settings);
|
|
2678
|
+
revertedElement.settings = settings;
|
|
2679
|
+
}
|
|
2680
|
+
if (revertedElement.elements) {
|
|
2681
|
+
revertedElement.elements = revertedElement.elements.map(revertAllOverridablesInElementData);
|
|
2682
|
+
}
|
|
2683
|
+
return revertedElement;
|
|
2684
|
+
}
|
|
2685
|
+
function revertComponentInstanceSettings(settings) {
|
|
2686
|
+
if (!settings?.component_instance) {
|
|
2687
|
+
return settings;
|
|
2688
|
+
}
|
|
2689
|
+
const componentInstance = componentInstancePropTypeUtil.extract(settings.component_instance);
|
|
2690
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
2691
|
+
if (!overrides?.length) {
|
|
2692
|
+
return settings;
|
|
2693
|
+
}
|
|
2694
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides);
|
|
2695
|
+
return {
|
|
2696
|
+
...settings,
|
|
2697
|
+
component_instance: componentInstancePropTypeUtil.create({
|
|
2698
|
+
...componentInstance,
|
|
2699
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
2700
|
+
})
|
|
2701
|
+
};
|
|
2702
|
+
}
|
|
2703
|
+
function revertAllOverridablesInContainer(container) {
|
|
2704
|
+
(0, import_editor_elements10.getAllDescendants)(container).forEach((element) => {
|
|
2705
|
+
if (element.model.get("widgetType") === COMPONENT_WIDGET_TYPE) {
|
|
2706
|
+
revertComponentInstanceOverridesInElement(element);
|
|
2707
|
+
} else {
|
|
2708
|
+
revertElementSettings(element);
|
|
2709
|
+
}
|
|
2710
|
+
});
|
|
2711
|
+
}
|
|
2712
|
+
function revertComponentInstanceOverridesInElement(element) {
|
|
2713
|
+
const settings = element.settings?.toJSON() ?? {};
|
|
2714
|
+
const componentInstance = componentInstancePropTypeUtil.extract(settings.component_instance);
|
|
2715
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
2716
|
+
if (!overrides?.length) {
|
|
2717
|
+
return;
|
|
2718
|
+
}
|
|
2719
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides);
|
|
2720
|
+
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
2721
|
+
...componentInstance,
|
|
2722
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
2723
|
+
});
|
|
2724
|
+
(0, import_editor_elements10.updateElementSettings)({
|
|
2725
|
+
id: element.id,
|
|
2726
|
+
props: { component_instance: updatedSetting },
|
|
2727
|
+
withHistory: false
|
|
2728
|
+
});
|
|
2729
|
+
}
|
|
2730
|
+
function revertElementSettings(element) {
|
|
2731
|
+
const settings = element.settings?.toJSON() ?? {};
|
|
2732
|
+
const { hasChanges, settings: revertedSettings } = revertOverridablePropsFromSettings(settings);
|
|
2733
|
+
if (!hasChanges) {
|
|
2734
|
+
return;
|
|
2735
|
+
}
|
|
2736
|
+
(0, import_editor_elements10.updateElementSettings)({
|
|
2737
|
+
id: element.id,
|
|
2738
|
+
props: revertedSettings,
|
|
2739
|
+
withHistory: false
|
|
2740
|
+
});
|
|
2741
|
+
}
|
|
2742
|
+
|
|
2743
|
+
// src/extended/store/actions/delete-overridable-prop.ts
|
|
2744
|
+
function deleteOverridableProp({ componentId, propKey, source }) {
|
|
2745
|
+
const overridableProps = selectOverridableProps((0, import_store36.__getState)(), componentId);
|
|
2746
|
+
if (!overridableProps || Object.keys(overridableProps.props).length === 0) {
|
|
2747
|
+
return;
|
|
2748
|
+
}
|
|
2749
|
+
const propKeysToDelete = Array.isArray(propKey) ? propKey : [propKey];
|
|
2750
|
+
const deletedProps = [];
|
|
2751
|
+
for (const key of propKeysToDelete) {
|
|
2752
|
+
const prop = overridableProps.props[key];
|
|
2753
|
+
if (!prop) {
|
|
2754
|
+
continue;
|
|
2755
|
+
}
|
|
2756
|
+
deletedProps.push(prop);
|
|
2757
|
+
revertElementOverridableSetting(prop.elementId, prop.propKey, prop.originValue, key);
|
|
2758
|
+
}
|
|
2759
|
+
if (deletedProps.length === 0) {
|
|
2760
|
+
return;
|
|
2761
|
+
}
|
|
2762
|
+
const remainingProps = Object.fromEntries(
|
|
2763
|
+
Object.entries(overridableProps.props).filter(([key]) => !propKeysToDelete.includes(key))
|
|
2764
|
+
);
|
|
2765
|
+
const updatedGroups = removePropFromAllGroups(overridableProps.groups, propKey);
|
|
2766
|
+
(0, import_store36.__dispatch)(
|
|
2767
|
+
slice.actions.setOverridableProps({
|
|
2768
|
+
componentId,
|
|
2769
|
+
overridableProps: {
|
|
2770
|
+
...overridableProps,
|
|
2771
|
+
props: remainingProps,
|
|
2772
|
+
groups: updatedGroups
|
|
2773
|
+
}
|
|
2774
|
+
})
|
|
2775
|
+
);
|
|
2776
|
+
const currentComponent = selectCurrentComponent((0, import_store36.__getState)());
|
|
2777
|
+
for (const prop of deletedProps) {
|
|
2778
|
+
trackComponentEvent({
|
|
2779
|
+
action: "propertyRemoved",
|
|
2780
|
+
source,
|
|
2781
|
+
component_uid: currentComponent?.uid,
|
|
2782
|
+
property_id: prop.overrideKey,
|
|
2783
|
+
property_path: prop.propKey,
|
|
2784
|
+
property_name: prop.label,
|
|
2785
|
+
element_type: prop.widgetType ?? prop.elType
|
|
2786
|
+
});
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
|
|
2803
2790
|
// src/extended/store/actions/reorder-group-props.ts
|
|
2804
|
-
var
|
|
2791
|
+
var import_store38 = require("@elementor/store");
|
|
2805
2792
|
function reorderGroupProps({ componentId, groupId, newPropsOrder }) {
|
|
2806
|
-
const overridableProps = selectOverridableProps((0,
|
|
2793
|
+
const overridableProps = selectOverridableProps((0, import_store38.__getState)(), componentId);
|
|
2807
2794
|
if (!overridableProps) {
|
|
2808
2795
|
return;
|
|
2809
2796
|
}
|
|
@@ -2811,7 +2798,7 @@ function reorderGroupProps({ componentId, groupId, newPropsOrder }) {
|
|
|
2811
2798
|
if (!group) {
|
|
2812
2799
|
return;
|
|
2813
2800
|
}
|
|
2814
|
-
(0,
|
|
2801
|
+
(0, import_store38.__dispatch)(
|
|
2815
2802
|
slice.actions.setOverridableProps({
|
|
2816
2803
|
componentId,
|
|
2817
2804
|
overridableProps: {
|
|
@@ -2832,13 +2819,13 @@ function reorderGroupProps({ componentId, groupId, newPropsOrder }) {
|
|
|
2832
2819
|
}
|
|
2833
2820
|
|
|
2834
2821
|
// src/extended/store/actions/reorder-overridable-groups.ts
|
|
2835
|
-
var
|
|
2822
|
+
var import_store40 = require("@elementor/store");
|
|
2836
2823
|
function reorderOverridableGroups({ componentId, newOrder }) {
|
|
2837
|
-
const overridableProps = selectOverridableProps((0,
|
|
2824
|
+
const overridableProps = selectOverridableProps((0, import_store40.__getState)(), componentId);
|
|
2838
2825
|
if (!overridableProps) {
|
|
2839
2826
|
return;
|
|
2840
2827
|
}
|
|
2841
|
-
(0,
|
|
2828
|
+
(0, import_store40.__dispatch)(
|
|
2842
2829
|
slice.actions.setOverridableProps({
|
|
2843
2830
|
componentId,
|
|
2844
2831
|
overridableProps: {
|
|
@@ -2853,14 +2840,14 @@ function reorderOverridableGroups({ componentId, newOrder }) {
|
|
|
2853
2840
|
}
|
|
2854
2841
|
|
|
2855
2842
|
// src/extended/store/actions/update-overridable-prop-params.ts
|
|
2856
|
-
var
|
|
2843
|
+
var import_store42 = require("@elementor/store");
|
|
2857
2844
|
function updateOverridablePropParams({
|
|
2858
2845
|
componentId,
|
|
2859
2846
|
overrideKey,
|
|
2860
2847
|
label,
|
|
2861
2848
|
groupId
|
|
2862
2849
|
}) {
|
|
2863
|
-
const overridableProps = selectOverridableProps((0,
|
|
2850
|
+
const overridableProps = selectOverridableProps((0, import_store42.__getState)(), componentId);
|
|
2864
2851
|
if (!overridableProps) {
|
|
2865
2852
|
return;
|
|
2866
2853
|
}
|
|
@@ -2876,7 +2863,7 @@ function updateOverridablePropParams({
|
|
|
2876
2863
|
groupId: newGroupId
|
|
2877
2864
|
};
|
|
2878
2865
|
const updatedGroups = movePropBetweenGroups(overridableProps.groups, overrideKey, oldGroupId, newGroupId);
|
|
2879
|
-
(0,
|
|
2866
|
+
(0, import_store42.__dispatch)(
|
|
2880
2867
|
slice.actions.setOverridableProps({
|
|
2881
2868
|
componentId,
|
|
2882
2869
|
overridableProps: {
|
|
@@ -3375,9 +3362,9 @@ var import_editor_ui11 = require("@elementor/editor-ui");
|
|
|
3375
3362
|
var import_i18n19 = require("@wordpress/i18n");
|
|
3376
3363
|
|
|
3377
3364
|
// src/extended/store/actions/rename-overridable-group.ts
|
|
3378
|
-
var
|
|
3365
|
+
var import_store44 = require("@elementor/store");
|
|
3379
3366
|
function renameOverridableGroup({ componentId, groupId, label }) {
|
|
3380
|
-
const overridableProps = selectOverridableProps((0,
|
|
3367
|
+
const overridableProps = selectOverridableProps((0, import_store44.__getState)(), componentId);
|
|
3381
3368
|
if (!overridableProps) {
|
|
3382
3369
|
return false;
|
|
3383
3370
|
}
|
|
@@ -3386,7 +3373,7 @@ function renameOverridableGroup({ componentId, groupId, label }) {
|
|
|
3386
3373
|
return false;
|
|
3387
3374
|
}
|
|
3388
3375
|
const updatedGroups = renameGroup(overridableProps.groups, groupId, label);
|
|
3389
|
-
(0,
|
|
3376
|
+
(0, import_store44.__dispatch)(
|
|
3390
3377
|
slice.actions.setOverridableProps({
|
|
3391
3378
|
componentId,
|
|
3392
3379
|
overridableProps: {
|
|
@@ -3719,7 +3706,7 @@ var ComponentPanelHeader = () => {
|
|
|
3719
3706
|
));
|
|
3720
3707
|
};
|
|
3721
3708
|
function getComponentName() {
|
|
3722
|
-
const state = (0,
|
|
3709
|
+
const state = (0, import_store48.__getState)();
|
|
3723
3710
|
const path = state[SLICE_NAME].path;
|
|
3724
3711
|
const { instanceTitle } = path.at(-1) ?? {};
|
|
3725
3712
|
if (instanceTitle) {
|
|
@@ -3737,14 +3724,14 @@ var import_editor_elements16 = require("@elementor/editor-elements");
|
|
|
3737
3724
|
var import_editor_notifications3 = require("@elementor/editor-notifications");
|
|
3738
3725
|
var import_editor_ui14 = require("@elementor/editor-ui");
|
|
3739
3726
|
var import_icons14 = require("@elementor/icons");
|
|
3740
|
-
var
|
|
3727
|
+
var import_store54 = require("@elementor/store");
|
|
3741
3728
|
var import_ui22 = require("@elementor/ui");
|
|
3742
3729
|
var import_i18n26 = require("@wordpress/i18n");
|
|
3743
3730
|
|
|
3744
3731
|
// src/extended/store/actions/create-unpublished-component.ts
|
|
3745
3732
|
var import_editor_elements14 = require("@elementor/editor-elements");
|
|
3746
3733
|
var import_editor_v1_adapters3 = require("@elementor/editor-v1-adapters");
|
|
3747
|
-
var
|
|
3734
|
+
var import_store50 = require("@elementor/store");
|
|
3748
3735
|
var import_utils6 = require("@elementor/utils");
|
|
3749
3736
|
var import_i18n24 = require("@wordpress/i18n");
|
|
3750
3737
|
|
|
@@ -3777,14 +3764,14 @@ async function createUnpublishedComponent({
|
|
|
3777
3764
|
parentId: container?.parent?.id ?? "",
|
|
3778
3765
|
index: container?.view?._index ?? 0
|
|
3779
3766
|
};
|
|
3780
|
-
(0,
|
|
3767
|
+
(0, import_store50.__dispatch)(
|
|
3781
3768
|
slice.actions.addUnpublished({
|
|
3782
3769
|
...componentBase,
|
|
3783
3770
|
elements: [elementDataWithOverridablesReverted],
|
|
3784
3771
|
overridableProps
|
|
3785
3772
|
})
|
|
3786
3773
|
);
|
|
3787
|
-
(0,
|
|
3774
|
+
(0, import_store50.__dispatch)(slice.actions.addCreatedThisSession(generatedUid));
|
|
3788
3775
|
const componentInstance = await replaceElementWithComponent(element, componentBase);
|
|
3789
3776
|
trackComponentEvent({
|
|
3790
3777
|
action: "created",
|
|
@@ -3797,8 +3784,8 @@ async function createUnpublishedComponent({
|
|
|
3797
3784
|
await (0, import_editor_v1_adapters3.__privateRunCommand)("document/save/auto");
|
|
3798
3785
|
} catch (error) {
|
|
3799
3786
|
restoreOriginalElement(originalElement, componentInstance.id);
|
|
3800
|
-
(0,
|
|
3801
|
-
(0,
|
|
3787
|
+
(0, import_store50.__dispatch)(slice.actions.removeUnpublished(generatedUid));
|
|
3788
|
+
(0, import_store50.__dispatch)(slice.actions.removeCreatedThisSession(generatedUid));
|
|
3802
3789
|
throw error;
|
|
3803
3790
|
}
|
|
3804
3791
|
return { uid: generatedUid, instanceId: componentInstance.id };
|
|
@@ -3833,9 +3820,9 @@ var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
|
3833
3820
|
var import_i18n25 = require("@wordpress/i18n");
|
|
3834
3821
|
|
|
3835
3822
|
// src/extended/utils/is-editing-component.ts
|
|
3836
|
-
var
|
|
3823
|
+
var import_store52 = require("@elementor/store");
|
|
3837
3824
|
function isEditingComponent() {
|
|
3838
|
-
const state = (0,
|
|
3825
|
+
const state = (0, import_store52.__getStore)()?.getState();
|
|
3839
3826
|
if (!state) {
|
|
3840
3827
|
return false;
|
|
3841
3828
|
}
|
|
@@ -4061,7 +4048,7 @@ function CreateComponentForm() {
|
|
|
4061
4048
|
eventData: eventData.current,
|
|
4062
4049
|
source: "user"
|
|
4063
4050
|
});
|
|
4064
|
-
const publishedComponentId = selectComponentByUid((0,
|
|
4051
|
+
const publishedComponentId = selectComponentByUid((0, import_store54.__getState)(), uid)?.id;
|
|
4065
4052
|
if (publishedComponentId) {
|
|
4066
4053
|
switchToComponent(publishedComponentId, instanceId);
|
|
4067
4054
|
} else {
|
|
@@ -4210,7 +4197,7 @@ var React29 = __toESM(require("react"));
|
|
|
4210
4197
|
var import_react17 = require("react");
|
|
4211
4198
|
var import_editor_documents11 = require("@elementor/editor-documents");
|
|
4212
4199
|
var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
|
|
4213
|
-
var
|
|
4200
|
+
var import_store60 = require("@elementor/store");
|
|
4214
4201
|
var import_utils8 = require("@elementor/utils");
|
|
4215
4202
|
|
|
4216
4203
|
// src/extended/consts.ts
|
|
@@ -4218,18 +4205,18 @@ var OVERRIDABLE_PROP_REPLACEMENT_ID = "overridable-prop";
|
|
|
4218
4205
|
var COMPONENT_DOCUMENT_TYPE = "elementor_component";
|
|
4219
4206
|
|
|
4220
4207
|
// src/extended/store/actions/reset-sanitized-components.ts
|
|
4221
|
-
var
|
|
4208
|
+
var import_store56 = require("@elementor/store");
|
|
4222
4209
|
function resetSanitizedComponents() {
|
|
4223
|
-
(0,
|
|
4210
|
+
(0, import_store56.__dispatch)(slice.actions.resetSanitizedComponents());
|
|
4224
4211
|
}
|
|
4225
4212
|
|
|
4226
4213
|
// src/extended/store/actions/update-current-component.ts
|
|
4227
|
-
var
|
|
4214
|
+
var import_store58 = require("@elementor/store");
|
|
4228
4215
|
function updateCurrentComponent({
|
|
4229
4216
|
path,
|
|
4230
4217
|
currentComponentId
|
|
4231
4218
|
}) {
|
|
4232
|
-
const dispatch21 = (0,
|
|
4219
|
+
const dispatch21 = (0, import_store58.__getStore)()?.dispatch;
|
|
4233
4220
|
if (!dispatch21) {
|
|
4234
4221
|
return;
|
|
4235
4222
|
}
|
|
@@ -4425,7 +4412,7 @@ function EditComponent() {
|
|
|
4425
4412
|
function useHandleDocumentSwitches() {
|
|
4426
4413
|
const documentsManager = (0, import_editor_documents11.getV1DocumentsManager)();
|
|
4427
4414
|
const currentComponentId = useCurrentComponentId();
|
|
4428
|
-
const path = (0,
|
|
4415
|
+
const path = (0, import_store60.__useSelector)(selectPath);
|
|
4429
4416
|
(0, import_react17.useEffect)(() => {
|
|
4430
4417
|
return (0, import_editor_v1_adapters6.__privateListenTo)((0, import_editor_v1_adapters6.commandEndEvent)("editor/documents/open"), () => {
|
|
4431
4418
|
const nextDocument = documentsManager.getCurrent();
|
|
@@ -4592,7 +4579,7 @@ var import_ui24 = require("@elementor/ui");
|
|
|
4592
4579
|
var import_i18n29 = require("@wordpress/i18n");
|
|
4593
4580
|
|
|
4594
4581
|
// src/extended/store/actions/set-overridable-prop.ts
|
|
4595
|
-
var
|
|
4582
|
+
var import_store63 = require("@elementor/store");
|
|
4596
4583
|
var import_utils9 = require("@elementor/utils");
|
|
4597
4584
|
function setOverridableProp({
|
|
4598
4585
|
componentId,
|
|
@@ -4607,7 +4594,7 @@ function setOverridableProp({
|
|
|
4607
4594
|
originPropFields,
|
|
4608
4595
|
source
|
|
4609
4596
|
}) {
|
|
4610
|
-
const overridableProps = selectOverridableProps((0,
|
|
4597
|
+
const overridableProps = selectOverridableProps((0, import_store63.__getState)(), componentId);
|
|
4611
4598
|
if (!overridableProps) {
|
|
4612
4599
|
return;
|
|
4613
4600
|
}
|
|
@@ -4644,7 +4631,7 @@ function setOverridableProp({
|
|
|
4644
4631
|
if (isChangingGroups) {
|
|
4645
4632
|
groups = removePropFromGroup(groups, existingOverridableProp.groupId, overridableProp.overrideKey);
|
|
4646
4633
|
}
|
|
4647
|
-
(0,
|
|
4634
|
+
(0, import_store63.__dispatch)(
|
|
4648
4635
|
slice.actions.setOverridableProps({
|
|
4649
4636
|
componentId,
|
|
4650
4637
|
overridableProps: {
|
|
@@ -4655,7 +4642,7 @@ function setOverridableProp({
|
|
|
4655
4642
|
);
|
|
4656
4643
|
const isNewProperty = !existingOverridableProp;
|
|
4657
4644
|
if (isNewProperty) {
|
|
4658
|
-
const currentComponent = selectCurrentComponent((0,
|
|
4645
|
+
const currentComponent = selectCurrentComponent((0, import_store63.__getState)());
|
|
4659
4646
|
trackComponentEvent({
|
|
4660
4647
|
action: "propertyExposed",
|
|
4661
4648
|
source,
|
|
@@ -5213,7 +5200,7 @@ async function publishDraftComponentsInPageBeforeSave({ status, elements }) {
|
|
|
5213
5200
|
}
|
|
5214
5201
|
|
|
5215
5202
|
// src/extended/sync/set-component-overridable-props-settings-before-save.ts
|
|
5216
|
-
var
|
|
5203
|
+
var import_store66 = require("@elementor/store");
|
|
5217
5204
|
var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
5218
5205
|
container
|
|
5219
5206
|
}) => {
|
|
@@ -5221,7 +5208,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
5221
5208
|
if (!currentDocument || currentDocument.config.type !== COMPONENT_DOCUMENT_TYPE) {
|
|
5222
5209
|
return;
|
|
5223
5210
|
}
|
|
5224
|
-
const overridableProps = selectOverridableProps((0,
|
|
5211
|
+
const overridableProps = selectOverridableProps((0, import_store66.__getState)(), currentDocument.id);
|
|
5225
5212
|
if (overridableProps) {
|
|
5226
5213
|
container.settings.set("overridable_props", overridableProps);
|
|
5227
5214
|
}
|
|
@@ -5229,7 +5216,7 @@ var setComponentOverridablePropsSettingsBeforeSave = ({
|
|
|
5229
5216
|
|
|
5230
5217
|
// src/extended/sync/update-archived-component-before-save.ts
|
|
5231
5218
|
var import_editor_notifications4 = require("@elementor/editor-notifications");
|
|
5232
|
-
var
|
|
5219
|
+
var import_store68 = require("@elementor/store");
|
|
5233
5220
|
var failedNotification = (message) => ({
|
|
5234
5221
|
type: "error",
|
|
5235
5222
|
message: `Failed to archive components: ${message}`,
|
|
@@ -5237,7 +5224,7 @@ var failedNotification = (message) => ({
|
|
|
5237
5224
|
});
|
|
5238
5225
|
var updateArchivedComponentBeforeSave = async (status) => {
|
|
5239
5226
|
try {
|
|
5240
|
-
const archivedComponents = selectArchivedThisSession((0,
|
|
5227
|
+
const archivedComponents = selectArchivedThisSession((0, import_store68.__getState)());
|
|
5241
5228
|
if (!archivedComponents.length) {
|
|
5242
5229
|
return;
|
|
5243
5230
|
}
|
|
@@ -5252,33 +5239,33 @@ var updateArchivedComponentBeforeSave = async (status) => {
|
|
|
5252
5239
|
};
|
|
5253
5240
|
|
|
5254
5241
|
// src/extended/sync/update-component-title-before-save.ts
|
|
5255
|
-
var
|
|
5242
|
+
var import_store70 = require("@elementor/store");
|
|
5256
5243
|
var updateComponentTitleBeforeSave = async (status) => {
|
|
5257
|
-
const updatedComponentNames = selectUpdatedComponentNames((0,
|
|
5244
|
+
const updatedComponentNames = selectUpdatedComponentNames((0, import_store70.__getState)());
|
|
5258
5245
|
if (!updatedComponentNames.length) {
|
|
5259
5246
|
return;
|
|
5260
5247
|
}
|
|
5261
5248
|
const result = await apiClient.updateComponentTitle(updatedComponentNames, status);
|
|
5262
5249
|
if (result.failedIds.length === 0) {
|
|
5263
|
-
(0,
|
|
5250
|
+
(0, import_store70.__dispatch)(slice.actions.cleanUpdatedComponentNames());
|
|
5264
5251
|
}
|
|
5265
5252
|
};
|
|
5266
5253
|
|
|
5267
5254
|
// src/extended/sync/create-components-before-save.ts
|
|
5268
5255
|
var import_editor_elements19 = require("@elementor/editor-elements");
|
|
5269
|
-
var
|
|
5256
|
+
var import_store72 = require("@elementor/store");
|
|
5270
5257
|
async function createComponentsBeforeSave({
|
|
5271
5258
|
elements,
|
|
5272
5259
|
status
|
|
5273
5260
|
}) {
|
|
5274
|
-
const unpublishedComponents = selectUnpublishedComponents((0,
|
|
5261
|
+
const unpublishedComponents = selectUnpublishedComponents((0, import_store72.__getState)());
|
|
5275
5262
|
if (!unpublishedComponents.length) {
|
|
5276
5263
|
return;
|
|
5277
5264
|
}
|
|
5278
5265
|
try {
|
|
5279
5266
|
const uidToComponentId = await createComponents(unpublishedComponents, status);
|
|
5280
5267
|
updateComponentInstances(elements, uidToComponentId);
|
|
5281
|
-
(0,
|
|
5268
|
+
(0, import_store72.__dispatch)(
|
|
5282
5269
|
slice.actions.add(
|
|
5283
5270
|
unpublishedComponents.map((component) => ({
|
|
5284
5271
|
id: uidToComponentId.get(component.uid),
|
|
@@ -5288,10 +5275,10 @@ async function createComponentsBeforeSave({
|
|
|
5288
5275
|
}))
|
|
5289
5276
|
)
|
|
5290
5277
|
);
|
|
5291
|
-
(0,
|
|
5278
|
+
(0, import_store72.__dispatch)(slice.actions.resetUnpublished());
|
|
5292
5279
|
} catch (error) {
|
|
5293
5280
|
const failedUids = unpublishedComponents.map((component) => component.uid);
|
|
5294
|
-
(0,
|
|
5281
|
+
(0, import_store72.__dispatch)(slice.actions.removeUnpublished(failedUids));
|
|
5295
5282
|
throw new Error(`Failed to publish components: ${error}`);
|
|
5296
5283
|
}
|
|
5297
5284
|
}
|
|
@@ -5373,13 +5360,13 @@ var updateExistingComponentsBeforeSave = async ({
|
|
|
5373
5360
|
// src/extended/sync/cleanup-overridable-props-on-delete.ts
|
|
5374
5361
|
var import_editor_elements20 = require("@elementor/editor-elements");
|
|
5375
5362
|
var import_editor_v1_adapters7 = require("@elementor/editor-v1-adapters");
|
|
5376
|
-
var
|
|
5363
|
+
var import_store74 = require("@elementor/store");
|
|
5377
5364
|
function initCleanupOverridablePropsOnDelete() {
|
|
5378
5365
|
(0, import_editor_v1_adapters7.registerDataHook)("dependency", "document/elements/delete", (args, options) => {
|
|
5379
5366
|
if (isPartOfMoveCommand(options)) {
|
|
5380
5367
|
return true;
|
|
5381
5368
|
}
|
|
5382
|
-
const state = (0,
|
|
5369
|
+
const state = (0, import_store74.__getState)();
|
|
5383
5370
|
if (!state) {
|
|
5384
5371
|
return true;
|
|
5385
5372
|
}
|
|
@@ -5526,6 +5513,36 @@ function revertOverridablesInStorage(storageKey) {
|
|
|
5526
5513
|
});
|
|
5527
5514
|
}
|
|
5528
5515
|
|
|
5516
|
+
// src/extended/sync/sanitize-overridable-props.ts
|
|
5517
|
+
var import_react19 = require("react");
|
|
5518
|
+
|
|
5519
|
+
// src/extended/store/actions/update-component-sanitized-attribute.ts
|
|
5520
|
+
var import_store76 = require("@elementor/store");
|
|
5521
|
+
function updateComponentSanitizedAttribute(componentId, attribute) {
|
|
5522
|
+
(0, import_store76.__dispatch)(slice.actions.updateComponentSanitizedAttribute({ componentId, attribute }));
|
|
5523
|
+
}
|
|
5524
|
+
|
|
5525
|
+
// src/extended/sync/sanitize-overridable-props.ts
|
|
5526
|
+
function SanitizeOverridableProps() {
|
|
5527
|
+
const currentComponentId = useCurrentComponentId();
|
|
5528
|
+
const overridableProps = useOverridableProps(currentComponentId);
|
|
5529
|
+
const isSanitized = useIsSanitizedComponent(currentComponentId, "overridableProps");
|
|
5530
|
+
(0, import_react19.useEffect)(() => {
|
|
5531
|
+
if (isSanitized || !overridableProps || !currentComponentId) {
|
|
5532
|
+
return;
|
|
5533
|
+
}
|
|
5534
|
+
const filtered = filterValidOverridableProps(overridableProps);
|
|
5535
|
+
const propsToDelete = Object.keys(overridableProps.props ?? {}).filter((key) => !filtered.props[key]);
|
|
5536
|
+
if (propsToDelete.length > 0) {
|
|
5537
|
+
propsToDelete.forEach((key) => {
|
|
5538
|
+
deleteOverridableProp({ componentId: currentComponentId, propKey: key, source: "system" });
|
|
5539
|
+
});
|
|
5540
|
+
}
|
|
5541
|
+
updateComponentSanitizedAttribute(currentComponentId, "overridableProps");
|
|
5542
|
+
}, [currentComponentId, isSanitized, overridableProps]);
|
|
5543
|
+
return null;
|
|
5544
|
+
}
|
|
5545
|
+
|
|
5529
5546
|
// src/extended/init.ts
|
|
5530
5547
|
function initExtended() {
|
|
5531
5548
|
(0, import_editor_panels5.__registerPanel)(panel);
|
|
@@ -5566,14 +5583,18 @@ function initExtended() {
|
|
|
5566
5583
|
initNonAtomicNestingPrevention();
|
|
5567
5584
|
initHandleComponentEditModeContainer();
|
|
5568
5585
|
initRevertOverridablesOnCopyOrDuplicate();
|
|
5586
|
+
(0, import_editor.injectIntoLogic)({
|
|
5587
|
+
id: "sanitize-overridable-props",
|
|
5588
|
+
component: SanitizeOverridableProps
|
|
5589
|
+
});
|
|
5569
5590
|
}
|
|
5570
5591
|
|
|
5571
5592
|
// src/populate-store.ts
|
|
5572
|
-
var
|
|
5573
|
-
var
|
|
5593
|
+
var import_react20 = require("react");
|
|
5594
|
+
var import_store79 = require("@elementor/store");
|
|
5574
5595
|
function PopulateStore() {
|
|
5575
|
-
(0,
|
|
5576
|
-
(0,
|
|
5596
|
+
(0, import_react20.useEffect)(() => {
|
|
5597
|
+
(0, import_store79.__dispatch)(loadComponents());
|
|
5577
5598
|
}, []);
|
|
5578
5599
|
return null;
|
|
5579
5600
|
}
|
|
@@ -5582,7 +5603,7 @@ function PopulateStore() {
|
|
|
5582
5603
|
var import_editor_elements22 = require("@elementor/editor-elements");
|
|
5583
5604
|
var import_editor_notifications5 = require("@elementor/editor-notifications");
|
|
5584
5605
|
var import_editor_v1_adapters11 = require("@elementor/editor-v1-adapters");
|
|
5585
|
-
var
|
|
5606
|
+
var import_store80 = require("@elementor/store");
|
|
5586
5607
|
var import_i18n30 = require("@wordpress/i18n");
|
|
5587
5608
|
var COMPONENT_TYPE = "e-component";
|
|
5588
5609
|
var COMPONENT_CIRCULAR_NESTING_ALERT = {
|
|
@@ -5608,7 +5629,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
|
|
|
5608
5629
|
if (componentIdToAdd === void 0) {
|
|
5609
5630
|
return false;
|
|
5610
5631
|
}
|
|
5611
|
-
const state = (0,
|
|
5632
|
+
const state = (0, import_store80.__getState)();
|
|
5612
5633
|
const currentComponentId = selectCurrentComponentId(state);
|
|
5613
5634
|
const path = selectPath(state);
|
|
5614
5635
|
if (currentComponentId === null) {
|
|
@@ -5706,19 +5727,19 @@ function blockCircularPaste(args) {
|
|
|
5706
5727
|
}
|
|
5707
5728
|
|
|
5708
5729
|
// src/store/actions/remove-component-styles.ts
|
|
5709
|
-
var
|
|
5730
|
+
var import_store82 = require("@elementor/store");
|
|
5710
5731
|
function removeComponentStyles(id2) {
|
|
5711
5732
|
apiClient.invalidateComponentConfigCache(id2);
|
|
5712
|
-
(0,
|
|
5733
|
+
(0, import_store82.__dispatch)(slice.actions.removeStyles({ id: id2 }));
|
|
5713
5734
|
}
|
|
5714
5735
|
|
|
5715
5736
|
// src/store/components-styles-provider.ts
|
|
5716
5737
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
5717
|
-
var
|
|
5738
|
+
var import_store84 = require("@elementor/store");
|
|
5718
5739
|
var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
|
|
5719
5740
|
key: "components-styles",
|
|
5720
5741
|
priority: 100,
|
|
5721
|
-
subscribe: (cb) => (0,
|
|
5742
|
+
subscribe: (cb) => (0, import_store84.__subscribeWithSelector)(
|
|
5722
5743
|
(state) => state[SLICE_NAME],
|
|
5723
5744
|
() => {
|
|
5724
5745
|
cb();
|
|
@@ -5726,10 +5747,10 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
|
|
|
5726
5747
|
),
|
|
5727
5748
|
actions: {
|
|
5728
5749
|
all: () => {
|
|
5729
|
-
return selectFlatStyles((0,
|
|
5750
|
+
return selectFlatStyles((0, import_store84.__getState)());
|
|
5730
5751
|
},
|
|
5731
5752
|
get: (id2) => {
|
|
5732
|
-
return selectFlatStyles((0,
|
|
5753
|
+
return selectFlatStyles((0, import_store84.__getState)()).find((style) => style.id === id2) ?? null;
|
|
5733
5754
|
}
|
|
5734
5755
|
}
|
|
5735
5756
|
});
|
|
@@ -5758,7 +5779,7 @@ function load(result) {
|
|
|
5758
5779
|
// src/init.ts
|
|
5759
5780
|
function init() {
|
|
5760
5781
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
5761
|
-
(0,
|
|
5782
|
+
(0, import_store86.__registerSlice)(slice);
|
|
5762
5783
|
(0, import_editor_canvas8.registerElementType)(
|
|
5763
5784
|
COMPONENT_WIDGET_TYPE,
|
|
5764
5785
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|