PluginProbe
Elementor Website Builder – more than just a page builder / 3.11.5
Elementor Website Builder – more than just a page builder v3.11.5
4.3.2 4.3.1 4.3.0 4.3.0-beta3 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 All 455 releases
elementor / core / editor / config-providers / editor-v2-config-provider.php

editor-v2-config-provider.php in Elementor Website Builder – more than just a page builder 3.11.5, at core/editor/config-providers/editor-v2-config-provider.php

121 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Core\Editor\Config_Providers;
3
4 use Elementor\Core\Utils\Collection;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 class Editor_V2_Config_Provider implements Config_Provider_Interface {
11 const APP_PACKAGE = 'editor';
12
13 const EXTENSION_PACKAGES = [
14 'top-bar',
15 ];
16
17 const UTIL_PACKAGES = [
18 'locations',
19 'ui',
20 'v1-adapters',
21 ];
22
23 /**
24 * Cached script assets.
25 *
26 * @var Collection
27 */
28 private $packages_script_assets;
29
30 public function get_script_configs() {
31 $packages_script_configs = $this->get_packages_script_assets()
32 ->map( function ( $script_asset, $package_name ) {
33 return [
34 'handle' => $script_asset['handle'],
35 'src' => "{{ELEMENTOR_ASSETS_URL}}js/packages/{$package_name}{{MIN_SUFFIX}}.js",
36 'deps' => $script_asset['deps'],
37 'i18n' => [
38 'domain' => 'elementor',
39 'replace_requested_file' => true,
40 ],
41 ];
42 } );
43
44 $editor_script_config = $packages_script_configs->get( static::APP_PACKAGE );
45
46 $loader_script_config = [
47 'handle' => 'elementor-editor-loader-v2',
48 'src' => '{{ELEMENTOR_ASSETS_URL}}js/editor-loader-v2{{MIN_SUFFIX}}.js',
49 'deps' => array_merge(
50 [ 'elementor-editor' ],
51 $editor_script_config ? [ $editor_script_config['handle'] ] : []
52 ),
53 ];
54
55 return array_merge(
56 Editor_Common_Assets::get_script_configs(),
57 $packages_script_configs->values(),
58 [ $loader_script_config ]
59 );
60 }
61
62 public function get_script_handles_to_enqueue() {
63 return $this->get_packages_script_assets()
64 ->filter( function ( $script_asset, $package_name ) {
65 return in_array( $package_name, static::EXTENSION_PACKAGES, true );
66 } )
67 ->map( function ( $script_asset ) {
68 return $script_asset['handle'];
69 } )
70 ->push( 'elementor-editor-loader-v2' )
71 ->values();
72 }
73
74 public function get_style_configs() {
75 return array_merge(
76 Editor_Common_Assets::get_style_configs(),
77 [
78 [
79 'handle' => 'elementor-editor-v2-overrides',
80 'src' => '{{ELEMENTOR_ASSETS_URL}}css/editor-v2-overrides{{MIN_SUFFIX}}.css',
81 'deps' => [ 'elementor-editor' ],
82 ],
83 ]
84 );
85 }
86
87 public function get_style_handles_to_enqueue() {
88 return [
89 'elementor-editor-v2-overrides',
90 'elementor-editor',
91 ];
92 }
93
94 public function get_template_body_file_path() {
95 return __DIR__ . '/../templates/editor-body-v2.view.php';
96 }
97
98 private function get_packages_script_assets() {
99 if ( ! $this->packages_script_assets ) {
100 $this->packages_script_assets = Collection::make( [ static::APP_PACKAGE ] )
101 ->merge( static::EXTENSION_PACKAGES )
102 ->merge( static::UTIL_PACKAGES )
103 ->map_with_keys( function ( $package_name ) {
104 $assets_path = ELEMENTOR_ASSETS_PATH;
105 $script_asset_path = "{$assets_path}js/packages/{$package_name}.asset.php";
106
107 if ( ! file_exists( $script_asset_path ) ) {
108 return [];
109 }
110
111 /** @var array{ handle: string, deps: string[] } $script_asset */
112 $script_asset = require $script_asset_path;
113
114 return [ $package_name => $script_asset ];
115 } );
116 }
117
118 return $this->packages_script_assets;
119 }
120 }
121