@elementor/editor-components 3.35.0-464 → 3.35.0-466
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 +1400 -1352
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1414 -1366
- package/dist/index.mjs.map +1 -1
- package/package.json +22 -22
- package/src/components/overridable-props/overridable-prop-control.tsx +23 -3
- package/src/store/actions/delete-overridable-prop.ts +2 -16
- package/src/utils/revert-element-overridable-setting.ts +94 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/editor-components",
|
|
3
3
|
"description": "Elementor editor components",
|
|
4
|
-
"version": "3.35.0-
|
|
4
|
+
"version": "3.35.0-466",
|
|
5
5
|
"private": false,
|
|
6
6
|
"author": "Elementor Team",
|
|
7
7
|
"homepage": "https://elementor.com/",
|
|
@@ -40,30 +40,30 @@
|
|
|
40
40
|
"dev": "tsup --config=../../tsup.dev.ts"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@elementor/editor": "3.35.0-
|
|
44
|
-
"@elementor/editor-canvas": "3.35.0-
|
|
45
|
-
"@elementor/editor-controls": "3.35.0-
|
|
46
|
-
"@elementor/editor-documents": "3.35.0-
|
|
47
|
-
"@elementor/editor-editing-panel": "3.35.0-
|
|
48
|
-
"@elementor/editor-elements": "3.35.0-
|
|
49
|
-
"@elementor/editor-elements-panel": "3.35.0-
|
|
50
|
-
"@elementor/editor-mcp": "3.35.0-
|
|
51
|
-
"@elementor/editor-panels": "3.35.0-
|
|
52
|
-
"@elementor/editor-props": "3.35.0-
|
|
53
|
-
"@elementor/editor-styles-repository": "3.35.0-
|
|
54
|
-
"@elementor/editor-ui": "3.35.0-
|
|
55
|
-
"@elementor/editor-v1-adapters": "3.35.0-
|
|
56
|
-
"@elementor/http-client": "3.35.0-
|
|
43
|
+
"@elementor/editor": "3.35.0-466",
|
|
44
|
+
"@elementor/editor-canvas": "3.35.0-466",
|
|
45
|
+
"@elementor/editor-controls": "3.35.0-466",
|
|
46
|
+
"@elementor/editor-documents": "3.35.0-466",
|
|
47
|
+
"@elementor/editor-editing-panel": "3.35.0-466",
|
|
48
|
+
"@elementor/editor-elements": "3.35.0-466",
|
|
49
|
+
"@elementor/editor-elements-panel": "3.35.0-466",
|
|
50
|
+
"@elementor/editor-mcp": "3.35.0-466",
|
|
51
|
+
"@elementor/editor-panels": "3.35.0-466",
|
|
52
|
+
"@elementor/editor-props": "3.35.0-466",
|
|
53
|
+
"@elementor/editor-styles-repository": "3.35.0-466",
|
|
54
|
+
"@elementor/editor-ui": "3.35.0-466",
|
|
55
|
+
"@elementor/editor-v1-adapters": "3.35.0-466",
|
|
56
|
+
"@elementor/http-client": "3.35.0-466",
|
|
57
57
|
"@elementor/icons": "^1.63.0",
|
|
58
|
-
"@elementor/mixpanel": "3.35.0-
|
|
59
|
-
"@elementor/query": "3.35.0-
|
|
60
|
-
"@elementor/schema": "3.35.0-
|
|
61
|
-
"@elementor/store": "3.35.0-
|
|
58
|
+
"@elementor/mixpanel": "3.35.0-466",
|
|
59
|
+
"@elementor/query": "3.35.0-466",
|
|
60
|
+
"@elementor/schema": "3.35.0-466",
|
|
61
|
+
"@elementor/store": "3.35.0-466",
|
|
62
62
|
"@elementor/ui": "1.36.17",
|
|
63
|
-
"@elementor/utils": "3.35.0-
|
|
63
|
+
"@elementor/utils": "3.35.0-466",
|
|
64
64
|
"@wordpress/i18n": "^5.13.0",
|
|
65
|
-
"@elementor/editor-notifications": "3.35.0-
|
|
66
|
-
"@elementor/editor-current-user": "3.35.0-
|
|
65
|
+
"@elementor/editor-notifications": "3.35.0-466",
|
|
66
|
+
"@elementor/editor-current-user": "3.35.0-466"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
69
|
"react": "^18.3.1",
|
|
@@ -2,10 +2,10 @@ import * as React from 'react';
|
|
|
2
2
|
import { type ComponentType } from 'react';
|
|
3
3
|
import {
|
|
4
4
|
ControlReplacementsProvider,
|
|
5
|
-
createControl,
|
|
6
5
|
PropKeyProvider,
|
|
7
6
|
PropProvider,
|
|
8
7
|
useBoundProp,
|
|
8
|
+
useControlReplacement,
|
|
9
9
|
} from '@elementor/editor-controls';
|
|
10
10
|
import { createTopLevelObjectType, getControlReplacements, useElement } from '@elementor/editor-editing-panel';
|
|
11
11
|
import { type PropValue } from '@elementor/editor-props';
|
|
@@ -26,7 +26,6 @@ export function OverridablePropControl< T extends object >( {
|
|
|
26
26
|
...props
|
|
27
27
|
}: T & { OriginalControl: ComponentType< T > } ) {
|
|
28
28
|
const { elementType } = useElement();
|
|
29
|
-
const Control = createControl( OriginalControl );
|
|
30
29
|
|
|
31
30
|
const { value, bind, setValue, placeholder, ...propContext } = useBoundProp( componentOverridablePropTypeUtil );
|
|
32
31
|
const componentId = useCurrentComponentId();
|
|
@@ -97,10 +96,31 @@ export function OverridablePropControl< T extends object >( {
|
|
|
97
96
|
>
|
|
98
97
|
<PropKeyProvider bind={ bind }>
|
|
99
98
|
<ControlReplacementsProvider replacements={ filteredReplacements }>
|
|
100
|
-
<
|
|
99
|
+
<ControlWithReplacements OriginalControl={ OriginalControl } props={ props as T } />
|
|
101
100
|
</ControlReplacementsProvider>
|
|
102
101
|
</PropKeyProvider>
|
|
103
102
|
</PropProvider>
|
|
104
103
|
</OverridablePropProvider>
|
|
105
104
|
);
|
|
106
105
|
}
|
|
106
|
+
|
|
107
|
+
type ControlComponentType = ComponentType< object & { OriginalControl: ComponentType } >;
|
|
108
|
+
|
|
109
|
+
function ControlWithReplacements< T extends object >( {
|
|
110
|
+
OriginalControl,
|
|
111
|
+
props,
|
|
112
|
+
}: {
|
|
113
|
+
OriginalControl: ComponentType< T >;
|
|
114
|
+
props: T;
|
|
115
|
+
} ) {
|
|
116
|
+
const { ControlToRender, isReplaced } = useControlReplacement( OriginalControl as ControlComponentType );
|
|
117
|
+
|
|
118
|
+
if ( isReplaced ) {
|
|
119
|
+
const ReplacementControl = ControlToRender as unknown as ComponentType<
|
|
120
|
+
T & { OriginalControl: ComponentType< T > }
|
|
121
|
+
>;
|
|
122
|
+
return <ReplacementControl { ...props } OriginalControl={ OriginalControl } />;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return <OriginalControl { ...props } />;
|
|
126
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getContainer, updateElementSettings } from '@elementor/editor-elements';
|
|
2
1
|
import { __dispatch as dispatch, __getState as getState } from '@elementor/store';
|
|
3
2
|
|
|
4
3
|
import { type ComponentId } from '../../types';
|
|
4
|
+
import { revertElementOverridableSetting } from '../../utils/revert-element-overridable-setting';
|
|
5
5
|
import { type Source, trackComponentEvent } from '../../utils/tracking';
|
|
6
6
|
import { selectCurrentComponent, selectOverridableProps, slice } from '../store';
|
|
7
7
|
import { removePropFromAllGroups } from '../utils/groups-transformers';
|
|
@@ -25,7 +25,7 @@ export function deleteOverridableProp( { componentId, propKey, source }: DeleteP
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
revertElementOverridableSetting( prop.elementId, prop.propKey, prop.originValue, propKey );
|
|
29
29
|
|
|
30
30
|
const { [ propKey ]: removedProp, ...remainingProps } = overridableProps.props;
|
|
31
31
|
|
|
@@ -54,17 +54,3 @@ export function deleteOverridableProp( { componentId, propKey, source }: DeleteP
|
|
|
54
54
|
element_type: removedProp.widgetType ?? removedProp.elType,
|
|
55
55
|
} );
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
function revertElementSetting( elementId: string, settingKey: string, originValue: unknown ): void {
|
|
59
|
-
const container = getContainer( elementId );
|
|
60
|
-
|
|
61
|
-
if ( ! container ) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
updateElementSettings( {
|
|
66
|
-
id: elementId,
|
|
67
|
-
props: { [ settingKey ]: originValue ?? null },
|
|
68
|
-
withHistory: false,
|
|
69
|
-
} );
|
|
70
|
-
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { getContainer, getElementSetting, updateElementSettings } from '@elementor/editor-elements';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type ComponentInstanceOverrideProp,
|
|
5
|
+
componentInstanceOverridePropTypeUtil,
|
|
6
|
+
} from '../prop-types/component-instance-override-prop-type';
|
|
7
|
+
import {
|
|
8
|
+
componentInstanceOverridesPropTypeUtil,
|
|
9
|
+
type ComponentInstanceOverridesPropValue,
|
|
10
|
+
} from '../prop-types/component-instance-overrides-prop-type';
|
|
11
|
+
import {
|
|
12
|
+
type ComponentInstanceProp,
|
|
13
|
+
componentInstancePropTypeUtil,
|
|
14
|
+
type ComponentInstancePropValue,
|
|
15
|
+
} from '../prop-types/component-instance-prop-type';
|
|
16
|
+
import { componentOverridablePropTypeUtil } from '../prop-types/component-overridable-prop-type';
|
|
17
|
+
import { isComponentInstance } from './is-component-instance';
|
|
18
|
+
|
|
19
|
+
export function revertElementOverridableSetting(
|
|
20
|
+
elementId: string,
|
|
21
|
+
settingKey: string,
|
|
22
|
+
originValue: unknown,
|
|
23
|
+
overrideKey: string
|
|
24
|
+
): void {
|
|
25
|
+
const container = getContainer( elementId );
|
|
26
|
+
|
|
27
|
+
if ( ! container ) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if ( isComponentInstance( container.model.toJSON() ) ) {
|
|
32
|
+
revertComponentInstanceSetting( elementId, overrideKey );
|
|
33
|
+
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
updateElementSettings( {
|
|
38
|
+
id: elementId,
|
|
39
|
+
props: { [ settingKey ]: originValue ?? null },
|
|
40
|
+
withHistory: false,
|
|
41
|
+
} );
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function revertComponentInstanceSetting( elementId: string, overrideKey: string ): void {
|
|
45
|
+
const setting = getElementSetting< ComponentInstanceProp >( elementId, 'component_instance' );
|
|
46
|
+
|
|
47
|
+
const componentInstance = componentInstancePropTypeUtil.extract( setting );
|
|
48
|
+
const overrides = componentInstanceOverridesPropTypeUtil.extract( componentInstance?.overrides );
|
|
49
|
+
|
|
50
|
+
if ( ! overrides ) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const updatedOverrides = getUpdatedComponentInstanceOverrides( overrides, overrideKey );
|
|
55
|
+
|
|
56
|
+
const updatedSetting = componentInstancePropTypeUtil.create( {
|
|
57
|
+
...componentInstance,
|
|
58
|
+
overrides: componentInstanceOverridesPropTypeUtil.create( updatedOverrides ),
|
|
59
|
+
} as ComponentInstancePropValue );
|
|
60
|
+
|
|
61
|
+
updateElementSettings( {
|
|
62
|
+
id: elementId,
|
|
63
|
+
props: { component_instance: updatedSetting },
|
|
64
|
+
withHistory: false,
|
|
65
|
+
} );
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function getUpdatedComponentInstanceOverrides(
|
|
69
|
+
overrides: NonNullable< ComponentInstanceOverridesPropValue >,
|
|
70
|
+
overrideKey: string
|
|
71
|
+
): ComponentInstanceOverridesPropValue {
|
|
72
|
+
return overrides
|
|
73
|
+
.map( ( item ) => {
|
|
74
|
+
const isOverridable = componentOverridablePropTypeUtil.isValid( item );
|
|
75
|
+
if ( ! isOverridable ) {
|
|
76
|
+
// we revert only overridable values
|
|
77
|
+
return item;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const isOriginValueOverride = componentInstanceOverridePropTypeUtil.isValid( item.value.origin_value );
|
|
81
|
+
|
|
82
|
+
if ( ! isOriginValueOverride ) {
|
|
83
|
+
// component instances cannot have overridables with origin value that is not an override
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if ( item.value.override_key !== overrideKey ) {
|
|
88
|
+
return item;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return item.value.origin_value as ComponentInstanceOverrideProp;
|
|
92
|
+
} )
|
|
93
|
+
.filter( ( item ): item is NonNullable< typeof item > => item !== null );
|
|
94
|
+
}
|