@elementor/editor-components 4.1.0-741 → 4.1.0-742

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.
@@ -1,119 +0,0 @@
1
- import { type PropValue } from '@elementor/editor-props';
2
- import { __useSelector as useSelector } from '@elementor/store';
3
-
4
- import { type ComponentInstanceOverride } from '../../prop-types/component-instance-overrides-prop-type';
5
- import { componentOverridablePropTypeUtil } from '../../prop-types/component-overridable-prop-type';
6
- import { selectData } from '../../store/store';
7
- import { type OverridableProp, type PublishedComponent } from '../../types';
8
- import { getOverridableProp } from '../../utils/get-overridable-prop';
9
- import { extractInnerOverrideInfo } from '../../utils/overridable-props-utils';
10
-
11
- export function useResolvedOriginValue( override: ComponentInstanceOverride | null, overridableProp: OverridableProp ) {
12
- const components = useSelector( selectData );
13
-
14
- return resolveOriginValue( components, override, overridableProp );
15
- }
16
-
17
- function resolveOriginValue(
18
- components: PublishedComponent[],
19
- matchingOverride: ComponentInstanceOverride | null,
20
- overridableProp: OverridableProp
21
- ): PropValue {
22
- const { originValue: fallbackOriginValue, originPropFields } = overridableProp;
23
-
24
- if ( hasValue( fallbackOriginValue ) ) {
25
- return fallbackOriginValue;
26
- }
27
-
28
- if ( matchingOverride ) {
29
- const result = getOriginFromOverride( components, matchingOverride );
30
-
31
- if ( hasValue( result ) ) {
32
- return result;
33
- }
34
- }
35
-
36
- const { elementId, propKey } = originPropFields ?? {};
37
-
38
- if ( elementId && propKey ) {
39
- return findOriginValueByElementId( components, elementId, propKey );
40
- }
41
-
42
- return null;
43
- }
44
-
45
- function getOriginFromOverride( components: PublishedComponent[], override: ComponentInstanceOverride ): PropValue {
46
- const innerOverrideInfo = extractInnerOverrideInfo( override );
47
-
48
- if ( ! innerOverrideInfo ) {
49
- return null;
50
- }
51
-
52
- const { componentId, innerOverrideKey, overrideValue } = innerOverrideInfo;
53
-
54
- const prop = getOverridableProp( { componentId, overrideKey: innerOverrideKey } );
55
-
56
- if ( hasValue( prop?.originValue ) ) {
57
- return prop.originValue;
58
- }
59
-
60
- if ( prop?.originPropFields?.elementId ) {
61
- const targetPropKey = prop.originPropFields.propKey ?? prop.propKey;
62
- const result = findOriginValueByElementId( components, prop.originPropFields.elementId, targetPropKey );
63
-
64
- if ( hasValue( result ) ) {
65
- return result;
66
- }
67
- }
68
-
69
- const nestedOverridable = componentOverridablePropTypeUtil.extract( overrideValue );
70
-
71
- if ( nestedOverridable ) {
72
- return getOriginFromOverride( components, componentOverridablePropTypeUtil.create( nestedOverridable ) );
73
- }
74
-
75
- return null;
76
- }
77
-
78
- function findOriginValueByElementId(
79
- components: PublishedComponent[],
80
- targetElementId: string,
81
- targetPropKey: string,
82
- visited: Set< number > = new Set()
83
- ): PropValue {
84
- for ( const component of components ) {
85
- if ( visited.has( component.id ) ) {
86
- continue;
87
- }
88
- visited.add( component.id );
89
-
90
- const matchingProp = Object.values( component.overridableProps?.props ?? {} ).find(
91
- ( { elementId, propKey } ) => elementId === targetElementId && propKey === targetPropKey
92
- );
93
-
94
- if ( ! matchingProp ) {
95
- continue;
96
- }
97
-
98
- if ( hasValue( matchingProp.originValue ) ) {
99
- return matchingProp.originValue;
100
- }
101
-
102
- if ( matchingProp.originPropFields?.elementId ) {
103
- const innerPropKey = matchingProp.originPropFields.propKey ?? targetPropKey;
104
-
105
- return findOriginValueByElementId(
106
- components,
107
- matchingProp.originPropFields.elementId,
108
- innerPropKey,
109
- visited
110
- );
111
- }
112
- }
113
-
114
- return null;
115
- }
116
-
117
- function hasValue< T >( value: T | null | undefined ): value is T {
118
- return value !== null && value !== undefined;
119
- }