PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.4
Elementor Website Builder – more than just a page builder v4.2.4
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
← All changes | modules/atomic-widgets/module.php +21 -20 4.1.0-dev14.2.4 View file →
@@ -2,14 +2,17 @@
2 2
3 3 namespace Elementor\Modules\AtomicWidgets;
4 4
5 5 use Elementor\Core\Base\Module as BaseModule;
6 +use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
6 7 use Elementor\Core\Experiments\Manager as Experiments_Manager;
7 8 use Elementor\Elements_Manager;
9 +use Elementor\Modules\AtomicWidgets\Ajax\Render_Element_Action;
8 10 use Elementor\Modules\AtomicWidgets\DynamicTags\Dynamic_Tags_Module;
9 11 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Youtube\Atomic_Youtube;
10 12 use Elementor\Modules\AtomicWidgets\Elements\Div_Block\Div_Block;
11 13 use Elementor\Modules\AtomicWidgets\Elements\Flexbox\Flexbox;
14 +use Elementor\Modules\AtomicWidgets\Elements\Grid\Grid;
12 15 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Heading\Atomic_Heading;
13 16 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Image\Atomic_Image;
14 17 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Paragraph\Atomic_Paragraph;
15 18 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Button\Atomic_Button;
@@ -19,8 +22,9 @@
19 22 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tabs_Menu\Atomic_Tabs_Menu;
20 23 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tab\Atomic_Tab;
21 24 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tabs_Content_Area\Atomic_Tabs_Content_Area;
22 25 use Elementor\Modules\AtomicWidgets\ImportExport\Atomic_Import_Export;
26 +use Elementor\Modules\AtomicWidgets\Elements\Promotions\Pro_Promotion_Data_Preservation;
23 27 use Elementor\Modules\AtomicWidgets\Elements\Loader\Frontend_Assets_Loader;
24 28 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Combine_Array_Transformer;
25 29 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Export\Image_Src_Export_Transformer;
26 30 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Export\Svg_Src_Export_Transformer;
@@ -42,8 +46,9 @@
42 46 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Color_Stop_Transformer;
43 47 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Multi_Props_Transformer;
44 48 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Position_Transformer;
45 49 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Shadow_Transformer;
50 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Grid_Track_Size_Transformer;
46 51 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Size_Transformer;
47 52 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Stroke_Transformer;
48 53 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Transformer;
49 54 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Size_Scale_Transformer;
@@ -48,8 +53,9 @@
48 53 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Transformer;
49 54 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Size_Scale_Transformer;
50 55 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Overlay_Transformer;
51 56 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Filter_Transformer;
57 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Font_Family_Transformer;
52 58 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Origin_Transformer;
53 59 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transition_Transformer;
54 60 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Rotate_Transformer;
55 61 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Skew_Transformer;
@@ -88,8 +94,9 @@
88 94 use Elementor\Modules\AtomicWidgets\PropTypes\Svg_Src_Prop_Type;
89 95 use Elementor\Modules\AtomicWidgets\PropTypes\Dimensions_Prop_Type;
90 96 use Elementor\Modules\AtomicWidgets\PropTypes\Position_Prop_Type;
91 97 use Elementor\Modules\AtomicWidgets\PropTypes\Shadow_Prop_Type;
98 +use Elementor\Modules\AtomicWidgets\PropTypes\Grid_Track_Size_Prop_Type;
92 99 use Elementor\Modules\AtomicWidgets\PropTypes\Size_Prop_Type;
93 100 use Elementor\Modules\AtomicWidgets\PropTypes\Stroke_Prop_Type;
94 101 use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Functions\Transform_Move_Prop_Type;
95 102 use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Transform_Functions_Prop_Type;
@@ -103,10 +110,12 @@
103 110 use Elementor\Modules\AtomicWidgets\Styles\Atomic_Widget_Base_Styles;
104 111 use Elementor\Modules\AtomicWidgets\Styles\Atomic_Widget_Styles;
105 112 use Elementor\Modules\AtomicWidgets\Styles\Size_Constants;
106 113 use Elementor\Modules\AtomicWidgets\Styles\Style_Schema;
114 +use Elementor\Modules\AtomicWidgets\CssConverter\Css_Converter_REST_API;
107 115 use Elementor\Modules\AtomicWidgets\Database\Atomic_Widgets_Database_Updater;
108 116 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tab_Content\Atomic_Tab_Content;
117 +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Collection_Loop\Collection_Loop_Promotion;
109 118 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Atomic_Form;
110 119 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Atomic_Form_Promotion;
111 120 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Form_Success_Message\Form_Success_Message;
112 121 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Form_Error_Message\Form_Error_Message;
@@ -123,8 +132,9 @@
123 132 use Elementor\Modules\AtomicWidgets\Utils\Utils;
124 133 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Self_Hosted_Video\Atomic_Self_Hosted_Video;
125 134 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Span_Transformer;
126 135 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Video_Src_Transformer;
136 +use Elementor\Modules\AtomicWidgets\PropTypes\Font_Family_Prop_Type;
127 137 use Elementor\Modules\AtomicWidgets\PropTypes\Span_Prop_Type;
128 138 use Elementor\Modules\AtomicWidgets\PropTypes\Video_Src_Prop_Type;
129 139
130 140 if ( ! defined( 'ABSPATH' ) ) {
@@ -134,10 +144,8 @@
134 144 class Module extends BaseModule {
135 145 const EXPERIMENT_NAME = 'e_atomic_elements';
136 146 const ENFORCE_CAPABILITIES_EXPERIMENT = 'atomic_widgets_should_enforce_capabilities';
137 147 const EXPERIMENT_EDITOR_MCP = 'editor_mcp';
138 - const EXPERIMENT_CSS_GRID = 'e_css_grid';
139 - const EXPERIMENT_DESIGN_SYSTEM_PANEL = 'e_editor_design_system_panel';
140 148
141 149 const PACKAGES = [
142 150 'editor-canvas',
143 151 'editor-controls', // TODO: Need to be registered and not enqueued.
@@ -177,8 +185,10 @@
177 185 add_action( 'elementor/preview/enqueue_styles', fn () => $this->enqueue_promotion_styles() );
178 186 add_action( 'elementor/frontend/before_register_scripts', fn () => $this->register_frontend_scripts() );
179 187 add_action( 'elementor/frontend/after_enqueue_styles', fn () => $this->add_inline_styles() );
180 188
189 + add_action( 'elementor/ajax/register_actions', fn ( Ajax $ajax ) => ( new Render_Element_Action() )->register( $ajax ) );
190 +
181 191 add_action( 'elementor/atomic-widgets/settings/transformers/register', fn ( $transformers ) => $this->register_settings_transformers( $transformers ) );
182 192 add_action( 'elementor/atomic-widgets/styles/transformers/register', fn ( $transformers ) => $this->register_styles_transformers( $transformers ) );
183 193 add_action( 'elementor/atomic-widgets/import/transformers/register', fn ( $transformers ) => $this->register_import_transformers( $transformers ) );
184 194 add_action( 'elementor/atomic-widgets/export/transformers/register', fn ( $transformers ) => $this->register_export_transformers( $transformers ) );
@@ -235,26 +245,8 @@
235 245 'default' => Experiments_Manager::STATE_ACTIVE,
236 246 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV,
237 247 ]);
238 248
239 - Plugin::$instance->experiments->add_feature( [
240 - 'name' => self::EXPERIMENT_CSS_GRID,
241 - 'title' => esc_html__( 'CSS Grid', 'elementor' ),
242 - 'description' => esc_html__( 'Enable CSS Grid layout for containers.', 'elementor' ),
243 - 'hidden' => true,
244 - 'default' => Experiments_Manager::STATE_INACTIVE,
245 - 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV,
246 - ] );
247 -
248 - Plugin::$instance->experiments->add_feature([
249 - 'name' => self::EXPERIMENT_DESIGN_SYSTEM_PANEL,
250 - 'title' => esc_html__( 'Editor design system panel', 'elementor' ),
251 - 'description' => esc_html__( 'Unified design system entry in the editor (toolbar + single panel for variables and global classes).', 'elementor' ),
252 - 'hidden' => true,
253 - 'default' => Experiments_Manager::STATE_ACTIVE,
254 - 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV,
255 - ]);
256 -
257 249 // When a new feature affects settings or style schema, global class, interactions, variable, etc
258 250 // anything in need of addressing migration for BC purposes, add it here.
259 251 $migrations_affecting_features = [];
260 252
@@ -269,8 +261,10 @@
269 261 ( new Atomic_Widget_Base_Styles() )->register_hooks();
270 262 ( new Atomic_Widgets_Library() )->register_hooks();
271 263 ( new Atomic_Import_Export() )->register_hooks();
272 264 ( new Atomic_Widgets_Database_Updater() )->register();
265 + ( new Css_Converter_REST_API() )->register_hooks();
266 + ( new Pro_Promotion_Data_Preservation() )->register_hooks();
273 267 }
274 268
275 269 private function add_packages( $packages ) {
276 270 return array_merge( $packages, self::PACKAGES );
@@ -307,8 +301,9 @@
307 301
308 302 private function register_elements( Elements_Manager $elements_manager ) {
309 303 $elements_manager->register_element_type( new Div_Block() );
310 304 $elements_manager->register_element_type( new Flexbox() );
305 + $elements_manager->register_element_type( new Grid() );
311 306
312 307 $elements_manager->register_element_type( new Atomic_Tabs() );
313 308 $elements_manager->register_element_type( new Atomic_Tabs_Menu() );
314 309 $elements_manager->register_element_type( new Atomic_Tab() );
@@ -321,8 +316,12 @@
321 316 $elements_manager->register_element_type( new Form_Error_Message() );
322 317 } elseif ( ! \Elementor\Utils::has_pro() ) {
323 318 $elements_manager->register_element_type( new Atomic_Form_Promotion() );
324 319 }
320 +
321 + if ( ! \Elementor\Utils::has_pro() ) {
322 + $elements_manager->register_element_type( new Collection_Loop_Promotion() );
323 + }
325 324 }
326 325
327 326 private function register_settings_transformers( Transformers_Registry $transformers ) {
328 327 $transformers->register_fallback( new Plain_Transformer() );
@@ -351,9 +350,11 @@
351 350 $this->register_layout_styles_transformers( $transformers );
352 351 }
353 352
354 353 private function register_basic_styles_transformers( Transformers_Registry $transformers ): void {
354 + $transformers->register( Font_Family_Prop_Type::get_key(), new Font_Family_Transformer() );
355 355 $transformers->register( Size_Prop_Type::get_key(), new Size_Transformer() );
356 + $transformers->register( Grid_Track_Size_Prop_Type::get_key(), new Grid_Track_Size_Transformer() );
356 357 $transformers->register( Box_Shadow_Prop_Type::get_key(), new Combine_Array_Transformer( ',' ) );
357 358 $transformers->register( Shadow_Prop_Type::get_key(), new Shadow_Transformer() );
358 359 $transformers->register( Flex_Prop_Type::get_key(), new Flex_Transformer() );
359 360 $transformers->register( Stroke_Prop_Type::get_key(), new Stroke_Transformer() );