PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.1
Elementor Website Builder – more than just a page builder v4.0.1
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / components / documents / component-overridable-prop.php

component-overridable-prop.php in Elementor Website Builder – more than just a page builder 4.0.1, at modules/components/documents/component-overridable-prop.php

84 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Modules\Components\Documents;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit; // Exit if accessed directly
6 }
7
8 class Component_Overridable_Prop {
9 /** @var string */
10 public $override_key;
11
12 /** @var string */
13 public $element_id;
14
15 /** @var string */
16 public $el_type;
17
18 /** @var string */
19 public $widget_type;
20
21 /** @var string */
22 public $prop_key;
23
24 /** @var string */
25 public $label;
26
27 /** @var array{ $$type: string, value: mixed } */
28 public $origin_value;
29
30 /** @var string */
31 public $group_id;
32
33 /** @var ?array{ $el_type: string, $widget_type: string, $prop_key: string } */
34 public $origin_prop_fields = null;
35
36 public function __construct( array $overridable_prop ) {
37 $this->override_key = $overridable_prop['overrideKey'];
38 $this->element_id = $overridable_prop['elementId'];
39 $this->el_type = $overridable_prop['elType'];
40 $this->widget_type = $overridable_prop['widgetType'];
41 $this->prop_key = $overridable_prop['propKey'];
42 $this->label = $overridable_prop['label'];
43 $this->origin_value = $overridable_prop['originValue'];
44 $this->group_id = $overridable_prop['groupId'] ?? null;
45
46 if ( isset( $overridable_prop['originPropFields'] ) ) {
47 $this->origin_prop_fields = [
48 'el_type' => $overridable_prop['originPropFields']['elType'],
49 'widget_type' => $overridable_prop['originPropFields']['widgetType'],
50 'prop_key' => $overridable_prop['originPropFields']['propKey'],
51 'element_id' => $overridable_prop['originPropFields']['elementId'],
52 ];
53 }
54 }
55
56 public static function make( array $overridable_prop ): self {
57 return new self( $overridable_prop );
58 }
59
60 public function to_associative_array(): array {
61 $result = [
62 'overrideKey' => $this->override_key,
63 'elementId' => $this->element_id,
64 'elType' => $this->el_type,
65 'widgetType' => $this->widget_type,
66 'propKey' => $this->prop_key,
67 'label' => $this->label,
68 'originValue' => $this->origin_value,
69 'groupId' => $this->group_id,
70 ];
71
72 if ( $this->origin_prop_fields ) {
73 $result['originPropFields'] = [
74 'elType' => $this->origin_prop_fields['el_type'],
75 'widgetType' => $this->origin_prop_fields['widget_type'],
76 'propKey' => $this->origin_prop_fields['prop_key'],
77 'elementId' => $this->origin_prop_fields['element_id'],
78 ];
79 }
80
81 return $result;
82 }
83 }
84