@elementor/editor-components 4.1.0-741 → 4.1.0-743
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 +278 -213
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +250 -185
- package/dist/index.mjs.map +1 -1
- package/package.json +23 -23
- package/src/components/instance-editing-panel/override-prop-control.tsx +96 -33
- package/src/components/instance-editing-panel/utils/resolve-element-settings.ts +65 -0
- package/src/utils/filter-valid-overridable-props.ts +6 -61
- package/src/utils/overridable-props-utils.ts +0 -34
- package/src/utils/resolve-overrides-chain.ts +197 -0
- package/src/components/instance-editing-panel/use-resolved-origin-value.tsx +0 -119
package/dist/index.js
CHANGED
|
@@ -94,7 +94,7 @@ var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
|
|
|
94
94
|
var import_editor_elements_panel = require("@elementor/editor-elements-panel");
|
|
95
95
|
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
96
96
|
var import_editor_v1_adapters6 = require("@elementor/editor-v1-adapters");
|
|
97
|
-
var
|
|
97
|
+
var import_store34 = require("@elementor/store");
|
|
98
98
|
var import_i18n16 = require("@wordpress/i18n");
|
|
99
99
|
|
|
100
100
|
// src/component-instance-transformer.ts
|
|
@@ -1598,13 +1598,14 @@ var import_ui14 = require("@elementor/ui");
|
|
|
1598
1598
|
|
|
1599
1599
|
// src/components/instance-editing-panel/override-props-group.tsx
|
|
1600
1600
|
var React20 = __toESM(require("react"));
|
|
1601
|
-
var
|
|
1601
|
+
var import_react8 = require("react");
|
|
1602
1602
|
var import_editor_editing_panel2 = require("@elementor/editor-editing-panel");
|
|
1603
1603
|
var import_editor_ui6 = require("@elementor/editor-ui");
|
|
1604
1604
|
var import_ui13 = require("@elementor/ui");
|
|
1605
1605
|
|
|
1606
1606
|
// src/components/instance-editing-panel/override-prop-control.tsx
|
|
1607
1607
|
var React19 = __toESM(require("react"));
|
|
1608
|
+
var import_react7 = require("react");
|
|
1608
1609
|
var import_editor_controls2 = require("@elementor/editor-controls");
|
|
1609
1610
|
var import_editor_editing_panel = require("@elementor/editor-editing-panel");
|
|
1610
1611
|
var import_editor_elements7 = require("@elementor/editor-elements");
|
|
@@ -1810,26 +1811,8 @@ function updateOverridableProp(componentId, propValue, originPropFields) {
|
|
|
1810
1811
|
componentsActions.setOverridableProps(componentId, newOverridableProps);
|
|
1811
1812
|
}
|
|
1812
1813
|
|
|
1813
|
-
// src/utils/get-container-by-origin-id.ts
|
|
1814
|
-
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1815
|
-
function getContainerByOriginId(originElementId, instanceElementId) {
|
|
1816
|
-
if (!instanceElementId) {
|
|
1817
|
-
return (0, import_editor_elements5.getContainer)(originElementId);
|
|
1818
|
-
}
|
|
1819
|
-
const instanceContainer = (0, import_editor_elements5.getContainer)(instanceElementId);
|
|
1820
|
-
if (!instanceContainer) {
|
|
1821
|
-
return null;
|
|
1822
|
-
}
|
|
1823
|
-
const legacyWindow = window;
|
|
1824
|
-
return legacyWindow.elementor?.getContainerByKeyValue?.({
|
|
1825
|
-
key: "originId",
|
|
1826
|
-
value: originElementId,
|
|
1827
|
-
parent: instanceContainer.view
|
|
1828
|
-
}) ?? null;
|
|
1829
|
-
}
|
|
1830
|
-
|
|
1831
1814
|
// src/utils/get-prop-type-for-component-override.ts
|
|
1832
|
-
var
|
|
1815
|
+
var import_editor_elements5 = require("@elementor/editor-elements");
|
|
1833
1816
|
var getPropTypeForComponentOverride = (overridableProp) => {
|
|
1834
1817
|
if (overridableProp.originPropFields) {
|
|
1835
1818
|
return getPropType(overridableProp.originPropFields);
|
|
@@ -1841,7 +1824,7 @@ var getPropTypeForComponentOverride = (overridableProp) => {
|
|
|
1841
1824
|
});
|
|
1842
1825
|
};
|
|
1843
1826
|
function getPropType({ widgetType, propKey }) {
|
|
1844
|
-
const widgetPropsSchema = (0,
|
|
1827
|
+
const widgetPropsSchema = (0, import_editor_elements5.getWidgetsCache)()?.[widgetType]?.atomic_props_schema;
|
|
1845
1828
|
return widgetPropsSchema?.[propKey];
|
|
1846
1829
|
}
|
|
1847
1830
|
|
|
@@ -1856,45 +1839,25 @@ function getMatchingOverride(overrides, overrideKey) {
|
|
|
1856
1839
|
return override.value.override_key === overrideKey;
|
|
1857
1840
|
}) ?? null;
|
|
1858
1841
|
}
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
if (!innerOverride) {
|
|
1866
|
-
return null;
|
|
1842
|
+
|
|
1843
|
+
// src/utils/get-container-by-origin-id.ts
|
|
1844
|
+
var import_editor_elements6 = require("@elementor/editor-elements");
|
|
1845
|
+
function getContainerByOriginId(originElementId, instanceElementId) {
|
|
1846
|
+
if (!instanceElementId) {
|
|
1847
|
+
return (0, import_editor_elements6.getContainer)(originElementId);
|
|
1867
1848
|
}
|
|
1868
|
-
const
|
|
1869
|
-
|
|
1870
|
-
override_key: innerOverrideKey,
|
|
1871
|
-
override_value: overrideValue
|
|
1872
|
-
} = innerOverride;
|
|
1873
|
-
const componentId = schemaSource?.id;
|
|
1874
|
-
if (!componentId || !innerOverrideKey) {
|
|
1849
|
+
const instanceContainer = (0, import_editor_elements6.getContainer)(instanceElementId);
|
|
1850
|
+
if (!instanceContainer) {
|
|
1875
1851
|
return null;
|
|
1876
1852
|
}
|
|
1877
|
-
|
|
1853
|
+
const legacyWindow = window;
|
|
1854
|
+
return legacyWindow.elementor?.getContainerByKeyValue?.({
|
|
1855
|
+
key: "originId",
|
|
1856
|
+
value: originElementId,
|
|
1857
|
+
parent: instanceContainer.view
|
|
1858
|
+
}) ?? null;
|
|
1878
1859
|
}
|
|
1879
1860
|
|
|
1880
|
-
// src/components/control-label.tsx
|
|
1881
|
-
var React18 = __toESM(require("react"));
|
|
1882
|
-
var import_editor_controls = require("@elementor/editor-controls");
|
|
1883
|
-
var import_ui11 = require("@elementor/ui");
|
|
1884
|
-
var ControlLabel = ({ children, ...props }) => {
|
|
1885
|
-
return /* @__PURE__ */ React18.createElement(import_ui11.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React18.createElement(import_editor_controls.ControlFormLabel, { ...props }, children), /* @__PURE__ */ React18.createElement(import_editor_controls.ControlAdornments, null));
|
|
1886
|
-
};
|
|
1887
|
-
|
|
1888
|
-
// src/components/errors.ts
|
|
1889
|
-
var import_utils3 = require("@elementor/utils");
|
|
1890
|
-
var OverrideControlInnerElementNotFoundError = (0, import_utils3.createError)({
|
|
1891
|
-
code: "override_control_inner_element_not_found",
|
|
1892
|
-
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.`
|
|
1893
|
-
});
|
|
1894
|
-
|
|
1895
|
-
// src/components/instance-editing-panel/use-resolved-origin-value.tsx
|
|
1896
|
-
var import_store18 = require("@elementor/store");
|
|
1897
|
-
|
|
1898
1861
|
// src/utils/get-overridable-prop.ts
|
|
1899
1862
|
var import_store16 = require("@elementor/store");
|
|
1900
1863
|
function getOverridableProp({
|
|
@@ -1908,82 +1871,124 @@ function getOverridableProp({
|
|
|
1908
1871
|
return overridableProps.props[overrideKey];
|
|
1909
1872
|
}
|
|
1910
1873
|
|
|
1911
|
-
// src/
|
|
1912
|
-
function
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
}
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
if (hasValue(result)) {
|
|
1924
|
-
return result;
|
|
1874
|
+
// src/utils/resolve-overrides-chain.ts
|
|
1875
|
+
function resolveOverridesChain({
|
|
1876
|
+
outerOverridableProp,
|
|
1877
|
+
outerInstanceId,
|
|
1878
|
+
overridesMapping = {}
|
|
1879
|
+
}) {
|
|
1880
|
+
if (!outerOverridableProp.originPropFields) {
|
|
1881
|
+
const innerElement = getContainerByOriginId(outerOverridableProp.elementId, outerInstanceId);
|
|
1882
|
+
if (!innerElement) {
|
|
1883
|
+
throw new Error(
|
|
1884
|
+
`Inner element not found inside instance. elementId: ${outerOverridableProp.elementId}, instanceId: ${outerInstanceId}`
|
|
1885
|
+
);
|
|
1925
1886
|
}
|
|
1887
|
+
return { isChainBroken: false, innerElement, overridesMapping };
|
|
1926
1888
|
}
|
|
1927
|
-
const
|
|
1928
|
-
if (
|
|
1929
|
-
return
|
|
1930
|
-
}
|
|
1931
|
-
return null;
|
|
1932
|
-
}
|
|
1933
|
-
function getOriginFromOverride(components, override) {
|
|
1934
|
-
const innerOverrideInfo = extractInnerOverrideInfo(override);
|
|
1935
|
-
if (!innerOverrideInfo) {
|
|
1936
|
-
return null;
|
|
1889
|
+
const currentInstance = getContainerByOriginId(outerOverridableProp.elementId, outerInstanceId);
|
|
1890
|
+
if (!currentInstance) {
|
|
1891
|
+
return { isChainBroken: true };
|
|
1937
1892
|
}
|
|
1938
|
-
const { componentId,
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1893
|
+
const { componentId, overrides } = extractComponentInstanceSettings(currentInstance);
|
|
1894
|
+
if (!componentId) {
|
|
1895
|
+
throw new Error(
|
|
1896
|
+
`Component ID not found for current instance. currentInstanceId: ${currentInstance.id}. outerInstanceId: ${outerInstanceId}`
|
|
1897
|
+
);
|
|
1942
1898
|
}
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
}
|
|
1899
|
+
const mergedOverrides = buildOverridesMap(overridesMapping, overrides ?? []);
|
|
1900
|
+
const override = findOverrideByOuterKey(overrides, outerOverridableProp.overrideKey);
|
|
1901
|
+
const overrideKey = componentInstanceOverridePropTypeUtil.extract(override)?.override_key;
|
|
1902
|
+
if (!override || !overrideKey) {
|
|
1903
|
+
return { isChainBroken: true };
|
|
1949
1904
|
}
|
|
1950
|
-
const
|
|
1951
|
-
if (
|
|
1952
|
-
|
|
1905
|
+
const overridableProp = getOverridableProp({ componentId, overrideKey });
|
|
1906
|
+
if (!overridableProp) {
|
|
1907
|
+
throw new Error(`Overridable prop not found. componentId: ${componentId}, overrideKey: ${overrideKey}`);
|
|
1953
1908
|
}
|
|
1954
|
-
return
|
|
1909
|
+
return resolveOverridesChain({
|
|
1910
|
+
outerOverridableProp: overridableProp,
|
|
1911
|
+
outerInstanceId: currentInstance.id,
|
|
1912
|
+
overridesMapping: mergedOverrides
|
|
1913
|
+
});
|
|
1955
1914
|
}
|
|
1956
|
-
function
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1915
|
+
function buildOverridesMap(existing, levelOverrides) {
|
|
1916
|
+
const result = { ...existing };
|
|
1917
|
+
for (const item of levelOverrides) {
|
|
1918
|
+
const overridableValue = componentOverridablePropTypeUtil.extract(item);
|
|
1919
|
+
if (overridableValue) {
|
|
1920
|
+
const override = componentInstanceOverridePropTypeUtil.extract(overridableValue.origin_value);
|
|
1921
|
+
if (!override) {
|
|
1922
|
+
continue;
|
|
1923
|
+
}
|
|
1924
|
+
const outerKey = overridableValue.override_key;
|
|
1925
|
+
const innerKey = override.override_key;
|
|
1926
|
+
const innerValue = override.override_value;
|
|
1927
|
+
const higherLevelOverride = existing[outerKey];
|
|
1928
|
+
if (higherLevelOverride) {
|
|
1929
|
+
const outerValue = higherLevelOverride.value;
|
|
1930
|
+
result[innerKey] = {
|
|
1931
|
+
value: outerValue ?? innerValue,
|
|
1932
|
+
outermostKey: higherLevelOverride.outermostKey ?? outerKey
|
|
1933
|
+
};
|
|
1934
|
+
continue;
|
|
1935
|
+
}
|
|
1936
|
+
result[innerKey] = {
|
|
1937
|
+
value: innerValue,
|
|
1938
|
+
outermostKey: outerKey
|
|
1939
|
+
};
|
|
1940
|
+
} else {
|
|
1941
|
+
const override = componentInstanceOverridePropTypeUtil.extract(item);
|
|
1942
|
+
if (!override) {
|
|
1943
|
+
continue;
|
|
1944
|
+
}
|
|
1945
|
+
const key = override.override_key;
|
|
1946
|
+
const value = override.override_value;
|
|
1947
|
+
result[key] = { value };
|
|
1979
1948
|
}
|
|
1980
1949
|
}
|
|
1981
|
-
return
|
|
1950
|
+
return result;
|
|
1951
|
+
}
|
|
1952
|
+
function extractComponentInstanceSettings(element) {
|
|
1953
|
+
const instanceSetting = element.settings?.get("component_instance");
|
|
1954
|
+
const instanceValue = componentInstancePropTypeUtil.extract(instanceSetting);
|
|
1955
|
+
const componentId = instanceValue?.component_id?.value;
|
|
1956
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract(instanceValue?.overrides);
|
|
1957
|
+
return { componentId, overrides };
|
|
1982
1958
|
}
|
|
1983
|
-
function
|
|
1984
|
-
|
|
1959
|
+
function findOverrideByOuterKey(overrides, outerKey) {
|
|
1960
|
+
if (!overrides) {
|
|
1961
|
+
return null;
|
|
1962
|
+
}
|
|
1963
|
+
const overridableOverride = overrides.find((item) => {
|
|
1964
|
+
const overridableValue = componentOverridablePropTypeUtil.extract(item);
|
|
1965
|
+
if (!overridableValue) {
|
|
1966
|
+
return false;
|
|
1967
|
+
}
|
|
1968
|
+
return overridableValue.override_key === outerKey;
|
|
1969
|
+
});
|
|
1970
|
+
const override = componentOverridablePropTypeUtil.extract(overridableOverride)?.origin_value;
|
|
1971
|
+
if (!override || !componentInstanceOverridePropTypeUtil.isValid(override)) {
|
|
1972
|
+
return null;
|
|
1973
|
+
}
|
|
1974
|
+
return override;
|
|
1985
1975
|
}
|
|
1986
1976
|
|
|
1977
|
+
// src/components/control-label.tsx
|
|
1978
|
+
var React18 = __toESM(require("react"));
|
|
1979
|
+
var import_editor_controls = require("@elementor/editor-controls");
|
|
1980
|
+
var import_ui11 = require("@elementor/ui");
|
|
1981
|
+
var ControlLabel = ({ children, ...props }) => {
|
|
1982
|
+
return /* @__PURE__ */ React18.createElement(import_ui11.Stack, { direction: "row", alignItems: "center", justifyItems: "start", gap: 0.25 }, /* @__PURE__ */ React18.createElement(import_editor_controls.ControlFormLabel, { ...props }, children), /* @__PURE__ */ React18.createElement(import_editor_controls.ControlAdornments, null));
|
|
1983
|
+
};
|
|
1984
|
+
|
|
1985
|
+
// src/components/errors.ts
|
|
1986
|
+
var import_utils3 = require("@elementor/utils");
|
|
1987
|
+
var OverrideControlInnerElementNotFoundError = (0, import_utils3.createError)({
|
|
1988
|
+
code: "override_control_inner_element_not_found",
|
|
1989
|
+
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.`
|
|
1990
|
+
});
|
|
1991
|
+
|
|
1987
1992
|
// src/components/instance-editing-panel/utils/correct-exposed-empty-override.ts
|
|
1988
1993
|
function correctExposedEmptyOverride(newPropValue, matchingOverride) {
|
|
1989
1994
|
const newOverridableValue = componentOverridablePropTypeUtil.extract(newPropValue);
|
|
@@ -1997,6 +2002,45 @@ function correctExposedEmptyOverride(newPropValue, matchingOverride) {
|
|
|
1997
2002
|
});
|
|
1998
2003
|
}
|
|
1999
2004
|
|
|
2005
|
+
// src/components/instance-editing-panel/utils/resolve-element-settings.ts
|
|
2006
|
+
function applyOverridesToSettings(elementSettings, overrides) {
|
|
2007
|
+
const result = {};
|
|
2008
|
+
for (const [propKey, propValue] of Object.entries(elementSettings)) {
|
|
2009
|
+
const overridable = componentOverridablePropTypeUtil.extract(propValue);
|
|
2010
|
+
if (!overridable) {
|
|
2011
|
+
result[propKey] = propValue;
|
|
2012
|
+
continue;
|
|
2013
|
+
}
|
|
2014
|
+
const override = overrides[overridable.override_key];
|
|
2015
|
+
if (!override) {
|
|
2016
|
+
result[propKey] = propValue;
|
|
2017
|
+
continue;
|
|
2018
|
+
}
|
|
2019
|
+
if (override.outermostKey && override.outermostKey !== overridable.override_key) {
|
|
2020
|
+
const originValue = overridable.origin_value;
|
|
2021
|
+
result[propKey] = componentOverridablePropTypeUtil.create({
|
|
2022
|
+
override_key: override.outermostKey,
|
|
2023
|
+
origin_value: override.value ?? originValue
|
|
2024
|
+
});
|
|
2025
|
+
} else {
|
|
2026
|
+
result[propKey] = override.value ?? propValue;
|
|
2027
|
+
}
|
|
2028
|
+
}
|
|
2029
|
+
return result;
|
|
2030
|
+
}
|
|
2031
|
+
function unwrapOverridableSettings(elementSettings) {
|
|
2032
|
+
const result = {};
|
|
2033
|
+
for (const [propKey, propValue] of Object.entries(elementSettings)) {
|
|
2034
|
+
const overridable = componentOverridablePropTypeUtil.extract(propValue);
|
|
2035
|
+
if (!overridable) {
|
|
2036
|
+
result[propKey] = propValue;
|
|
2037
|
+
continue;
|
|
2038
|
+
}
|
|
2039
|
+
result[propKey] = overridable.origin_value;
|
|
2040
|
+
}
|
|
2041
|
+
return result;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2000
2044
|
// src/components/instance-editing-panel/override-prop-control.tsx
|
|
2001
2045
|
function OverridePropControl({ overrideKey }) {
|
|
2002
2046
|
const overridableProps = useComponentOverridableProps();
|
|
@@ -2018,19 +2062,54 @@ function OverrideControl({ overridableProp }) {
|
|
|
2018
2062
|
);
|
|
2019
2063
|
const controlReplacements = (0, import_editor_controls2.getControlReplacements)();
|
|
2020
2064
|
const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
|
|
2021
|
-
const recursiveOriginValue = useResolvedOriginValue(matchingOverride, overridableProp);
|
|
2022
2065
|
if (!componentId) {
|
|
2023
2066
|
throw new Error("Component ID is required");
|
|
2024
2067
|
}
|
|
2025
2068
|
if (!overridableProps) {
|
|
2026
2069
|
throw new Error("Component has no overridable props");
|
|
2027
2070
|
}
|
|
2071
|
+
const {
|
|
2072
|
+
elementId: originElementId,
|
|
2073
|
+
widgetType,
|
|
2074
|
+
elType,
|
|
2075
|
+
propKey
|
|
2076
|
+
} = overridableProp.originPropFields ?? overridableProp;
|
|
2077
|
+
const type = elType === "widget" ? widgetType : elType;
|
|
2078
|
+
const elementType = (0, import_editor_elements7.getElementType)(type);
|
|
2079
|
+
const { elementId, overridesMapping } = (0, import_react7.useMemo)(() => {
|
|
2080
|
+
const overridesChainResult = resolveOverridesChain({
|
|
2081
|
+
outerOverridableProp: overridableProp,
|
|
2082
|
+
outerInstanceId: componentInstanceElement.element.id
|
|
2083
|
+
});
|
|
2084
|
+
if (overridesChainResult.isChainBroken) {
|
|
2085
|
+
throw new OverrideControlInnerElementNotFoundError({
|
|
2086
|
+
context: { componentId, elementId: originElementId }
|
|
2087
|
+
});
|
|
2088
|
+
}
|
|
2089
|
+
return {
|
|
2090
|
+
elementId: overridesChainResult.innerElement.id,
|
|
2091
|
+
overridesMapping: overridesChainResult.overridesMapping
|
|
2092
|
+
};
|
|
2093
|
+
}, [overridableProp, componentInstanceElement.element.id, componentId, originElementId]);
|
|
2094
|
+
const settingsWithInnerOverrides = (0, import_react7.useMemo)(() => {
|
|
2095
|
+
const settings = (0, import_editor_elements7.getElementSettings)(
|
|
2096
|
+
elementId,
|
|
2097
|
+
Object.keys(elementType?.propsSchema ?? {})
|
|
2098
|
+
);
|
|
2099
|
+
return applyOverridesToSettings(settings, overridesMapping);
|
|
2100
|
+
}, [elementId, elementType?.propsSchema, overridesMapping]);
|
|
2101
|
+
const resolvedElementSettings = (0, import_react7.useMemo)(() => {
|
|
2102
|
+
const withAllOverrides = applyOverridesToSettings(
|
|
2103
|
+
settingsWithInnerOverrides,
|
|
2104
|
+
formatOverridesToApply(overrides)
|
|
2105
|
+
);
|
|
2106
|
+
return unwrapOverridableSettings(withAllOverrides);
|
|
2107
|
+
}, [settingsWithInnerOverrides, overrides]);
|
|
2028
2108
|
const propType = getPropTypeForComponentOverride(overridableProp);
|
|
2029
|
-
if (!propType) {
|
|
2109
|
+
if (!propType || !elementType) {
|
|
2030
2110
|
return null;
|
|
2031
2111
|
}
|
|
2032
|
-
const
|
|
2033
|
-
const propValue = resolvedOverrideValue ?? recursiveOriginValue ?? overridableProp.originValue;
|
|
2112
|
+
const propValue = resolvedElementSettings[propKey];
|
|
2034
2113
|
const value = {
|
|
2035
2114
|
[overridableProp.overrideKey]: propValue
|
|
2036
2115
|
};
|
|
@@ -2068,8 +2147,13 @@ function OverrideControl({ overridableProp }) {
|
|
|
2068
2147
|
updateOverridableProp(wrappingComponentId, overridableValue, overridableProp.originPropFields);
|
|
2069
2148
|
return;
|
|
2070
2149
|
}
|
|
2071
|
-
const
|
|
2072
|
-
|
|
2150
|
+
const originPropFields = {
|
|
2151
|
+
elType: overridableProp.elType,
|
|
2152
|
+
widgetType: overridableProp.widgetType,
|
|
2153
|
+
propKey: overridableProp.propKey,
|
|
2154
|
+
elementId: overridableProp.elementId
|
|
2155
|
+
};
|
|
2156
|
+
updateOverridableProp(wrappingComponentId, overridableValue, originPropFields);
|
|
2073
2157
|
}
|
|
2074
2158
|
};
|
|
2075
2159
|
const { control, controlProps, layout } = getControlParams(
|
|
@@ -2077,23 +2161,6 @@ function OverrideControl({ overridableProp }) {
|
|
|
2077
2161
|
overridableProp?.originPropFields ?? overridableProp,
|
|
2078
2162
|
overridableProp.label
|
|
2079
2163
|
);
|
|
2080
|
-
const {
|
|
2081
|
-
elementId: originElementId,
|
|
2082
|
-
widgetType,
|
|
2083
|
-
elType,
|
|
2084
|
-
propKey
|
|
2085
|
-
} = overridableProp.originPropFields ?? overridableProp;
|
|
2086
|
-
const element = getContainerByOriginId(originElementId, componentInstanceElement.element.id);
|
|
2087
|
-
if (!element) {
|
|
2088
|
-
throw new OverrideControlInnerElementNotFoundError({ context: { componentId, elementId: originElementId } });
|
|
2089
|
-
}
|
|
2090
|
-
const elementId = element.id;
|
|
2091
|
-
const type = elType === "widget" ? widgetType : elType;
|
|
2092
|
-
const elementType = (0, import_editor_elements7.getElementType)(type);
|
|
2093
|
-
if (!elementType) {
|
|
2094
|
-
return null;
|
|
2095
|
-
}
|
|
2096
|
-
const settings = (0, import_editor_elements7.getElementSettings)(elementId, Object.keys(elementType.propsSchema));
|
|
2097
2164
|
const propTypeSchema = (0, import_editor_editing_panel.createTopLevelObjectType)({
|
|
2098
2165
|
schema: {
|
|
2099
2166
|
[overridableProp.overrideKey]: propType
|
|
@@ -2105,18 +2172,26 @@ function OverrideControl({ overridableProp }) {
|
|
|
2105
2172
|
value: componentOverridablePropTypeUtil.extract(matchingOverride) ?? void 0,
|
|
2106
2173
|
componentInstanceElement
|
|
2107
2174
|
},
|
|
2108
|
-
/* @__PURE__ */ React19.createElement(
|
|
2109
|
-
|
|
2175
|
+
/* @__PURE__ */ React19.createElement(
|
|
2176
|
+
import_editor_editing_panel.ElementProvider,
|
|
2110
2177
|
{
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
isDisabled: () => {
|
|
2115
|
-
return false;
|
|
2116
|
-
}
|
|
2178
|
+
element: { id: elementId, type },
|
|
2179
|
+
elementType,
|
|
2180
|
+
settings: resolvedElementSettings
|
|
2117
2181
|
},
|
|
2118
|
-
/* @__PURE__ */ React19.createElement(
|
|
2119
|
-
|
|
2182
|
+
/* @__PURE__ */ React19.createElement(import_editor_editing_panel.SettingsField, { bind: propKey, propDisplayName: overridableProp.label }, /* @__PURE__ */ React19.createElement(
|
|
2183
|
+
import_editor_controls2.PropProvider,
|
|
2184
|
+
{
|
|
2185
|
+
propType: propTypeSchema,
|
|
2186
|
+
value,
|
|
2187
|
+
setValue,
|
|
2188
|
+
isDisabled: () => {
|
|
2189
|
+
return false;
|
|
2190
|
+
}
|
|
2191
|
+
},
|
|
2192
|
+
/* @__PURE__ */ React19.createElement(import_editor_controls2.PropKeyProvider, { bind: overridableProp.overrideKey }, /* @__PURE__ */ React19.createElement(import_editor_controls2.ControlReplacementsProvider, { replacements: controlReplacements }, /* @__PURE__ */ React19.createElement(import_ui12.Box, { mb: 1.5 }, /* @__PURE__ */ React19.createElement(import_editor_editing_panel.ControlTypeContainer, { layout }, layout !== "custom" && /* @__PURE__ */ React19.createElement(ControlLabel, null, overridableProp.label), /* @__PURE__ */ React19.createElement(OriginalControl, { control, controlProps })))))
|
|
2193
|
+
))
|
|
2194
|
+
)
|
|
2120
2195
|
);
|
|
2121
2196
|
}
|
|
2122
2197
|
function getTempNewValueForDynamicProp(propType, propValue, newPropValue) {
|
|
@@ -2198,6 +2273,27 @@ function isValidOverride(overridableProps, override) {
|
|
|
2198
2273
|
const overridableKey = componentOverridablePropTypeUtil.isValid(override) ? override.value.origin_value?.value.override_key : override.value.override_key;
|
|
2199
2274
|
return !!overridableProps.props[overridableKey];
|
|
2200
2275
|
}
|
|
2276
|
+
function formatOverridesToApply(overrides) {
|
|
2277
|
+
if (!overrides) {
|
|
2278
|
+
return {};
|
|
2279
|
+
}
|
|
2280
|
+
const result = {};
|
|
2281
|
+
for (const item of overrides) {
|
|
2282
|
+
const overridable = componentOverridablePropTypeUtil.extract(item);
|
|
2283
|
+
let override = item;
|
|
2284
|
+
if (overridable) {
|
|
2285
|
+
override = overridable.origin_value;
|
|
2286
|
+
}
|
|
2287
|
+
const extractedOverride = componentInstanceOverridePropTypeUtil.extract(override);
|
|
2288
|
+
if (!extractedOverride) {
|
|
2289
|
+
continue;
|
|
2290
|
+
}
|
|
2291
|
+
result[extractedOverride.override_key] = {
|
|
2292
|
+
value: extractedOverride.override_value
|
|
2293
|
+
};
|
|
2294
|
+
}
|
|
2295
|
+
return result;
|
|
2296
|
+
}
|
|
2201
2297
|
|
|
2202
2298
|
// src/components/instance-editing-panel/override-props-group.tsx
|
|
2203
2299
|
function OverridePropsGroup({ group }) {
|
|
@@ -2205,7 +2301,7 @@ function OverridePropsGroup({ group }) {
|
|
|
2205
2301
|
const handleClick = () => {
|
|
2206
2302
|
setIsOpen(!isOpen);
|
|
2207
2303
|
};
|
|
2208
|
-
const id = (0,
|
|
2304
|
+
const id = (0, import_react8.useId)();
|
|
2209
2305
|
const labelId = `label-${id}`;
|
|
2210
2306
|
const contentId = `content-${id}`;
|
|
2211
2307
|
const title = group.label;
|
|
@@ -2260,42 +2356,11 @@ function filterValidOverridableProps(overridableProps, instanceElementId) {
|
|
|
2260
2356
|
return { props: validProps, groups: filteredGroups };
|
|
2261
2357
|
}
|
|
2262
2358
|
function isExposedPropValid(prop, instanceElementId) {
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
return false;
|
|
2269
|
-
}
|
|
2270
|
-
const setting = innerComponentInstanceElement.settings?.get("component_instance") ?? null;
|
|
2271
|
-
const componentInstance = componentInstancePropTypeUtil.extract(setting);
|
|
2272
|
-
if (!componentInstance?.component_id?.value) {
|
|
2273
|
-
return false;
|
|
2274
|
-
}
|
|
2275
|
-
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance.overrides) ?? void 0;
|
|
2276
|
-
const matchingOverride = findOverrideByOuterKey(overrides, prop.overrideKey);
|
|
2277
|
-
const innerOverrideInfo = extractInnerOverrideInfo(matchingOverride);
|
|
2278
|
-
if (!innerOverrideInfo) {
|
|
2279
|
-
return false;
|
|
2280
|
-
}
|
|
2281
|
-
const { componentId, innerOverrideKey } = innerOverrideInfo;
|
|
2282
|
-
const innerOverridableProp = getOverridableProp({ componentId, overrideKey: innerOverrideKey });
|
|
2283
|
-
if (!innerOverridableProp) {
|
|
2284
|
-
return false;
|
|
2285
|
-
}
|
|
2286
|
-
return isExposedPropValid(innerOverridableProp, innerComponentInstanceElement.id);
|
|
2287
|
-
}
|
|
2288
|
-
function findOverrideByOuterKey(overrides, outerKey) {
|
|
2289
|
-
if (!overrides) {
|
|
2290
|
-
return null;
|
|
2291
|
-
}
|
|
2292
|
-
return overrides.find((override) => {
|
|
2293
|
-
const overridableValue = componentOverridablePropTypeUtil.extract(override);
|
|
2294
|
-
if (overridableValue) {
|
|
2295
|
-
return overridableValue.override_key === outerKey;
|
|
2296
|
-
}
|
|
2297
|
-
return override.value.override_key === outerKey;
|
|
2298
|
-
}) ?? null;
|
|
2359
|
+
const { isChainBroken } = resolveOverridesChain({
|
|
2360
|
+
outerOverridableProp: prop,
|
|
2361
|
+
outerInstanceId: instanceElementId
|
|
2362
|
+
});
|
|
2363
|
+
return !isChainBroken;
|
|
2299
2364
|
}
|
|
2300
2365
|
|
|
2301
2366
|
// src/hooks/use-sanitize-overridable-props.ts
|
|
@@ -2381,7 +2446,7 @@ function InstanceEditingPanel() {
|
|
|
2381
2446
|
|
|
2382
2447
|
// src/components/load-template-components.tsx
|
|
2383
2448
|
var React23 = __toESM(require("react"));
|
|
2384
|
-
var
|
|
2449
|
+
var import_react9 = require("react");
|
|
2385
2450
|
var import_editor_templates = require("@elementor/editor-templates");
|
|
2386
2451
|
|
|
2387
2452
|
// src/store/actions/load-components-assets.ts
|
|
@@ -2431,7 +2496,7 @@ async function getDocumentsMap(ids, cache) {
|
|
|
2431
2496
|
}
|
|
2432
2497
|
|
|
2433
2498
|
// src/store/actions/load-components-overridable-props.ts
|
|
2434
|
-
var
|
|
2499
|
+
var import_store21 = require("@elementor/store");
|
|
2435
2500
|
function loadComponentsOverridableProps(componentIds) {
|
|
2436
2501
|
if (!componentIds.length) {
|
|
2437
2502
|
return;
|
|
@@ -2439,7 +2504,7 @@ function loadComponentsOverridableProps(componentIds) {
|
|
|
2439
2504
|
return Promise.all(componentIds.map(loadComponentOverrides));
|
|
2440
2505
|
}
|
|
2441
2506
|
async function loadComponentOverrides(componentId) {
|
|
2442
|
-
const isOverridablePropsLoaded = selectIsOverridablePropsLoaded((0,
|
|
2507
|
+
const isOverridablePropsLoaded = selectIsOverridablePropsLoaded((0, import_store21.__getState)(), componentId);
|
|
2443
2508
|
if (isOverridablePropsLoaded) {
|
|
2444
2509
|
return;
|
|
2445
2510
|
}
|
|
@@ -2447,7 +2512,7 @@ async function loadComponentOverrides(componentId) {
|
|
|
2447
2512
|
if (!overridableProps) {
|
|
2448
2513
|
return;
|
|
2449
2514
|
}
|
|
2450
|
-
(0,
|
|
2515
|
+
(0, import_store21.__dispatch)(
|
|
2451
2516
|
slice.actions.setOverridableProps({
|
|
2452
2517
|
componentId,
|
|
2453
2518
|
overridableProps
|
|
@@ -2456,12 +2521,12 @@ async function loadComponentOverrides(componentId) {
|
|
|
2456
2521
|
}
|
|
2457
2522
|
|
|
2458
2523
|
// src/store/actions/load-components-styles.ts
|
|
2459
|
-
var
|
|
2524
|
+
var import_store23 = require("@elementor/store");
|
|
2460
2525
|
function loadComponentsStyles(documents) {
|
|
2461
2526
|
if (!documents.size) {
|
|
2462
2527
|
return;
|
|
2463
2528
|
}
|
|
2464
|
-
const knownComponents = selectStyles((0,
|
|
2529
|
+
const knownComponents = selectStyles((0, import_store23.__getState)());
|
|
2465
2530
|
const unknownDocuments = new Map([...documents.entries()].filter(([id]) => !knownComponents[id]));
|
|
2466
2531
|
if (!unknownDocuments.size) {
|
|
2467
2532
|
return;
|
|
@@ -2472,7 +2537,7 @@ function addStyles(documents) {
|
|
|
2472
2537
|
const styles = Object.fromEntries(
|
|
2473
2538
|
[...documents.entries()].map(([id, document2]) => [id, extractStylesFromDocument(document2)])
|
|
2474
2539
|
);
|
|
2475
|
-
(0,
|
|
2540
|
+
(0, import_store23.__dispatch)(slice.actions.addStyles(styles));
|
|
2476
2541
|
}
|
|
2477
2542
|
function extractStylesFromDocument(document2) {
|
|
2478
2543
|
if (!document2.elements?.length) {
|
|
@@ -2510,7 +2575,7 @@ var LoadTemplateComponents = () => {
|
|
|
2510
2575
|
};
|
|
2511
2576
|
function LoadTemplateComponentsInternal() {
|
|
2512
2577
|
const templates = (0, import_editor_templates.useLoadedTemplates)();
|
|
2513
|
-
(0,
|
|
2578
|
+
(0, import_react9.useEffect)(() => {
|
|
2514
2579
|
loadComponentsAssets(templates.flatMap((elements) => elements ?? []));
|
|
2515
2580
|
}, [templates]);
|
|
2516
2581
|
return null;
|
|
@@ -2520,7 +2585,7 @@ function LoadTemplateComponentsInternal() {
|
|
|
2520
2585
|
var import_editor_canvas4 = require("@elementor/editor-canvas");
|
|
2521
2586
|
var import_editor_documents4 = require("@elementor/editor-documents");
|
|
2522
2587
|
var import_editor_notifications2 = require("@elementor/editor-notifications");
|
|
2523
|
-
var
|
|
2588
|
+
var import_store25 = require("@elementor/store");
|
|
2524
2589
|
var import_utils5 = require("@elementor/utils");
|
|
2525
2590
|
var import_i18n13 = require("@wordpress/i18n");
|
|
2526
2591
|
|
|
@@ -2903,7 +2968,7 @@ function createComponentModel() {
|
|
|
2903
2968
|
}
|
|
2904
2969
|
const componentUid = editorSettings?.component_uid;
|
|
2905
2970
|
if (componentUid) {
|
|
2906
|
-
const component = selectComponentByUid((0,
|
|
2971
|
+
const component = selectComponentByUid((0, import_store25.__getState)(), componentUid);
|
|
2907
2972
|
if (component?.name) {
|
|
2908
2973
|
return component.name;
|
|
2909
2974
|
}
|
|
@@ -2924,11 +2989,11 @@ function createComponentModel() {
|
|
|
2924
2989
|
}
|
|
2925
2990
|
|
|
2926
2991
|
// src/populate-store.ts
|
|
2927
|
-
var
|
|
2928
|
-
var
|
|
2992
|
+
var import_react10 = require("react");
|
|
2993
|
+
var import_store27 = require("@elementor/store");
|
|
2929
2994
|
function PopulateStore() {
|
|
2930
|
-
(0,
|
|
2931
|
-
(0,
|
|
2995
|
+
(0, import_react10.useEffect)(() => {
|
|
2996
|
+
(0, import_store27.__dispatch)(loadComponents());
|
|
2932
2997
|
}, []);
|
|
2933
2998
|
return null;
|
|
2934
2999
|
}
|
|
@@ -2937,7 +3002,7 @@ function PopulateStore() {
|
|
|
2937
3002
|
var import_editor_elements9 = require("@elementor/editor-elements");
|
|
2938
3003
|
var import_editor_notifications3 = require("@elementor/editor-notifications");
|
|
2939
3004
|
var import_editor_v1_adapters4 = require("@elementor/editor-v1-adapters");
|
|
2940
|
-
var
|
|
3005
|
+
var import_store28 = require("@elementor/store");
|
|
2941
3006
|
var import_i18n14 = require("@wordpress/i18n");
|
|
2942
3007
|
var COMPONENT_TYPE = "e-component";
|
|
2943
3008
|
var COMPONENT_CIRCULAR_NESTING_ALERT = {
|
|
@@ -2963,7 +3028,7 @@ function wouldCreateCircularNesting(componentIdToAdd) {
|
|
|
2963
3028
|
if (componentIdToAdd === void 0) {
|
|
2964
3029
|
return false;
|
|
2965
3030
|
}
|
|
2966
|
-
const state = (0,
|
|
3031
|
+
const state = (0, import_store28.__getState)();
|
|
2967
3032
|
const currentComponentId = selectCurrentComponentId(state);
|
|
2968
3033
|
const path = selectPath(state);
|
|
2969
3034
|
if (currentComponentId === null) {
|
|
@@ -3061,19 +3126,19 @@ function blockCircularPaste(args) {
|
|
|
3061
3126
|
}
|
|
3062
3127
|
|
|
3063
3128
|
// src/store/actions/remove-component-styles.ts
|
|
3064
|
-
var
|
|
3129
|
+
var import_store30 = require("@elementor/store");
|
|
3065
3130
|
function removeComponentStyles(id) {
|
|
3066
3131
|
apiClient.invalidateComponentConfigCache(id);
|
|
3067
|
-
(0,
|
|
3132
|
+
(0, import_store30.__dispatch)(slice.actions.removeStyles({ id }));
|
|
3068
3133
|
}
|
|
3069
3134
|
|
|
3070
3135
|
// src/store/components-styles-provider.ts
|
|
3071
3136
|
var import_editor_styles_repository = require("@elementor/editor-styles-repository");
|
|
3072
|
-
var
|
|
3137
|
+
var import_store32 = require("@elementor/store");
|
|
3073
3138
|
var componentsStylesProvider = (0, import_editor_styles_repository.createStylesProvider)({
|
|
3074
3139
|
key: "components-styles",
|
|
3075
3140
|
priority: 100,
|
|
3076
|
-
subscribe: (cb) => (0,
|
|
3141
|
+
subscribe: (cb) => (0, import_store32.__subscribeWithSelector)(
|
|
3077
3142
|
(state) => state[SLICE_NAME],
|
|
3078
3143
|
() => {
|
|
3079
3144
|
cb();
|
|
@@ -3081,10 +3146,10 @@ var componentsStylesProvider = (0, import_editor_styles_repository.createStylesP
|
|
|
3081
3146
|
),
|
|
3082
3147
|
actions: {
|
|
3083
3148
|
all: () => {
|
|
3084
|
-
return selectFlatStyles((0,
|
|
3149
|
+
return selectFlatStyles((0, import_store32.__getState)());
|
|
3085
3150
|
},
|
|
3086
3151
|
get: (id) => {
|
|
3087
|
-
return selectFlatStyles((0,
|
|
3152
|
+
return selectFlatStyles((0, import_store32.__getState)()).find((style) => style.id === id) ?? null;
|
|
3088
3153
|
}
|
|
3089
3154
|
}
|
|
3090
3155
|
});
|
|
@@ -3165,7 +3230,7 @@ function load(result) {
|
|
|
3165
3230
|
// src/init.ts
|
|
3166
3231
|
function init() {
|
|
3167
3232
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
3168
|
-
(0,
|
|
3233
|
+
(0, import_store34.__registerSlice)(slice);
|
|
3169
3234
|
(0, import_editor_canvas5.registerElementType)(
|
|
3170
3235
|
COMPONENT_WIDGET_TYPE2,
|
|
3171
3236
|
(options) => createComponentType({
|