@elementor/editor-components 3.35.0-481 → 3.35.0-482
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 +189 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +205 -79
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -22
- package/src/init.ts +3 -0
- package/src/store/actions/create-unpublished-component.ts +3 -1
- package/src/store/actions/delete-overridable-prop.ts +1 -1
- package/src/sync/revert-overridables-on-copy-or-duplicate.ts +66 -0
- package/src/types.ts +6 -0
- package/src/utils/revert-overridable-settings.ts +207 -0
- package/src/utils/revert-element-overridable-setting.ts +0 -94
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_panels5 = require("@elementor/editor-panels");
|
|
44
44
|
var import_editor_styles_repository2 = require("@elementor/editor-styles-repository");
|
|
45
|
-
var
|
|
45
|
+
var import_editor_v1_adapters14 = require("@elementor/editor-v1-adapters");
|
|
46
46
|
var import_store80 = require("@elementor/store");
|
|
47
47
|
var import_i18n31 = require("@wordpress/i18n");
|
|
48
48
|
|
|
@@ -733,59 +733,9 @@ function deleteOverridableGroup({ componentId, groupId }) {
|
|
|
733
733
|
// src/store/actions/delete-overridable-prop.ts
|
|
734
734
|
var import_store15 = require("@elementor/store");
|
|
735
735
|
|
|
736
|
-
// src/utils/revert-
|
|
736
|
+
// src/utils/revert-overridable-settings.ts
|
|
737
737
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
738
738
|
|
|
739
|
-
// src/prop-types/component-instance-override-prop-type.ts
|
|
740
|
-
var import_editor_props = require("@elementor/editor-props");
|
|
741
|
-
var import_schema = require("@elementor/schema");
|
|
742
|
-
var componentInstanceOverridePropTypeUtil = (0, import_editor_props.createPropUtils)(
|
|
743
|
-
"override",
|
|
744
|
-
import_schema.z.object({
|
|
745
|
-
override_key: import_schema.z.string(),
|
|
746
|
-
override_value: import_schema.z.unknown(),
|
|
747
|
-
schema_source: import_schema.z.object({
|
|
748
|
-
type: import_schema.z.literal("component"),
|
|
749
|
-
id: import_schema.z.number()
|
|
750
|
-
})
|
|
751
|
-
})
|
|
752
|
-
);
|
|
753
|
-
|
|
754
|
-
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
755
|
-
var import_editor_props3 = require("@elementor/editor-props");
|
|
756
|
-
var import_schema3 = require("@elementor/schema");
|
|
757
|
-
|
|
758
|
-
// src/prop-types/component-overridable-prop-type.ts
|
|
759
|
-
var import_editor_props2 = require("@elementor/editor-props");
|
|
760
|
-
var import_schema2 = require("@elementor/schema");
|
|
761
|
-
var componentOverridablePropTypeUtil = (0, import_editor_props2.createPropUtils)(
|
|
762
|
-
"overridable",
|
|
763
|
-
import_schema2.z.object({
|
|
764
|
-
override_key: import_schema2.z.string(),
|
|
765
|
-
origin_value: import_schema2.z.object({
|
|
766
|
-
$$type: import_schema2.z.string(),
|
|
767
|
-
value: import_schema2.z.unknown()
|
|
768
|
-
}).nullable()
|
|
769
|
-
})
|
|
770
|
-
);
|
|
771
|
-
|
|
772
|
-
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
773
|
-
var componentInstanceOverridesPropTypeUtil = (0, import_editor_props3.createPropUtils)(
|
|
774
|
-
"overrides",
|
|
775
|
-
import_schema3.z.array(import_schema3.z.union([componentInstanceOverridePropTypeUtil.schema, componentOverridablePropTypeUtil.schema])).optional().default([])
|
|
776
|
-
);
|
|
777
|
-
|
|
778
|
-
// src/prop-types/component-instance-prop-type.ts
|
|
779
|
-
var import_editor_props4 = require("@elementor/editor-props");
|
|
780
|
-
var import_schema4 = require("@elementor/schema");
|
|
781
|
-
var componentInstancePropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
782
|
-
"component-instance",
|
|
783
|
-
import_schema4.z.object({
|
|
784
|
-
component_id: import_editor_props4.numberPropTypeUtil.schema,
|
|
785
|
-
overrides: import_schema4.z.optional(componentInstanceOverridesPropTypeUtil.schema)
|
|
786
|
-
})
|
|
787
|
-
);
|
|
788
|
-
|
|
789
739
|
// src/create-component-type.ts
|
|
790
740
|
var import_editor_canvas4 = require("@elementor/editor-canvas");
|
|
791
741
|
var import_editor_documents3 = require("@elementor/editor-documents");
|
|
@@ -1028,19 +978,69 @@ function createComponentModel() {
|
|
|
1028
978
|
});
|
|
1029
979
|
}
|
|
1030
980
|
|
|
981
|
+
// src/prop-types/component-instance-override-prop-type.ts
|
|
982
|
+
var import_editor_props = require("@elementor/editor-props");
|
|
983
|
+
var import_schema = require("@elementor/schema");
|
|
984
|
+
var componentInstanceOverridePropTypeUtil = (0, import_editor_props.createPropUtils)(
|
|
985
|
+
"override",
|
|
986
|
+
import_schema.z.object({
|
|
987
|
+
override_key: import_schema.z.string(),
|
|
988
|
+
override_value: import_schema.z.unknown(),
|
|
989
|
+
schema_source: import_schema.z.object({
|
|
990
|
+
type: import_schema.z.literal("component"),
|
|
991
|
+
id: import_schema.z.number()
|
|
992
|
+
})
|
|
993
|
+
})
|
|
994
|
+
);
|
|
995
|
+
|
|
996
|
+
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
997
|
+
var import_editor_props3 = require("@elementor/editor-props");
|
|
998
|
+
var import_schema3 = require("@elementor/schema");
|
|
999
|
+
|
|
1000
|
+
// src/prop-types/component-overridable-prop-type.ts
|
|
1001
|
+
var import_editor_props2 = require("@elementor/editor-props");
|
|
1002
|
+
var import_schema2 = require("@elementor/schema");
|
|
1003
|
+
var componentOverridablePropTypeUtil = (0, import_editor_props2.createPropUtils)(
|
|
1004
|
+
"overridable",
|
|
1005
|
+
import_schema2.z.object({
|
|
1006
|
+
override_key: import_schema2.z.string(),
|
|
1007
|
+
origin_value: import_schema2.z.object({
|
|
1008
|
+
$$type: import_schema2.z.string(),
|
|
1009
|
+
value: import_schema2.z.unknown()
|
|
1010
|
+
}).nullable()
|
|
1011
|
+
})
|
|
1012
|
+
);
|
|
1013
|
+
|
|
1014
|
+
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
1015
|
+
var componentInstanceOverridesPropTypeUtil = (0, import_editor_props3.createPropUtils)(
|
|
1016
|
+
"overrides",
|
|
1017
|
+
import_schema3.z.array(import_schema3.z.union([componentInstanceOverridePropTypeUtil.schema, componentOverridablePropTypeUtil.schema])).optional().default([])
|
|
1018
|
+
);
|
|
1019
|
+
|
|
1020
|
+
// src/prop-types/component-instance-prop-type.ts
|
|
1021
|
+
var import_editor_props4 = require("@elementor/editor-props");
|
|
1022
|
+
var import_schema4 = require("@elementor/schema");
|
|
1023
|
+
var componentInstancePropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
1024
|
+
"component-instance",
|
|
1025
|
+
import_schema4.z.object({
|
|
1026
|
+
component_id: import_editor_props4.numberPropTypeUtil.schema,
|
|
1027
|
+
overrides: import_schema4.z.optional(componentInstanceOverridesPropTypeUtil.schema)
|
|
1028
|
+
})
|
|
1029
|
+
);
|
|
1030
|
+
|
|
1031
1031
|
// src/utils/is-component-instance.ts
|
|
1032
1032
|
function isComponentInstance(elementModel) {
|
|
1033
1033
|
return [elementModel.widgetType, elementModel.elType].includes(COMPONENT_WIDGET_TYPE);
|
|
1034
1034
|
}
|
|
1035
1035
|
|
|
1036
|
-
// src/utils/revert-
|
|
1036
|
+
// src/utils/revert-overridable-settings.ts
|
|
1037
1037
|
function revertElementOverridableSetting(elementId, settingKey, originValue, overrideKey) {
|
|
1038
1038
|
const container = (0, import_editor_elements2.getContainer)(elementId);
|
|
1039
1039
|
if (!container) {
|
|
1040
1040
|
return;
|
|
1041
1041
|
}
|
|
1042
1042
|
if (isComponentInstance(container.model.toJSON())) {
|
|
1043
|
-
|
|
1043
|
+
revertComponentInstanceOverridableSetting(elementId, overrideKey);
|
|
1044
1044
|
return;
|
|
1045
1045
|
}
|
|
1046
1046
|
(0, import_editor_elements2.updateElementSettings)({
|
|
@@ -1049,17 +1049,17 @@ function revertElementOverridableSetting(elementId, settingKey, originValue, ove
|
|
|
1049
1049
|
withHistory: false
|
|
1050
1050
|
});
|
|
1051
1051
|
}
|
|
1052
|
-
function
|
|
1052
|
+
function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
|
|
1053
1053
|
const setting = (0, import_editor_elements2.getElementSetting)(elementId, "component_instance");
|
|
1054
1054
|
const componentInstance = componentInstancePropTypeUtil.extract(setting);
|
|
1055
1055
|
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1056
|
-
if (!overrides) {
|
|
1056
|
+
if (!overrides?.length) {
|
|
1057
1057
|
return;
|
|
1058
1058
|
}
|
|
1059
|
-
const
|
|
1059
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides, overrideKey);
|
|
1060
1060
|
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
1061
1061
|
...componentInstance,
|
|
1062
|
-
overrides: componentInstanceOverridesPropTypeUtil.create(
|
|
1062
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1063
1063
|
});
|
|
1064
1064
|
(0, import_editor_elements2.updateElementSettings)({
|
|
1065
1065
|
id: elementId,
|
|
@@ -1067,22 +1067,103 @@ function revertComponentInstanceSetting(elementId, overrideKey) {
|
|
|
1067
1067
|
withHistory: false
|
|
1068
1068
|
});
|
|
1069
1069
|
}
|
|
1070
|
-
function
|
|
1070
|
+
function revertComponentInstanceOverrides(overrides, filterByKey) {
|
|
1071
1071
|
return overrides.map((item) => {
|
|
1072
|
-
|
|
1073
|
-
if (!isOverridable) {
|
|
1072
|
+
if (!componentOverridablePropTypeUtil.isValid(item)) {
|
|
1074
1073
|
return item;
|
|
1075
1074
|
}
|
|
1076
|
-
|
|
1077
|
-
if (!isOriginValueOverride2) {
|
|
1075
|
+
if (!componentInstanceOverridePropTypeUtil.isValid(item.value.origin_value)) {
|
|
1078
1076
|
return null;
|
|
1079
1077
|
}
|
|
1080
|
-
if (item.value.override_key !==
|
|
1078
|
+
if (filterByKey && item.value.override_key !== filterByKey) {
|
|
1081
1079
|
return item;
|
|
1082
1080
|
}
|
|
1083
1081
|
return item.value.origin_value;
|
|
1084
1082
|
}).filter((item) => item !== null);
|
|
1085
1083
|
}
|
|
1084
|
+
function revertOverridablePropsFromSettings(settings) {
|
|
1085
|
+
let hasChanges = false;
|
|
1086
|
+
const revertedSettings = {};
|
|
1087
|
+
for (const [key, value] of Object.entries(settings)) {
|
|
1088
|
+
if (componentOverridablePropTypeUtil.isValid(value)) {
|
|
1089
|
+
revertedSettings[key] = value.value.origin_value;
|
|
1090
|
+
hasChanges = true;
|
|
1091
|
+
} else {
|
|
1092
|
+
revertedSettings[key] = value;
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
return { hasChanges, settings: revertedSettings };
|
|
1096
|
+
}
|
|
1097
|
+
function revertAllOverridablesInElementData(elementData) {
|
|
1098
|
+
const revertedElement = { ...elementData };
|
|
1099
|
+
if (isComponentInstance({ widgetType: elementData.widgetType, elType: elementData.elType })) {
|
|
1100
|
+
revertedElement.settings = revertComponentInstanceSettings(elementData.settings);
|
|
1101
|
+
} else if (revertedElement.settings) {
|
|
1102
|
+
const { settings } = revertOverridablePropsFromSettings(revertedElement.settings);
|
|
1103
|
+
revertedElement.settings = settings;
|
|
1104
|
+
}
|
|
1105
|
+
if (revertedElement.elements) {
|
|
1106
|
+
revertedElement.elements = revertedElement.elements.map(revertAllOverridablesInElementData);
|
|
1107
|
+
}
|
|
1108
|
+
return revertedElement;
|
|
1109
|
+
}
|
|
1110
|
+
function revertComponentInstanceSettings(settings) {
|
|
1111
|
+
if (!settings?.component_instance) {
|
|
1112
|
+
return settings;
|
|
1113
|
+
}
|
|
1114
|
+
const componentInstance = componentInstancePropTypeUtil.extract(settings.component_instance);
|
|
1115
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1116
|
+
if (!overrides?.length) {
|
|
1117
|
+
return settings;
|
|
1118
|
+
}
|
|
1119
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides);
|
|
1120
|
+
return {
|
|
1121
|
+
...settings,
|
|
1122
|
+
component_instance: componentInstancePropTypeUtil.create({
|
|
1123
|
+
...componentInstance,
|
|
1124
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1125
|
+
})
|
|
1126
|
+
};
|
|
1127
|
+
}
|
|
1128
|
+
function revertAllOverridablesInContainer(container) {
|
|
1129
|
+
(0, import_editor_elements2.getAllDescendants)(container).forEach((element) => {
|
|
1130
|
+
if (element.model.get("widgetType") === COMPONENT_WIDGET_TYPE) {
|
|
1131
|
+
revertComponentInstanceOverridesInElement(element);
|
|
1132
|
+
} else {
|
|
1133
|
+
revertElementSettings(element);
|
|
1134
|
+
}
|
|
1135
|
+
});
|
|
1136
|
+
}
|
|
1137
|
+
function revertComponentInstanceOverridesInElement(element) {
|
|
1138
|
+
const settings = element.settings?.toJSON() ?? {};
|
|
1139
|
+
const componentInstance = componentInstancePropTypeUtil.extract(settings.component_instance);
|
|
1140
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1141
|
+
if (!overrides?.length) {
|
|
1142
|
+
return;
|
|
1143
|
+
}
|
|
1144
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides);
|
|
1145
|
+
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
1146
|
+
...componentInstance,
|
|
1147
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1148
|
+
});
|
|
1149
|
+
(0, import_editor_elements2.updateElementSettings)({
|
|
1150
|
+
id: element.id,
|
|
1151
|
+
props: { component_instance: updatedSetting },
|
|
1152
|
+
withHistory: false
|
|
1153
|
+
});
|
|
1154
|
+
}
|
|
1155
|
+
function revertElementSettings(element) {
|
|
1156
|
+
const settings = element.settings?.toJSON() ?? {};
|
|
1157
|
+
const { hasChanges, settings: revertedSettings } = revertOverridablePropsFromSettings(settings);
|
|
1158
|
+
if (!hasChanges) {
|
|
1159
|
+
return;
|
|
1160
|
+
}
|
|
1161
|
+
(0, import_editor_elements2.updateElementSettings)({
|
|
1162
|
+
id: element.id,
|
|
1163
|
+
props: revertedSettings,
|
|
1164
|
+
withHistory: false
|
|
1165
|
+
});
|
|
1166
|
+
}
|
|
1086
1167
|
|
|
1087
1168
|
// src/store/actions/delete-overridable-prop.ts
|
|
1088
1169
|
function deleteOverridableProp({ componentId, propKey, source }) {
|
|
@@ -3101,10 +3182,11 @@ async function createUnpublishedComponent({
|
|
|
3101
3182
|
}) {
|
|
3102
3183
|
const generatedUid = uid ?? (0, import_utils4.generateUniqueId)("component");
|
|
3103
3184
|
const componentBase = { uid: generatedUid, name };
|
|
3185
|
+
const elementDataWithOverridablesReverted = revertAllOverridablesInElementData(element);
|
|
3104
3186
|
(0, import_store45.__dispatch)(
|
|
3105
3187
|
slice.actions.addUnpublished({
|
|
3106
3188
|
...componentBase,
|
|
3107
|
-
elements: [
|
|
3189
|
+
elements: [elementDataWithOverridablesReverted],
|
|
3108
3190
|
overridableProps
|
|
3109
3191
|
})
|
|
3110
3192
|
);
|
|
@@ -5347,6 +5429,44 @@ function hasOverrides(settings) {
|
|
|
5347
5429
|
return !!overridesValue?.length;
|
|
5348
5430
|
}
|
|
5349
5431
|
|
|
5432
|
+
// src/sync/revert-overridables-on-copy-or-duplicate.ts
|
|
5433
|
+
var import_editor_v1_adapters13 = require("@elementor/editor-v1-adapters");
|
|
5434
|
+
function initRevertOverridablesOnCopyOrDuplicate() {
|
|
5435
|
+
(0, import_editor_v1_adapters13.registerDataHook)("after", "document/elements/duplicate", (_args, result) => {
|
|
5436
|
+
if (!isEditingComponent()) {
|
|
5437
|
+
return;
|
|
5438
|
+
}
|
|
5439
|
+
revertOverridablesForDuplicatedElements(result);
|
|
5440
|
+
});
|
|
5441
|
+
(0, import_editor_v1_adapters13.registerDataHook)("after", "document/elements/copy", (args) => {
|
|
5442
|
+
if (!isEditingComponent()) {
|
|
5443
|
+
return;
|
|
5444
|
+
}
|
|
5445
|
+
revertOverridablesInStorage(args.storageKey ?? "clipboard");
|
|
5446
|
+
});
|
|
5447
|
+
}
|
|
5448
|
+
function revertOverridablesForDuplicatedElements(duplicatedElements) {
|
|
5449
|
+
const containers = Array.isArray(duplicatedElements) ? duplicatedElements : [duplicatedElements];
|
|
5450
|
+
containers.forEach((container) => {
|
|
5451
|
+
revertAllOverridablesInContainer(container);
|
|
5452
|
+
});
|
|
5453
|
+
}
|
|
5454
|
+
function revertOverridablesInStorage(storageKey) {
|
|
5455
|
+
const storage = window.elementorCommon?.storage;
|
|
5456
|
+
if (!storage) {
|
|
5457
|
+
return;
|
|
5458
|
+
}
|
|
5459
|
+
const storageData = storage.get(storageKey);
|
|
5460
|
+
if (!storageData?.elements?.length) {
|
|
5461
|
+
return;
|
|
5462
|
+
}
|
|
5463
|
+
const elementsDataWithOverridablesReverted = storageData.elements.map(revertAllOverridablesInElementData);
|
|
5464
|
+
storage.set(storageKey, {
|
|
5465
|
+
...storageData,
|
|
5466
|
+
elements: elementsDataWithOverridablesReverted
|
|
5467
|
+
});
|
|
5468
|
+
}
|
|
5469
|
+
|
|
5350
5470
|
// src/init.ts
|
|
5351
5471
|
function init() {
|
|
5352
5472
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
@@ -5356,14 +5476,14 @@ function init() {
|
|
|
5356
5476
|
COMPONENT_WIDGET_TYPE,
|
|
5357
5477
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|
|
5358
5478
|
);
|
|
5359
|
-
(0,
|
|
5479
|
+
(0, import_editor_v1_adapters14.registerDataHook)("dependency", "editor/documents/close", (args) => {
|
|
5360
5480
|
const document = (0, import_editor_documents13.getV1CurrentDocument)();
|
|
5361
5481
|
if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
|
|
5362
5482
|
args.mode = "autosave";
|
|
5363
5483
|
}
|
|
5364
5484
|
return true;
|
|
5365
5485
|
});
|
|
5366
|
-
(0,
|
|
5486
|
+
(0, import_editor_v1_adapters14.registerDataHook)("after", "preview/drop", onElementDrop);
|
|
5367
5487
|
window.elementorCommon.__beforeSave = beforeSave;
|
|
5368
5488
|
(0, import_editor_elements_panel.injectTab)({
|
|
5369
5489
|
id: "components",
|
|
@@ -5387,7 +5507,7 @@ function init() {
|
|
|
5387
5507
|
id: "component-panel-header",
|
|
5388
5508
|
component: ComponentPanelHeader
|
|
5389
5509
|
});
|
|
5390
|
-
(0,
|
|
5510
|
+
(0, import_editor_v1_adapters14.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
5391
5511
|
const { id: id2, config } = (0, import_editor_documents13.getV1CurrentDocument)();
|
|
5392
5512
|
if (id2) {
|
|
5393
5513
|
removeComponentStyles(id2);
|
|
@@ -5420,6 +5540,7 @@ function init() {
|
|
|
5420
5540
|
initNonAtomicNestingPrevention();
|
|
5421
5541
|
initLoadComponentDataAfterInstanceAdded();
|
|
5422
5542
|
initHandleComponentEditModeContainer();
|
|
5543
|
+
initRevertOverridablesOnCopyOrDuplicate();
|
|
5423
5544
|
}
|
|
5424
5545
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5425
5546
|
0 && (module.exports = {
|