@elementor/editor-components 4.4.0-1067 → 4.4.0-1070

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elementor/editor-components",
3
3
  "description": "Elementor editor components",
4
- "version": "4.4.0-1067",
4
+ "version": "4.4.0-1070",
5
5
  "private": false,
6
6
  "author": "Elementor Team",
7
7
  "homepage": "https://elementor.com/",
@@ -40,31 +40,31 @@
40
40
  "dev": "tsup --config=../../tsup.dev.ts"
41
41
  },
42
42
  "dependencies": {
43
- "@elementor/editor": "4.4.0-1067",
44
- "@elementor/editor-canvas": "4.4.0-1067",
45
- "@elementor/editor-controls": "4.4.0-1067",
46
- "@elementor/editor-documents": "4.4.0-1067",
47
- "@elementor/editor-editing-panel": "4.4.0-1067",
48
- "@elementor/editor-elements": "4.4.0-1067",
49
- "@elementor/editor-elements-panel": "4.4.0-1067",
50
- "@elementor/editor-mcp": "4.4.0-1067",
51
- "@elementor/editor-templates": "4.4.0-1067",
52
- "@elementor/editor-panels": "4.4.0-1067",
53
- "@elementor/editor-props": "4.4.0-1067",
54
- "@elementor/editor-ui": "4.4.0-1067",
55
- "@elementor/editor-v1-adapters": "4.4.0-1067",
56
- "@elementor/http-client": "4.4.0-1067",
43
+ "@elementor/editor": "4.4.0-1070",
44
+ "@elementor/editor-canvas": "4.4.0-1070",
45
+ "@elementor/editor-controls": "4.4.0-1070",
46
+ "@elementor/editor-documents": "4.4.0-1070",
47
+ "@elementor/editor-editing-panel": "4.4.0-1070",
48
+ "@elementor/editor-elements": "4.4.0-1070",
49
+ "@elementor/editor-elements-panel": "4.4.0-1070",
50
+ "@elementor/editor-mcp": "4.4.0-1070",
51
+ "@elementor/editor-templates": "4.4.0-1070",
52
+ "@elementor/editor-panels": "4.4.0-1070",
53
+ "@elementor/editor-props": "4.4.0-1070",
54
+ "@elementor/editor-ui": "4.4.0-1070",
55
+ "@elementor/editor-v1-adapters": "4.4.0-1070",
56
+ "@elementor/http-client": "4.4.0-1070",
57
57
  "@elementor/icons": "~1.75.1",
58
- "@elementor/events": "4.4.0-1067",
59
- "@elementor/query": "4.4.0-1067",
60
- "@elementor/schema": "4.4.0-1067",
61
- "@elementor/store": "4.4.0-1067",
58
+ "@elementor/events": "4.4.0-1070",
59
+ "@elementor/query": "4.4.0-1070",
60
+ "@elementor/schema": "4.4.0-1070",
61
+ "@elementor/store": "4.4.0-1070",
62
62
  "@elementor/ui": "1.37.5",
63
- "@elementor/utils": "4.4.0-1067",
63
+ "@elementor/utils": "4.4.0-1070",
64
64
  "@wordpress/i18n": "^5.13.0",
65
- "@elementor/editor-notifications": "4.4.0-1067",
66
- "@elementor/editor-current-user": "4.4.0-1067",
67
- "@elementor/editor-embedded-documents-manager": "4.4.0-1067"
65
+ "@elementor/editor-notifications": "4.4.0-1070",
66
+ "@elementor/editor-current-user": "4.4.0-1070",
67
+ "@elementor/editor-embedded-documents-manager": "4.4.0-1070"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "react": "^18.3.1",
@@ -7,24 +7,36 @@ export const componentOverridableTransformer = createTransformer(
7
7
  ( value: ComponentOverridable, options: TransformerOptions ) => {
8
8
  const { overrides } = options.renderContext ?? {};
9
9
 
10
+ const originValue = normalizeOriginValue( value.origin_value );
10
11
  const overrideValue = overrides?.[ value.override_key as keyof typeof overrides ];
11
12
 
12
13
  if ( overrideValue ) {
13
- const isOverride = isOriginValueOverride( value.origin_value );
14
-
15
- if ( isOverride ) {
16
- return transformOverride( value, options, overrideValue );
14
+ if ( isOriginValueOverride( originValue ) ) {
15
+ return transformOverride( originValue, options, overrideValue );
17
16
  }
18
17
 
19
18
  return overrideValue;
20
19
  }
21
20
 
22
- return value.origin_value;
21
+ return originValue;
23
22
  }
24
23
  );
25
24
 
25
+ /**
26
+ * Mirrors `Overridable_Prop_Type::normalize_origin_value()` on the PHP side. Rendering resolves
27
+ * props without validating them, so an empty origin value written by an older editor reaches this
28
+ * transformer untouched until the document is next saved.
29
+ *
30
+ * @param originValue The origin_value nested on a component-overridable prop.
31
+ */
32
+ function normalizeOriginValue( originValue: ComponentOverridable[ 'origin_value' ] ) {
33
+ const isEmpty = !! originValue && Object.keys( originValue ).length === 0;
34
+
35
+ return isEmpty ? null : originValue;
36
+ }
37
+
26
38
  function transformOverride(
27
- value: ComponentOverridable,
39
+ originValue: TransformablePropValue< string >,
28
40
  options: {
29
41
  key: string;
30
42
  },
@@ -36,7 +48,7 @@ function transformOverride(
36
48
  return null;
37
49
  }
38
50
 
39
- const transformedValue = transformer( value.origin_value.value, options );
51
+ const transformedValue = transformer( originValue.value, options );
40
52
 
41
53
  if ( ! transformedValue ) {
42
54
  return null;
@@ -49,6 +61,8 @@ function transformOverride(
49
61
  };
50
62
  }
51
63
 
52
- function isOriginValueOverride( originValue: TransformablePropValue< string > ): boolean {
53
- return originValue.$$type === 'override';
64
+ function isOriginValueOverride(
65
+ originValue: TransformablePropValue< string > | null
66
+ ): originValue is TransformablePropValue< string > {
67
+ return originValue?.$$type === 'override';
54
68
  }
package/src/types.ts CHANGED
@@ -89,7 +89,7 @@ export type ExtendedWindow = Window & {
89
89
 
90
90
  export type ComponentOverridable = {
91
91
  override_key: string;
92
- origin_value: TransformablePropValue< string >;
92
+ origin_value: TransformablePropValue< string > | null;
93
93
  };
94
94
 
95
95
  export type ComponentRenderContext = RenderContext< {