@elementor/editor-components 3.35.0-480 → 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 +243 -117
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +266 -135
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -22
- package/src/components/component-panel-header/component-panel-header.tsx +17 -21
- package/src/components/component-properties-panel/properties-group.tsx +10 -6
- 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
|
@@ -40,9 +40,9 @@ var import_editor_canvas8 = require("@elementor/editor-canvas");
|
|
|
40
40
|
var import_editor_documents13 = require("@elementor/editor-documents");
|
|
41
41
|
var import_editor_editing_panel8 = require("@elementor/editor-editing-panel");
|
|
42
42
|
var import_editor_elements_panel = require("@elementor/editor-elements-panel");
|
|
43
|
-
var
|
|
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
|
|
|
@@ -380,6 +380,8 @@ var componentOverrideTransformer = (0, import_editor_canvas3.createTransformer)(
|
|
|
380
380
|
var React10 = __toESM(require("react"));
|
|
381
381
|
var import_editor_current_user = require("@elementor/editor-current-user");
|
|
382
382
|
var import_editor_documents6 = require("@elementor/editor-documents");
|
|
383
|
+
var import_editor_panels3 = require("@elementor/editor-panels");
|
|
384
|
+
var import_editor_ui6 = require("@elementor/editor-ui");
|
|
383
385
|
var import_icons7 = require("@elementor/icons");
|
|
384
386
|
var import_store29 = require("@elementor/store");
|
|
385
387
|
var import_ui10 = require("@elementor/ui");
|
|
@@ -731,59 +733,9 @@ function deleteOverridableGroup({ componentId, groupId }) {
|
|
|
731
733
|
// src/store/actions/delete-overridable-prop.ts
|
|
732
734
|
var import_store15 = require("@elementor/store");
|
|
733
735
|
|
|
734
|
-
// src/utils/revert-
|
|
736
|
+
// src/utils/revert-overridable-settings.ts
|
|
735
737
|
var import_editor_elements2 = require("@elementor/editor-elements");
|
|
736
738
|
|
|
737
|
-
// src/prop-types/component-instance-override-prop-type.ts
|
|
738
|
-
var import_editor_props = require("@elementor/editor-props");
|
|
739
|
-
var import_schema = require("@elementor/schema");
|
|
740
|
-
var componentInstanceOverridePropTypeUtil = (0, import_editor_props.createPropUtils)(
|
|
741
|
-
"override",
|
|
742
|
-
import_schema.z.object({
|
|
743
|
-
override_key: import_schema.z.string(),
|
|
744
|
-
override_value: import_schema.z.unknown(),
|
|
745
|
-
schema_source: import_schema.z.object({
|
|
746
|
-
type: import_schema.z.literal("component"),
|
|
747
|
-
id: import_schema.z.number()
|
|
748
|
-
})
|
|
749
|
-
})
|
|
750
|
-
);
|
|
751
|
-
|
|
752
|
-
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
753
|
-
var import_editor_props3 = require("@elementor/editor-props");
|
|
754
|
-
var import_schema3 = require("@elementor/schema");
|
|
755
|
-
|
|
756
|
-
// src/prop-types/component-overridable-prop-type.ts
|
|
757
|
-
var import_editor_props2 = require("@elementor/editor-props");
|
|
758
|
-
var import_schema2 = require("@elementor/schema");
|
|
759
|
-
var componentOverridablePropTypeUtil = (0, import_editor_props2.createPropUtils)(
|
|
760
|
-
"overridable",
|
|
761
|
-
import_schema2.z.object({
|
|
762
|
-
override_key: import_schema2.z.string(),
|
|
763
|
-
origin_value: import_schema2.z.object({
|
|
764
|
-
$$type: import_schema2.z.string(),
|
|
765
|
-
value: import_schema2.z.unknown()
|
|
766
|
-
}).nullable()
|
|
767
|
-
})
|
|
768
|
-
);
|
|
769
|
-
|
|
770
|
-
// src/prop-types/component-instance-overrides-prop-type.ts
|
|
771
|
-
var componentInstanceOverridesPropTypeUtil = (0, import_editor_props3.createPropUtils)(
|
|
772
|
-
"overrides",
|
|
773
|
-
import_schema3.z.array(import_schema3.z.union([componentInstanceOverridePropTypeUtil.schema, componentOverridablePropTypeUtil.schema])).optional().default([])
|
|
774
|
-
);
|
|
775
|
-
|
|
776
|
-
// src/prop-types/component-instance-prop-type.ts
|
|
777
|
-
var import_editor_props4 = require("@elementor/editor-props");
|
|
778
|
-
var import_schema4 = require("@elementor/schema");
|
|
779
|
-
var componentInstancePropTypeUtil = (0, import_editor_props4.createPropUtils)(
|
|
780
|
-
"component-instance",
|
|
781
|
-
import_schema4.z.object({
|
|
782
|
-
component_id: import_editor_props4.numberPropTypeUtil.schema,
|
|
783
|
-
overrides: import_schema4.z.optional(componentInstanceOverridesPropTypeUtil.schema)
|
|
784
|
-
})
|
|
785
|
-
);
|
|
786
|
-
|
|
787
739
|
// src/create-component-type.ts
|
|
788
740
|
var import_editor_canvas4 = require("@elementor/editor-canvas");
|
|
789
741
|
var import_editor_documents3 = require("@elementor/editor-documents");
|
|
@@ -1026,19 +978,69 @@ function createComponentModel() {
|
|
|
1026
978
|
});
|
|
1027
979
|
}
|
|
1028
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
|
+
|
|
1029
1031
|
// src/utils/is-component-instance.ts
|
|
1030
1032
|
function isComponentInstance(elementModel) {
|
|
1031
1033
|
return [elementModel.widgetType, elementModel.elType].includes(COMPONENT_WIDGET_TYPE);
|
|
1032
1034
|
}
|
|
1033
1035
|
|
|
1034
|
-
// src/utils/revert-
|
|
1036
|
+
// src/utils/revert-overridable-settings.ts
|
|
1035
1037
|
function revertElementOverridableSetting(elementId, settingKey, originValue, overrideKey) {
|
|
1036
1038
|
const container = (0, import_editor_elements2.getContainer)(elementId);
|
|
1037
1039
|
if (!container) {
|
|
1038
1040
|
return;
|
|
1039
1041
|
}
|
|
1040
1042
|
if (isComponentInstance(container.model.toJSON())) {
|
|
1041
|
-
|
|
1043
|
+
revertComponentInstanceOverridableSetting(elementId, overrideKey);
|
|
1042
1044
|
return;
|
|
1043
1045
|
}
|
|
1044
1046
|
(0, import_editor_elements2.updateElementSettings)({
|
|
@@ -1047,17 +1049,17 @@ function revertElementOverridableSetting(elementId, settingKey, originValue, ove
|
|
|
1047
1049
|
withHistory: false
|
|
1048
1050
|
});
|
|
1049
1051
|
}
|
|
1050
|
-
function
|
|
1052
|
+
function revertComponentInstanceOverridableSetting(elementId, overrideKey) {
|
|
1051
1053
|
const setting = (0, import_editor_elements2.getElementSetting)(elementId, "component_instance");
|
|
1052
1054
|
const componentInstance = componentInstancePropTypeUtil.extract(setting);
|
|
1053
1055
|
const overrides = componentInstanceOverridesPropTypeUtil.extract(componentInstance?.overrides);
|
|
1054
|
-
if (!overrides) {
|
|
1056
|
+
if (!overrides?.length) {
|
|
1055
1057
|
return;
|
|
1056
1058
|
}
|
|
1057
|
-
const
|
|
1059
|
+
const revertedOverrides = revertComponentInstanceOverrides(overrides, overrideKey);
|
|
1058
1060
|
const updatedSetting = componentInstancePropTypeUtil.create({
|
|
1059
1061
|
...componentInstance,
|
|
1060
|
-
overrides: componentInstanceOverridesPropTypeUtil.create(
|
|
1062
|
+
overrides: componentInstanceOverridesPropTypeUtil.create(revertedOverrides)
|
|
1061
1063
|
});
|
|
1062
1064
|
(0, import_editor_elements2.updateElementSettings)({
|
|
1063
1065
|
id: elementId,
|
|
@@ -1065,22 +1067,103 @@ function revertComponentInstanceSetting(elementId, overrideKey) {
|
|
|
1065
1067
|
withHistory: false
|
|
1066
1068
|
});
|
|
1067
1069
|
}
|
|
1068
|
-
function
|
|
1070
|
+
function revertComponentInstanceOverrides(overrides, filterByKey) {
|
|
1069
1071
|
return overrides.map((item) => {
|
|
1070
|
-
|
|
1071
|
-
if (!isOverridable) {
|
|
1072
|
+
if (!componentOverridablePropTypeUtil.isValid(item)) {
|
|
1072
1073
|
return item;
|
|
1073
1074
|
}
|
|
1074
|
-
|
|
1075
|
-
if (!isOriginValueOverride2) {
|
|
1075
|
+
if (!componentInstanceOverridePropTypeUtil.isValid(item.value.origin_value)) {
|
|
1076
1076
|
return null;
|
|
1077
1077
|
}
|
|
1078
|
-
if (item.value.override_key !==
|
|
1078
|
+
if (filterByKey && item.value.override_key !== filterByKey) {
|
|
1079
1079
|
return item;
|
|
1080
1080
|
}
|
|
1081
1081
|
return item.value.origin_value;
|
|
1082
1082
|
}).filter((item) => item !== null);
|
|
1083
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
|
+
}
|
|
1084
1167
|
|
|
1085
1168
|
// src/store/actions/delete-overridable-prop.ts
|
|
1086
1169
|
function deleteOverridableProp({ componentId, propKey, source }) {
|
|
@@ -1671,14 +1754,18 @@ function PropertiesGroup({
|
|
|
1671
1754
|
import_ui6.Box,
|
|
1672
1755
|
{
|
|
1673
1756
|
sx: {
|
|
1674
|
-
flex: 1,
|
|
1675
1757
|
height: 28,
|
|
1676
1758
|
display: "flex",
|
|
1677
1759
|
alignItems: "center",
|
|
1678
1760
|
border: 2,
|
|
1679
1761
|
borderColor: "text.secondary",
|
|
1680
1762
|
borderRadius: 1,
|
|
1681
|
-
pl: 0.5
|
|
1763
|
+
pl: 0.5,
|
|
1764
|
+
flexGrow: 1,
|
|
1765
|
+
overflow: "hidden",
|
|
1766
|
+
textOverflow: "ellipsis",
|
|
1767
|
+
whiteSpace: "nowrap",
|
|
1768
|
+
width: "100%"
|
|
1682
1769
|
}
|
|
1683
1770
|
},
|
|
1684
1771
|
/* @__PURE__ */ React6.createElement(
|
|
@@ -1693,12 +1780,13 @@ function PropertiesGroup({
|
|
|
1693
1780
|
}
|
|
1694
1781
|
)
|
|
1695
1782
|
) : /* @__PURE__ */ React6.createElement(
|
|
1696
|
-
|
|
1783
|
+
import_editor_ui3.EllipsisWithTooltip,
|
|
1697
1784
|
{
|
|
1785
|
+
title: group.label,
|
|
1786
|
+
as: import_ui6.Typography,
|
|
1698
1787
|
variant: "caption",
|
|
1699
1788
|
sx: { color: "text.primary", fontWeight: 400, lineHeight: 1.66 }
|
|
1700
|
-
}
|
|
1701
|
-
group.label
|
|
1789
|
+
}
|
|
1702
1790
|
), /* @__PURE__ */ React6.createElement(
|
|
1703
1791
|
import_ui6.IconButton,
|
|
1704
1792
|
{
|
|
@@ -2075,24 +2163,22 @@ var ComponentPanelHeader = () => {
|
|
|
2075
2163
|
properties_count: overridablePropsCount
|
|
2076
2164
|
});
|
|
2077
2165
|
};
|
|
2078
|
-
return /* @__PURE__ */ React10.createElement(import_ui10.Box, null, /* @__PURE__ */ React10.createElement(
|
|
2079
|
-
|
|
2166
|
+
return /* @__PURE__ */ React10.createElement(import_ui10.Box, null, /* @__PURE__ */ React10.createElement(import_editor_panels3.PanelHeader, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React10.createElement(import_ui10.Tooltip, { title: (0, import_i18n13.__)("Back", "elementor") }, /* @__PURE__ */ React10.createElement(import_ui10.IconButton, { size: "tiny", onClick: onBack, "aria-label": (0, import_i18n13.__)("Back", "elementor") }, /* @__PURE__ */ React10.createElement(import_icons7.ArrowLeftIcon, { fontSize: "tiny" }))), /* @__PURE__ */ React10.createElement(import_icons7.ComponentsFilledIcon, { fontSize: "tiny", stroke: "currentColor" }), /* @__PURE__ */ React10.createElement(
|
|
2167
|
+
import_editor_ui6.EllipsisWithTooltip,
|
|
2080
2168
|
{
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
sx: {
|
|
2085
|
-
}
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
)
|
|
2095
|
-
), /* @__PURE__ */ React10.createElement(import_ui10.Divider, null), /* @__PURE__ */ React10.createElement(
|
|
2169
|
+
title: componentName,
|
|
2170
|
+
as: import_ui10.Typography,
|
|
2171
|
+
variant: "caption",
|
|
2172
|
+
sx: { fontWeight: 500, flexGrow: 1 }
|
|
2173
|
+
}
|
|
2174
|
+
), /* @__PURE__ */ React10.createElement(
|
|
2175
|
+
ComponentsBadge,
|
|
2176
|
+
{
|
|
2177
|
+
overridablePropsCount,
|
|
2178
|
+
ref: anchorRef,
|
|
2179
|
+
onClick: handleOpenPropertiesPanel
|
|
2180
|
+
}
|
|
2181
|
+
)), /* @__PURE__ */ React10.createElement(import_ui10.Divider, null), /* @__PURE__ */ React10.createElement(
|
|
2096
2182
|
ComponentIntroduction,
|
|
2097
2183
|
{
|
|
2098
2184
|
anchorRef,
|
|
@@ -2115,7 +2201,7 @@ function getComponentName() {
|
|
|
2115
2201
|
|
|
2116
2202
|
// src/components/components-tab/components.tsx
|
|
2117
2203
|
var React19 = __toESM(require("react"));
|
|
2118
|
-
var
|
|
2204
|
+
var import_editor_ui10 = require("@elementor/editor-ui");
|
|
2119
2205
|
|
|
2120
2206
|
// src/hooks/use-components.ts
|
|
2121
2207
|
var import_store31 = require("@elementor/store");
|
|
@@ -2278,7 +2364,7 @@ var React15 = __toESM(require("react"));
|
|
|
2278
2364
|
var import_react8 = require("react");
|
|
2279
2365
|
var import_editor_canvas5 = require("@elementor/editor-canvas");
|
|
2280
2366
|
var import_editor_elements8 = require("@elementor/editor-elements");
|
|
2281
|
-
var
|
|
2367
|
+
var import_editor_ui8 = require("@elementor/editor-ui");
|
|
2282
2368
|
var import_icons9 = require("@elementor/icons");
|
|
2283
2369
|
var import_ui13 = require("@elementor/ui");
|
|
2284
2370
|
var import_i18n19 = require("@wordpress/i18n");
|
|
@@ -2533,13 +2619,13 @@ var createComponentModel2 = (component) => {
|
|
|
2533
2619
|
|
|
2534
2620
|
// src/components/components-tab/delete-confirmation-dialog.tsx
|
|
2535
2621
|
var React14 = __toESM(require("react"));
|
|
2536
|
-
var
|
|
2622
|
+
var import_editor_ui7 = require("@elementor/editor-ui");
|
|
2537
2623
|
var import_i18n18 = require("@wordpress/i18n");
|
|
2538
2624
|
function DeleteConfirmationDialog({ open, onClose, onConfirm }) {
|
|
2539
|
-
return /* @__PURE__ */ React14.createElement(
|
|
2625
|
+
return /* @__PURE__ */ React14.createElement(import_editor_ui7.ConfirmationDialog, { open, onClose }, /* @__PURE__ */ React14.createElement(import_editor_ui7.ConfirmationDialog.Title, null, (0, import_i18n18.__)("Delete this component?", "elementor")), /* @__PURE__ */ React14.createElement(import_editor_ui7.ConfirmationDialog.Content, null, /* @__PURE__ */ React14.createElement(import_editor_ui7.ConfirmationDialog.ContentText, null, (0, import_i18n18.__)(
|
|
2540
2626
|
"Existing instances on your pages will remain functional. You will no longer find this component in your list.",
|
|
2541
2627
|
"elementor"
|
|
2542
|
-
))), /* @__PURE__ */ React14.createElement(
|
|
2628
|
+
))), /* @__PURE__ */ React14.createElement(import_editor_ui7.ConfirmationDialog.Actions, { onClose, onConfirm }));
|
|
2543
2629
|
}
|
|
2544
2630
|
|
|
2545
2631
|
// src/components/components-tab/components-item.tsx
|
|
@@ -2554,7 +2640,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
|
|
|
2554
2640
|
openEditMode,
|
|
2555
2641
|
error,
|
|
2556
2642
|
getProps: getEditableProps
|
|
2557
|
-
} = (0,
|
|
2643
|
+
} = (0, import_editor_ui8.useEditable)({
|
|
2558
2644
|
value: component.name,
|
|
2559
2645
|
onSubmit: renameComponent2,
|
|
2560
2646
|
validation: validateComponentTitle
|
|
@@ -2586,7 +2672,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
|
|
|
2586
2672
|
setIsDeleteDialogOpen(false);
|
|
2587
2673
|
};
|
|
2588
2674
|
return /* @__PURE__ */ React15.createElement(import_ui13.Stack, null, /* @__PURE__ */ React15.createElement(
|
|
2589
|
-
|
|
2675
|
+
import_editor_ui8.WarningInfotip,
|
|
2590
2676
|
{
|
|
2591
2677
|
open: Boolean(error),
|
|
2592
2678
|
text: error ?? "",
|
|
@@ -2625,7 +2711,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
|
|
|
2625
2711
|
},
|
|
2626
2712
|
/* @__PURE__ */ React15.createElement(import_ui13.ListItemIcon, { size: "tiny" }, /* @__PURE__ */ React15.createElement(import_icons9.ComponentsIcon, { fontSize: "tiny" })),
|
|
2627
2713
|
/* @__PURE__ */ React15.createElement(Indicator, { isActive: isEditing, isError: !!error }, /* @__PURE__ */ React15.createElement(import_ui13.Box, { display: "flex", flex: 1, minWidth: 0, flexGrow: 1 }, isEditing ? /* @__PURE__ */ React15.createElement(
|
|
2628
|
-
|
|
2714
|
+
import_editor_ui8.EditableField,
|
|
2629
2715
|
{
|
|
2630
2716
|
ref: editableRef,
|
|
2631
2717
|
as: import_ui13.Typography,
|
|
@@ -2633,7 +2719,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
|
|
|
2633
2719
|
...getEditableProps()
|
|
2634
2720
|
}
|
|
2635
2721
|
) : /* @__PURE__ */ React15.createElement(
|
|
2636
|
-
|
|
2722
|
+
import_editor_ui8.EllipsisWithTooltip,
|
|
2637
2723
|
{
|
|
2638
2724
|
title: component.name,
|
|
2639
2725
|
as: import_ui13.Typography,
|
|
@@ -2658,7 +2744,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
|
|
|
2658
2744
|
}
|
|
2659
2745
|
},
|
|
2660
2746
|
canRename && /* @__PURE__ */ React15.createElement(
|
|
2661
|
-
|
|
2747
|
+
import_editor_ui8.MenuListItem,
|
|
2662
2748
|
{
|
|
2663
2749
|
sx: { minWidth: "160px" },
|
|
2664
2750
|
primaryTypographyProps: { variant: "caption", color: "text.primary" },
|
|
@@ -2670,7 +2756,7 @@ var ComponentItem = ({ component, renameComponent: renameComponent2 }) => {
|
|
|
2670
2756
|
(0, import_i18n19.__)("Rename", "elementor")
|
|
2671
2757
|
),
|
|
2672
2758
|
canDelete && /* @__PURE__ */ React15.createElement(
|
|
2673
|
-
|
|
2759
|
+
import_editor_ui8.MenuListItem,
|
|
2674
2760
|
{
|
|
2675
2761
|
sx: { minWidth: "160px" },
|
|
2676
2762
|
primaryTypographyProps: { variant: "caption", color: "error.light" },
|
|
@@ -2929,11 +3015,11 @@ var useFilteredComponents = () => {
|
|
|
2929
3015
|
|
|
2930
3016
|
// src/components/components-tab/components-pro-notification.tsx
|
|
2931
3017
|
var React18 = __toESM(require("react"));
|
|
2932
|
-
var
|
|
3018
|
+
var import_editor_ui9 = require("@elementor/editor-ui");
|
|
2933
3019
|
var import_ui16 = require("@elementor/ui");
|
|
2934
3020
|
var import_i18n21 = require("@wordpress/i18n");
|
|
2935
3021
|
function ComponentsProNotification() {
|
|
2936
|
-
return /* @__PURE__ */ React18.createElement(import_ui16.Box, { sx: { px: 2 } }, /* @__PURE__ */ React18.createElement(
|
|
3022
|
+
return /* @__PURE__ */ React18.createElement(import_ui16.Box, { sx: { px: 2 } }, /* @__PURE__ */ React18.createElement(import_editor_ui9.InfoAlert, null, /* @__PURE__ */ React18.createElement(import_ui16.Typography, { variant: "caption", component: "span" }, /* @__PURE__ */ React18.createElement(import_ui16.Typography, { variant: "caption", component: "span", fontWeight: "bold" }, (0, import_i18n21.__)("Try Components for free:", "elementor")), " ", (0, import_i18n21.__)(
|
|
2937
3023
|
"Soon Components will be part of the Pro subscription, but what you create now will remain on your site.",
|
|
2938
3024
|
"elementor"
|
|
2939
3025
|
))));
|
|
@@ -2946,7 +3032,7 @@ var ComponentsContent = () => {
|
|
|
2946
3032
|
return /* @__PURE__ */ React19.createElement(React19.Fragment, null, hasComponents && /* @__PURE__ */ React19.createElement(ComponentSearch, null), hasComponents && !isProUser() && /* @__PURE__ */ React19.createElement(ComponentsProNotification, null), /* @__PURE__ */ React19.createElement(ComponentsList, null));
|
|
2947
3033
|
};
|
|
2948
3034
|
var Components = () => {
|
|
2949
|
-
return /* @__PURE__ */ React19.createElement(
|
|
3035
|
+
return /* @__PURE__ */ React19.createElement(import_editor_ui10.ThemeProvider, null, /* @__PURE__ */ React19.createElement(SearchProvider, { localStorageKey: "elementor-components-search" }, /* @__PURE__ */ React19.createElement(ComponentsContent, null)));
|
|
2950
3036
|
};
|
|
2951
3037
|
|
|
2952
3038
|
// src/components/consts.ts
|
|
@@ -2958,7 +3044,7 @@ var React20 = __toESM(require("react"));
|
|
|
2958
3044
|
var import_react11 = require("react");
|
|
2959
3045
|
var import_editor_elements10 = require("@elementor/editor-elements");
|
|
2960
3046
|
var import_editor_notifications3 = require("@elementor/editor-notifications");
|
|
2961
|
-
var
|
|
3047
|
+
var import_editor_ui11 = require("@elementor/editor-ui");
|
|
2962
3048
|
var import_icons11 = require("@elementor/icons");
|
|
2963
3049
|
var import_store47 = require("@elementor/store");
|
|
2964
3050
|
var import_ui17 = require("@elementor/ui");
|
|
@@ -3096,10 +3182,11 @@ async function createUnpublishedComponent({
|
|
|
3096
3182
|
}) {
|
|
3097
3183
|
const generatedUid = uid ?? (0, import_utils4.generateUniqueId)("component");
|
|
3098
3184
|
const componentBase = { uid: generatedUid, name };
|
|
3185
|
+
const elementDataWithOverridablesReverted = revertAllOverridablesInElementData(element);
|
|
3099
3186
|
(0, import_store45.__dispatch)(
|
|
3100
3187
|
slice.actions.addUnpublished({
|
|
3101
3188
|
...componentBase,
|
|
3102
|
-
elements: [
|
|
3189
|
+
elements: [elementDataWithOverridablesReverted],
|
|
3103
3190
|
overridableProps
|
|
3104
3191
|
})
|
|
3105
3192
|
);
|
|
@@ -3272,7 +3359,7 @@ function CreateComponentForm() {
|
|
|
3272
3359
|
...eventData.current
|
|
3273
3360
|
});
|
|
3274
3361
|
};
|
|
3275
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3362
|
+
return /* @__PURE__ */ React20.createElement(import_editor_ui11.ThemeProvider, null, /* @__PURE__ */ React20.createElement(
|
|
3276
3363
|
import_ui17.Popover,
|
|
3277
3364
|
{
|
|
3278
3365
|
open: element !== null,
|
|
@@ -3322,7 +3409,7 @@ var Form2 = ({
|
|
|
3322
3409
|
create: (0, import_i18n23.__)("Create", "elementor")
|
|
3323
3410
|
};
|
|
3324
3411
|
const nameInputId = "component-name";
|
|
3325
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3412
|
+
return /* @__PURE__ */ React20.createElement(import_editor_ui11.Form, { onSubmit: handleSubmit }, /* @__PURE__ */ React20.createElement(import_ui17.Stack, { alignItems: "start", width: "268px" }, /* @__PURE__ */ React20.createElement(
|
|
3326
3413
|
import_ui17.Stack,
|
|
3327
3414
|
{
|
|
3328
3415
|
direction: "row",
|
|
@@ -3646,12 +3733,12 @@ function getComponentDOMElements(id2) {
|
|
|
3646
3733
|
|
|
3647
3734
|
// src/components/in-edit-mode.tsx
|
|
3648
3735
|
var React23 = __toESM(require("react"));
|
|
3649
|
-
var
|
|
3736
|
+
var import_editor_ui12 = require("@elementor/editor-ui");
|
|
3650
3737
|
var import_icons12 = require("@elementor/icons");
|
|
3651
3738
|
var import_ui18 = require("@elementor/ui");
|
|
3652
3739
|
var import_i18n25 = require("@wordpress/i18n");
|
|
3653
3740
|
var openEditModeDialog = (lockedBy) => {
|
|
3654
|
-
(0,
|
|
3741
|
+
(0, import_editor_ui12.openDialog)({
|
|
3655
3742
|
component: /* @__PURE__ */ React23.createElement(EditModeDialog, { lockedBy })
|
|
3656
3743
|
});
|
|
3657
3744
|
};
|
|
@@ -3660,7 +3747,7 @@ var EditModeDialog = ({ lockedBy }) => {
|
|
|
3660
3747
|
return /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement(import_ui18.DialogHeader, { logo: false }, /* @__PURE__ */ React23.createElement(import_ui18.Box, { display: "flex", alignItems: "center", gap: 1 }, /* @__PURE__ */ React23.createElement(import_ui18.Icon, { color: "secondary" }, /* @__PURE__ */ React23.createElement(import_icons12.InfoCircleFilledIcon, { fontSize: "medium" })), /* @__PURE__ */ React23.createElement(import_ui18.Typography, { variant: "subtitle1" }, content))), /* @__PURE__ */ React23.createElement(import_ui18.DialogContent, null, /* @__PURE__ */ React23.createElement(import_ui18.Stack, { spacing: 2, direction: "column" }, /* @__PURE__ */ React23.createElement(import_ui18.Typography, { variant: "body2" }, (0, import_i18n25.__)(
|
|
3661
3748
|
"You can wait for them to finish or reach out to coordinate your changes together.",
|
|
3662
3749
|
"elementor"
|
|
3663
|
-
)), /* @__PURE__ */ React23.createElement(import_ui18.DialogActions, null, /* @__PURE__ */ React23.createElement(import_ui18.Button, { color: "secondary", variant: "contained", onClick:
|
|
3750
|
+
)), /* @__PURE__ */ React23.createElement(import_ui18.DialogActions, null, /* @__PURE__ */ React23.createElement(import_ui18.Button, { color: "secondary", variant: "contained", onClick: import_editor_ui12.closeDialog }, (0, import_i18n25.__)("Close", "elementor"))))));
|
|
3664
3751
|
};
|
|
3665
3752
|
|
|
3666
3753
|
// src/components/instance-editing-panel/instance-editing-panel.tsx
|
|
@@ -3668,8 +3755,8 @@ var React29 = __toESM(require("react"));
|
|
|
3668
3755
|
var import_editor_controls4 = require("@elementor/editor-controls");
|
|
3669
3756
|
var import_editor_editing_panel5 = require("@elementor/editor-editing-panel");
|
|
3670
3757
|
var import_editor_elements15 = require("@elementor/editor-elements");
|
|
3671
|
-
var
|
|
3672
|
-
var
|
|
3758
|
+
var import_editor_panels4 = require("@elementor/editor-panels");
|
|
3759
|
+
var import_editor_ui14 = require("@elementor/editor-ui");
|
|
3673
3760
|
var import_icons14 = require("@elementor/icons");
|
|
3674
3761
|
var import_ui23 = require("@elementor/ui");
|
|
3675
3762
|
var import_i18n27 = require("@wordpress/i18n");
|
|
@@ -3718,7 +3805,7 @@ var EmptyState2 = ({ onEditComponent }) => {
|
|
|
3718
3805
|
var React28 = __toESM(require("react"));
|
|
3719
3806
|
var import_react16 = require("react");
|
|
3720
3807
|
var import_editor_editing_panel4 = require("@elementor/editor-editing-panel");
|
|
3721
|
-
var
|
|
3808
|
+
var import_editor_ui13 = require("@elementor/editor-ui");
|
|
3722
3809
|
var import_ui22 = require("@elementor/ui");
|
|
3723
3810
|
|
|
3724
3811
|
// src/components/instance-editing-panel/override-prop-control.tsx
|
|
@@ -4074,7 +4161,7 @@ function OverridePropsGroup({ group, props, overrides }) {
|
|
|
4074
4161
|
sx: { flexGrow: 0, flexShrink: 1, marginInlineEnd: 1 }
|
|
4075
4162
|
}
|
|
4076
4163
|
)),
|
|
4077
|
-
/* @__PURE__ */ React28.createElement(
|
|
4164
|
+
/* @__PURE__ */ React28.createElement(import_editor_ui13.CollapseIcon, { open: isOpen, color: "secondary", fontSize: "tiny" })
|
|
4078
4165
|
), /* @__PURE__ */ React28.createElement(import_ui22.Collapse, { id: contentId, "aria-labelledby": labelId, in: isOpen, timeout: "auto" }, /* @__PURE__ */ React28.createElement(import_ui22.Stack, { direction: "column", gap: 1, p: 2 }, group.props.map((overrideKey) => /* @__PURE__ */ React28.createElement(
|
|
4079
4166
|
OverridePropControl,
|
|
4080
4167
|
{
|
|
@@ -4102,7 +4189,7 @@ function InstanceEditingPanel() {
|
|
|
4102
4189
|
const isNonEmptyGroup = (group) => group !== null && group.props.length > 0;
|
|
4103
4190
|
const groups = overridableProps.groups.order.map((groupId) => overridableProps.groups.items[groupId] ?? null).filter(isNonEmptyGroup);
|
|
4104
4191
|
const isEmpty = groups.length === 0 || Object.keys(overridableProps.props).length === 0;
|
|
4105
|
-
return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(
|
|
4192
|
+
return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(import_editor_panels4.PanelHeader, { sx: { justifyContent: "start", px: 2 } }, /* @__PURE__ */ React29.createElement(import_ui23.Stack, { direction: "row", alignItems: "center", flexGrow: 1, gap: 1, maxWidth: "100%" }, /* @__PURE__ */ React29.createElement(import_icons14.ComponentsIcon, { fontSize: "small", sx: { color: "text.tertiary" } }), /* @__PURE__ */ React29.createElement(import_editor_ui14.EllipsisWithTooltip, { title: component.name, as: import_editor_panels4.PanelHeaderTitle, sx: { flexGrow: 1 } }), canEdit && /* @__PURE__ */ React29.createElement(import_ui23.Tooltip, { title: panelTitle }, /* @__PURE__ */ React29.createElement(import_ui23.IconButton, { size: "tiny", onClick: handleEditComponent, "aria-label": panelTitle }, /* @__PURE__ */ React29.createElement(import_icons14.PencilIcon, { fontSize: "tiny" }))))), /* @__PURE__ */ React29.createElement(import_editor_panels4.PanelBody, null, /* @__PURE__ */ React29.createElement(import_editor_controls4.ControlAdornmentsProvider, { items: (0, import_editor_editing_panel5.getFieldIndicators)("settings") }, isEmpty ? /* @__PURE__ */ React29.createElement(EmptyState2, { onEditComponent: handleEditComponent }) : /* @__PURE__ */ React29.createElement(import_ui23.Stack, { direction: "column", alignItems: "stretch" }, groups.map((group) => /* @__PURE__ */ React29.createElement(React29.Fragment, { key: group.id }, /* @__PURE__ */ React29.createElement(
|
|
4106
4193
|
OverridePropsGroup,
|
|
4107
4194
|
{
|
|
4108
4195
|
group,
|
|
@@ -5342,23 +5429,61 @@ function hasOverrides(settings) {
|
|
|
5342
5429
|
return !!overridesValue?.length;
|
|
5343
5430
|
}
|
|
5344
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
|
+
|
|
5345
5470
|
// src/init.ts
|
|
5346
5471
|
function init() {
|
|
5347
5472
|
import_editor_styles_repository2.stylesRepository.register(componentsStylesProvider);
|
|
5348
5473
|
(0, import_store80.__registerSlice)(slice);
|
|
5349
|
-
(0,
|
|
5474
|
+
(0, import_editor_panels5.__registerPanel)(panel);
|
|
5350
5475
|
(0, import_editor_canvas8.registerElementType)(
|
|
5351
5476
|
COMPONENT_WIDGET_TYPE,
|
|
5352
5477
|
(options) => createComponentType({ ...options, showLockedByModal: openEditModeDialog })
|
|
5353
5478
|
);
|
|
5354
|
-
(0,
|
|
5479
|
+
(0, import_editor_v1_adapters14.registerDataHook)("dependency", "editor/documents/close", (args) => {
|
|
5355
5480
|
const document = (0, import_editor_documents13.getV1CurrentDocument)();
|
|
5356
5481
|
if (document.config.type === COMPONENT_DOCUMENT_TYPE) {
|
|
5357
5482
|
args.mode = "autosave";
|
|
5358
5483
|
}
|
|
5359
5484
|
return true;
|
|
5360
5485
|
});
|
|
5361
|
-
(0,
|
|
5486
|
+
(0, import_editor_v1_adapters14.registerDataHook)("after", "preview/drop", onElementDrop);
|
|
5362
5487
|
window.elementorCommon.__beforeSave = beforeSave;
|
|
5363
5488
|
(0, import_editor_elements_panel.injectTab)({
|
|
5364
5489
|
id: "components",
|
|
@@ -5382,7 +5507,7 @@ function init() {
|
|
|
5382
5507
|
id: "component-panel-header",
|
|
5383
5508
|
component: ComponentPanelHeader
|
|
5384
5509
|
});
|
|
5385
|
-
(0,
|
|
5510
|
+
(0, import_editor_v1_adapters14.registerDataHook)("after", "editor/documents/attach-preview", async () => {
|
|
5386
5511
|
const { id: id2, config } = (0, import_editor_documents13.getV1CurrentDocument)();
|
|
5387
5512
|
if (id2) {
|
|
5388
5513
|
removeComponentStyles(id2);
|
|
@@ -5415,6 +5540,7 @@ function init() {
|
|
|
5415
5540
|
initNonAtomicNestingPrevention();
|
|
5416
5541
|
initLoadComponentDataAfterInstanceAdded();
|
|
5417
5542
|
initHandleComponentEditModeContainer();
|
|
5543
|
+
initRevertOverridablesOnCopyOrDuplicate();
|
|
5418
5544
|
}
|
|
5419
5545
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5420
5546
|
0 && (module.exports = {
|