@elementor/editor-editing-panel 3.33.0-149 → 3.33.0-151
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.d.mts +35 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.js +86 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +77 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +19 -19
- package/src/controls-registry/conditional-field.tsx +1 -1
- package/src/controls-registry/controls-registry.tsx +2 -0
- package/src/controls-registry/settings-field.tsx +3 -3
- package/src/utils/prop-dependency-utils.ts +107 -19
package/dist/index.mjs
CHANGED
|
@@ -1809,6 +1809,7 @@ import * as React17 from "react";
|
|
|
1809
1809
|
|
|
1810
1810
|
// src/controls-registry/controls-registry.tsx
|
|
1811
1811
|
import {
|
|
1812
|
+
HtmlTagControl,
|
|
1812
1813
|
ImageControl,
|
|
1813
1814
|
KeyValueControl,
|
|
1814
1815
|
LinkControl,
|
|
@@ -1847,7 +1848,8 @@ var controlTypes = {
|
|
|
1847
1848
|
switch: { component: SwitchControl, layout: "two-columns", propTypeUtil: booleanPropTypeUtil },
|
|
1848
1849
|
number: { component: NumberControl, layout: "two-columns", propTypeUtil: numberPropTypeUtil },
|
|
1849
1850
|
repeatable: { component: RepeatableControl, layout: "full", propTypeUtil: void 0 },
|
|
1850
|
-
"key-value": { component: KeyValueControl, layout: "full", propTypeUtil: keyValuePropTypeUtil }
|
|
1851
|
+
"key-value": { component: KeyValueControl, layout: "full", propTypeUtil: keyValuePropTypeUtil },
|
|
1852
|
+
"html-tag": { component: HtmlTagControl, layout: "two-columns", propTypeUtil: stringPropTypeUtil2 }
|
|
1851
1853
|
};
|
|
1852
1854
|
var ControlsRegistry = class {
|
|
1853
1855
|
constructor(controlsRegistry2 = controlTypes) {
|
|
@@ -1937,6 +1939,7 @@ import {
|
|
|
1937
1939
|
extractValue,
|
|
1938
1940
|
isDependencyMet
|
|
1939
1941
|
} from "@elementor/editor-props";
|
|
1942
|
+
import { getSessionStorageItem as getSessionStorageItem2, removeSessionStorageItem, setSessionStorageItem as setSessionStorageItem2 } from "@elementor/session";
|
|
1940
1943
|
function extractOrderedDependencies(bind, propsSchema, elementValues, dependenciesPerTargetMapping) {
|
|
1941
1944
|
const prop = getPropType(propsSchema, elementValues, bind.split("."));
|
|
1942
1945
|
if (!prop) {
|
|
@@ -1971,7 +1974,7 @@ function extractPropOrderedDependencies(bind, dependenciesPerTargetMapping) {
|
|
|
1971
1974
|
[]
|
|
1972
1975
|
);
|
|
1973
1976
|
}
|
|
1974
|
-
function
|
|
1977
|
+
function getUpdatedValues(values, dependencies, propsSchema, elementValues, elementId) {
|
|
1975
1978
|
if (!dependencies.length) {
|
|
1976
1979
|
return values;
|
|
1977
1980
|
}
|
|
@@ -1983,10 +1986,29 @@ function updateValues(values, dependencies, propsSchema, elementValues) {
|
|
|
1983
1986
|
if (!propType) {
|
|
1984
1987
|
return newValues;
|
|
1985
1988
|
}
|
|
1986
|
-
|
|
1989
|
+
const testDependencies = {
|
|
1990
|
+
previousValues: isDependencyMet(propType.dependencies, elementValues),
|
|
1991
|
+
newValues: isDependencyMet(propType.dependencies, combinedValues)
|
|
1992
|
+
};
|
|
1993
|
+
if (!testDependencies.newValues.isMet) {
|
|
1994
|
+
const newValue = handleUnmetCondition({
|
|
1995
|
+
failingDependencies: testDependencies.newValues.failingDependencies,
|
|
1996
|
+
dependency,
|
|
1997
|
+
elementValues: combinedValues,
|
|
1998
|
+
defaultValue: propType.default,
|
|
1999
|
+
elementId
|
|
2000
|
+
});
|
|
2001
|
+
return {
|
|
2002
|
+
...newValues,
|
|
2003
|
+
...updateValue(path, newValue, combinedValues)
|
|
2004
|
+
};
|
|
2005
|
+
}
|
|
2006
|
+
if (!testDependencies.previousValues.isMet) {
|
|
2007
|
+
const savedValue = retrievePreviousValueFromStorage({ path: dependency, elementId });
|
|
2008
|
+
removePreviousValueFromStorage({ path: dependency, elementId });
|
|
1987
2009
|
return {
|
|
1988
2010
|
...newValues,
|
|
1989
|
-
...updateValue(path,
|
|
2011
|
+
...updateValue(path, savedValue ?? propType.default, combinedValues)
|
|
1990
2012
|
};
|
|
1991
2013
|
}
|
|
1992
2014
|
return newValues;
|
|
@@ -2003,11 +2025,19 @@ function getPropType(schema, elementValues, path) {
|
|
|
2003
2025
|
if (!baseProp) {
|
|
2004
2026
|
return null;
|
|
2005
2027
|
}
|
|
2006
|
-
return keys.reduce(
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2028
|
+
return keys.reduce(
|
|
2029
|
+
(prop, key, index) => evaluatePropType({ prop, key, index, path, elementValues, basePropKey }),
|
|
2030
|
+
baseProp
|
|
2031
|
+
);
|
|
2032
|
+
}
|
|
2033
|
+
function evaluatePropType(props) {
|
|
2034
|
+
const { prop } = props;
|
|
2035
|
+
if (!prop?.kind) {
|
|
2036
|
+
return null;
|
|
2037
|
+
}
|
|
2038
|
+
const { key, index, path, elementValues, basePropKey } = props;
|
|
2039
|
+
switch (prop.kind) {
|
|
2040
|
+
case "union":
|
|
2011
2041
|
const value = extractValue(path.slice(0, index + 1), elementValues);
|
|
2012
2042
|
const type = value?.$$type ?? null;
|
|
2013
2043
|
return getPropType(
|
|
@@ -2015,15 +2045,12 @@ function getPropType(schema, elementValues, path) {
|
|
|
2015
2045
|
elementValues,
|
|
2016
2046
|
path.slice(0, index + 2)
|
|
2017
2047
|
);
|
|
2018
|
-
|
|
2019
|
-
if ("array" === prop.kind) {
|
|
2048
|
+
case "array":
|
|
2020
2049
|
return prop.item_prop_type;
|
|
2021
|
-
|
|
2022
|
-
if ("object" === prop.kind) {
|
|
2050
|
+
case "object":
|
|
2023
2051
|
return prop.shape[key];
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
}, baseProp);
|
|
2052
|
+
}
|
|
2053
|
+
return prop[key];
|
|
2027
2054
|
}
|
|
2028
2055
|
function updateValue(path, value, values) {
|
|
2029
2056
|
const topPropKey = path[0];
|
|
@@ -2033,13 +2060,43 @@ function updateValue(path, value, values) {
|
|
|
2033
2060
|
return null;
|
|
2034
2061
|
}
|
|
2035
2062
|
if (index === path.length - 1) {
|
|
2036
|
-
carry[key] = value
|
|
2063
|
+
carry[key] = value ?? null;
|
|
2037
2064
|
return carry[key]?.value ?? carry.value;
|
|
2038
2065
|
}
|
|
2039
2066
|
return carry[key]?.value ?? carry.value;
|
|
2040
2067
|
}, newValue);
|
|
2041
2068
|
return { [topPropKey]: newValue[topPropKey] ?? null };
|
|
2042
2069
|
}
|
|
2070
|
+
function handleUnmetCondition(props) {
|
|
2071
|
+
const { failingDependencies, dependency, elementValues, defaultValue, elementId } = props;
|
|
2072
|
+
const newValue = failingDependencies.find((term) => term.newValue)?.newValue ?? null;
|
|
2073
|
+
const currentValue = extractValue(dependency.split("."), elementValues) ?? defaultValue;
|
|
2074
|
+
savePreviousValueToStorage({
|
|
2075
|
+
path: dependency,
|
|
2076
|
+
elementId,
|
|
2077
|
+
value: currentValue
|
|
2078
|
+
});
|
|
2079
|
+
return newValue;
|
|
2080
|
+
}
|
|
2081
|
+
function savePreviousValueToStorage({ path, elementId, value }) {
|
|
2082
|
+
const prefix = `elementor/${elementId}`;
|
|
2083
|
+
const savedValue = retrievePreviousValueFromStorage({ path, elementId });
|
|
2084
|
+
if (savedValue) {
|
|
2085
|
+
return;
|
|
2086
|
+
}
|
|
2087
|
+
const key = `${prefix}:${path}`;
|
|
2088
|
+
setSessionStorageItem2(key, value);
|
|
2089
|
+
}
|
|
2090
|
+
function retrievePreviousValueFromStorage({ path, elementId }) {
|
|
2091
|
+
const prefix = `elementor/${elementId}`;
|
|
2092
|
+
const key = `${prefix}:${path}`;
|
|
2093
|
+
return getSessionStorageItem2(key) ?? null;
|
|
2094
|
+
}
|
|
2095
|
+
function removePreviousValueFromStorage({ path, elementId }) {
|
|
2096
|
+
const prefix = `elementor/${elementId}`;
|
|
2097
|
+
const key = `${prefix}:${path}`;
|
|
2098
|
+
removeSessionStorageItem(key);
|
|
2099
|
+
}
|
|
2043
2100
|
|
|
2044
2101
|
// src/controls-registry/create-top-level-object-type.ts
|
|
2045
2102
|
var createTopLevelObjectType = ({ schema }) => {
|
|
@@ -2075,10 +2132,10 @@ var SettingsField = ({ bind, children, propDisplayName }) => {
|
|
|
2075
2132
|
elementSettingValues,
|
|
2076
2133
|
dependenciesPerTargetMapping
|
|
2077
2134
|
);
|
|
2078
|
-
const settings =
|
|
2135
|
+
const settings = getUpdatedValues(newValue, dependents, propsSchema, elementSettingValues, elementId);
|
|
2079
2136
|
undoableUpdateElementProp(settings);
|
|
2080
2137
|
};
|
|
2081
|
-
const isDisabled = (prop) => !isDependencyMet2(prop?.dependencies, elementSettingValues);
|
|
2138
|
+
const isDisabled = (prop) => !isDependencyMet2(prop?.dependencies, elementSettingValues).isMet;
|
|
2082
2139
|
return /* @__PURE__ */ React19.createElement(PropProvider, { propType, value, setValue, isDisabled }, /* @__PURE__ */ React19.createElement(PropKeyProvider, { bind }, children));
|
|
2083
2140
|
};
|
|
2084
2141
|
function useUndoableUpdateElementProp({
|
|
@@ -3021,7 +3078,7 @@ var ConditionalField = ({ children }) => {
|
|
|
3021
3078
|
const { propType } = useBoundProp2();
|
|
3022
3079
|
const depList = getDependencies(propType);
|
|
3023
3080
|
const { values: depValues } = useStylesFields(depList);
|
|
3024
|
-
const isHidden = !isDependencyMet3(propType?.dependencies, depValues);
|
|
3081
|
+
const isHidden = !isDependencyMet3(propType?.dependencies, depValues).isMet;
|
|
3025
3082
|
return isHidden ? null : children;
|
|
3026
3083
|
};
|
|
3027
3084
|
function getDependencies(propType) {
|