@elementor/editor-components 3.35.0-493 → 3.35.0
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 +213 -199
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +129 -114
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -22
- package/src/components/instance-editing-panel/instance-editing-panel.tsx +1 -1
- package/src/components/instance-editing-panel/override-prop-control.tsx +35 -15
- package/src/components/instance-editing-panel/use-resolved-origin-value.tsx +132 -0
- package/src/init.ts +0 -3
- package/src/store/store.ts +1 -1
- package/src/sync/publish-draft-components-in-page-before-save.ts +2 -3
- package/src/utils/component-document-data.ts +0 -6
- package/src/utils/get-prop-type-for-component-override.ts +2 -4
- package/src/utils/switch-to-component.ts +5 -4
- package/src/sync/regenerate-override-keys.ts +0 -114
package/dist/index.mjs
CHANGED
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
import { injectTab } from "@elementor/editor-elements-panel";
|
|
16
16
|
import { __registerPanel as registerPanel } from "@elementor/editor-panels";
|
|
17
17
|
import { stylesRepository } from "@elementor/editor-styles-repository";
|
|
18
|
-
import { registerDataHook as
|
|
18
|
+
import { registerDataHook as registerDataHook5 } from "@elementor/editor-v1-adapters";
|
|
19
19
|
import { __registerSlice as registerSlice } from "@elementor/store";
|
|
20
20
|
import { __ as __31 } from "@wordpress/i18n";
|
|
21
21
|
|
|
@@ -290,10 +290,6 @@ var getComponentDocumentData = async (id2) => {
|
|
|
290
290
|
return null;
|
|
291
291
|
}
|
|
292
292
|
};
|
|
293
|
-
var invalidateComponentDocumentData = (id2) => {
|
|
294
|
-
const documentManager = getV1DocumentsManager();
|
|
295
|
-
documentManager.invalidateCache(id2);
|
|
296
|
-
};
|
|
297
293
|
|
|
298
294
|
// src/component-instance-transformer.ts
|
|
299
295
|
var componentInstanceTransformer = createTransformer(
|
|
@@ -379,8 +375,8 @@ import { getV1DocumentsManager as getV1DocumentsManager2 } from "@elementor/edit
|
|
|
379
375
|
import { __useSelector as useSelector2 } from "@elementor/store";
|
|
380
376
|
|
|
381
377
|
// src/utils/switch-to-component.ts
|
|
378
|
+
import { invalidateDocumentData, switchToDocument } from "@elementor/editor-documents";
|
|
382
379
|
import { getCurrentDocumentContainer, selectElement } from "@elementor/editor-elements";
|
|
383
|
-
import { __privateRunCommand as runCommand2 } from "@elementor/editor-v1-adapters";
|
|
384
380
|
|
|
385
381
|
// src/utils/expand-navigator.ts
|
|
386
382
|
import { __privateRunCommand as runCommand } from "@elementor/editor-v1-adapters";
|
|
@@ -391,8 +387,8 @@ async function expandNavigator() {
|
|
|
391
387
|
// src/utils/switch-to-component.ts
|
|
392
388
|
async function switchToComponent(componentId, componentInstanceId, element) {
|
|
393
389
|
const selector = getSelector(element, componentInstanceId);
|
|
394
|
-
|
|
395
|
-
|
|
390
|
+
invalidateDocumentData(componentId);
|
|
391
|
+
await switchToDocument(componentId, {
|
|
396
392
|
selector,
|
|
397
393
|
mode: "autosave",
|
|
398
394
|
setAsInitial: false,
|
|
@@ -3131,7 +3127,7 @@ function findNonAtomicElementsInElement(element) {
|
|
|
3131
3127
|
|
|
3132
3128
|
// src/store/actions/create-unpublished-component.ts
|
|
3133
3129
|
import { createElements, deleteElement, getContainer as getContainer3 } from "@elementor/editor-elements";
|
|
3134
|
-
import { __privateRunCommand as
|
|
3130
|
+
import { __privateRunCommand as runCommand2 } from "@elementor/editor-v1-adapters";
|
|
3135
3131
|
import { __dispatch as dispatch12 } from "@elementor/store";
|
|
3136
3132
|
import { generateUniqueId as generateUniqueId3 } from "@elementor/utils";
|
|
3137
3133
|
import { __ as __22 } from "@wordpress/i18n";
|
|
@@ -3170,7 +3166,7 @@ async function createUnpublishedComponent({
|
|
|
3170
3166
|
...eventData
|
|
3171
3167
|
});
|
|
3172
3168
|
try {
|
|
3173
|
-
await
|
|
3169
|
+
await runCommand2("document/save/auto");
|
|
3174
3170
|
} catch (error) {
|
|
3175
3171
|
restoreOriginalElement(originalElement, componentInstance.id);
|
|
3176
3172
|
dispatch12(slice.actions.removeUnpublished(generatedUid));
|
|
@@ -3839,6 +3835,7 @@ import {
|
|
|
3839
3835
|
createTopLevelObjectType,
|
|
3840
3836
|
ElementProvider as ElementProvider2,
|
|
3841
3837
|
getControlReplacements,
|
|
3838
|
+
isDynamicPropValue,
|
|
3842
3839
|
SettingsField,
|
|
3843
3840
|
useElement as useElement2
|
|
3844
3841
|
} from "@elementor/editor-editing-panel";
|
|
@@ -3961,12 +3958,10 @@ var getPropTypeForComponentOverride = (overridableProp) => {
|
|
|
3961
3958
|
if (overridableProp.originPropFields) {
|
|
3962
3959
|
return getPropType(overridableProp.originPropFields);
|
|
3963
3960
|
}
|
|
3964
|
-
const {
|
|
3961
|
+
const { widgetType, propKey } = overridableProp;
|
|
3965
3962
|
return getPropType({
|
|
3966
|
-
elType,
|
|
3967
3963
|
widgetType,
|
|
3968
|
-
propKey
|
|
3969
|
-
elementId
|
|
3964
|
+
propKey
|
|
3970
3965
|
});
|
|
3971
3966
|
};
|
|
3972
3967
|
function getPropType({ widgetType, propKey }) {
|
|
@@ -3989,6 +3984,92 @@ var OverrideControlInnerElementNotFoundError = createError({
|
|
|
3989
3984
|
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.`
|
|
3990
3985
|
});
|
|
3991
3986
|
|
|
3987
|
+
// src/components/instance-editing-panel/use-resolved-origin-value.tsx
|
|
3988
|
+
import { __useSelector as useSelector6 } from "@elementor/store";
|
|
3989
|
+
function useResolvedOriginValue(override, overridableProp) {
|
|
3990
|
+
const components = useSelector6(selectData);
|
|
3991
|
+
return resolveOriginValue(components, override, overridableProp);
|
|
3992
|
+
}
|
|
3993
|
+
function resolveOriginValue(components, matchingOverride, overridableProp) {
|
|
3994
|
+
const { originValue: fallbackOriginValue, originPropFields } = overridableProp;
|
|
3995
|
+
if (hasValue(fallbackOriginValue)) {
|
|
3996
|
+
return fallbackOriginValue;
|
|
3997
|
+
}
|
|
3998
|
+
if (matchingOverride) {
|
|
3999
|
+
const result = getOriginFromOverride(components, matchingOverride);
|
|
4000
|
+
if (hasValue(result)) {
|
|
4001
|
+
return result;
|
|
4002
|
+
}
|
|
4003
|
+
}
|
|
4004
|
+
const { elementId, propKey } = originPropFields ?? {};
|
|
4005
|
+
if (elementId && propKey) {
|
|
4006
|
+
return findOriginValueByElementId(components, elementId, propKey);
|
|
4007
|
+
}
|
|
4008
|
+
return null;
|
|
4009
|
+
}
|
|
4010
|
+
function getOriginFromOverride(components, override) {
|
|
4011
|
+
const overridableValue = componentOverridablePropTypeUtil.extract(override);
|
|
4012
|
+
const innerOverride = overridableValue ? componentInstanceOverridePropTypeUtil.extract(overridableValue.origin_value) : componentInstanceOverridePropTypeUtil.extract(override);
|
|
4013
|
+
if (!innerOverride) {
|
|
4014
|
+
return null;
|
|
4015
|
+
}
|
|
4016
|
+
const { schema_source: schemaSource, override_key: overrideKey, override_value: overrideValue } = innerOverride;
|
|
4017
|
+
const componentId = schemaSource?.id;
|
|
4018
|
+
if (!componentId || !overrideKey) {
|
|
4019
|
+
return null;
|
|
4020
|
+
}
|
|
4021
|
+
const prop = getOverridableProp(components, componentId, overrideKey);
|
|
4022
|
+
if (hasValue(prop?.originValue)) {
|
|
4023
|
+
return prop.originValue;
|
|
4024
|
+
}
|
|
4025
|
+
if (prop?.originPropFields?.elementId) {
|
|
4026
|
+
const targetPropKey = prop.originPropFields.propKey ?? prop.propKey;
|
|
4027
|
+
const result = findOriginValueByElementId(components, prop.originPropFields.elementId, targetPropKey);
|
|
4028
|
+
if (hasValue(result)) {
|
|
4029
|
+
return result;
|
|
4030
|
+
}
|
|
4031
|
+
}
|
|
4032
|
+
const nestedOverridable = componentOverridablePropTypeUtil.extract(overrideValue);
|
|
4033
|
+
if (nestedOverridable) {
|
|
4034
|
+
return getOriginFromOverride(components, componentOverridablePropTypeUtil.create(nestedOverridable));
|
|
4035
|
+
}
|
|
4036
|
+
return null;
|
|
4037
|
+
}
|
|
4038
|
+
function findOriginValueByElementId(components, targetElementId, targetPropKey, visited = /* @__PURE__ */ new Set()) {
|
|
4039
|
+
for (const component of components) {
|
|
4040
|
+
if (visited.has(component.id)) {
|
|
4041
|
+
continue;
|
|
4042
|
+
}
|
|
4043
|
+
visited.add(component.id);
|
|
4044
|
+
const matchingProp = Object.values(component.overridableProps?.props ?? {}).find(
|
|
4045
|
+
({ elementId, propKey }) => elementId === targetElementId && propKey === targetPropKey
|
|
4046
|
+
);
|
|
4047
|
+
if (!matchingProp) {
|
|
4048
|
+
continue;
|
|
4049
|
+
}
|
|
4050
|
+
if (hasValue(matchingProp.originValue)) {
|
|
4051
|
+
return matchingProp.originValue;
|
|
4052
|
+
}
|
|
4053
|
+
if (matchingProp.originPropFields?.elementId) {
|
|
4054
|
+
const innerPropKey = matchingProp.originPropFields.propKey ?? targetPropKey;
|
|
4055
|
+
return findOriginValueByElementId(
|
|
4056
|
+
components,
|
|
4057
|
+
matchingProp.originPropFields.elementId,
|
|
4058
|
+
innerPropKey,
|
|
4059
|
+
visited
|
|
4060
|
+
);
|
|
4061
|
+
}
|
|
4062
|
+
}
|
|
4063
|
+
return null;
|
|
4064
|
+
}
|
|
4065
|
+
function hasValue(value) {
|
|
4066
|
+
return value !== null && value !== void 0;
|
|
4067
|
+
}
|
|
4068
|
+
function getOverridableProp(components, componentId, overrideKey) {
|
|
4069
|
+
const component = components.find(({ id: id2 }) => id2 === componentId);
|
|
4070
|
+
return component?.overridableProps?.props?.[overrideKey];
|
|
4071
|
+
}
|
|
4072
|
+
|
|
3992
4073
|
// src/components/instance-editing-panel/override-prop-control.tsx
|
|
3993
4074
|
function OverridePropControl({ overridableProp, overrides }) {
|
|
3994
4075
|
return /* @__PURE__ */ React26.createElement(SettingsField, { bind: "component_instance", propDisplayName: overridableProp.label }, /* @__PURE__ */ React26.createElement(OverrideControl, { overridableProp, overrides }));
|
|
@@ -4001,26 +4082,27 @@ function OverrideControl({ overridableProp, overrides }) {
|
|
|
4001
4082
|
overridableProp?.originPropFields?.widgetType ?? overridableProp.widgetType
|
|
4002
4083
|
);
|
|
4003
4084
|
const controlReplacements = getControlReplacements();
|
|
4085
|
+
const matchingOverride = getMatchingOverride(overrides, overridableProp.overrideKey);
|
|
4086
|
+
const recursiveOriginValue = useResolvedOriginValue(matchingOverride, overridableProp);
|
|
4004
4087
|
const propType = getPropTypeForComponentOverride(overridableProp);
|
|
4005
4088
|
if (!propType) {
|
|
4006
4089
|
return null;
|
|
4007
4090
|
}
|
|
4008
|
-
const propTypeSchema = createTopLevelObjectType({
|
|
4009
|
-
schema: {
|
|
4010
|
-
[overridableProp.overrideKey]: propType
|
|
4011
|
-
}
|
|
4012
|
-
});
|
|
4013
4091
|
const componentInstanceId = instanceValue.component_id?.value;
|
|
4014
4092
|
if (!componentInstanceId) {
|
|
4015
4093
|
throw new Error("Component ID is required");
|
|
4016
4094
|
}
|
|
4017
|
-
const
|
|
4018
|
-
const propValue =
|
|
4095
|
+
const resolvedOverrideValue = matchingOverride ? resolveOverridePropValue(matchingOverride) : null;
|
|
4096
|
+
const propValue = resolvedOverrideValue ?? recursiveOriginValue ?? overridableProp.originValue;
|
|
4019
4097
|
const value = {
|
|
4020
4098
|
[overridableProp.overrideKey]: propValue
|
|
4021
4099
|
};
|
|
4022
4100
|
const setValue = (newValue) => {
|
|
4023
|
-
const newPropValue =
|
|
4101
|
+
const newPropValue = getTempNewValueForDynamicProp(
|
|
4102
|
+
propType,
|
|
4103
|
+
propValue,
|
|
4104
|
+
newValue[overridableProp.overrideKey]
|
|
4105
|
+
);
|
|
4024
4106
|
const newOverrideValue = createOverrideValue({
|
|
4025
4107
|
matchingOverride,
|
|
4026
4108
|
overrideKey: overridableProp.overrideKey,
|
|
@@ -4062,6 +4144,11 @@ function OverrideControl({ overridableProp, overrides }) {
|
|
|
4062
4144
|
if (!elementType) {
|
|
4063
4145
|
return null;
|
|
4064
4146
|
}
|
|
4147
|
+
const propTypeSchema = createTopLevelObjectType({
|
|
4148
|
+
schema: {
|
|
4149
|
+
[overridableProp.overrideKey]: propType
|
|
4150
|
+
}
|
|
4151
|
+
});
|
|
4065
4152
|
return /* @__PURE__ */ React26.createElement(
|
|
4066
4153
|
OverridablePropProvider,
|
|
4067
4154
|
{
|
|
@@ -4082,8 +4169,15 @@ function OverrideControl({ overridableProp, overrides }) {
|
|
|
4082
4169
|
)))
|
|
4083
4170
|
);
|
|
4084
4171
|
}
|
|
4172
|
+
function getTempNewValueForDynamicProp(propType, propValue, newPropValue) {
|
|
4173
|
+
const isRemovingOverride = newPropValue === null;
|
|
4174
|
+
if (isRemovingOverride && isDynamicPropValue(propValue)) {
|
|
4175
|
+
return propType.default ?? null;
|
|
4176
|
+
}
|
|
4177
|
+
return newPropValue;
|
|
4178
|
+
}
|
|
4085
4179
|
function getMatchingOverride(overrides, overrideKey) {
|
|
4086
|
-
|
|
4180
|
+
const result = overrides?.find((override) => {
|
|
4087
4181
|
const overridableValue = componentOverridablePropTypeUtil.extract(override);
|
|
4088
4182
|
let comparedOverrideKey = null;
|
|
4089
4183
|
if (overridableValue) {
|
|
@@ -4093,6 +4187,7 @@ function getMatchingOverride(overrides, overrideKey) {
|
|
|
4093
4187
|
}
|
|
4094
4188
|
return comparedOverrideKey === overrideKey;
|
|
4095
4189
|
}) ?? null;
|
|
4190
|
+
return result;
|
|
4096
4191
|
}
|
|
4097
4192
|
function createOverrideValue({
|
|
4098
4193
|
matchingOverride,
|
|
@@ -4219,7 +4314,7 @@ function InstanceEditingPanel() {
|
|
|
4219
4314
|
const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
|
|
4220
4315
|
const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
|
|
4221
4316
|
const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
|
|
4222
|
-
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(PanelHeader3, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React28.createElement(Stack16, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React28.createElement(ComponentsIcon4, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React28.createElement(EllipsisWithTooltip4, { title: component.name, as: PanelHeaderTitle2, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React28.createElement(Tooltip5, { title: panelTitle }, /* @__PURE__ */ React28.createElement(IconButton6, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React28.createElement(PencilIcon2, { fontSize: "tiny" }))))), /* @__PURE__ */ React28.createElement(PanelBody2, null, /* @__PURE__ */ React28.createElement(ControlAdornmentsProvider, { items: getFieldIndicators("settings") }, isEmpty ? /* @__PURE__ */ React28.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React28.createElement(Stack16, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React28.createElement(React28.Fragment, { key: group.id }, /* @__PURE__ */ React28.createElement(
|
|
4317
|
+
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(PanelHeader3, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React28.createElement(Stack16, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React28.createElement(ComponentsIcon4, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React28.createElement(EllipsisWithTooltip4, { title: component.name, as: PanelHeaderTitle2, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React28.createElement(Tooltip5, { title: panelTitle }, /* @__PURE__ */ React28.createElement(IconButton6, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React28.createElement(PencilIcon2, { fontSize: "tiny" }))))), /* @__PURE__ */ React28.createElement(PanelBody2, null, /* @__PURE__ */ React28.createElement(ControlAdornmentsProvider, { items: getFieldIndicators("settings") }, isEmpty ? /* @__PURE__ */ React28.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React28.createElement(Stack16, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React28.createElement(React28.Fragment, { key: group.id + componentInstanceId }, /* @__PURE__ */ React28.createElement(
|
|
4223
4318
|
OverridePropsGroup,
|
|
4224
4319
|
{
|
|
4225
4320
|
group,
|
|
@@ -4465,7 +4560,7 @@ var Indicator2 = forwardRef2(({ isOpen, isOverridable, ...props }, ref) => /* @_
|
|
|
4465
4560
|
|
|
4466
4561
|
// src/components/overridable-props/utils/get-overridable-prop.ts
|
|
4467
4562
|
import { __getState as getState18 } from "@elementor/store";
|
|
4468
|
-
function
|
|
4563
|
+
function getOverridableProp2({
|
|
4469
4564
|
componentId,
|
|
4470
4565
|
overrideKey
|
|
4471
4566
|
}) {
|
|
@@ -4529,7 +4624,7 @@ function Content2({ componentId, overridableProps }) {
|
|
|
4529
4624
|
}
|
|
4530
4625
|
popupState.close();
|
|
4531
4626
|
};
|
|
4532
|
-
const overridableConfig = overridableValue ?
|
|
4627
|
+
const overridableConfig = overridableValue ? getOverridableProp2({ componentId, overrideKey: overridableValue.override_key }) : void 0;
|
|
4533
4628
|
return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(Tooltip6, { placement: "top", title: __29("Override Property", "elementor") }, /* @__PURE__ */ React31.createElement(Indicator2, { ...triggerProps, isOpen: !!popoverProps.open, isOverridable: !!overridableValue })), /* @__PURE__ */ React31.createElement(
|
|
4534
4629
|
Popover4,
|
|
4535
4630
|
{
|
|
@@ -5159,7 +5254,7 @@ function updateElementComponentId(elementId, componentId) {
|
|
|
5159
5254
|
}
|
|
5160
5255
|
|
|
5161
5256
|
// src/sync/publish-draft-components-in-page-before-save.ts
|
|
5162
|
-
import { isDocumentDirty as isDocumentDirty2 } from "@elementor/editor-documents";
|
|
5257
|
+
import { invalidateDocumentData as invalidateDocumentData2, isDocumentDirty as isDocumentDirty2 } from "@elementor/editor-documents";
|
|
5163
5258
|
async function publishDraftComponentsInPageBeforeSave({ status, elements }) {
|
|
5164
5259
|
if (status !== "publish") {
|
|
5165
5260
|
return;
|
|
@@ -5170,7 +5265,7 @@ async function publishDraftComponentsInPageBeforeSave({ status, elements }) {
|
|
|
5170
5265
|
return;
|
|
5171
5266
|
}
|
|
5172
5267
|
await apiClient.updateStatuses(draftIds, "publish");
|
|
5173
|
-
draftIds.forEach((id2) =>
|
|
5268
|
+
draftIds.forEach((id2) => invalidateDocumentData2(id2));
|
|
5174
5269
|
}
|
|
5175
5270
|
|
|
5176
5271
|
// src/sync/set-component-overridable-props-settings-before-save.ts
|
|
@@ -5388,95 +5483,16 @@ function load(result) {
|
|
|
5388
5483
|
loadComponentsAssets(containers.map((container) => container.model.toJSON()));
|
|
5389
5484
|
}
|
|
5390
5485
|
|
|
5391
|
-
// src/sync/regenerate-override-keys.ts
|
|
5392
|
-
import { getAllDescendants as getAllDescendants6, getContainer as getContainer6, updateElementSettings as updateElementSettings3 } from "@elementor/editor-elements";
|
|
5393
|
-
import { registerDataHook as registerDataHook4 } from "@elementor/editor-v1-adapters";
|
|
5394
|
-
import { generateUniqueId as generateUniqueId6 } from "@elementor/utils";
|
|
5395
|
-
function initRegenerateOverrideKeys() {
|
|
5396
|
-
registerDataHook4("after", "document/elements/duplicate", (_args, result) => {
|
|
5397
|
-
regenerateOverrideKeysForContainers(result);
|
|
5398
|
-
});
|
|
5399
|
-
registerDataHook4("after", "document/elements/paste", (_args, result) => {
|
|
5400
|
-
regenerateOverrideKeysForContainers(result);
|
|
5401
|
-
});
|
|
5402
|
-
registerDataHook4("after", "document/elements/import", (_args, result) => {
|
|
5403
|
-
regenerateOverrideKeysForContainers(result);
|
|
5404
|
-
});
|
|
5405
|
-
}
|
|
5406
|
-
function regenerateOverrideKeysForContainers(result) {
|
|
5407
|
-
const containers = Array.isArray(result) ? result : [result];
|
|
5408
|
-
containers.forEach((container) => {
|
|
5409
|
-
regenerateOverrideKeysRecursive(container.id);
|
|
5410
|
-
});
|
|
5411
|
-
}
|
|
5412
|
-
function regenerateOverrideKeysRecursive(elementId) {
|
|
5413
|
-
const container = getContainer6(elementId);
|
|
5414
|
-
if (!container) {
|
|
5415
|
-
return;
|
|
5416
|
-
}
|
|
5417
|
-
getAllDescendants6(container).forEach(regenerateOverrideKeys);
|
|
5418
|
-
}
|
|
5419
|
-
function regenerateOverrideKeys(element) {
|
|
5420
|
-
if (!isComponentInstance(element.model.toJSON())) {
|
|
5421
|
-
return;
|
|
5422
|
-
}
|
|
5423
|
-
const settings = element.settings?.toJSON() ?? {};
|
|
5424
|
-
if (!hasOverrides(settings)) {
|
|
5425
|
-
return;
|
|
5426
|
-
}
|
|
5427
|
-
const componentInstance = settings.component_instance;
|
|
5428
|
-
const overrides = componentInstance.value.overrides;
|
|
5429
|
-
const newOverrides = overrides.value.map((override) => {
|
|
5430
|
-
if (!componentInstanceOverridePropTypeUtil.isValid(override)) {
|
|
5431
|
-
return override;
|
|
5432
|
-
}
|
|
5433
|
-
return {
|
|
5434
|
-
...override,
|
|
5435
|
-
value: {
|
|
5436
|
-
...override.value,
|
|
5437
|
-
override_key: generateUniqueId6("prop")
|
|
5438
|
-
}
|
|
5439
|
-
};
|
|
5440
|
-
});
|
|
5441
|
-
const newComponentInstance = {
|
|
5442
|
-
...componentInstance,
|
|
5443
|
-
value: {
|
|
5444
|
-
...componentInstance.value,
|
|
5445
|
-
overrides: {
|
|
5446
|
-
...overrides,
|
|
5447
|
-
value: newOverrides
|
|
5448
|
-
}
|
|
5449
|
-
}
|
|
5450
|
-
};
|
|
5451
|
-
updateElementSettings3({
|
|
5452
|
-
id: element.id,
|
|
5453
|
-
props: { component_instance: newComponentInstance },
|
|
5454
|
-
withHistory: false
|
|
5455
|
-
});
|
|
5456
|
-
}
|
|
5457
|
-
function hasOverrides(settings) {
|
|
5458
|
-
if (!componentInstancePropTypeUtil.isValid(settings?.component_instance)) {
|
|
5459
|
-
return false;
|
|
5460
|
-
}
|
|
5461
|
-
const componentInstance = componentInstancePropTypeUtil.extract(settings?.component_instance);
|
|
5462
|
-
const overrides = componentInstance?.overrides;
|
|
5463
|
-
if (!componentInstanceOverridesPropTypeUtil.isValid(overrides)) {
|
|
5464
|
-
return false;
|
|
5465
|
-
}
|
|
5466
|
-
const overridesValue = overrides?.value;
|
|
5467
|
-
return !!overridesValue?.length;
|
|
5468
|
-
}
|
|
5469
|
-
|
|
5470
5486
|
// src/sync/revert-overridables-on-copy-or-duplicate.ts
|
|
5471
|
-
import { registerDataHook as
|
|
5487
|
+
import { registerDataHook as registerDataHook4 } from "@elementor/editor-v1-adapters";
|
|
5472
5488
|
function initRevertOverridablesOnCopyOrDuplicate() {
|
|
5473
|
-
|
|
5489
|
+
registerDataHook4("after", "document/elements/duplicate", (_args, result) => {
|
|
5474
5490
|
if (!isEditingComponent()) {
|
|
5475
5491
|
return;
|
|
5476
5492
|
}
|
|
5477
5493
|
revertOverridablesForDuplicatedElements(result);
|
|
5478
5494
|
});
|
|
5479
|
-
|
|
5495
|
+
registerDataHook4("after", "document/elements/copy", (args) => {
|
|
5480
5496
|
if (!isEditingComponent()) {
|
|
5481
5497
|
return;
|
|
5482
5498
|
}
|
|
@@ -5514,14 +5530,14 @@ function init() {
|
|
|
5514
5530
|
COMPONENT_WIDGET_TYPE,
|
|
5515
5531
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|
|
5516
5532
|
);
|
|
5517
|
-
|
|
5533
|
+
registerDataHook5("dependency", "editor/documents/close", (args) => {
|
|
5518
5534
|
const document = getV1CurrentDocument();
|
|
5519
5535
|
if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
|
|
5520
5536
|
args.mode = "autosave";
|
|
5521
5537
|
}
|
|
5522
5538
|
return true;
|
|
5523
5539
|
});
|
|
5524
|
-
|
|
5540
|
+
registerDataHook5("after", "preview/drop", onElementDrop);
|
|
5525
5541
|
window.elementorCommon.__beforeSave = beforeSave;
|
|
5526
5542
|
injectTab({
|
|
5527
5543
|
id: "components",
|
|
@@ -5545,7 +5561,7 @@ function init() {
|
|
|
5545
5561
|
id: "component-panel-header",
|
|
5546
5562
|
component: ComponentPanelHeader
|
|
5547
5563
|
});
|
|
5548
|
-
|
|
5564
|
+
registerDataHook5("after", "editor/documents/attach-preview", async () => {
|
|
5549
5565
|
const { id: id2, config } = getV1CurrentDocument();
|
|
5550
5566
|
if (id2) {
|
|
5551
5567
|
removeComponentStyles(id2);
|
|
@@ -5571,7 +5587,6 @@ function init() {
|
|
|
5571
5587
|
settingsTransformersRegistry2.register("component-instance", componentInstanceTransformer);
|
|
5572
5588
|
settingsTransformersRegistry2.register("overridable", componentOverridableTransformer);
|
|
5573
5589
|
settingsTransformersRegistry2.register("override", componentOverrideTransformer);
|
|
5574
|
-
initRegenerateOverrideKeys();
|
|
5575
5590
|
initCleanupOverridablePropsOnDelete();
|
|
5576
5591
|
initMcp();
|
|
5577
5592
|
initCircularNestingPrevention();
|